adb-ready 0.8.0 → 0.9.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 +16 -1
- package/README.md +1 -0
- package/dist/cli.js +2 -2
- 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
|
@@ -9,6 +9,20 @@ breaking changes.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [0.9.0] - 2026-09-29
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- Add a packaged JSON Schema for the stable JSON result and NDJSON event
|
|
17
|
+
envelopes, plus an explicit 1.x compatibility, deprecation, migration, and
|
|
18
|
+
support-claim policy for CLI, configuration, automation, and MCP consumers.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- Strengthen package and release verification so the automation schema is
|
|
23
|
+
always shipped and generated agent contracts cannot drift from the package
|
|
24
|
+
version.
|
|
25
|
+
|
|
12
26
|
## [0.8.0] - 2026-09-29
|
|
13
27
|
|
|
14
28
|
### Added
|
|
@@ -507,7 +521,8 @@ breaking changes.
|
|
|
507
521
|
explainable configuration precedence.
|
|
508
522
|
- Human, plain, JSON, and NDJSON output across Node, Bun, and Deno entrypoints.
|
|
509
523
|
|
|
510
|
-
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.
|
|
524
|
+
[Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.9.0...HEAD
|
|
525
|
+
[0.9.0]: https://github.com/Adam014/adb-ready/compare/v0.8.0...v0.9.0
|
|
511
526
|
[0.8.0]: https://github.com/Adam014/adb-ready/compare/v0.7.0...v0.8.0
|
|
512
527
|
[0.7.0]: https://github.com/Adam014/adb-ready/compare/v0.6.0...v0.7.0
|
|
513
528
|
[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: "0.9.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=24EB6A0CAE0CFFFC64756E2164756E21
|
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 0.9.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 0.9.0, agent schema v1.
|