feat: introduce MCP server, cross-platform runtime, and Showcase UI reorganization
- Showcase UI Reorganization: * Move web UI dashboard from root directory into apps/showcase_ui/ for cleaner project structure * Add 'artemis ui' CLI command (artemis/interfaces/cli/commands/ui.py) and launcher scripts for the interactive showcase console - Standalone MCP Server & Notifiers (mcp_server/): * Implement dedicated MCP server package with mobile automation tools (device_state, inspect_trace, task_manager, task_runner) * Add multi-channel notifiers (AgentAPI, Desktop notifications, Webhooks, File output, and Composite routing) * Introduce background task runner and trace store for autonomous mobile execution monitoring - Cross-Platform Runtime & Toolchain Support: * Add artemis/platform/ with OS-specific implementations for Linux, macOS (Darwin), and Windows * Add artemis/runtime/supervisor.py for resilient process and agent runtime supervision * Add artemis/toolchain/ with dependency resolution and SDK descriptors * Add cross-platform launcher scripts (start.sh, start.bat) and installer scripts (scripts/install_deps.*) - Core Enhancements & Diagnostics: * Enhance coordinate normalization, OCR API fallback, and perception pipeline * Add credential validation (credentials_validator.py) and system diagnostics * Update bilingual documentation (README.md, README_CN.md) and architecture diagrams - Test Suite Expansion: * Add integration tests for cloud gateway, remote ADB, and Artemis login * Add unit tests covering core diagnostics, platform detection, toolchain, credentials validator, optional OCR, and MCP tools
This commit is contained in:
1 parent
78e478f502
commit
9a5aaf99b7
249 files changed
+37226
-9339
No files matched your search
+25
-4
@@ -14,11 +14,11 @@
|
||||
|
||||
[project]
|
||||
name = "artemis"
|
||||
version = "3.6.3"
|
||||
description = "Artemis Android Agent"
|
||||
version = "1.0"
|
||||
description = "Autonomous AI Assistant for Mobile Automation"
|
||||
|
||||
authors = [
|
||||
{ name = "somew1nd", email = "wfq559@outlook.com" },
|
||||
{ name = "Farley Wang", email="farleyw@google.com" },
|
||||
]
|
||||
|
||||
requires-python = ">=3.12"
|
||||
@@ -91,9 +91,15 @@ artemis-admin = "apps.admin_console.server:main"
|
||||
|
||||
|
||||
[build-system]
|
||||
# requires = ["uv_build>=0.7.20,<0.8.0"]
|
||||
# build-backend = "uv_build"
|
||||
requires = ["setuptools>=61.0", "Cython"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.uv.build-backend]
|
||||
module-root = ""
|
||||
module-name = "artemis"
|
||||
|
||||
[tool.ruff]
|
||||
# Exclude a variety of commonly ignored directories.
|
||||
exclude = [
|
||||
@@ -135,7 +141,18 @@ target-version = "py312"
|
||||
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
|
||||
# Also enable TID (flake8-tidy-imports) to enforce absolute imports
|
||||
select = ["E", "F", "TID", "UP"]
|
||||
ignore = ["E501"]
|
||||
ignore = [
|
||||
"E501", # Line too long
|
||||
"E402", # Module level import not at top of file
|
||||
"E712", # Avoid equality comparisons to True/False
|
||||
"F401", # Unused imports
|
||||
"F841", # Local variable is assigned to but never used
|
||||
"UP035", # Deprecated import
|
||||
"UP036", # Outdated version block
|
||||
"UP042", # Class inherits from both str and enum.Enum
|
||||
"UP046", # Generic class uses Generic subclass instead of type parameters
|
||||
"UP047", # Generic function should use type parameters
|
||||
]
|
||||
|
||||
# Allow fix for all enabled rules (when `--fix`) is provided.
|
||||
fixable = ["ALL"]
|
||||
@@ -207,6 +224,9 @@ disable = [
|
||||
"R0801", # duplicate-code
|
||||
]
|
||||
|
||||
[tool.pyright]
|
||||
exclude = [".venv/**"]
|
||||
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
"ruff>=0.15.2",
|
||||
@@ -216,3 +236,4 @@ dev = [
|
||||
"pyright>=1.1.389",
|
||||
"pre-commit>=3.5.0",
|
||||
]
|
||||
|
||||
Reference in new issue
Block a user