q792602257andClaude Opus 4.6 e5ea32a44a
Tests / Test tests.test_workspace_packaging.test_workspace_distributions_own_expected_import_packages failed
build(pytest): use importlib import mode to fix app test collection
apps/cloud-api/tests and apps/device-host-agent/tests both contain
test_app.py without __init__.py, so pytest's default prepend mode
collided on the bare module name and aborted collection when Jenkins
passed both paths together. Switching to importlib imports each file
by its full path and avoids the collision.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-13 15:24:13 +08:00
2026-07-13 14:00:43 +08:00

Device Agent Runtime

Device Agent Runtime is a device-agnostic runtime for LLM-driven automation. It gives agents a stable way to observe, decide, and act against real devices through a small set of domain models, driver contracts, tools, perception providers, and runtime orchestration.

iPhone automation through WebDriverAgent/Appium is the first driver, not the platform boundary. Future drivers can target Android, browsers, desktop environments, or other device surfaces without changing the runtime's core contracts.

Current Shape

  • core/: shared domain models and runtime errors.
  • driver/: the Driver contract, concrete driver adapters, and driver-type registry.
  • device/: device lifecycle and active driver management.
  • tools/: device capabilities exposed to runtime and API layers.
  • perception/: screen-to-Scene perception behind PerceptionProvider.
  • runtime/: planning and execution orchestration.
  • api/: REST/MCP transport adapters.
  • storage/: timeline, task, and device configuration persistence.
  • packages/cloud-platform/: cloud scheduling, device pooling, plugins, and the Python cloud SDK as the device-cloud-platform workspace member.
  • apps/cloud-api/: deployable authenticated Cloud Control Plane with PostgreSQL/SQLite persistence, scheduling, leases, and health endpoints.
  • apps/device-host-agent/: outbound Host Agent that synchronizes configured devices and executes leased tasks through the existing Runtime/workflow.

Python Workspace

The repository uses a uv workspace with one committed lockfile. From the repository root, synchronize every Python member with:

uv sync --locked --all-packages

Run the complete local test suite in a workspace environment:

uv run --all-packages pytest -m "not integration"

Select one member when running package-specific commands:

uv run --package device-agent-runtime python -c "import runtime"
uv run --package device-cloud-platform python -c "import cloud"
uv run --package device-cloud-api device-cloud-api --help
uv run --package device-host-agent device-host-agent --help
uv build --package device-agent-runtime
uv build --package device-cloud-platform

The Vue/Vite application under console/ remains an independent npm project; uv does not install or modify its JavaScript dependencies.

Project Direction

The durable roadmap is in docs/ROADMAP.md. The architecture invariants future changes must preserve are in docs/CONSTITUTION.md.

Operator Guides

S
Description
No description provided
Readme
1.9 MiB
Languages
Python 92.5%
Vue 3.8%
HTML 1.7%
TypeScript 1.6%
CSS 0.3%
Other 0.1%