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 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.8.0...HEAD
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.8.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=2AD0AEC355B9989464756E2164756E21
61631
+ //# debugId=24EB6A0CAE0CFFFC64756E2164756E21
@@ -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 two versioned public artifacts:
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "adb-ready",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Agent-ready Android CLI for reliable ADB sessions, app automation, and verified evidence.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "title": "ADB Ready agent tool contract",
3
3
  "schemaVersion": 1,
4
- "packageVersion": "0.8.0",
4
+ "packageVersion": "0.9.0",
5
5
  "protocolVersion": "2025-11-25",
6
6
  "transport": "stdio",
7
7
  "tools": [
@@ -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.8.0; do not edit. -->
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.8.0, agent schema v1.
54
+ Contract: ADB Ready 0.9.0, agent schema v1.