68 lines
2.5 KiB
Markdown
68 lines
2.5 KiB
Markdown
# 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.
|
|
|
|
## Python Workspace
|
|
|
|
The repository uses a uv workspace with one committed lockfile. From the
|
|
repository root, synchronize every Python member with:
|
|
|
|
```bash
|
|
uv sync --locked --all-packages
|
|
```
|
|
|
|
Run the complete local test suite in a workspace environment:
|
|
|
|
```bash
|
|
uv run --all-packages pytest -m "not integration"
|
|
```
|
|
|
|
Select one member when running package-specific commands:
|
|
|
|
```bash
|
|
uv run --package device-agent-runtime python -c "import runtime"
|
|
uv run --package device-cloud-platform python -c "import cloud"
|
|
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](docs/ROADMAP.md). The architecture
|
|
invariants future changes must preserve are in
|
|
[docs/CONSTITUTION.md](docs/CONSTITUTION.md).
|
|
|
|
## Operator Guides
|
|
|
|
- [Cloud Control Plane deployment](docs/CLOUD_DEPLOYMENT.md): run local SQLite
|
|
or deployed PostgreSQL, configure credentials and Runtime AI planning, and
|
|
perform orderly shutdown or rollback.
|
|
- [macOS migration and real iPhone setup](docs/MACOS_IPHONE_SETUP.md): install
|
|
Xcode, Appium/XCUITest, sign WebDriverAgent, verify a real device, and start a
|
|
connected Runtime API.
|