agent-cli-runtime 0.1.0-alpha.0 → 0.1.0-alpha.2
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 +19 -0
- package/README.md +44 -9
- package/README.zh-CN.md +44 -9
- package/dist/core/schema-contract.d.ts +10 -0
- package/dist/core/schema-contract.js +36 -0
- package/dist/core/schema-contract.js.map +1 -1
- package/docs/api-schema-contract.md +14 -3
- package/docs/compatibility.md +82 -30
- package/docs/daemon-ready-contract.md +51 -0
- package/docs/production-readiness.md +44 -15
- package/docs/release-checklist.md +115 -255
- package/docs/release-publish-runbook.md +43 -29
- package/docs/release-report.md +73 -470
- package/docs/ssot.md +49 -31
- package/package.json +10 -2
|
@@ -1,257 +1,117 @@
|
|
|
1
1
|
# Release Checklist (pre-alpha / developer preview)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
-
|
|
7
|
-
|
|
8
|
-
- [x]
|
|
9
|
-
- [x]
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- [x] `
|
|
14
|
-
- [x]
|
|
15
|
-
- [x]
|
|
16
|
-
- [x]
|
|
17
|
-
- [x]
|
|
18
|
-
- [x]
|
|
19
|
-
- [x]
|
|
20
|
-
- [x]
|
|
21
|
-
|
|
22
|
-
##
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
- [x]
|
|
44
|
-
- [x]
|
|
45
|
-
- [x]
|
|
46
|
-
- [x]
|
|
47
|
-
- [x]
|
|
48
|
-
- [x]
|
|
49
|
-
- [x]
|
|
50
|
-
- [x]
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- [x]
|
|
55
|
-
- [x]
|
|
56
|
-
|
|
57
|
-
##
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
- [
|
|
62
|
-
- [
|
|
63
|
-
- [
|
|
64
|
-
- [
|
|
65
|
-
- [
|
|
66
|
-
- [
|
|
67
|
-
- [
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
- [x] `docs/release-publish-runbook.md` records dry-run, real publish commands, human confirmation points, dist-tag checks, rollback/deprecation/unpublish boundaries, npm 2FA, trusted publishing, provenance, and token strategy.
|
|
119
|
-
- [x] `npm publish --dry-run --ignore-scripts --tag alpha` passed locally on 2026-06-22 and reported `Publishing to https://registry.npmjs.org/ with tag alpha ... (dry-run)`.
|
|
120
|
-
- [x] `npm pack --dry-run` includes release docs, including `docs/release-publish-runbook.md`, and excludes `.reference/`, tests, fixtures, raw real CLI output, private paths, and token-looking values.
|
|
121
|
-
- [x] `.github/workflows/ci.yml` and `.github/workflows/release-candidate.yml` still contain no `npm publish`, no npm token setup, and no registry credential requirement.
|
|
122
|
-
- [x] P2-13 records publish readiness only; it does not publish npm, create npm tokens, configure trusted publishing, publish a GitHub release, or launch authenticated real agent runs.
|
|
123
|
-
|
|
124
|
-
## P2-12 release candidate gate
|
|
125
|
-
|
|
126
|
-
- [x] `npm ci` — passed in remote release-candidate run `27869580048`.
|
|
127
|
-
- [x] `npm run typecheck` — passed locally on 2026-06-20.
|
|
128
|
-
- [x] `npm run lint` — passed locally on 2026-06-20.
|
|
129
|
-
- [x] `npm test` — passed locally on 2026-06-20 with 170 tests.
|
|
130
|
-
- [x] `npm run build` — passed locally on 2026-06-20.
|
|
131
|
-
- [x] `npm run daemon:verify` — passed locally on 2026-06-22.
|
|
132
|
-
- [x] `npm run ci` — passed in remote release-candidate run `27869580048`.
|
|
133
|
-
- [x] `npm run dogfood` — passed locally and in remote release-candidate run `27869580048`.
|
|
134
|
-
- [x] `npm run runtime:safety` — passed locally on 2026-06-22.
|
|
135
|
-
- [x] `npm run prepublish:check` — passed locally on 2026-06-22 with `runtime:safety` included.
|
|
136
|
-
- [x] `npm run release:candidate -- --out-dir <temp-dir>` — passed locally on 2026-06-20.
|
|
137
|
-
- [x] `npm run release:verify -- --dir <temp-dir>` — passed locally and against downloaded remote artifacts.
|
|
138
|
-
- [ ] `node ./dist/cli/main.js conformance --mode fixtures --json`
|
|
139
|
-
- [ ] `node ./dist/cli/main.js conformance --mode fake --json`
|
|
140
|
-
- [x] `node ./dist/cli/main.js conformance --mode real --agent all --json` — passed locally without `--allow-real-run`.
|
|
141
|
-
- [ ] `node ./dist/cli/main.js smoke --mode fixtures --json`
|
|
142
|
-
- [x] `node ./dist/cli/main.js agents --json` — passed locally on 2026-06-20.
|
|
143
|
-
- [x] `node ./dist/cli/main.js doctor --json` — passed locally on 2026-06-20.
|
|
144
|
-
- [ ] `node ./dist/cli/main.js store-health --storage-dir <empty-temp-dir> --json`
|
|
145
|
-
- [ ] `node ./dist/cli/main.js store-repair --storage-dir <empty-temp-dir> --dry-run --json`
|
|
146
|
-
- [ ] Error contract: `node ./dist/cli/main.js run --json` exits `1` and prints parseable redacted JSON.
|
|
147
|
-
- [ ] Error contract: `node ./dist/cli/main.js store-health --json` exits `1` and prints parseable redacted JSON.
|
|
148
|
-
- [ ] Error contract: `node ./dist/cli/main.js store-repair --storage-dir <temp-dir> --apply --dry-run --json` exits `1` and prints parseable redacted JSON.
|
|
149
|
-
- [ ] `node ./dist/cli/main.js store-repair --storage-dir <corrupt-fixture-temp-dir> --dry-run --json`
|
|
150
|
-
- [ ] `node ./dist/cli/main.js store-repair --storage-dir <corrupt-fixture-temp-dir> --apply --json`
|
|
151
|
-
- [ ] `node ./dist/cli/main.js store-health --storage-dir <corrupt-fixture-temp-dir> --json`
|
|
152
|
-
- [x] `npm audit --omit=dev` — passed inside `npm run prepublish:check`.
|
|
153
|
-
- [x] `npm run package:check` — passed locally on 2026-06-20.
|
|
154
|
-
- [x] `npm pack --dry-run` — passed locally and inside `npm run prepublish:check`.
|
|
155
|
-
- [x] `npm publish --dry-run --ignore-scripts --tag alpha` — passed locally as dry-run with `tag alpha`.
|
|
156
|
-
|
|
157
|
-
`npm run dogfood` is the default publish-readiness bundle. It rebuilds, runs offline fixtures/fake conformance, runs real local detection/profile conformance without `--allow-real-run`, executes fake-CLI examples, performs a pack dry-run, and installs the packed tarball into a temporary project for package-root import, TypeScript `tsc --noEmit`, fake library run/goal/replay/diagnostics, and installed CLI smoke.
|
|
158
|
-
|
|
159
|
-
`npm run prepublish:check` is the local release-candidate guard. It combines typecheck, lint, tests, build, daemon verification, runtime safety verification, dogfood, production audit, package boundary checking, and pack dry-run. It must not run authenticated real agents.
|
|
160
|
-
|
|
161
|
-
`npm publish --dry-run --ignore-scripts --tag alpha` is a manual local safety check only. It must show `tag alpha`, must not publish, and must not require an npm token. Keep it out of required CI unless the output is proven stable enough for this repository.
|
|
162
|
-
|
|
163
|
-
`npm test` uses Vitest's verbose reporter for default contract coverage. Slower installed-package gates and install smokes are kept out of the Node.js matrix and run through single-Node release gates, `dogfood`, `prepublish:check`, or explicit opt-in checks.
|
|
164
|
-
|
|
165
|
-
## GitHub Actions release candidate
|
|
166
|
-
|
|
167
|
-
P2-12 remote evidence, observed on 2026-06-20, remains historical evidence for commit `2f8832119b4ebdb8393077052560589a398ebf56`. P3-5 release-candidate evidence is workflow run `27932628093` for workflow head SHA `8d7bc2a19c626caa1ad5223acbcd35df34aff18e`; P3-8 release-candidate evidence is workflow run `27940814340` for target SHA `eb8de0f9b1edfa3f94c35a50b31005c5d3c105d4`; P3-9 interim release-candidate evidence is workflow run `27942743285` for target SHA `a0299a7d81bb614661922bebc8c75496cf0a3d11`; P3-9 release-candidate evidence is workflow run `27943672095` for locked evidence target SHA `65fac505ca3eb830a06d8656068cf4ed5f6dd46a`.
|
|
168
|
-
|
|
169
|
-
All historical runs above are historical after the P3-10 evidence packet. P3-10 pre-documentation release-candidate evidence is workflow run `27945938663` for SHA `fdba3ebccb2e57a0ad295101028a2a3937a92204`; it must not be reused as final publish evidence after this packaged packet is committed.
|
|
170
|
-
|
|
171
|
-
- [x] Trigger `.github/workflows/release-candidate.yml` manually with `workflow_dispatch` for the P3-10 pre-documentation SHA.
|
|
172
|
-
- [ ] After committing this P3-10 evidence packet, trigger another fresh `.github/workflows/release-candidate.yml` run for the post-documentation commit before any real publish.
|
|
173
|
-
- [x] Confirm the workflow is configured to run `npm ci`, `npm run ci`, `npm run dogfood`, and `npm run release:candidate -- --out-dir release-candidate`.
|
|
174
|
-
- [x] Confirm dogfood output is limited to fixtures, fake CLIs, and real local detection/profile certification without `--allow-real-run`.
|
|
175
|
-
- [x] Confirm `npm run release:candidate` is configured to create a tarball artifact, gate evidence, and release verification JSON but no `npm publish` step exists.
|
|
176
|
-
- [x] Download and review the uploaded artifacts:
|
|
177
|
-
- `agent-cli-runtime-tarball`
|
|
178
|
-
- `agent-cli-runtime-pack-metadata`
|
|
179
|
-
- `agent-cli-runtime-package-files`
|
|
180
|
-
- `agent-cli-runtime-gate-evidence`
|
|
181
|
-
- `agent-cli-runtime-release-verification`
|
|
182
|
-
- [x] Recreate a review directory from downloaded artifacts and run `npm run release:verify -- --dir /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized`.
|
|
183
|
-
- [x] Confirm `release-verification.json` uses `schemaVersion: "agent-cli-runtime.releaseVerification.v1"`, has `ok: true`, package file count `151`, and empty diagnostics.
|
|
184
|
-
- [x] Confirm `gate-evidence.json` uses `schemaVersion: "agent-cli-runtime.releaseGateEvidence.v1"` and records `daemon:verify` plus `runtime:safety` with `packageSource: "installed-tarball"`.
|
|
185
|
-
- [x] Confirm no npm token, npm provenance publish, or registry credential is required.
|
|
186
|
-
- [x] Confirm artifacts use the documented 14-day retention window.
|
|
187
|
-
|
|
188
|
-
## Package boundary verification
|
|
189
|
-
|
|
190
|
-
- [x] `npm run package:check`.
|
|
191
|
-
- [x] `npm run release:verify -- --dir <release-candidate-or-downloaded-artifact-dir>`.
|
|
192
|
-
- [ ] `npm pack --json` and confirm package files do not include:
|
|
193
|
-
- `.reference/`
|
|
194
|
-
- `tests/`
|
|
195
|
-
- `tests/fixtures/`
|
|
196
|
-
- raw fixtures
|
|
197
|
-
- fault fixtures
|
|
198
|
-
- `repair-backups/`
|
|
199
|
-
- raw corrupt samples
|
|
200
|
-
- fixture secrets / private paths
|
|
201
|
-
- raw real CLI output
|
|
202
|
-
- real provider tokens or token-looking values.
|
|
203
|
-
- [ ] Confirm `dist/`, docs, examples, `scripts/dogfood.mjs`, README files, LICENSE, and release docs are included.
|
|
204
|
-
- [ ] Confirm `docs/release-report.md` is included.
|
|
205
|
-
- [ ] Confirm package root value exports remain limited to `createAgentRuntime`; replay, diagnostics, and storage inspection are facade methods plus public type exports only.
|
|
206
|
-
- [ ] Confirm built `dist/index.d.ts` does not re-export package-root types from `storage/`, parser, store, or adapter instance internals.
|
|
207
|
-
|
|
208
|
-
## Install smoke
|
|
209
|
-
|
|
210
|
-
- [ ] `repo_root="${GITHUB_WORKSPACE:-$(pwd -P)}"`.
|
|
211
|
-
- [ ] `tmp_dir="$(mktemp -d /tmp/agent-runtime-release-XXXXXX)"`.
|
|
212
|
-
- [ ] `pack_info="$(cd "$repo_root" && npm pack --json --ignore-scripts --pack-destination "$tmp_dir")"`.
|
|
213
|
-
- [ ] `package_file="$(printf '%s' "$pack_info" | node -e "const data = JSON.parse(require('node:fs').readFileSync(0, 'utf8')); process.stdout.write(data[0].filename);")"`.
|
|
214
|
-
- [ ] `pushd "$tmp_dir"`.
|
|
215
|
-
- [ ] `npm init -y`.
|
|
216
|
-
- [ ] `npm install "$tmp_dir/$package_file" --no-save --ignore-scripts --no-audit --no-fund`.
|
|
217
|
-
- [ ] `node -e "(async()=>{ const m = await import('agent-cli-runtime'); if (typeof m.createAgentRuntime !== 'function') process.exit(1); console.log(typeof m.createAgentRuntime); })()"`.
|
|
218
|
-
- [ ] Create `consumer.ts` importing `createAgentRuntime`, `RunRequest`, `CreateGoalRequest`, and other public types from `agent-cli-runtime`.
|
|
219
|
-
- [ ] Run `tsc --noEmit` in the temporary consumer project.
|
|
220
|
-
- [ ] Create a fake consumer adapter/CLI and run installed-package library `run`, `createGoal`, `replayRunEvents`, `replayGoalEvents`, `exportDiagnostics`, and `inspectStore`.
|
|
221
|
-
- [ ] `node ./node_modules/.bin/agent-runtime agents --json` returns JSON.
|
|
222
|
-
- [ ] `node ./node_modules/.bin/agent-runtime doctor --json` returns an object with `ok`.
|
|
223
|
-
- [ ] `node ./node_modules/.bin/agent-runtime conformance --mode fixtures --json` returns stable adapter summaries.
|
|
224
|
-
- [ ] `node ./node_modules/.bin/agent-runtime conformance --mode fake --json` returns stable adapter summaries.
|
|
225
|
-
- [ ] `node ./node_modules/.bin/agent-runtime smoke --mode fixtures --json` returns `{ ok: true, mode: "fixtures" }`.
|
|
226
|
-
- [ ] The install smoke uses fake/local CLIs for deterministic `agents` and `doctor` checks; it does not require real auth.
|
|
227
|
-
|
|
228
|
-
## Examples smoke
|
|
229
|
-
|
|
230
|
-
- [ ] `node examples/library-run.js` succeeds after `npm run build`.
|
|
231
|
-
- [ ] `node examples/library-goal.js` succeeds after `npm run build`.
|
|
232
|
-
- [ ] `examples/cli-dogfood.md` documents fixtures, fake, and real-profile conformance.
|
|
233
|
-
- [ ] Examples contain no real token, real user path, provider secret, complete prompt dump, or raw real CLI output.
|
|
234
|
-
|
|
235
|
-
## Artifact review
|
|
236
|
-
|
|
237
|
-
- [ ] `CHANGELOG.md`, `SECURITY.md`, `CONTRIBUTING.md` are present and up to date.
|
|
238
|
-
- [ ] `README.md` and `README.zh-CN.md` explain npm install, `npx`, and local checkout paths.
|
|
239
|
-
- [x] `README.md` and `README.zh-CN.md` explain Codex / Claude / OpenCode configuration without token values.
|
|
240
|
-
- [x] Claude Anthropic-compatible provider docs list environment variable names/placeholders only; no real token values.
|
|
241
|
-
- [x] `docs/compatibility.md` is refreshed with the 2026-06-22 P3-6 real conformance detection/preflight evidence plus opt-in smoke evidence and does not describe skipped/auth-missing runs as real-run success.
|
|
242
|
-
- [x] `docs/ssot.md`, `docs/compatibility.md`, and `docs/production-readiness.md` are synced to current release-readiness status.
|
|
243
|
-
- [x] `docs/release-report.md` records local commands, remote workflow evidence, artifact checklist, package boundary, real CLI evidence boundary, known risks, and explicit non-goals.
|
|
244
|
-
- [x] `docs/production-readiness.md` names remaining known risks rather than treating skipped/preflight evidence as real run success.
|
|
245
|
-
|
|
246
|
-
## Final review notes
|
|
247
|
-
|
|
248
|
-
- [x] No stable API guarantee language is used for this release track.
|
|
249
|
-
- [x] Confirm no daemon/WAL/remote runtime promises are made in public docs.
|
|
250
|
-
- [x] Confirm OpenDesign daemon-level gaps are named without implying parity.
|
|
251
|
-
- [x] Confirm authenticated real conformance runs require `--allow-real-run` and safely skip unauthorized CLIs.
|
|
252
|
-
- [x] Confirm `conformance --mode real --agent all --json` without `--allow-real-run` does not launch real agent runs.
|
|
253
|
-
- [x] Confirm optional real run docs use isolated cwd by default and make `--allow-real-run` the explicit account/network boundary.
|
|
254
|
-
- [x] Confirm status-only exit `0` real smoke remains `unexpected_output`, not success.
|
|
255
|
-
- [ ] Confirm package install smoke is covered by `npm run dogfood` and remains available as the explicit `AGENT_RUNTIME_RUN_INSTALLED_PACKAGE_TESTS=1` contract test path.
|
|
256
|
-
- [ ] Confirm `store-repair --apply` remains opt-in, holds the local store lease while writing, creates atomic backups, refuses live owners, records redacted repair success/failure diagnostics, leaves original logs untouched on backup/rewrite failure, is idempotent, and does not claim WAL/database/daemon resume semantics.
|
|
257
|
-
- [ ] Confirm crash consistency tests cover manifest rename failure, JSONL append failure, repair backup/rewrite failure, fsync/fdatasync fallback, lock takeover/close behavior, corrupt lock read-only CLI inspection, and diagnostics redaction.
|
|
3
|
+
Status: `0.1.0-alpha.1` published; `0.1.0-alpha.2` publish-ready release candidate / dry-run stop point
|
|
4
|
+
Last updated: 2026-06-25
|
|
5
|
+
|
|
6
|
+
## P7-3 Alpha.2 Publish Dry-Run
|
|
7
|
+
|
|
8
|
+
- [x] Confirm P7-2 has reached `origin/main` before creating the P7-3 branch.
|
|
9
|
+
- [x] Prepare package metadata for `0.1.0-alpha.2` in `package.json` and `package-lock.json`.
|
|
10
|
+
- [x] Keep `0.1.0-alpha.2` as a publish-ready release candidate only; do not describe it as published.
|
|
11
|
+
- [x] Trigger fresh main release-candidate evidence for the exact commit selected for publish.
|
|
12
|
+
- [x] Download all five artifacts and run `npm run release:verify -- --dir <normalized-artifact-dir>`.
|
|
13
|
+
- [x] Run `npm publish --dry-run --ignore-scripts --tag alpha`.
|
|
14
|
+
- [x] Record dry-run-only publish evidence in `.release-evidence/p7-3-alpha-2-publish.json`.
|
|
15
|
+
- [x] Keep the current published npm version as `agent-cli-runtime@0.1.0-alpha.1`.
|
|
16
|
+
- [x] Keep the current GitHub pre-release as `v0.1.0-alpha.1`.
|
|
17
|
+
- [x] Keep current npm dist-tags documented as `alpha -> 0.1.0-alpha.1` and `latest -> 0.1.0-alpha.1`.
|
|
18
|
+
- [x] Keep `agent-cli-runtime@0.1.0-alpha.0` documented as deprecated due to stale immutable package docs.
|
|
19
|
+
- [x] Keep volatile run ids, artifact ids, artifact digests, tarball hashes, pack hashes, local temporary paths, raw logs, raw CLI output, full prompts, and token-looking values outside packaged docs.
|
|
20
|
+
- [x] Keep `.release-evidence/` and `.reference/` outside npm package contents.
|
|
21
|
+
|
|
22
|
+
## Local Verification
|
|
23
|
+
|
|
24
|
+
Run these before treating alpha.2 as a local release candidate:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm test
|
|
28
|
+
npm run typecheck
|
|
29
|
+
npm run lint
|
|
30
|
+
npm run package:check
|
|
31
|
+
npm run compat:real:evidence:verify
|
|
32
|
+
npm run release:candidate -- --out-dir <tmp-dir>
|
|
33
|
+
npm run release:verify -- --dir <tmp-dir>
|
|
34
|
+
npm pack --dry-run
|
|
35
|
+
npm publish --dry-run --ignore-scripts --tag alpha
|
|
36
|
+
node ./dist/cli/main.js agents --json
|
|
37
|
+
node ./dist/cli/main.js doctor --json
|
|
38
|
+
git diff --check
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Acceptance:
|
|
42
|
+
|
|
43
|
+
- [x] `npm test` passes.
|
|
44
|
+
- [x] `npm run typecheck` passes.
|
|
45
|
+
- [x] `npm run lint` passes.
|
|
46
|
+
- [x] `npm run package:check` passes and rejects `.release-evidence/` plus `.reference/` if they appear in pack metadata.
|
|
47
|
+
- [x] `npm run compat:real:evidence:verify` passes without launching authenticated real agent runs.
|
|
48
|
+
- [x] `npm run release:candidate -- --out-dir <tmp-dir>` produces the five-artifact release-candidate set.
|
|
49
|
+
- [x] `npm run release:verify -- --dir <tmp-dir>` passes with `schemaVersion: "agent-cli-runtime.releaseVerification.v1"`, `ok: true`, and empty diagnostics.
|
|
50
|
+
- [x] `gate-evidence.json` contains `daemon:verify`, `runtime:safety`, and `compat:real:evidence:verify`.
|
|
51
|
+
- [x] `npm pack --dry-run` shows only expected package files.
|
|
52
|
+
- [x] `npm publish --dry-run --ignore-scripts --tag alpha` passes as a dry-run and reports `tag alpha`.
|
|
53
|
+
- [x] `node ./dist/cli/main.js agents --json` returns parseable JSON.
|
|
54
|
+
- [x] `node ./dist/cli/main.js doctor --json` returns parseable JSON.
|
|
55
|
+
- [x] `git diff --check` passes.
|
|
56
|
+
|
|
57
|
+
## Human Publish Gate
|
|
58
|
+
|
|
59
|
+
Do not run a real publish without explicit maintainer authorization. Before any later publish:
|
|
60
|
+
|
|
61
|
+
- [ ] Trigger a fresh manual release-candidate workflow for the exact commit being considered.
|
|
62
|
+
- [ ] Download all five artifacts into a local review directory.
|
|
63
|
+
- [ ] Run `npm run release:verify -- --dir <normalized-artifact-dir>` on the downloaded artifacts.
|
|
64
|
+
- [ ] Confirm the workflow head SHA equals the commit selected for publish.
|
|
65
|
+
- [ ] Run `npm publish --dry-run --ignore-scripts --tag alpha`.
|
|
66
|
+
- [ ] Obtain separate explicit maintainer authorization for the real publish.
|
|
67
|
+
- [ ] Run real `npm publish --tag alpha` only after that authorization.
|
|
68
|
+
- [ ] After publish, verify npm registry state and run the published package verification workflow.
|
|
69
|
+
|
|
70
|
+
## Release-Candidate Artifact Contract
|
|
71
|
+
|
|
72
|
+
The candidate artifact set is exactly:
|
|
73
|
+
|
|
74
|
+
- `agent-cli-runtime-tarball`
|
|
75
|
+
- `agent-cli-runtime-pack-metadata`
|
|
76
|
+
- `agent-cli-runtime-package-files`
|
|
77
|
+
- `agent-cli-runtime-gate-evidence`
|
|
78
|
+
- `agent-cli-runtime-release-verification`
|
|
79
|
+
|
|
80
|
+
`agent-cli-runtime-gate-evidence` must record:
|
|
81
|
+
|
|
82
|
+
- `daemon:verify`
|
|
83
|
+
- `runtime:safety`
|
|
84
|
+
- `compat:real:evidence:verify`
|
|
85
|
+
|
|
86
|
+
It must also keep:
|
|
87
|
+
|
|
88
|
+
- `noAuthenticatedRealRun: true`
|
|
89
|
+
- `noNpmPublish: true`
|
|
90
|
+
- `noNpmToken: true`
|
|
91
|
+
|
|
92
|
+
## Package Boundary
|
|
93
|
+
|
|
94
|
+
The package must not contain:
|
|
95
|
+
|
|
96
|
+
- `.release-evidence/`
|
|
97
|
+
- `.reference/`
|
|
98
|
+
- `tests/`
|
|
99
|
+
- fixtures
|
|
100
|
+
- raw real CLI output
|
|
101
|
+
- local temporary review directories
|
|
102
|
+
- private user paths
|
|
103
|
+
- full prompts
|
|
104
|
+
- raw stdout/stderr transcripts
|
|
105
|
+
- token-looking values
|
|
106
|
+
- Bearer values
|
|
107
|
+
- auth environment assignment values
|
|
108
|
+
|
|
109
|
+
## Stable Contract Reminders
|
|
110
|
+
|
|
111
|
+
- The package root value export remains `createAgentRuntime`.
|
|
112
|
+
- The schema inventory and versioning policy live in [docs/api-schema-contract.md](./api-schema-contract.md).
|
|
113
|
+
- The daemon/product shell embedding contract lives in [docs/daemon-ready-contract.md](./daemon-ready-contract.md).
|
|
114
|
+
- `agent-cli-runtime.releaseVerification.v1` and `agent-cli-runtime.releaseGateEvidence.v1` are the release artifact schemas.
|
|
115
|
+
- `real_run_skipped`, `auth_missing`, `unsupported_flag`, and `needs_verification` are evidence states, not success.
|
|
116
|
+
- Frozen smoke/conformance classifications: `success`, `real_run_skipped`, `auth_missing`, `unavailable_executable`, `unsupported_flag`, `needs_verification`, `unexpected_output`, `cwd_mutated`, `timeout`, and `failed`.
|
|
117
|
+
- This repository remains a local-first runtime/kernel and does not include a hosted daemon, control plane, API server, database/WAL, web UI, telemetry, or remote worker.
|
|
@@ -1,36 +1,43 @@
|
|
|
1
1
|
# Alpha Publish Readiness Runbook
|
|
2
2
|
|
|
3
|
-
Status:
|
|
4
|
-
Last updated: 2026-06-
|
|
3
|
+
Status: `0.1.0-alpha.1` published; `0.1.0-alpha.2` publish-ready release candidate / dry-run stop point; real publish remains human-controlled
|
|
4
|
+
Last updated: 2026-06-25
|
|
5
5
|
|
|
6
|
-
This runbook
|
|
6
|
+
This runbook records the publish and registry boundary after `agent-cli-runtime@0.1.0-alpha.1` was published. `0.1.0-alpha.1` corrects the stale pre-publish status text shipped in immutable npm version `0.1.0-alpha.0`; `0.1.0-alpha.0` is now deprecated.
|
|
7
|
+
|
|
8
|
+
`0.1.0-alpha.2` is a publish-ready release candidate with fresh main release-candidate evidence and local publish dry-run evidence. It is not published until a maintainer separately authorizes a real npm publish. This runbook does not create or commit npm credentials and does not configure trusted publishing. Current-head release-candidate run ids, artifact digests, tarball shasums, pack shasums, and local temporary paths are recorded outside the npm package under `.release-evidence/` or attached as GitHub Release assets; package docs keep only stable process rules, current post-alpha registry state, and the human-gated boundary for any future publish.
|
|
7
9
|
|
|
8
10
|
## Decision
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
Current state and future human gate:
|
|
11
13
|
|
|
12
14
|
- Package metadata is ready for an alpha package page: `name`, `version`, `description`, `license`, `type`, `bin`, `main`, `types`, `exports`, `files`, `engines`, `repository`, `homepage`, `bugs`, `keywords`, and `publishConfig.tag` are present and intentional.
|
|
13
15
|
- The package root value API remains `createAgentRuntime` only; public TypeScript types are exposed through the root declarations, not as runtime values.
|
|
14
16
|
- The release-candidate workflow remains artifact-only: it creates and verifies the tarball but does not publish and does not require registry credentials.
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
17
|
+
- Published package: `agent-cli-runtime@0.1.0-alpha.1`.
|
|
18
|
+
- Candidate package metadata in this repository: `agent-cli-runtime@0.1.0-alpha.2`.
|
|
19
|
+
- `0.1.0-alpha.2` is a publish-ready release candidate with dry-run publish evidence, not a published version.
|
|
20
|
+
- GitHub pre-release: `v0.1.0-alpha.1`.
|
|
21
|
+
- Deprecated package: `agent-cli-runtime@0.1.0-alpha.0`.
|
|
22
|
+
- Current npm dist-tags: `alpha -> 0.1.0-alpha.1`, `latest -> 0.1.0-alpha.1`.
|
|
23
|
+
- `latest -> 0.1.0-alpha.1` is recorded as current pre-alpha registry reality while there is no stable release; do not pretend it was removed.
|
|
24
|
+
- Alpha.2 human-controlled publish path: use the fresh release-candidate workflow for the commit being considered, download all five artifacts, run `npm run release:verify -- --dir <normalized-artifact-dir>`, run `npm publish --dry-run --ignore-scripts --tag alpha`, then stop until a maintainer separately authorizes the real publish.
|
|
25
|
+
- Current-head evidence rule: trigger a fresh release-candidate workflow for the commit being considered, download all five artifacts, run `npm run release:verify -- --dir <normalized-artifact-dir>`, and record volatile run evidence under `.release-evidence/`.
|
|
18
26
|
- Because this runbook and release report are included in the npm package, do not write current run ids, artifact digests, tarball shasums, or pack shasums into package docs.
|
|
19
|
-
- Before any real publish, confirm the fresh release-candidate workflow head SHA matches the commit being published.
|
|
27
|
+
- Before any future real publish, confirm the fresh release-candidate workflow head SHA matches the commit being published.
|
|
28
|
+
- After any future real publish, run the manual published package verification workflow and download `agent-cli-runtime-published-verification`; it must pass `npm run published:verify:evidence -- --dir <downloaded-artifact-dir>`.
|
|
20
29
|
- Historical P3-9 run `27943672095` only proves target SHA `65fac505ca3eb830a06d8656068cf4ed5f6dd46a`.
|
|
21
30
|
- Do not reuse historical workflow runs as publish evidence for a later commit.
|
|
22
31
|
|
|
23
|
-
##
|
|
32
|
+
## Boundaries
|
|
24
33
|
|
|
25
|
-
- Do not run a real `npm publish` during P3-11.
|
|
26
34
|
- Do not add npm tokens, GitHub tokens, registry credential environment variables, or private auth files.
|
|
27
35
|
- Do not configure real npm trusted publishing during P2-13.
|
|
28
|
-
- Do not publish a GitHub release.
|
|
29
36
|
- Do not add daemon, database, WAL, remote worker, web UI, telemetry, scheduler expansion, or package-root value exports.
|
|
30
37
|
|
|
31
|
-
## Pre-Publish Checks
|
|
38
|
+
## Future Pre-Publish Checks
|
|
32
39
|
|
|
33
|
-
Run from the repository root on a clean `main` checkout:
|
|
40
|
+
Run from the repository root on a clean `main` checkout before any future package version is published:
|
|
34
41
|
|
|
35
42
|
```bash
|
|
36
43
|
git status --short
|
|
@@ -40,7 +47,7 @@ npm run lint
|
|
|
40
47
|
npm test
|
|
41
48
|
npm run build
|
|
42
49
|
npm run package:check
|
|
43
|
-
tmp_dir="$(mktemp -d
|
|
50
|
+
tmp_dir="$(mktemp -d)"
|
|
44
51
|
npm run release:candidate -- --out-dir "$tmp_dir"
|
|
45
52
|
npm run release:verify -- --dir "$tmp_dir"
|
|
46
53
|
npm pack --dry-run
|
|
@@ -50,15 +57,15 @@ node ./dist/cli/main.js doctor --json
|
|
|
50
57
|
git diff --check
|
|
51
58
|
```
|
|
52
59
|
|
|
53
|
-
Before a real publish, also confirm the current branch and evidence target:
|
|
60
|
+
Before a future real publish, also confirm the current branch and evidence target:
|
|
54
61
|
|
|
55
62
|
```bash
|
|
56
63
|
git rev-parse --abbrev-ref HEAD
|
|
57
64
|
git rev-parse HEAD
|
|
58
65
|
git rev-parse origin/main
|
|
59
66
|
gh workflow run release-candidate.yml --ref main
|
|
60
|
-
gh run view <
|
|
61
|
-
npm view agent-cli-runtime@0.1.0-alpha.
|
|
67
|
+
gh run view <current-release-candidate-run-id> --json headSha,status,conclusion,url,jobs
|
|
68
|
+
npm view agent-cli-runtime@0.1.0-alpha.2 version --json
|
|
62
69
|
npm dist-tag ls agent-cli-runtime
|
|
63
70
|
```
|
|
64
71
|
|
|
@@ -70,11 +77,11 @@ npm publish --dry-run --ignore-scripts --tag alpha
|
|
|
70
77
|
|
|
71
78
|
The command must report a dry run and must show `tag alpha`. If it reports `latest`, stop and fix the command or metadata before publishing.
|
|
72
79
|
|
|
73
|
-
|
|
80
|
+
Dry-run stop point: stop after `npm publish --dry-run --ignore-scripts --tag alpha` until a maintainer separately authorizes the true publish of a new immutable version and fresh current-head release-candidate evidence has passed.
|
|
74
81
|
|
|
75
82
|
## Human Confirmation Points
|
|
76
83
|
|
|
77
|
-
Before a real publish, a maintainer must confirm:
|
|
84
|
+
Before a future real publish, a maintainer must confirm:
|
|
78
85
|
|
|
79
86
|
- The version is exactly the intended immutable npm version. A published `name@version` cannot be overwritten.
|
|
80
87
|
- The release-candidate run head SHA matches the commit being published; historical runs are insufficient for later commits.
|
|
@@ -82,13 +89,13 @@ Before a real publish, a maintainer must confirm:
|
|
|
82
89
|
- `.reference/`, `tests/`, fixtures, raw real CLI output, private paths, token-looking values, and repair backups are absent from the packed files.
|
|
83
90
|
- `dist/index.js` runtime value exports remain limited to `createAgentRuntime`.
|
|
84
91
|
- `dist/index.d.ts` exposes public types without re-exporting storage/parser/store internals as the package-root contract.
|
|
85
|
-
- The alpha tag is intentional and `latest`
|
|
92
|
+
- The alpha tag is intentional. If there is still no stable version and npm also points `latest` at the pre-alpha, document that exact post-publish state.
|
|
86
93
|
- The npm account/package publishing policy is understood: 2FA or an approved token path is required by npm package settings.
|
|
87
94
|
- The publisher accepts the provenance choice below and has the right npm package permissions.
|
|
88
95
|
|
|
89
96
|
## Real Publish Commands
|
|
90
97
|
|
|
91
|
-
|
|
98
|
+
Do not run these commands until the human publish gate is explicitly approved.
|
|
92
99
|
|
|
93
100
|
Manual local publish with interactive npm authentication:
|
|
94
101
|
|
|
@@ -109,19 +116,24 @@ If npm asks for a second factor, complete the interactive 2FA prompt or use the
|
|
|
109
116
|
Immediately after any real publish:
|
|
110
117
|
|
|
111
118
|
```bash
|
|
112
|
-
npm view agent-cli-runtime@0.1.0-alpha.
|
|
119
|
+
npm view agent-cli-runtime@0.1.0-alpha.1 version dist-tags --json
|
|
120
|
+
npm view agent-cli-runtime@0.1.0-alpha.2 version dist-tags --json
|
|
113
121
|
npm dist-tag ls agent-cli-runtime
|
|
122
|
+
npm run published:verify -- --out-dir published-verification
|
|
123
|
+
npm run published:verify:evidence -- --dir published-verification
|
|
114
124
|
```
|
|
115
125
|
|
|
116
126
|
Expected result:
|
|
117
127
|
|
|
118
|
-
- `alpha` points to `0.1.0-alpha.
|
|
119
|
-
-
|
|
128
|
+
- Before alpha.2 publish, `alpha` points to `0.1.0-alpha.1`.
|
|
129
|
+
- After an authorized alpha.2 publish, `alpha` points to `0.1.0-alpha.2`.
|
|
130
|
+
- `latest` is absent, points to a stable version, or is explicitly documented as pointing to the only published pre-alpha version if npm does not allow removing it.
|
|
120
131
|
|
|
121
132
|
If the wrong tag is attached but the package version itself is acceptable, fix the tag rather than republishing the same version:
|
|
122
133
|
|
|
123
134
|
```bash
|
|
124
|
-
npm dist-tag add agent-cli-runtime@0.1.0-alpha.
|
|
135
|
+
npm dist-tag add agent-cli-runtime@0.1.0-alpha.1 alpha
|
|
136
|
+
npm dist-tag add agent-cli-runtime@0.1.0-alpha.2 alpha
|
|
125
137
|
npm dist-tag rm agent-cli-runtime latest
|
|
126
138
|
npm dist-tag ls agent-cli-runtime
|
|
127
139
|
```
|
|
@@ -170,7 +182,7 @@ If real publish fails before package creation:
|
|
|
170
182
|
|
|
171
183
|
- Capture the redacted error class only.
|
|
172
184
|
- Do not commit npm debug logs if they contain local paths, auth state, or registry session details.
|
|
173
|
-
- Re-run `npm view agent-cli-runtime@0.1.0-alpha.
|
|
185
|
+
- Re-run `npm view agent-cli-runtime@0.1.0-alpha.2 version --json` before retrying to confirm the version was not created.
|
|
174
186
|
|
|
175
187
|
If real publish succeeds but post-publish checks fail:
|
|
176
188
|
|
|
@@ -180,13 +192,15 @@ If real publish succeeds but post-publish checks fail:
|
|
|
180
192
|
- If the package is unsafe and still eligible under npm policy, consider unpublish only as an emergency path:
|
|
181
193
|
|
|
182
194
|
```bash
|
|
183
|
-
npm unpublish agent-cli-runtime@0.1.0-alpha.
|
|
195
|
+
npm unpublish agent-cli-runtime@0.1.0-alpha.1
|
|
196
|
+
npm unpublish agent-cli-runtime@0.1.0-alpha.2
|
|
184
197
|
```
|
|
185
198
|
|
|
186
199
|
Unpublish has strict policy limits and cannot make the same `name@version` reusable. If unpublish is not allowed or would break consumers, prefer deprecation:
|
|
187
200
|
|
|
188
201
|
```bash
|
|
189
|
-
npm deprecate agent-cli-runtime@0.1.0-alpha.
|
|
202
|
+
npm deprecate agent-cli-runtime@0.1.0-alpha.1 "Do not use this alpha; upgrade to a later pre-release."
|
|
203
|
+
npm deprecate agent-cli-runtime@0.1.0-alpha.2 "Do not use this alpha; upgrade to a later pre-release."
|
|
190
204
|
```
|
|
191
205
|
|
|
192
206
|
## Rollback Boundary
|
|
@@ -198,4 +212,4 @@ Rollback means one of these actions:
|
|
|
198
212
|
- Unpublish only when npm policy allows it and a maintainer accepts the registry impact.
|
|
199
213
|
- Publish a new corrected pre-release version.
|
|
200
214
|
|
|
201
|
-
Rollback does not mean overwriting `agent-cli-runtime@0.1.0-alpha.0`; npm does not permit replacing an already published package version.
|
|
215
|
+
Rollback does not mean overwriting `agent-cli-runtime@0.1.0-alpha.1` or `agent-cli-runtime@0.1.0-alpha.2`; npm does not permit replacing an already published package version.
|