ARTEMIS is an autonomous multimodal Android agent and mobile UI automation platform engineered for physical devices and emulators. It combines state-of-the-art multimodal Vision-Language Models (VLMs) with hierarchical closed-loop planning, resilient self-healing, and deep Android subsystem integration. Key Features & Architectural Highlights: - Dual-Engine Orchestration: * Pro Engine: Multi-agent closed-loop (Planner -> Operator -> Validator/Failure Analyzer -> Summarizer) powered by LangGraph. * Flash Engine: Ultra-fast reactive loop for deterministic, low-latency UI execution (<35 steps). - Multimodal Perception & Grounding: * Hybrid visual screenshot grounding, real-time OCR extraction, and XML accessibility hierarchy parsing. * Dynamic-First, Coordinate-Fallback locating strategy for maximum resilience against UI drift. - Autonomous Self-Healing & Diagnostics: * Failure analyzer and safety net for popup dismissal, crash recovery, and auto-retry. * Diagnostic sub-agents for log analysis, video recording inspection, and object detection. - Unified CLI & Python SDK: * Rich CLI with commands: init, doctor, run, trace, batch, bench, server, and mcp. * Fluent Python SDK with Pydantic structured output models and package locking. - Multi-Provider LLM Architecture: * Support for Google Gemini, OpenAI, Anthropic Claude, Vertex AI, OpenRouter, xAI Grok, and local endpoints (Ollama/vLLM). * Centralized configuration in config/artemis.jsonc. - Native MCP & Observability: * Model Context Protocol (MCP) server endpoints for AI IDEs. * Full trace recording with before/after screenshots, action overlays, and execution replays. Change-Id: I430b93ee2b76b54cc5a3c6eeccd15d2cf29830a1
57 lines
1.6 KiB
Makefile
57 lines
1.6 KiB
Makefile
.PHONY: help test install setup clean precommit-install precommit lint format typecheck
|
|
|
|
help: ## Show this help message
|
|
@echo 'Usage: make [target]'
|
|
@echo ''
|
|
@echo 'Available targets:'
|
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-20s %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
|
|
test: ## Run all tests
|
|
@echo "π§ͺ Running all tests..."
|
|
@uv run pytest -v
|
|
|
|
install: ## Install dependencies
|
|
@echo "π¦ Installing dependencies..."
|
|
@uv sync --dev
|
|
|
|
setup: ## Setup project (install dependencies + pre-commit hooks)
|
|
@echo "π Setting up project..."
|
|
@$(MAKE) install
|
|
@$(MAKE) precommit-install
|
|
@echo ""
|
|
@echo "β
Setup complete! You're ready to start developing."
|
|
|
|
lint: ## Run linting checks
|
|
@echo "π Running linting checks..."
|
|
@uv run ruff format --check
|
|
@uv run ruff check
|
|
|
|
format: ## Format code
|
|
@echo "β¨ Formatting code..."
|
|
@uv run ruff format
|
|
@uv run ruff check --fix
|
|
|
|
typecheck: ## Run type checking
|
|
@echo "π Running type checks..."
|
|
@uv run pyright
|
|
|
|
precommit-install: ## Install pre-commit hooks
|
|
@echo "π§ Installing pre-commit hooks..."
|
|
@uv run pre-commit install
|
|
@echo "β
Pre-commit hooks installed successfully!"
|
|
@echo ""
|
|
@echo "Pre-commit will now run automatically on every commit."
|
|
@echo "To run manually: make precommit"
|
|
|
|
precommit: ## Run pre-commit hooks manually on all files
|
|
@echo "π Running pre-commit checks..."
|
|
@uv run pre-commit run --all-files
|
|
|
|
clean: ## Clean up generated files and caches
|
|
@echo "π§Ή Cleaning up..."
|
|
@rm -rf .pytest_cache
|
|
@rm -rf .ruff_cache
|
|
@rm -rf **/__pycache__
|
|
@find . -type d -name "*.egg-info" -exec rm -rf {} + 2>/dev/null || true
|
|
@echo "β
Cleanup complete"
|