adb-ready 0.0.1-alpha.0 → 0.1.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 ADDED
@@ -0,0 +1,29 @@
1
+ # Changelog
2
+
3
+ All notable changes to ADB Ready are documented here.
4
+
5
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and releases follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+ While the project is below `1.0.0`, minor releases may include documented
8
+ breaking changes.
9
+
10
+ ## [Unreleased]
11
+
12
+ ## [0.1.0] - 2026-09-10
13
+
14
+ ### Added
15
+
16
+ - Interactive and non-interactive Android workflow entrypoints.
17
+ - Deterministic USB, emulator, and Wireless debugging target selection.
18
+ - Secure pairing, wireless connection, and ADB capability diagnostics.
19
+ - Verified TCP reverse and forward port management.
20
+ - Expo, React Native, native Gradle, and direct custom development sessions.
21
+ - Bounded target and port health recovery with independently verified repairs.
22
+ - Targeted structured logcat, private session history, problem inspection, and
23
+ redacted AI-ready context export.
24
+ - JSON Schema-backed project configuration, profiles, lifecycle hooks, and
25
+ explainable configuration precedence.
26
+ - Human, plain, JSON, and NDJSON output across Node, Bun, and Deno entrypoints.
27
+
28
+ [Unreleased]: https://github.com/Adam014/adb-ready/compare/v0.1.0...HEAD
29
+ [0.1.0]: https://github.com/Adam014/adb-ready/compare/v0.0.1-alpha.0...v0.1.0
@@ -0,0 +1,39 @@
1
+ # Compatibility
2
+
3
+ ADB Ready is distributed as portable JavaScript and delegates Android transport
4
+ work to the user's real `adb` executable. It does not contain native addons and
5
+ does not block installation by operating system or CPU architecture.
6
+
7
+ ## Support policy
8
+
9
+ | Tier | Environments | Contract |
10
+ | --- | --- | --- |
11
+ | CI target | macOS arm64, Linux x64, Windows x64 | The complete verification gate is configured to run on every push and pull request. |
12
+ | Runtime target | Node.js 22, 24, and 26; current Bun; Deno 2 npm compatibility | The packed CLI entrypoint and deterministic command contract must launch successfully. |
13
+ | Upstream-capable | macOS x64, Linux arm64, Windows arm64, musl Linux, WSL 2, containers, ChromeOS Linux, and BSD | Supported when a compatible JavaScript runtime and a working `adb` executable are available. Reports are accepted and no package metadata intentionally blocks these hosts. |
14
+
15
+ “Upstream-capable” is not a lower-priority user class. It records that the
16
+ availability of Platform-Tools, USB passthrough, mDNS, or host networking can be
17
+ controlled by the operating environment rather than ADB Ready. Compatibility
18
+ claims move to the CI tier only after they have a reproducible test environment.
19
+
20
+ ## Architecture and dependencies
21
+
22
+ - The npm artifact is architecture-neutral JavaScript.
23
+ - Node.js 22 or newer is the installation baseline.
24
+ - `adb` remains an external dependency and can be supplied through `PATH`, an
25
+ Android SDK location, or `--adb PATH`.
26
+ - USB and wireless visibility depend on what the selected ADB server can access.
27
+ Remote servers are supported through `--adb-host` and `--adb-port`.
28
+ - npm, pnpm, Yarn, and Bun consumers use the same package and the same
29
+ `adb-ready`/`adbr` entrypoint.
30
+
31
+ ## Honest verification boundary
32
+
33
+ Deterministic fixtures cover platform paths, ADB output variants, target states,
34
+ IPv4/IPv6 discovery, selection, cancellation, timeouts, and packaging. A local
35
+ read-only smoke test is available as `bun run verify:real-adb`.
36
+
37
+ Physical USB, emulator, wireless, VPN, container, WSL, and remote-server claims
38
+ must be recorded as tested only after they pass on that real environment. ADB
39
+ Ready never treats a fixture as proof of hardware compatibility.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 ADB Ready contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,65 +1,201 @@
1
+ <div align="center">
2
+
1
3
  # ADB Ready
2
4
 
3
- > Make an Android target ready, then keep the development session working.
5
+ **One Android target. One reliable development session.**
6
+
7
+ Select a device, prepare localhost ports, start your project, and keep the
8
+ connection healthy—without stitching together fragile ADB scripts.
9
+
10
+ [![CI](https://github.com/Adam014/adb-ready/actions/workflows/ci.yml/badge.svg)](https://github.com/Adam014/adb-ready/actions/workflows/ci.yml)
11
+ [![npm](https://img.shields.io/npm/v/adb-ready?label=npm&color=1f9db5)](https://www.npmjs.com/package/adb-ready)
12
+ [![Node.js](https://img.shields.io/badge/Node.js-%E2%89%A522-339933?logo=nodedotjs&logoColor=white)](https://nodejs.org/)
13
+ [![Bun](https://img.shields.io/badge/Bun-tested-14151a?logo=bun&logoColor=white)](https://bun.sh/)
14
+ [![Deno](https://img.shields.io/badge/Deno_2-tested-111827?logo=deno&logoColor=white)](https://deno.com/)
15
+ [![Platforms](https://img.shields.io/badge/hosts-macOS_%C2%B7_Linux_%C2%B7_Windows-64748b)](./COMPATIBILITY.md)
4
16
 
5
- ADB Ready is an early-alpha, Android-only developer CLI built around the real
6
- `adb` executable. This release establishes the portable and scriptable
7
- foundation for the broader development-session workflow.
17
+ [Quick start](#quick-start) · [Why ADB Ready](#why-adb-ready) ·
18
+ [Workflows](#find-your-workflow) · [Documentation](#documentation) ·
19
+ [Compatibility](#compatibility)
8
20
 
9
- ## Try the alpha
21
+ </div>
10
22
 
11
- ADB Ready currently requires Node.js 22 or newer and an installed Android SDK
12
- Platform-Tools `adb` executable.
23
+ ```text
24
+ $ adb-ready dev
25
+
26
+ ✓ Android target selected Pixel 9 · wireless
27
+ ✓ Localhost ports ready 8081 → 8081
28
+ ✓ Development command started pnpm run start --android
29
+ ● Session healthy watching target, ports, and logs
30
+ ```
31
+
32
+ Stop rebuilding your Android setup every time a cable moves, Wi-Fi reconnects,
33
+ or ADB picks the wrong device. ADB Ready turns the target, ports, project
34
+ command, recovery, and useful logs into one development session.
13
35
 
14
36
  ```bash
15
- npx adb-ready@alpha
16
- npx adb-ready@alpha doctor
17
- npx adb-ready@alpha devices
37
+ npx adb-ready dev
18
38
  ```
19
39
 
20
- The package also exposes the shorter `adbr` command. Both names invoke the same
21
- CLI entrypoint.
40
+ ## Why ADB Ready?
41
+
42
+ ### Start once. Stay ready.
43
+
44
+ ADB Ready finds one usable Android target, prepares its ports, launches your
45
+ project with the correct `ANDROID_SERIAL`, and watches the session while you
46
+ work.
47
+
48
+ ### Recover without the ritual.
49
+
50
+ When a wireless target or reverse mapping disappears, recovery is bounded,
51
+ target-safe, and independently verified. It never silently restarts the shared
52
+ ADB server or rewrites another tool's mapping.
53
+
54
+ ### Get signal instead of noise.
55
+
56
+ Focused logcat, structured problems, and a saved redacted timeline keep the
57
+ important failure evidence together. One command turns it into compact context
58
+ for any AI assistant—without uploading anything.
59
+
60
+ ### Keep your existing stack.
61
+
62
+ ADB Ready orchestrates the real ADB, framework, and package manager you already
63
+ use. It does not replace Android Studio or force your project onto Bun.
64
+
65
+ | Projects | Package managers | CLI runtimes |
66
+ | --- | --- | --- |
67
+ | Expo · React Native · Gradle · custom | npm · pnpm · Yarn · Bun | Node.js · Bun · Deno |
68
+
69
+ ## Quick start
70
+
71
+ You need Android SDK Platform-Tools and Node.js 22 or newer for the standard npm
72
+ entrypoint.
22
73
 
23
- ## Available now
74
+ ```bash
75
+ # Check ADB and the host
76
+ npx adb-ready doctor
24
77
 
25
- - Interactive keyboard-driven home screen.
26
- - Read-only environment and ADB diagnostics with `doctor`.
27
- - Read-only Android target discovery with `devices`.
28
- - Deterministic target selection through `--select`.
29
- - Human, plain, JSON, and NDJSON output.
30
- - Explicit ADB executable, server host, server port, timeout, and presentation
31
- controls.
32
- - Portable execution through Node, Bun, and Deno.
78
+ # See connected and wireless targets
79
+ npx adb-ready devices
33
80
 
34
- Run `npx adb-ready@alpha --help` for the complete command reference.
81
+ # Start the complete development session
82
+ npx adb-ready dev
83
+ ```
35
84
 
36
- ## Runtime and package-manager entrypoints
85
+ Add it to a project when the team should share one version:
37
86
 
38
- The same npm package can be launched through the common JavaScript package
39
- managers:
87
+ ```bash
88
+ npm install --save-dev adb-ready
89
+ npx adb-ready init
90
+ npx adb-ready dev
91
+ ```
92
+
93
+ Running `adb-ready` without a command opens the interactive workflow home.
94
+ `adbr` is the shorter alias for the same CLI.
95
+
96
+ [Read the five-minute setup →](./docs/getting-started.md)
97
+
98
+ ## Find your workflow
99
+
100
+ | I want to… | Start here |
101
+ | --- | --- |
102
+ | launch Expo, React Native, Gradle, or my own command | [`adb-ready dev`](./docs/dev-sessions.md) |
103
+ | pair or reconnect an Android device over Wi-Fi | [Targets and Wireless debugging](./docs/targets-and-wireless.md) |
104
+ | choose the right device when several are connected | [Deterministic target selection](./docs/targets-and-wireless.md#explicit-selection) |
105
+ | expose Metro, a local API, or a debugger to Android | [Port workflows](./docs/dev-sessions.md#port-ownership) |
106
+ | see only the Android logs that matter | [Focused logcat](./docs/logs-and-context.md#focused-logcat) |
107
+ | understand why the last session failed | [Session problems](./docs/logs-and-context.md#session-history) |
108
+ | prepare safe evidence for an AI assistant | [Diagnostic context](./docs/logs-and-context.md#diagnostic-context) |
109
+ | share project settings without a custom shell script | [Configuration](./docs/configuration.md) |
110
+ | use ADB Ready from CI or another tool | [Automation contract](./docs/automation.md) |
111
+ | fix a known setup or target problem | [Troubleshooting](./docs/troubleshooting.md) |
112
+
113
+ ## What happens in `adb-ready dev`?
114
+
115
+ ```text
116
+ find or recover one target
117
+
118
+ verify only the ports your project needs
119
+
120
+ start the project on that same target
121
+
122
+ watch target · ports · logs · child process
123
+
124
+ recover safely or explain exactly what needs you
125
+ ```
126
+
127
+ - Expo and React Native receive reverse port `8081` by default.
128
+ - Add any local service with repeated `--port` flags.
129
+ - Pass any command after `--`; it runs directly without an implicit shell.
130
+ - Existing matching mappings are reused. Conflicts are never overwritten.
131
+ - On exit, only resources created by that session are cleaned up.
132
+ - The final exit code and a bounded, redacted session record are preserved.
40
133
 
41
134
  ```bash
42
- npx adb-ready@alpha doctor
43
- pnpm dlx adb-ready@alpha doctor
44
- yarn dlx adb-ready@alpha doctor
45
- bunx adb-ready@alpha doctor
135
+ adb-ready dev --port 8081 --port 8000
136
+ adb-ready dev -- pnpm run android:local
137
+ adb-ready dev --dry-run --json
46
138
  ```
47
139
 
48
- Explicit alternative runtimes are also supported:
140
+ ## Built for humans and automation
141
+
142
+ The interactive CLI provides keyboard navigation, live state, reduced-motion
143
+ support, narrow-terminal fallbacks, and clear recovery feedback. Scripts get a
144
+ separate deterministic contract:
49
145
 
50
146
  ```bash
51
- bunx --bun adb-ready@alpha doctor
52
- deno run -A npm:adb-ready@alpha doctor
147
+ adb-ready devices --json --non-interactive
148
+ adb-ready logs --package com.example.app --format ndjson
149
+ adb-ready context --since 5m --only problems,recovery,logs
53
150
  ```
54
151
 
55
- ## Alpha scope
152
+ - machine data on `stdout`, human diagnostics on `stderr`;
153
+ - versioned JSON results and NDJSON events;
154
+ - no prompt, animation, or terminal takeover in redirected/CI execution;
155
+ - stable problem categories, meaningful exit codes, timeouts, and dry runs; and
156
+ - explicit target, ADB path, and remote ADB server overrides.
157
+
158
+ ## Documentation
159
+
160
+ | Guide | What it answers |
161
+ | --- | --- |
162
+ | [Getting started](./docs/getting-started.md) | How do I reach my first ready session? |
163
+ | [Development sessions](./docs/dev-sessions.md) | What does ADB Ready own, watch, recover, and clean up? |
164
+ | [Targets and Wireless debugging](./docs/targets-and-wireless.md) | How are devices paired, connected, and selected safely? |
165
+ | [Logs and AI context](./docs/logs-and-context.md) | What is captured, redacted, saved, and exported? |
166
+ | [Configuration](./docs/configuration.md) | How do projects, profiles, hooks, and precedence work? |
167
+ | [Automation](./docs/automation.md) | What are the JSON, NDJSON, stdout, and exit-code contracts? |
168
+ | [Troubleshooting](./docs/troubleshooting.md) | What should I do for each common failure? |
169
+ | [Compatibility](./COMPATIBILITY.md) | Which hosts, runtimes, and environments are covered? |
170
+ | [Example configs](./examples/README.md) | What can I copy for Expo, React Native, Gradle, or custom projects? |
171
+
172
+ Run `adb-ready --help` for the full command list or
173
+ `adb-ready help COMMAND` for focused options.
174
+
175
+ ## Compatibility
176
+
177
+ ADB Ready targets macOS, Linux, and Windows, with Node.js, Bun, and Deno runtime
178
+ smoke coverage. The package is architecture-neutral JavaScript with no native
179
+ addon or artificial OS/CPU block. A working ADB executable remains the only
180
+ Android transport backend.
181
+
182
+ [See tested and upstream-capable support tiers →](./COMPATIBILITY.md)
183
+
184
+ ## Trust by default
185
+
186
+ - The shared ADB server is never restarted implicitly.
187
+ - Destructive or global actions are never hidden inside recovery.
188
+ - Pairing codes never enter command-line arguments.
189
+ - Session data is bounded, redacted, private to the user, and never uploaded.
190
+ - Package contents are allowlisted and checked before release.
191
+ - npm publication is prepared for short-lived OIDC credentials and provenance.
192
+
193
+ ## Project
56
194
 
57
- Wireless pairing and recovery, reverse and forward ports, Expo and React Native
58
- presets, and the flagship `adb-ready dev` session are not included yet. The
59
- current commands are intentionally read-only and never restart the ADB server
60
- or mutate a connected device.
195
+ [Changelog](./CHANGELOG.md) · [Contributing](./CONTRIBUTING.md) ·
196
+ [Security](./SECURITY.md) · [MIT License](./LICENSE)
61
197
 
62
- This preview is published to validate the CLI foundation and reserve the
63
- canonical package name during active development. The source repository remains
64
- private during the early implementation phase, and this alpha is currently
65
- distributed as `UNLICENSED` software.
198
+ ADB Ready is Android-only. The `0.1.0` release focuses on target acquisition,
199
+ ports, development-session recovery, logs, diagnostics, and automation. App
200
+ lifecycle, files, screenshots, screen recording, and shell workflows come
201
+ after this core is proven on real projects.