adb-ready 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +97 -1
- package/README.md +42 -24
- package/dist/cli.js +3563 -816
- package/dist/cli.js.map +24 -20
- package/docs/agent-integration.md +31 -13
- package/docs/apps-and-evidence.md +9 -2
- package/docs/automation.md +43 -2
- package/docs/configuration.md +1 -1
- package/docs/dev-sessions.md +4 -0
- package/docs/logs-and-context.md +15 -0
- package/docs/troubleshooting.md +1 -0
- package/docs/ui-automation.md +84 -8
- package/examples/README.md +2 -0
- package/examples/capacitor/adb-ready.config.json +9 -0
- package/examples/flutter/adb-ready.config.json +9 -0
- package/llms.txt +14 -5
- package/package.json +4 -2
- package/schema/agent-tools-v1.json +2809 -166
- package/schema/config-v1.schema.json +93 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,101 @@ breaking changes.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [0.3.0] - 2026-09-11
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Scope saved sessions, latest-problem lookup, AI context, and MCP session
|
|
17
|
+
resources to the canonical current project by default, with an explicit
|
|
18
|
+
`--all-projects` escape hatch for cross-project audits.
|
|
19
|
+
- Add privacy-safe cross-process Android target leases with heartbeats, bounded
|
|
20
|
+
expiry, stale-owner recovery, and ownership-checked cleanup for app, UI,
|
|
21
|
+
port, recording, and development-session mutations.
|
|
22
|
+
- Let `dev --dry-run` resolve and validate the project, command, ports, and
|
|
23
|
+
lifecycle hooks without requiring ADB or allocating an Android target. An
|
|
24
|
+
explicit target selector still produces the target-resolved plan.
|
|
25
|
+
- Add composable readiness contracts for boot, unlock, process, foreground
|
|
26
|
+
activity, exact UI selectors, host ports, HTTP responses, and bounded log
|
|
27
|
+
presence or absence. Expo and React Native sessions now verify Android boot
|
|
28
|
+
and Metro reachability before reporting ready.
|
|
29
|
+
- Add `adb-ready run -- COMMAND` as a finite automation entrypoint: start the
|
|
30
|
+
configured development service, satisfy readiness, execute one timeout-bound
|
|
31
|
+
verification command, preserve its exit code, and clean owned resources.
|
|
32
|
+
- Produce an atomic, redacted evidence bundle for every executed `run` with a
|
|
33
|
+
versioned manifest, structured result, NDJSON timeline, problems, logcat,
|
|
34
|
+
bounded AI context, JUnit XML, and GitHub step-summary Markdown.
|
|
35
|
+
- Advertise and validate a versioned result-envelope output schema for every
|
|
36
|
+
MCP tool, return screenshot pixels as MCP image content, and issue stable
|
|
37
|
+
connection-scoped target handles that reject stale or cross-connection use.
|
|
38
|
+
- Let MCP `ensure_ready` reconnect an explicitly addressed endpoint or the only
|
|
39
|
+
unambiguous paired wireless service before binding it.
|
|
40
|
+
- Exercise the complete MCP contract on Node.js, Bun, and Deno across both the
|
|
41
|
+
legacy 2025-11-25 and modern 2026-07-28 protocol eras.
|
|
42
|
+
- Add semantic UI find, assert, digest comparison, and selector-driven tap or
|
|
43
|
+
long-press workflows. Structured selectors support exact, prefix, and
|
|
44
|
+
contains matching plus enabled/actionable qualifiers; ambiguous mutations
|
|
45
|
+
fail instead of guessing.
|
|
46
|
+
- Add project-scoped `start_dev_session`, `get_dev_session`, and
|
|
47
|
+
`stop_dev_session` MCP tools backed by opaque durable handles. Managed
|
|
48
|
+
sessions continue outside one tool call, survive client reconnects, report
|
|
49
|
+
heartbeats and terminal exit state, and stop only their verified owned
|
|
50
|
+
process group.
|
|
51
|
+
- Add status, recency, preset, and count filters to project-scoped session
|
|
52
|
+
history.
|
|
53
|
+
- Install a single APK or a complete split APK set through verified `install`
|
|
54
|
+
and `install-multiple` workflows in both CLI and MCP.
|
|
55
|
+
- Detect and run Flutter and Capacitor Android projects on the exact selected
|
|
56
|
+
target, with boot readiness and no invented default port mappings.
|
|
57
|
+
- Add intent-level UI read, field fill/clear, and container-scoped scroll
|
|
58
|
+
workflows for CLI and MCP. Field replacement is capability-gated before
|
|
59
|
+
mutation and verifies observable values instead of inferring success from
|
|
60
|
+
input exit codes.
|
|
61
|
+
- Add a project-scoped MCP session index with status, preset, recency, limit,
|
|
62
|
+
and stable cursor pagination so agents can locate relevant saved evidence
|
|
63
|
+
without scanning unrelated history.
|
|
64
|
+
- Add a bounded CLI/MCP screen audit that identifies enabled actionable nodes
|
|
65
|
+
without human-readable labels and controls without stable resource IDs,
|
|
66
|
+
returning concrete nodes instead of a subjective score.
|
|
67
|
+
- Bind finite verification commands to the leased target through
|
|
68
|
+
`ANDROID_SERIAL`, `ADB_READY_TARGET_SERIAL`, and an explicit
|
|
69
|
+
`{target.serial}` argument placeholder for tools such as Maestro that require
|
|
70
|
+
their own device flag.
|
|
71
|
+
- Report measured acquisition time alongside every before/after UI snapshot so
|
|
72
|
+
agents and CI can identify slow accessibility inspection without guessing.
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
75
|
+
|
|
76
|
+
- Compact repeated successful health checks in bounded AI context while
|
|
77
|
+
preserving the complete redacted NDJSON timeline as source evidence.
|
|
78
|
+
- Reorganize the interactive home around development, test automation, device,
|
|
79
|
+
debugging, and project tasks; preserve root presentation flags and use copy
|
|
80
|
+
that remains meaningful in narrow terminals.
|
|
81
|
+
- Add the screen agent-readiness audit to the task-oriented Debug & evidence
|
|
82
|
+
menu without expanding the root menu.
|
|
83
|
+
- Lead the public README with the agent outcome, immediate setup, and a concrete
|
|
84
|
+
first task before the implementation details.
|
|
85
|
+
|
|
86
|
+
### Fixed
|
|
87
|
+
|
|
88
|
+
- Return a structured capability overview for bare machine-mode invocation and
|
|
89
|
+
suggest high-confidence corrections for mistyped commands or options.
|
|
90
|
+
- Apply retention limits per project before the global safety cap so one noisy
|
|
91
|
+
project cannot evict another project's recent diagnostic history.
|
|
92
|
+
- Keep packaged command-matrix development sessions inside an isolated
|
|
93
|
+
temporary state directory instead of polluting the user's session store.
|
|
94
|
+
- Correct the public installation guide so its compatibility note no longer
|
|
95
|
+
contradicts the documented split APK support.
|
|
96
|
+
- Give accessibility hierarchy acquisition its own 15-second default deadline
|
|
97
|
+
in inspect and UI workflows while preserving an explicit global timeout.
|
|
98
|
+
This prevents ordinary slower OEM UI Automator dumps from failing at the
|
|
99
|
+
generic five-second ADB boundary.
|
|
100
|
+
- Classify Android's successful-exit `could not get idle state` response as a
|
|
101
|
+
distinct `UI_NOT_IDLE` problem with a safe recovery instruction instead of
|
|
102
|
+
misreporting an inaccessible hierarchy.
|
|
103
|
+
- Finalize an explicitly stopped managed development task as interrupted even
|
|
104
|
+
when Windows terminates the owned child before its signal handler can write
|
|
105
|
+
the terminal record.
|
|
106
|
+
|
|
12
107
|
## [0.2.0] - 2026-09-10
|
|
13
108
|
|
|
14
109
|
### Added
|
|
@@ -81,7 +176,8 @@ breaking changes.
|
|
|
81
176
|
explainable configuration precedence.
|
|
82
177
|
- Human, plain, JSON, and NDJSON output across Node, Bun, and Deno entrypoints.
|
|
83
178
|
|
|
84
|
-
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.
|
|
179
|
+
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.3.0...HEAD
|
|
180
|
+
[0.3.0]: https://github.com/Adam014/adb-ready/compare/v0.2.0...v0.3.0
|
|
85
181
|
[0.2.0]: https://github.com/Adam014/adb-ready/compare/v0.1.2...v0.2.0
|
|
86
182
|
[0.1.2]: https://github.com/Adam014/adb-ready/compare/v0.1.1...v0.1.2
|
|
87
183
|
[0.1.1]: https://github.com/Adam014/adb-ready/compare/v0.1.0...v0.1.1
|
package/README.md
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
# ADB Ready
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**The local Android runtime for coding agents.**
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Give any MCP-capable agent a safe way to start your Android project, operate a
|
|
8
|
+
real app, verify what happened, and bring back evidence—not guesses.
|
|
9
9
|
|
|
10
10
|
[](./docs/agent-integration.md)
|
|
11
11
|
[](https://github.com/Adam014/adb-ready/actions/workflows/ci.yml)
|
|
@@ -13,14 +13,26 @@ control of Android targets, apps, UI, logs, evidence, and development sessions.
|
|
|
13
13
|
[](https://nodejs.org/)
|
|
14
14
|
[](https://bun.sh/)
|
|
15
15
|
[](https://deno.com/)
|
|
16
|
+
[](./docs/dev-sessions.md)
|
|
17
|
+
[](./docs/dev-sessions.md)
|
|
16
18
|
[](./COMPATIBILITY.md)
|
|
17
19
|
|
|
18
|
-
[Quick start](#quick-start) · [AI agents](#
|
|
20
|
+
[Quick start](#quick-start) · [AI agents](#built-for-agentic-android-development) · [Why ADB Ready](#why-adb-ready) ·
|
|
19
21
|
[Workflows](#find-your-workflow) · [Documentation](#documentation) ·
|
|
20
22
|
[Compatibility](#compatibility)
|
|
21
23
|
|
|
22
24
|
</div>
|
|
23
25
|
|
|
26
|
+
```bash
|
|
27
|
+
npm install --save-dev adb-ready
|
|
28
|
+
npx adb-ready agent setup codex
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Then ask your agent:
|
|
32
|
+
|
|
33
|
+
> Start this Expo app on my Android phone, wait until the login screen is
|
|
34
|
+
> actually ready, verify the change I made, and keep the failure evidence.
|
|
35
|
+
|
|
24
36
|
```text
|
|
25
37
|
$ adb-ready dev
|
|
26
38
|
|
|
@@ -30,37 +42,41 @@ $ adb-ready dev
|
|
|
30
42
|
● Session healthy watching target, ports, and logs
|
|
31
43
|
```
|
|
32
44
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
45
|
+
ADB Ready handles the state around ADB that agents cannot safely guess: which
|
|
46
|
+
device belongs to the run, whether the app is truly ready, which ports and
|
|
47
|
+
processes it owns, and what evidence survives after a failure. It works locally
|
|
48
|
+
with Codex, Claude Code, Cursor, VS Code/Copilot, and any MCP client—without an
|
|
49
|
+
ADB Ready account, hosted service, or model API key.
|
|
36
50
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
51
|
+
| Prepare | Operate | Prove |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| Select one target, connect it, start the project, and keep ports healthy. | Inspect semantic UI, launch apps, act on elements, and capture the screen. | Gate tests on real readiness and return structured logs, context, and artifacts. |
|
|
40
54
|
|
|
41
|
-
##
|
|
55
|
+
## Built for agentic Android development
|
|
42
56
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
readiness, app lifecycle, UI
|
|
46
|
-
|
|
57
|
+
Most coding agents can edit an Android project but cannot verify the running
|
|
58
|
+
app. ADB Ready closes that loop with a built-in local MCP server and typed tools
|
|
59
|
+
for target readiness, development sessions, app lifecycle, semantic UI, logs,
|
|
60
|
+
and visual evidence—without handing the model an unrestricted shell or raw ADB.
|
|
47
61
|
|
|
48
62
|
```bash
|
|
49
63
|
# Connect the current project to your coding agent
|
|
50
64
|
npx adb-ready agent setup codex
|
|
51
65
|
```
|
|
52
66
|
|
|
53
|
-
|
|
67
|
+
Your agent can:
|
|
54
68
|
|
|
55
69
|
- find and bind one deterministic Android target;
|
|
70
|
+
- start, check, and stop a durable development session across agent reconnects;
|
|
56
71
|
- resolve, install, launch, restart, and inspect the project app;
|
|
57
|
-
-
|
|
72
|
+
- find or assert semantic UI, tap by intent, type, swipe, and compare state;
|
|
58
73
|
- capture screenshots and read bounded, redacted session evidence; and
|
|
59
74
|
- verify actions against fresh device state instead of assuming they worked.
|
|
60
75
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
76
|
+
Every action is bound to one verified target and checked against fresh device
|
|
77
|
+
state. Stale UI references are rejected, destructive app removal is not exposed
|
|
78
|
+
to agents, and every tool returns a schema-validated result. Everything stays
|
|
79
|
+
local unless your chosen AI client sends tool results to its model provider.
|
|
64
80
|
|
|
65
81
|
[Connect an AI agent in minutes →](./docs/agent-integration.md)
|
|
66
82
|
|
|
@@ -91,7 +107,7 @@ use. It does not replace Android Studio or force your project onto Bun.
|
|
|
91
107
|
|
|
92
108
|
| Projects | Package managers | CLI runtimes |
|
|
93
109
|
| ------------------------------------- | ----------------------- | -------------------- |
|
|
94
|
-
| Expo · React Native · Gradle · custom | npm · pnpm · Yarn · Bun | Node.js · Bun · Deno |
|
|
110
|
+
| Expo · React Native · Flutter · Capacitor · Gradle · custom | npm · pnpm · Yarn · Bun | Node.js · Bun · Deno |
|
|
95
111
|
|
|
96
112
|
## Quick start
|
|
97
113
|
|
|
@@ -126,20 +142,21 @@ Running `adb-ready` without a command opens the interactive workflow home.
|
|
|
126
142
|
|
|
127
143
|
| I want to… | Start here |
|
|
128
144
|
| ----------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
129
|
-
| launch Expo, React Native, Gradle, or my own command
|
|
145
|
+
| launch Expo, React Native, Flutter, Capacitor, Gradle, or my own command | [`adb-ready dev`](./docs/dev-sessions.md) |
|
|
130
146
|
| pair or reconnect an Android device over Wi-Fi | [Targets and Wireless debugging](./docs/targets-and-wireless.md) |
|
|
131
147
|
| choose the right device when several are connected | [Deterministic target selection](./docs/targets-and-wireless.md#explicit-selection) |
|
|
132
148
|
| expose Metro, a local API, or a debugger to Android | [Port workflows](./docs/dev-sessions.md#port-ownership) |
|
|
133
149
|
| install, inspect, launch, restart, or deep-link my app | [App lifecycle](./docs/apps-and-evidence.md#app-lifecycle) |
|
|
134
150
|
| save a verified screenshot or bounded screen recording | [Evidence capture](./docs/apps-and-evidence.md#evidence-capture) |
|
|
135
151
|
| give a developer or agent one bounded app/UI snapshot | [Structured inspection](./docs/apps-and-evidence.md#structured-inspection) |
|
|
136
|
-
|
|
|
152
|
+
| find, read, fill, scroll, and verify the Android UI | [Safe UI automation](./docs/ui-automation.md) |
|
|
137
153
|
| see only the Android logs that matter | [Focused logcat](./docs/logs-and-context.md#focused-logcat) |
|
|
138
154
|
| understand why the last session failed | [Session problems](./docs/logs-and-context.md#session-history) |
|
|
139
155
|
| prepare safe evidence for an AI assistant | [Diagnostic context](./docs/logs-and-context.md#diagnostic-context) |
|
|
140
156
|
| connect Codex, Claude Code, Cursor, Copilot, or Windsurf | [`adb-ready agent setup`](./docs/agent-integration.md#connect-an-agent) |
|
|
141
157
|
| share project settings without a custom shell script | [Configuration](./docs/configuration.md) |
|
|
142
158
|
| use ADB Ready from CI or another tool | [Automation contract](./docs/automation.md) |
|
|
159
|
+
| run one smoke test and keep its logs, result, and report | [`adb-ready run`](./docs/automation.md#run-one-bounded-verification) |
|
|
143
160
|
| fix a known setup or target problem | [Troubleshooting](./docs/troubleshooting.md) |
|
|
144
161
|
|
|
145
162
|
## What happens in `adb-ready dev`?
|
|
@@ -179,6 +196,7 @@ separate deterministic contract:
|
|
|
179
196
|
adb-ready devices --json --non-interactive
|
|
180
197
|
adb-ready logs --package com.example.app --format ndjson
|
|
181
198
|
adb-ready context --since 5m --only problems,recovery,logs
|
|
199
|
+
adb-ready sessions list --status failed --since 24h --limit 5
|
|
182
200
|
```
|
|
183
201
|
|
|
184
202
|
- machine data on `stdout`, human diagnostics on `stderr`;
|
|
@@ -208,7 +226,7 @@ Ready itself. [Explore the agent contract →](./docs/agent-integration.md)
|
|
|
208
226
|
| [Threat model](./docs/threat-model.md) | Which trust boundaries, controls, and residual risks apply? |
|
|
209
227
|
| [Troubleshooting](./docs/troubleshooting.md) | What should I do for each common failure? |
|
|
210
228
|
| [Compatibility](./COMPATIBILITY.md) | Which hosts, runtimes, and environments are covered? |
|
|
211
|
-
| [Example configs](./examples/README.md) | What can I copy for Expo, React Native, Gradle, or custom projects?
|
|
229
|
+
| [Example configs](./examples/README.md) | What can I copy for Expo, React Native, Flutter, Capacitor, Gradle, or custom projects? |
|
|
212
230
|
|
|
213
231
|
Run `adb-ready --help` for the full command list or
|
|
214
232
|
`adb-ready help COMMAND` for focused options.
|