adb-ready 0.8.0 → 1.0.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 +32 -3
- package/README.md +1 -0
- package/dist/cli.js +2 -2
- package/docs/RELEASING.md +17 -6
- package/docs/automation.md +6 -1
- package/docs/stability.md +68 -0
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/schema/agent-tools-v1.json +1 -1
- package/schema/automation-v1.schema.json +156 -0
- package/skills/adb-ready/SKILL.md +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,11 +4,38 @@ All notable changes to ADB Ready are documented here.
|
|
|
4
4
|
|
|
5
5
|
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and releases follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Documented public surfaces in the `1.x` line follow the compatibility and
|
|
8
|
+
deprecation policy in [Stability and versioning](./docs/stability.md).
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [1.0.0] - 2026-09-29
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Activate the documented 1.x compatibility, additive-change, deprecation,
|
|
17
|
+
migration, exit-code, and versioned machine-contract guarantees.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Keep prepared GitHub releases in draft until the exact public npm tarball
|
|
22
|
+
matches the verified artifact digest and passes clean-consumer execution
|
|
23
|
+
through npm, pnpm, Yarn Classic, modern Yarn, Bun, and Deno.
|
|
24
|
+
|
|
25
|
+
## [0.9.0] - 2026-09-29
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Add a packaged JSON Schema for the stable JSON result and NDJSON event
|
|
30
|
+
envelopes, plus an explicit 1.x compatibility, deprecation, migration, and
|
|
31
|
+
support-claim policy for CLI, configuration, automation, and MCP consumers.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- Strengthen package and release verification so the automation schema is
|
|
36
|
+
always shipped and generated agent contracts cannot drift from the package
|
|
37
|
+
version.
|
|
38
|
+
|
|
12
39
|
## [0.8.0] - 2026-09-29
|
|
13
40
|
|
|
14
41
|
### Added
|
|
@@ -507,7 +534,9 @@ breaking changes.
|
|
|
507
534
|
explainable configuration precedence.
|
|
508
535
|
- Human, plain, JSON, and NDJSON output across Node, Bun, and Deno entrypoints.
|
|
509
536
|
|
|
510
|
-
[Unreleased]: https://github.com/Adam014/adb-ready/compare/
|
|
537
|
+
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v1.0.0...HEAD
|
|
538
|
+
[1.0.0]: https://github.com/Adam014/adb-ready/compare/v0.9.0...v1.0.0
|
|
539
|
+
[0.9.0]: https://github.com/Adam014/adb-ready/compare/v0.8.0...v0.9.0
|
|
511
540
|
[0.8.0]: https://github.com/Adam014/adb-ready/compare/v0.7.0...v0.8.0
|
|
512
541
|
[0.7.0]: https://github.com/Adam014/adb-ready/compare/v0.6.0...v0.7.0
|
|
513
542
|
[0.6.0]: https://github.com/Adam014/adb-ready/compare/v0.5.1...v0.6.0
|
package/README.md
CHANGED
|
@@ -292,6 +292,7 @@ Android transport backend.
|
|
|
292
292
|
| [Logs and AI context](./docs/logs-and-context.md) | Diagnose a failure with bounded, redacted evidence. |
|
|
293
293
|
| [AI agent integration](./docs/agent-integration.md) | Connect an MCP-capable coding agent. |
|
|
294
294
|
| [Automation](./docs/automation.md) | Use readiness, exit codes, JSON, NDJSON, JUnit, and CI artifacts. |
|
|
295
|
+
| [Stability and versioning](./docs/stability.md) | Understand the 1.x API, schema, deprecation, and migration guarantees. |
|
|
295
296
|
| [Gradle Managed Devices](./docs/gradle-managed-devices.md) | Run build-owned virtual-device and group tests with normalized evidence. |
|
|
296
297
|
| [Firebase Test Lab](./docs/firebase-test-lab.md) | Run explicit remote instrumentation or Robo matrices with bounded evidence. |
|
|
297
298
|
| [Target pools and fan-out](./docs/target-pools.md) | Bound parallel verification across an explicit target set. |
|
package/dist/cli.js
CHANGED
|
@@ -3304,7 +3304,7 @@ import process15 from "node:process";
|
|
|
3304
3304
|
// package.json
|
|
3305
3305
|
var package_default = {
|
|
3306
3306
|
name: "adb-ready",
|
|
3307
|
-
version: "0.
|
|
3307
|
+
version: "1.0.0",
|
|
3308
3308
|
description: "Agent-ready Android CLI for reliable ADB sessions, app automation, and verified evidence.",
|
|
3309
3309
|
private: false,
|
|
3310
3310
|
type: "module",
|
|
@@ -61628,4 +61628,4 @@ try {
|
|
|
61628
61628
|
process16.removeListener("SIGTERM", abort);
|
|
61629
61629
|
}
|
|
61630
61630
|
|
|
61631
|
-
//# debugId=
|
|
61631
|
+
//# debugId=42FF0E47A70CDC2764756E2164756E21
|
package/docs/RELEASING.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Releasing ADB Ready
|
|
2
2
|
|
|
3
3
|
ADB Ready promotes one verified npm tarball through npm trusted publishing. A
|
|
4
|
-
draft GitHub release is made public only after
|
|
5
|
-
The workflow does not use a
|
|
4
|
+
draft GitHub release is made public only after the exact public-registry
|
|
5
|
+
artifact passes clean-consumer verification. The workflow does not use a
|
|
6
|
+
long-lived npm write token.
|
|
6
7
|
|
|
7
8
|
## One-time setup
|
|
8
9
|
|
|
@@ -105,13 +106,23 @@ The workflow:
|
|
|
105
106
|
5. records and rechecks its SHA-256 digest across the job boundary;
|
|
106
107
|
6. grants OIDC only to the isolated npm publish job;
|
|
107
108
|
7. publishes the verified tarball through short-lived trusted-publishing
|
|
108
|
-
credentials;
|
|
109
|
-
8.
|
|
109
|
+
credentials;
|
|
110
|
+
8. waits for bounded npm-registry convergence, verifies the public tarball's
|
|
111
|
+
SHA-256 digest, and installs and launches it through npm, pnpm, Yarn Classic,
|
|
112
|
+
modern Yarn, Bun, and Deno; and
|
|
113
|
+
9. publishes the prepared GitHub release only after the public package passes.
|
|
110
114
|
|
|
111
115
|
Do not rerun a failed publish blindly. Inspect whether the version already
|
|
112
116
|
exists on npm first; published npm versions are immutable. A failed validation
|
|
113
|
-
can be repeated safely. If npm succeeded but
|
|
114
|
-
|
|
117
|
+
can be repeated safely. If npm succeeded but public-registry verification has
|
|
118
|
+
not, keep the GitHub release as a draft, inspect the immutable npm version, and
|
|
119
|
+
rerun only the failed verification job after the registry has converged.
|
|
120
|
+
|
|
121
|
+
The immediate modern-Yarn consumer check uses its official one-command
|
|
122
|
+
`--no-time-gate` override, and the Deno check uses
|
|
123
|
+
`--minimum-dependency-age 0`. These narrow release-verification exceptions are
|
|
124
|
+
needed because both tools intentionally quarantine newly published versions;
|
|
125
|
+
normal consumers keep the default supply-chain age gates.
|
|
115
126
|
|
|
116
127
|
## Verify from a clean consumer
|
|
117
128
|
|
package/docs/automation.md
CHANGED
|
@@ -62,12 +62,17 @@ JSON commands return this top-level shape:
|
|
|
62
62
|
Consumers must ignore unknown additive fields and event types within the same
|
|
63
63
|
schema version.
|
|
64
64
|
|
|
65
|
-
The npm package includes
|
|
65
|
+
The npm package includes three versioned public artifacts:
|
|
66
66
|
|
|
67
67
|
- `schema/config-v1.schema.json` validates project configuration; and
|
|
68
|
+
- `schema/automation-v1.schema.json` validates the common JSON result and
|
|
69
|
+
NDJSON event envelopes; and
|
|
68
70
|
- `schema/agent-tools-v1.json` catalogs every MCP tool's generated input and
|
|
69
71
|
output schemas plus safety annotations for the matching package version.
|
|
70
72
|
|
|
73
|
+
See [Stability and versioning](./stability.md) for the 1.x compatibility,
|
|
74
|
+
deprecation, and migration policy.
|
|
75
|
+
|
|
71
76
|
## Event envelope
|
|
72
77
|
|
|
73
78
|
NDJSON events include:
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Stability and versioning
|
|
2
|
+
|
|
3
|
+
ADB Ready follows Semantic Versioning for the npm package and versions its
|
|
4
|
+
machine contracts independently. Version `1.0.0` starts the compatibility
|
|
5
|
+
policy below; pre-1.0 releases remain governed by their changelog.
|
|
6
|
+
|
|
7
|
+
## Stable in 1.x
|
|
8
|
+
|
|
9
|
+
Within the `1.x` package line, ADB Ready will not remove or rename a documented
|
|
10
|
+
CLI command, option, configuration field, exit-code category, result-envelope
|
|
11
|
+
field, event-envelope field, MCP tool, or MCP resource without a new major
|
|
12
|
+
version. Existing documented meanings will not be silently reassigned.
|
|
13
|
+
|
|
14
|
+
Backward-compatible additions may ship in a minor release. These include new
|
|
15
|
+
commands, options, event types, problem codes, optional object fields, enum
|
|
16
|
+
values, MCP tools, and target capabilities. Automation must ignore unknown
|
|
17
|
+
additive fields and handle unknown event or problem types conservatively.
|
|
18
|
+
|
|
19
|
+
Human terminal layout, animation, color, progress wording, and diagnostic prose
|
|
20
|
+
are presentation rather than an automation API. Do not parse them. Use JSON,
|
|
21
|
+
NDJSON, the packaged schemas, or MCP instead.
|
|
22
|
+
|
|
23
|
+
## Versioned contracts
|
|
24
|
+
|
|
25
|
+
The npm package contains three contract artifacts:
|
|
26
|
+
|
|
27
|
+
- `schema/config-v1.schema.json` — declarative project configuration;
|
|
28
|
+
- `schema/automation-v1.schema.json` — common JSON result and NDJSON event
|
|
29
|
+
envelopes; and
|
|
30
|
+
- `schema/agent-tools-v1.json` — the exact MCP tool input/output surface for
|
|
31
|
+
the installed package version.
|
|
32
|
+
|
|
33
|
+
`schemaVersion` identifies an envelope or configuration shape; it is not the
|
|
34
|
+
npm package version. Additive changes retain the same schema version. An
|
|
35
|
+
incompatible machine-shape change requires a new schema version and a new npm
|
|
36
|
+
major release. ADB Ready 1.x continues to accept configuration schema v1.
|
|
37
|
+
|
|
38
|
+
The generated agent contract records `packageVersion`. Clients should load the
|
|
39
|
+
artifact from the same installed package that starts the MCP server instead of
|
|
40
|
+
combining contracts from different releases.
|
|
41
|
+
|
|
42
|
+
## Exit behavior
|
|
43
|
+
|
|
44
|
+
The category exit codes documented in [Automation](./automation.md#exit-codes)
|
|
45
|
+
are stable in 1.x. A bounded `dev` or `run` child may preserve its own non-zero
|
|
46
|
+
exit code, so callers must not assume every non-zero value belongs to the ADB
|
|
47
|
+
Ready category table. Read the structured `problems` array for classification.
|
|
48
|
+
|
|
49
|
+
## Deprecation and migration
|
|
50
|
+
|
|
51
|
+
A deprecated capability remains functional throughout the current major line
|
|
52
|
+
unless retaining it would create a security or data-integrity risk. ADB Ready
|
|
53
|
+
will mark the replacement in CLI help, public documentation, and the changelog
|
|
54
|
+
before removal. Removal or an incompatible semantic change waits for the next
|
|
55
|
+
major release and receives a migration section.
|
|
56
|
+
|
|
57
|
+
Security fixes, upstream Android/ADB behavior, and hosted-provider changes can
|
|
58
|
+
make an operation unavailable without changing its public shape. Such cases
|
|
59
|
+
must fail explicitly with structured evidence; ADB Ready does not fabricate a
|
|
60
|
+
successful result to preserve compatibility.
|
|
61
|
+
|
|
62
|
+
## Support claims
|
|
63
|
+
|
|
64
|
+
API stability does not turn every upstream-capable environment into a tested
|
|
65
|
+
environment. [Compatibility](../COMPATIBILITY.md) distinguishes CI-tested,
|
|
66
|
+
hardware-observed, and upstream-capable tiers. A new host, runtime, transport,
|
|
67
|
+
or Android form factor is promoted only after its stated acceptance evidence
|
|
68
|
+
exists.
|
package/llms.txt
CHANGED
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
- Logs and diagnostic context: `docs/logs-and-context.md`
|
|
46
46
|
- Configuration: `docs/configuration.md`
|
|
47
47
|
- Automation contract: `docs/automation.md`
|
|
48
|
+
- Stability and versioning: `docs/stability.md`
|
|
48
49
|
- Compatibility: `COMPATIBILITY.md`
|
|
49
50
|
- Security: `SECURITY.md`
|
|
50
51
|
- Threat model: `docs/threat-model.md`
|
package/package.json
CHANGED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/Adam014/adb-ready/blob/main/schema/automation-v1.schema.json",
|
|
4
|
+
"title": "ADB Ready automation envelope v1",
|
|
5
|
+
"description": "Common JSON result and NDJSON event envelopes emitted by ADB Ready.",
|
|
6
|
+
"oneOf": [{ "$ref": "#/$defs/result" }, { "$ref": "#/$defs/event" }],
|
|
7
|
+
"$defs": {
|
|
8
|
+
"jsonValue": {
|
|
9
|
+
"oneOf": [
|
|
10
|
+
{ "type": "null" },
|
|
11
|
+
{ "type": "boolean" },
|
|
12
|
+
{ "type": "number" },
|
|
13
|
+
{ "type": "string" },
|
|
14
|
+
{ "type": "array", "items": { "$ref": "#/$defs/jsonValue" } },
|
|
15
|
+
{
|
|
16
|
+
"type": "object",
|
|
17
|
+
"additionalProperties": { "$ref": "#/$defs/jsonValue" }
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"correlation": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"required": ["commandId"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"commandId": { "type": "string", "minLength": 1 },
|
|
26
|
+
"operationId": { "type": "string", "minLength": 1 },
|
|
27
|
+
"sessionId": { "type": "string", "minLength": 1 },
|
|
28
|
+
"targetId": { "type": "string", "minLength": 1 }
|
|
29
|
+
},
|
|
30
|
+
"additionalProperties": true
|
|
31
|
+
},
|
|
32
|
+
"evidence": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"required": ["source", "value"],
|
|
35
|
+
"properties": {
|
|
36
|
+
"source": { "type": "string", "minLength": 1 },
|
|
37
|
+
"field": { "type": "string", "minLength": 1 },
|
|
38
|
+
"value": { "$ref": "#/$defs/jsonValue" },
|
|
39
|
+
"redacted": { "type": "boolean" }
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": true
|
|
42
|
+
},
|
|
43
|
+
"action": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"required": ["id", "title", "kind", "risk", "automatic"],
|
|
46
|
+
"properties": {
|
|
47
|
+
"id": { "type": "string", "minLength": 1 },
|
|
48
|
+
"title": { "type": "string", "minLength": 1 },
|
|
49
|
+
"kind": { "enum": ["command", "user", "documentation"] },
|
|
50
|
+
"risk": {
|
|
51
|
+
"enum": [
|
|
52
|
+
"none",
|
|
53
|
+
"read-only",
|
|
54
|
+
"local-additive",
|
|
55
|
+
"device-reversible",
|
|
56
|
+
"shared-global",
|
|
57
|
+
"destructive",
|
|
58
|
+
"open-world"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"automatic": { "type": "boolean" },
|
|
62
|
+
"idempotent": { "type": "boolean" },
|
|
63
|
+
"command": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"required": ["executable", "args"],
|
|
66
|
+
"properties": {
|
|
67
|
+
"executable": { "type": "string", "minLength": 1 },
|
|
68
|
+
"args": { "type": "array", "items": { "type": "string" } }
|
|
69
|
+
},
|
|
70
|
+
"additionalProperties": true
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"additionalProperties": true
|
|
74
|
+
},
|
|
75
|
+
"problem": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"required": [
|
|
78
|
+
"code",
|
|
79
|
+
"category",
|
|
80
|
+
"severity",
|
|
81
|
+
"summary",
|
|
82
|
+
"detail",
|
|
83
|
+
"retryable",
|
|
84
|
+
"evidence",
|
|
85
|
+
"actions",
|
|
86
|
+
"correlation"
|
|
87
|
+
],
|
|
88
|
+
"properties": {
|
|
89
|
+
"code": { "type": "string", "minLength": 1 },
|
|
90
|
+
"category": { "type": "string", "minLength": 1 },
|
|
91
|
+
"severity": { "enum": ["warning", "error"] },
|
|
92
|
+
"summary": { "type": "string" },
|
|
93
|
+
"detail": { "type": "string" },
|
|
94
|
+
"retryable": { "type": "boolean" },
|
|
95
|
+
"evidence": { "type": "array", "items": { "$ref": "#/$defs/evidence" } },
|
|
96
|
+
"actions": { "type": "array", "items": { "$ref": "#/$defs/action" } },
|
|
97
|
+
"correlation": { "$ref": "#/$defs/correlation" }
|
|
98
|
+
},
|
|
99
|
+
"additionalProperties": true
|
|
100
|
+
},
|
|
101
|
+
"result": {
|
|
102
|
+
"type": "object",
|
|
103
|
+
"required": [
|
|
104
|
+
"schemaVersion",
|
|
105
|
+
"command",
|
|
106
|
+
"commandId",
|
|
107
|
+
"ok",
|
|
108
|
+
"startedAt",
|
|
109
|
+
"finishedAt",
|
|
110
|
+
"durationMs",
|
|
111
|
+
"data",
|
|
112
|
+
"problems"
|
|
113
|
+
],
|
|
114
|
+
"properties": {
|
|
115
|
+
"schemaVersion": { "const": 1 },
|
|
116
|
+
"command": { "type": "string", "minLength": 1 },
|
|
117
|
+
"commandId": { "type": "string", "minLength": 1 },
|
|
118
|
+
"ok": { "type": "boolean" },
|
|
119
|
+
"startedAt": { "type": "string", "format": "date-time" },
|
|
120
|
+
"finishedAt": { "type": "string", "format": "date-time" },
|
|
121
|
+
"durationMs": { "type": "number", "minimum": 0 },
|
|
122
|
+
"data": { "$ref": "#/$defs/jsonValue" },
|
|
123
|
+
"problems": { "type": "array", "items": { "$ref": "#/$defs/problem" } }
|
|
124
|
+
},
|
|
125
|
+
"additionalProperties": true
|
|
126
|
+
},
|
|
127
|
+
"event": {
|
|
128
|
+
"type": "object",
|
|
129
|
+
"required": [
|
|
130
|
+
"schemaVersion",
|
|
131
|
+
"sequence",
|
|
132
|
+
"timestamp",
|
|
133
|
+
"type",
|
|
134
|
+
"source",
|
|
135
|
+
"severity",
|
|
136
|
+
"message",
|
|
137
|
+
"correlation"
|
|
138
|
+
],
|
|
139
|
+
"properties": {
|
|
140
|
+
"schemaVersion": { "const": 1 },
|
|
141
|
+
"sequence": { "type": "integer", "minimum": 1 },
|
|
142
|
+
"timestamp": { "type": "string", "format": "date-time" },
|
|
143
|
+
"type": { "type": "string", "minLength": 1 },
|
|
144
|
+
"source": { "type": "string", "minLength": 1 },
|
|
145
|
+
"severity": { "enum": ["debug", "info", "warning", "error"] },
|
|
146
|
+
"message": { "type": "string" },
|
|
147
|
+
"correlation": { "$ref": "#/$defs/correlation" },
|
|
148
|
+
"data": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"additionalProperties": { "$ref": "#/$defs/jsonValue" }
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"additionalProperties": true
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
@@ -3,7 +3,7 @@ name: adb-ready
|
|
|
3
3
|
description: Prepare, automate, debug, and verify one Android target through the ADB Ready MCP server. Use for Android development sessions, app lifecycle work, UI automation, failure evidence, screenshots, and agent-driven device checks.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<!-- Generated by adb-ready 0.
|
|
6
|
+
<!-- Generated by adb-ready 1.0.0; do not edit. -->
|
|
7
7
|
|
|
8
8
|
# ADB Ready
|
|
9
9
|
|
|
@@ -51,4 +51,4 @@ Use the typed `adb-ready` MCP tools. Do not replace them with generic shell or r
|
|
|
51
51
|
- `session`: 12 tools
|
|
52
52
|
- `ui`: 29 tools
|
|
53
53
|
|
|
54
|
-
Contract: ADB Ready 0.
|
|
54
|
+
Contract: ADB Ready 1.0.0, agent schema v1.
|