agent-cli-runtime 0.1.0-alpha.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 +51 -0
- package/CONTRIBUTING.md +60 -0
- package/LICENSE +202 -0
- package/README.md +573 -0
- package/README.zh-CN.md +571 -0
- package/SECURITY.md +35 -0
- package/dist/adapters/adapter-types.d.ts +138 -0
- package/dist/adapters/adapter-types.js +2 -0
- package/dist/adapters/adapter-types.js.map +1 -0
- package/dist/adapters/claude.d.ts +2 -0
- package/dist/adapters/claude.js +97 -0
- package/dist/adapters/claude.js.map +1 -0
- package/dist/adapters/codex.d.ts +3 -0
- package/dist/adapters/codex.js +120 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/adapters/opencode.d.ts +4 -0
- package/dist/adapters/opencode.js +111 -0
- package/dist/adapters/opencode.js.map +1 -0
- package/dist/adapters/registry.d.ts +9 -0
- package/dist/adapters/registry.js +23 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.js +978 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/core/async-queue.d.ts +10 -0
- package/dist/core/async-queue.js +49 -0
- package/dist/core/async-queue.js.map +1 -0
- package/dist/core/diagnostics.d.ts +20 -0
- package/dist/core/diagnostics.js +4 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-contract.d.ts +32 -0
- package/dist/core/event-contract.js +128 -0
- package/dist/core/event-contract.js.map +1 -0
- package/dist/core/events.d.ts +147 -0
- package/dist/core/events.js +4 -0
- package/dist/core/events.js.map +1 -0
- package/dist/core/ids.d.ts +1 -0
- package/dist/core/ids.js +5 -0
- package/dist/core/ids.js.map +1 -0
- package/dist/core/redaction.d.ts +4 -0
- package/dist/core/redaction.js +51 -0
- package/dist/core/redaction.js.map +1 -0
- package/dist/core/runtime.d.ts +41 -0
- package/dist/core/runtime.js +83 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/schema-contract.d.ts +55 -0
- package/dist/core/schema-contract.js +143 -0
- package/dist/core/schema-contract.js.map +1 -0
- package/dist/detection/detect.d.ts +14 -0
- package/dist/detection/detect.js +293 -0
- package/dist/detection/detect.js.map +1 -0
- package/dist/detection/env.d.ts +2 -0
- package/dist/detection/env.js +15 -0
- package/dist/detection/env.js.map +1 -0
- package/dist/detection/executable-resolution.d.ts +12 -0
- package/dist/detection/executable-resolution.js +50 -0
- package/dist/detection/executable-resolution.js.map +1 -0
- package/dist/detection/invocation.d.ts +9 -0
- package/dist/detection/invocation.js +22 -0
- package/dist/detection/invocation.js.map +1 -0
- package/dist/goals/goal-scheduler.d.ts +31 -0
- package/dist/goals/goal-scheduler.js +518 -0
- package/dist/goals/goal-scheduler.js.map +1 -0
- package/dist/goals/goal-store.d.ts +37 -0
- package/dist/goals/goal-store.js +300 -0
- package/dist/goals/goal-store.js.map +1 -0
- package/dist/goals/goal-types.d.ts +103 -0
- package/dist/goals/goal-types.js +2 -0
- package/dist/goals/goal-types.js.map +1 -0
- package/dist/goals/planner-prompts.d.ts +3 -0
- package/dist/goals/planner-prompts.js +26 -0
- package/dist/goals/planner-prompts.js.map +1 -0
- package/dist/goals/task-graph.d.ts +9 -0
- package/dist/goals/task-graph.js +229 -0
- package/dist/goals/task-graph.js.map +1 -0
- package/dist/goals/validation-runner.d.ts +7 -0
- package/dist/goals/validation-runner.js +63 -0
- package/dist/goals/validation-runner.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/parsers/claude-stream-json.d.ts +11 -0
- package/dist/parsers/claude-stream-json.js +102 -0
- package/dist/parsers/claude-stream-json.js.map +1 -0
- package/dist/parsers/codex-json.d.ts +8 -0
- package/dist/parsers/codex-json.js +107 -0
- package/dist/parsers/codex-json.js.map +1 -0
- package/dist/parsers/line-buffer.d.ts +7 -0
- package/dist/parsers/line-buffer.js +28 -0
- package/dist/parsers/line-buffer.js.map +1 -0
- package/dist/parsers/opencode-json.d.ts +8 -0
- package/dist/parsers/opencode-json.js +72 -0
- package/dist/parsers/opencode-json.js.map +1 -0
- package/dist/parsers/plain-lines.d.ts +6 -0
- package/dist/parsers/plain-lines.js +9 -0
- package/dist/parsers/plain-lines.js.map +1 -0
- package/dist/public-types.d.ts +143 -0
- package/dist/public-types.js +2 -0
- package/dist/public-types.js.map +1 -0
- package/dist/runs/process-runner.d.ts +35 -0
- package/dist/runs/process-runner.js +97 -0
- package/dist/runs/process-runner.js.map +1 -0
- package/dist/runs/prompt-transport.d.ts +10 -0
- package/dist/runs/prompt-transport.js +43 -0
- package/dist/runs/prompt-transport.js.map +1 -0
- package/dist/runs/run-result.d.ts +9 -0
- package/dist/runs/run-result.js +22 -0
- package/dist/runs/run-result.js.map +1 -0
- package/dist/runs/run-scheduler.d.ts +25 -0
- package/dist/runs/run-scheduler.js +552 -0
- package/dist/runs/run-scheduler.js.map +1 -0
- package/dist/runs/run-store.d.ts +42 -0
- package/dist/runs/run-store.js +297 -0
- package/dist/runs/run-store.js.map +1 -0
- package/dist/runs/run-types.d.ts +59 -0
- package/dist/runs/run-types.js +2 -0
- package/dist/runs/run-types.js.map +1 -0
- package/dist/smoke/parser-samples.d.ts +17 -0
- package/dist/smoke/parser-samples.js +186 -0
- package/dist/smoke/parser-samples.js.map +1 -0
- package/dist/storage/file-storage.d.ts +35 -0
- package/dist/storage/file-storage.js +271 -0
- package/dist/storage/file-storage.js.map +1 -0
- package/dist/storage/jsonl-store.d.ts +9 -0
- package/dist/storage/jsonl-store.js +138 -0
- package/dist/storage/jsonl-store.js.map +1 -0
- package/dist/storage/manifest-validation.d.ts +11 -0
- package/dist/storage/manifest-validation.js +102 -0
- package/dist/storage/manifest-validation.js.map +1 -0
- package/dist/storage/storage-lease.d.ts +40 -0
- package/dist/storage/storage-lease.js +223 -0
- package/dist/storage/storage-lease.js.map +1 -0
- package/dist/storage/storage-types.d.ts +55 -0
- package/dist/storage/storage-types.js +2 -0
- package/dist/storage/storage-types.js.map +1 -0
- package/dist/storage/store-inspection.d.ts +28 -0
- package/dist/storage/store-inspection.js +941 -0
- package/dist/storage/store-inspection.js.map +1 -0
- package/docs/api-schema-contract.md +92 -0
- package/docs/compatibility.md +832 -0
- package/docs/daemon-ready-contract.md +283 -0
- package/docs/production-readiness.md +281 -0
- package/docs/release-checklist.md +257 -0
- package/docs/release-publish-runbook.md +201 -0
- package/docs/release-report.md +517 -0
- package/docs/ssot.md +1257 -0
- package/examples/cli-dogfood.md +113 -0
- package/examples/library-goal.js +94 -0
- package/examples/library-run.js +84 -0
- package/package.json +79 -0
- package/scripts/dogfood.mjs +243 -0
|
@@ -0,0 +1,517 @@
|
|
|
1
|
+
# Release Report: 0.1.0-alpha.0 alpha release candidate evidence packet
|
|
2
|
+
|
|
3
|
+
Status: P3-11 Current-Head Release Candidate Evidence Boundary & Human-Gated Publish Packet
|
|
4
|
+
Last updated: 2026-06-23
|
|
5
|
+
|
|
6
|
+
This report records release-candidate, alpha publish-readiness, daemon-ready contract hardening, P3-6 real CLI opt-in smoke evidence, P3-7 API / CLI schema freeze evidence, and the P3-11 non-package evidence boundary for `agent-cli-runtime@0.1.0-alpha.0`. It is a pre-alpha developer-preview audit and decision package, not an npm publication record.
|
|
7
|
+
|
|
8
|
+
## Verdict
|
|
9
|
+
|
|
10
|
+
P3-7 freezes the public root boundary, daemon-facing CLI JSON schema inventory, version bump policy, and failure taxonomy in [docs/api-schema-contract.md](./api-schema-contract.md), with drift tests tying the docs to source-level schema/failure vocabularies.
|
|
11
|
+
|
|
12
|
+
P3-11 moves current-head release-candidate run evidence out of packaged docs: volatile run ids, artifact ids, artifact digests, tarball shasums, and pack shasums belong under `.release-evidence/`. Packaged docs keep stable rules only: trigger a fresh release-candidate workflow for the commit being considered, download all five artifacts, run `npm run release:verify -- --dir <normalized-artifact-dir>`, verify the workflow head SHA equals that commit, and stop publish work at `npm publish --dry-run --ignore-scripts --tag alpha` unless a maintainer later gives separate real-publish authorization.
|
|
13
|
+
|
|
14
|
+
It preserves the release boundary: no npm publish, no trusted publishing setup, no npm token, no daemon/API server, no database/WAL, no remote worker, no UI/telemetry layer, and no authenticated real agent run in default gates. Historical P3-9 run `27943672095` only proves target SHA `65fac505ca3eb830a06d8656068cf4ed5f6dd46a`; Historical P3-9 interim run `27942743285` only proves target SHA `a0299a7d81bb614661922bebc8c75496cf0a3d11` before the strict `fixtures?` package-boundary lock; historical P3-8 run `27940814340` only proves target SHA `eb8de0f9b1edfa3f94c35a50b31005c5d3c105d4`; historical P3-5 run `27932628093` only proves workflow head SHA `8d7bc2a19c626caa1ad5223acbcd35df34aff18e`; historical P2-12 run `27869580048` only proves commit `2f8832119b4ebdb8393077052560589a398ebf56`. The package is not published to npm, does not claim a stable API, and does not claim OpenDesign daemon parity.
|
|
15
|
+
|
|
16
|
+
## P3-11 Current-Head Evidence Boundary
|
|
17
|
+
|
|
18
|
+
P3-11 solves the P3-10 self-reference problem by separating stable package docs from volatile current-run evidence:
|
|
19
|
+
|
|
20
|
+
- Package docs may describe the release-candidate workflow, required artifacts, verification command, dry-run boundary, human publish gate, and historical evidence as historical only.
|
|
21
|
+
- Package docs must not record the current run id, artifact ids, artifact digests, tarball shasum, npm pack shasum, or private downloaded-artifact paths for the commit being considered.
|
|
22
|
+
- Volatile current-head evidence is recorded under `.release-evidence/`, which is outside `package.json` `files` and is explicitly rejected by package-boundary checks if it appears in npm pack metadata.
|
|
23
|
+
- A release-candidate workflow proves only the commit in its `headSha`. Historical runs must not be reused as proof for later commits.
|
|
24
|
+
- A dry-run is not a real publish. A true npm publish remains human-gated and requires a later explicit authorization.
|
|
25
|
+
|
|
26
|
+
## P3-10 Pre-Documentation Alpha Release Candidate Evidence
|
|
27
|
+
|
|
28
|
+
P3-10 refreshes release-candidate evidence for pre-documentation HEAD SHA `fdba3ebccb2e57a0ad295101028a2a3937a92204` after the P3-9 evidence-recording repair commit. It does not add runtime APIs, publish npm, configure npm tokens/trusted publishing, execute authenticated real agent runs, or add daemon/API server/database/WAL/remote-worker/UI/telemetry layers.
|
|
29
|
+
|
|
30
|
+
This report is the repository-resident evidence packet. The remote workflow evidence is intentionally commit-specific and proves only the pre-documentation SHA above and the tarball produced from that SHA. Run `27945938663` must not be used as final post-documentation publish evidence.
|
|
31
|
+
|
|
32
|
+
This repository includes `docs/release-report.md`, `docs/release-checklist.md`, `docs/release-publish-runbook.md`, and other release docs in `package.json` `files`. This means committing this packet changes the package shasum. Any commit that records the P3-10 evidence packet changes packaged content and therefore changes `npm pack` shasum. The final package selected for a real publish must be proven by a fresh release-candidate workflow after committing this packet, then re-downloaded and re-verified before publish.
|
|
33
|
+
|
|
34
|
+
Historical runs, including P3-9 run `27943672095`, must not be reused for this stage. The rule for later evidence-recording commits is that each must trigger its own fresh release-candidate run before being described as current release-candidate evidence.
|
|
35
|
+
|
|
36
|
+
Evidence target and worktree state before remote trigger:
|
|
37
|
+
|
|
38
|
+
- Branch: `main`.
|
|
39
|
+
- Pre-documentation HEAD SHA: `fdba3ebccb2e57a0ad295101028a2a3937a92204`.
|
|
40
|
+
- Initial worktree before the P3-10 remote trigger: clean.
|
|
41
|
+
- Local `main`, `origin/main`, and `HEAD` all resolved to `fdba3ebccb2e57a0ad295101028a2a3937a92204` before triggering the workflow.
|
|
42
|
+
|
|
43
|
+
P3-10 local validation evidence on 2026-06-22:
|
|
44
|
+
|
|
45
|
+
- `npm run typecheck`: passed.
|
|
46
|
+
- `npm run lint`: passed.
|
|
47
|
+
- `npm test`: passed with 196 tests and 1 skipped installed-package smoke.
|
|
48
|
+
- `npm run build`: passed.
|
|
49
|
+
- `npm run package:check`: passed with `package boundary ok: 151 files checked`.
|
|
50
|
+
- `npm run dogfood`: passed.
|
|
51
|
+
- `npm run daemon:verify`: passed with `schemaVersion: "agent-runtime.daemonVerification.v1"`, `ok: true`, and `packageSource: "installed-tarball"`.
|
|
52
|
+
- `npm run runtime:safety`: passed with `schemaVersion: "agent-runtime.runtimeSafety.v1"`, `ok: true`, and `packageSource: "installed-tarball"`.
|
|
53
|
+
- `npm run release:candidate -- --out-dir /tmp/agent-runtime-p3-10-local-release-candidate`: passed, producing `agent-cli-runtime-0.1.0-alpha.0.tgz`, `npm-pack.json`, `package-files.txt`, `gate-evidence.json`, and `release-verification.json`.
|
|
54
|
+
- `npm run release:verify -- --dir /tmp/agent-runtime-p3-10-local-release-candidate`: passed with `schemaVersion: "agent-cli-runtime.releaseVerification.v1"`, `ok: true`, package file count `151`, five artifact names, empty diagnostics, and gate evidence for `daemon:verify` plus `runtime:safety`.
|
|
55
|
+
- `npm audit --omit=dev`: passed with `found 0 vulnerabilities`.
|
|
56
|
+
- `npm pack --dry-run --json --ignore-scripts`: passed with `151` files and tarball `agent-cli-runtime-0.1.0-alpha.0.tgz`.
|
|
57
|
+
- `npm publish --dry-run --ignore-scripts --tag alpha`: passed as a dry-run; npm reported `Publishing to https://registry.npmjs.org/ with tag alpha and default access (dry-run)` and did not publish.
|
|
58
|
+
- `node ./dist/cli/main.js agents --json`: passed; Codex `codex-cli 0.142.0-alpha.6` and OpenCode `1.15.6` available, Claude Code `2.1.178` available with `auth_missing`.
|
|
59
|
+
- `node ./dist/cli/main.js doctor --json`: passed with `ok: true`; Claude Code remains `auth_missing`.
|
|
60
|
+
- `node ./dist/cli/main.js conformance --mode real --agent all --json`: passed without `--allow-real-run`; Codex and OpenCode reported `real_run_skipped`, Claude Code reported `auth_missing`.
|
|
61
|
+
- `node ./dist/cli/main.js smoke --mode real --agent codex --json`: exited `0` as safe preflight with `schemaVersion: "agent-runtime.realSmoke.v1"`, `ok: false`, and `runClassification: "real_run_skipped"`; no authenticated real run was launched.
|
|
62
|
+
- `git diff --check`: passed.
|
|
63
|
+
|
|
64
|
+
Remote workflow pre-documentation evidence:
|
|
65
|
+
|
|
66
|
+
- Branch: `main`.
|
|
67
|
+
- Workflow head SHA: `fdba3ebccb2e57a0ad295101028a2a3937a92204`.
|
|
68
|
+
- Trigger command: `gh workflow run release-candidate.yml --ref main`.
|
|
69
|
+
- Run id: `27945938663`.
|
|
70
|
+
- Run URL: `https://github.com/iiwish/agent-cli-runtime/actions/runs/27945938663`.
|
|
71
|
+
- Event: `workflow_dispatch`.
|
|
72
|
+
- Workflow: `Release Candidate`.
|
|
73
|
+
- Run status/conclusion: `completed` / `success`.
|
|
74
|
+
- Run created/updated: `2026-06-22T10:22:12Z` / `2026-06-22T10:23:33Z`.
|
|
75
|
+
- Job `Build release candidate artifacts` id `82690587870`, URL `https://github.com/iiwish/agent-cli-runtime/actions/runs/27945938663/job/82690587870`, started at `2026-06-22T10:22:18Z`, completed at `2026-06-22T10:23:33Z`, and concluded `success`.
|
|
76
|
+
- Steps `Install dependencies`, `Run CI gate`, `Run dogfood gate without authenticated real runs`, `Create npm pack artifact and gate evidence without publishing`, `Upload tarball`, `Upload pack metadata`, `Upload package file list`, `Upload daemon-ready gate evidence`, and `Upload release verification` all concluded `success`.
|
|
77
|
+
- Download directory: `/tmp/agent-runtime-p3-10-current-head-remote-66VIhN/downloaded`.
|
|
78
|
+
- Normalized review directory: `/tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized`.
|
|
79
|
+
|
|
80
|
+
Current artifact metadata from the GitHub Actions API:
|
|
81
|
+
|
|
82
|
+
| Artifact | GitHub artifact id | Archive size | Digest | Expires |
|
|
83
|
+
| --- | ---: | ---: | --- | --- |
|
|
84
|
+
| `agent-cli-runtime-tarball` | `7789535097` | `225632` bytes | `sha256:698d80cd9ce86643396d7c9305424ac0f85cfe9d11bca654912048ed92118a34` | `2026-07-06T10:23:22Z` |
|
|
85
|
+
| `agent-cli-runtime-pack-metadata` | `7789535626` | `1998` bytes | `sha256:6c902654a5a8ddc8c5cb59c63efd82ef600d81488efc9eab7c98669a3e8eb564` | `2026-07-06T10:23:24Z` |
|
|
86
|
+
| `agent-cli-runtime-package-files` | `7789536134` | `961` bytes | `sha256:18b8adab4fc43d54389137cbdcf6db8e744f0a12c9498f88c0238c759ce39b79` | `2026-07-06T10:23:25Z` |
|
|
87
|
+
| `agent-cli-runtime-gate-evidence` | `7789536677` | `443` bytes | `sha256:458f63ff6b59a7b16ec8a918d7253a12e000563a7f9452ae932924902b6e0179` | `2026-07-06T10:23:27Z` |
|
|
88
|
+
| `agent-cli-runtime-release-verification` | `7789537198` | `649` bytes | `sha256:27e094fd6aad1b317d9073bef75a27336fe08850592c408d8861eb14df6e7633` | `2026-07-06T10:23:28Z` |
|
|
89
|
+
|
|
90
|
+
Downloaded artifact normalization:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
gh run download 27945938663 --dir /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/downloaded
|
|
94
|
+
cp /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/downloaded/agent-cli-runtime-tarball/agent-cli-runtime-0.1.0-alpha.0.tgz /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized/
|
|
95
|
+
cp /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/downloaded/agent-cli-runtime-pack-metadata/npm-pack.json /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized/
|
|
96
|
+
cp /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/downloaded/agent-cli-runtime-package-files/package-files.txt /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized/
|
|
97
|
+
cp /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/downloaded/agent-cli-runtime-gate-evidence/gate-evidence.json /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized/
|
|
98
|
+
cp /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/downloaded/agent-cli-runtime-release-verification/release-verification.json /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized/
|
|
99
|
+
npm run release:verify -- --dir /tmp/agent-runtime-p3-10-current-head-remote-66VIhN/normalized
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Downloaded artifact re-verification result:
|
|
103
|
+
|
|
104
|
+
- `schemaVersion`: `agent-cli-runtime.releaseVerification.v1`
|
|
105
|
+
- `ok`: `true`
|
|
106
|
+
- diagnostics: empty
|
|
107
|
+
- package file count: `151`
|
|
108
|
+
- artifact names: `agent-cli-runtime-tarball`, `agent-cli-runtime-pack-metadata`, `agent-cli-runtime-package-files`, `agent-cli-runtime-gate-evidence`, `agent-cli-runtime-release-verification`
|
|
109
|
+
- tarball: `agent-cli-runtime-0.1.0-alpha.0.tgz`
|
|
110
|
+
- tarball size: `225378` bytes
|
|
111
|
+
- tarball sha256: `b8a9c2beaaed18dd238c27065285362d1c3380e04be57d5f9cec7b198ddd786d`
|
|
112
|
+
- npm pack shasum: `513efc70dcc17d2ef58caed070dcf27a7a0eb90d`
|
|
113
|
+
- npm pack integrity: `sha512-mOpm9L3FbT+24WgKBQxKvbv90V/3odgekzBYmjPdIl4KzW4U0+P6yHk+02FC8ba1Tm1d6fgERoGqwsTiHC5uEA==`
|
|
114
|
+
- package name/version: `agent-cli-runtime@0.1.0-alpha.0`
|
|
115
|
+
- gate evidence schema: `agent-cli-runtime.releaseGateEvidence.v1`
|
|
116
|
+
- gate evidence commands: `npm run daemon:verify`, `npm run runtime:safety`
|
|
117
|
+
- gate evidence package source: both `installed-tarball`
|
|
118
|
+
- gate evidence flags: `noAuthenticatedRealRun: true`, `noNpmPublish: true`, `noNpmToken: true`
|
|
119
|
+
- package file review: 151 entries and no `.reference/`, `tests/`, fixture paths, raw real CLI output, private paths, token-looking values, Bearer values, or auth env assignments.
|
|
120
|
+
|
|
121
|
+
## P3-10 Human-Gated Alpha Publish Packet
|
|
122
|
+
|
|
123
|
+
Current package candidate: `agent-cli-runtime@0.1.0-alpha.0`.
|
|
124
|
+
|
|
125
|
+
Stop point for this task:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
npm publish --dry-run --ignore-scripts --tag alpha
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
P3-10 stops at the dry-run command above. The real publish commands below are documentation only and must not be executed unless the user later gives a separate explicit publish authorization:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
npm publish --tag alpha
|
|
135
|
+
npm publish --tag alpha --access public
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Before any future real publish, a maintainer must manually confirm:
|
|
139
|
+
|
|
140
|
+
- `git rev-parse HEAD` and `git rev-parse origin/main` still match the intended reviewed SHA.
|
|
141
|
+
- After committing this P3-10 evidence packet, trigger a fresh `.github/workflows/release-candidate.yml` run for the new commit and verify that `gh run view <new-run-id> --json headSha,status,conclusion,url,jobs` shows that post-documentation commit SHA and success.
|
|
142
|
+
- Do not use run `27945938663` as the final publish evidence after the P3-10 docs/tests are committed; it proves only pre-documentation SHA `fdba3ebccb2e57a0ad295101028a2a3937a92204`.
|
|
143
|
+
- `npm run typecheck`, `npm run lint`, `npm test`, `npm run build`, `npm run package:check`, `npm run dogfood`, `npm run daemon:verify`, `npm run runtime:safety`, `npm run release:candidate -- --out-dir <tmp>`, `npm run release:verify -- --dir <tmp>`, `npm audit --omit=dev`, `npm pack --dry-run --json --ignore-scripts`, `npm publish --dry-run --ignore-scripts --tag alpha`, `node ./dist/cli/main.js agents --json`, `node ./dist/cli/main.js doctor --json`, and `git diff --check` pass.
|
|
144
|
+
- `npm publish --dry-run --ignore-scripts --tag alpha` reports dry-run mode and `tag alpha`; if it reports `latest`, stop.
|
|
145
|
+
- `npm view agent-cli-runtime@0.1.0-alpha.0 version --json` does not show an already-created immutable version.
|
|
146
|
+
- `npm dist-tag ls agent-cli-runtime` confirms `latest` will not move to this pre-alpha version.
|
|
147
|
+
- npm 2FA or the package's configured publish policy is ready for the maintainer account.
|
|
148
|
+
- Trusted publishing is not configured for P3-10. A future trusted-publishing path would need a separate publish workflow, npm-side trusted publisher configuration, and explicit `id-token: write`; none of that is present in this release-candidate workflow.
|
|
149
|
+
- Manual local publish must not claim GitHub Actions provenance. Provenance is a future trusted-publishing concern, not a P3-10 dry-run claim.
|
|
150
|
+
|
|
151
|
+
Post-publish checks for a separately authorized future publish:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npm view agent-cli-runtime@0.1.0-alpha.0 version dist-tags --json
|
|
155
|
+
npm dist-tag ls agent-cli-runtime
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Rollback boundary:
|
|
159
|
+
|
|
160
|
+
- If only the dist-tag is wrong, use `npm dist-tag add agent-cli-runtime@0.1.0-alpha.0 alpha` and, only after confirming it points at the accidental alpha, `npm dist-tag rm agent-cli-runtime latest`.
|
|
161
|
+
- If package contents are wrong, publish a new corrected pre-release version; npm does not allow overwriting `agent-cli-runtime@0.1.0-alpha.0`.
|
|
162
|
+
- Use `npm unpublish agent-cli-runtime@0.1.0-alpha.0` only if npm policy allows it and a maintainer accepts the registry impact; otherwise deprecate the bad version.
|
|
163
|
+
|
|
164
|
+
## P3-7 API / CLI Schema Freeze
|
|
165
|
+
|
|
166
|
+
P3-7 changes documentation and drift protection for existing public/CLI contracts:
|
|
167
|
+
|
|
168
|
+
- Added [docs/api-schema-contract.md](./api-schema-contract.md) as the schema inventory and versioning policy entrypoint.
|
|
169
|
+
- Public root value export remains `createAgentRuntime`; public type exports remain source-compatible package-root imports for the runtime facade, run/goal records, replay/event envelopes, diagnostics/store shapes, and adapter-authoring types.
|
|
170
|
+
- Internal `dist/**` files may exist in the package, but subpath imports into storage/parser/adapter implementation are not documented API.
|
|
171
|
+
- Frozen schema inventory: `agent-runtime.event.v1`, `agent-runtime.diagnostics.v1`, `agent-runtime.conformance.v1`, `agent-runtime.realSmoke.v1`, `agent-runtime.storeHealth.v1`, `agent-runtime.storeRepair.v1`, `agent-runtime.cliError.v1`, `agent-cli-runtime.releaseVerification.v1`, and `agent-cli-runtime.releaseGateEvidence.v1`.
|
|
172
|
+
- Version bump policy: optional additive fields may stay in-schema; field removal/rename/type or semantic changes require a schema version bump; terminal reason/classification vocabulary changes require docs, tests, and a migration note.
|
|
173
|
+
- Failure taxonomy remains explicit: skipped evidence is not success, `auth_missing` is not unavailable, and `needs_verification` is not guessed into flag support.
|
|
174
|
+
- Default gates still do not pass `--allow-real-run`.
|
|
175
|
+
|
|
176
|
+
P3-7 local validation evidence on 2026-06-22:
|
|
177
|
+
|
|
178
|
+
- `npm run typecheck`: passed.
|
|
179
|
+
- `npm run lint`: passed.
|
|
180
|
+
- `npm test`: passed with 196 tests and 1 skipped installed-package smoke.
|
|
181
|
+
- `npm run build`: passed.
|
|
182
|
+
- `npm run package:check`: passed with `package boundary ok: 151 files checked`.
|
|
183
|
+
- `node ./dist/cli/main.js agents --json`: passed; Codex and OpenCode available, Claude Code available with `auth_missing`.
|
|
184
|
+
- `node ./dist/cli/main.js doctor --json`: passed with `ok: true`; Claude Code remains `auth_missing`.
|
|
185
|
+
- `node ./dist/cli/main.js conformance --mode real --agent all --json`: passed without `--allow-real-run`; Codex and OpenCode reported `real_run_skipped`, Claude Code reported `auth_missing`.
|
|
186
|
+
- `node ./dist/cli/main.js smoke --mode real --agent codex --json`: passed as safe preflight and reported `real_run_skipped`.
|
|
187
|
+
- `git diff --check`: passed.
|
|
188
|
+
|
|
189
|
+
## P3-6 Real CLI Opt-In Smoke Evidence
|
|
190
|
+
|
|
191
|
+
P3-6 changes how real smoke evidence is requested and reviewed:
|
|
192
|
+
|
|
193
|
+
- `node ./dist/cli/main.js smoke --mode real --agent <id> --json` does not launch a real agent run; it emits `schemaVersion: "agent-runtime.realSmoke.v1"` with `runClassification: "real_run_skipped"` or another preflight classification.
|
|
194
|
+
- Authenticated real runs require `--allow-real-run` and expected text, for example `node ./dist/cli/main.js smoke --mode real --agent codex --allow-real-run --expect-text <safe_text> --json`.
|
|
195
|
+
- The same command shape is documented for Codex, Claude Code, and OpenCode.
|
|
196
|
+
- The summary includes `adapter`, `version`, `auth`, `modelsSource`, `runClassification`, `expectedTextMatched`, redacted/truncated `observedTextTail`, `cwdMutationChecked`, `cwdMutated`, `diagnosticsCount`, `skippedReason`, and `failureReason`.
|
|
197
|
+
- The summary excludes prompt text, token values, private cwd, raw stdout/stderr, and final run records.
|
|
198
|
+
- A custom `--prompt` or `--prompt-file` without `--expect-text` cannot pass on exit `0`; it is classified as `unexpected_output`.
|
|
199
|
+
- Preflight/run classifications include `auth_missing`, `unavailable_executable`, `unsupported_flag`, `unexpected_output`, `cwd_mutated`, `needs_verification`, and `real_run_skipped`.
|
|
200
|
+
- Claude Anthropic-compatible provider docs use environment variable names and placeholders only; no real token value, provider URL, or private model alias is committed.
|
|
201
|
+
- `.github/workflows/ci.yml`, `.github/workflows/release-candidate.yml`, `scripts/dogfood.mjs`, `scripts/create-release-candidate.mjs`, and `package.json` remain free of `--allow-real-run`.
|
|
202
|
+
|
|
203
|
+
P3-6 local validation evidence on 2026-06-22:
|
|
204
|
+
|
|
205
|
+
- `npm run typecheck`: passed.
|
|
206
|
+
- `npm run lint`: passed.
|
|
207
|
+
- `npm test`: passed with 191 tests and 1 skipped installed-package smoke.
|
|
208
|
+
- `npm run build`: passed.
|
|
209
|
+
- `npm run package:check`: passed with `package boundary ok: 147 files checked`.
|
|
210
|
+
- `node ./dist/cli/main.js conformance --mode real --agent all --json`: passed without `--allow-real-run`; Codex and OpenCode reported `real_run_skipped`, Claude Code reported `auth_missing`.
|
|
211
|
+
- `node ./dist/cli/main.js smoke --mode real --agent codex --json`: passed as safe preflight and reported `real_run_skipped`.
|
|
212
|
+
- `node ./dist/cli/main.js smoke --mode real --agent codex --allow-real-run --expect-text "agent-runtime real smoke ok" --timeout-ms 120000 --json`: completed with `runClassification: "success"`, `expectedTextMatched: true`, and `cwdMutated: false`. A 30s default-timeout retry can still classify as `timeout` in this environment.
|
|
213
|
+
- `node ./dist/cli/main.js smoke --mode real --agent claude --allow-real-run --expect-text "agent-runtime real smoke ok" --json`: completed with `runClassification: "auth_missing"` before launch.
|
|
214
|
+
- `node ./dist/cli/main.js smoke --mode real --agent opencode --allow-real-run --expect-text "agent-runtime real smoke ok" --timeout-ms 120000 --json`: completed with `runClassification: "success"`, `expectedTextMatched: true`, and `cwdMutated: false`. A 30s default-timeout retry can still classify as `timeout` in this environment.
|
|
215
|
+
|
|
216
|
+
## Historical P3-5 Remote Release Evidence Closure
|
|
217
|
+
|
|
218
|
+
P3-5 closed the P3-4 remote evidence gap for its workflow head SHA. It remains historical evidence only and does not prove the P3-8, P3-9, or P3-10 target SHA.
|
|
219
|
+
|
|
220
|
+
Workflow evidence target:
|
|
221
|
+
|
|
222
|
+
- Branch: `main`.
|
|
223
|
+
- Workflow head SHA: `8d7bc2a19c626caa1ad5223acbcd35df34aff18e`.
|
|
224
|
+
- Trigger command: `gh workflow run release-candidate.yml --ref main`.
|
|
225
|
+
- Run id: `27932628093`.
|
|
226
|
+
- Run URL: `https://github.com/iiwish/agent-cli-runtime/actions/runs/27932628093`.
|
|
227
|
+
- Event: `workflow_dispatch`.
|
|
228
|
+
- Workflow: `Release Candidate`.
|
|
229
|
+
- Run status/conclusion: `completed` / `success`.
|
|
230
|
+
- Run created/updated: `2026-06-22T05:56:49Z` / `2026-06-22T05:57:59Z`.
|
|
231
|
+
- Job `Build release candidate artifacts` started at `2026-06-22T05:56:53Z`, completed at `2026-06-22T05:57:58Z`, and concluded `success`.
|
|
232
|
+
- Steps `Install dependencies`, `Run CI gate`, `Run dogfood gate without authenticated real runs`, `Create npm pack artifact and gate evidence without publishing`, `Upload tarball`, `Upload pack metadata`, `Upload package file list`, `Upload daemon-ready gate evidence`, and `Upload release verification` all concluded `success`.
|
|
233
|
+
- Download directory: `/tmp/agent-runtime-p3-5-remote-7rkBqm/downloaded`.
|
|
234
|
+
- Normalized review directory: `/tmp/agent-runtime-p3-5-remote-7rkBqm/normalized`.
|
|
235
|
+
|
|
236
|
+
Historical artifact metadata from the GitHub Actions API:
|
|
237
|
+
|
|
238
|
+
| Artifact | GitHub artifact id | Archive size | Digest | Expires |
|
|
239
|
+
| --- | ---: | ---: | --- | --- |
|
|
240
|
+
| `agent-cli-runtime-tarball` | `7784276720` | `206911` bytes | `sha256:8f7c4b8d9aa4aee9f375fcbf1de5644884d388693832ed42310dfc41a48e6270` | `2026-07-06T05:57:52Z` |
|
|
241
|
+
| `agent-cli-runtime-pack-metadata` | `7784276910` | `1960` bytes | `sha256:c28f03b875ca489eee15f0867d4dd309f0dbc46a2ed9184f61be8fc5f5b1e773` | `2026-07-06T05:57:53Z` |
|
|
242
|
+
| `agent-cli-runtime-package-files` | `7784277102` | `947` bytes | `sha256:7bff251b88d155027061de0e32a2f065e4614e61d2cc1cdceabbf9333fae4e03` | `2026-07-06T05:57:54Z` |
|
|
243
|
+
| `agent-cli-runtime-gate-evidence` | `7784277275` | `443` bytes | `sha256:ddb608e25f79489f16604a01de10a2ab0664721636b1f20448e18adcd369caf2` | `2026-07-06T05:57:55Z` |
|
|
244
|
+
| `agent-cli-runtime-release-verification` | `7784277464` | `649` bytes | `sha256:c97a91bb356a1934d82ebcc69404ad614968a2ab3904a6e9d5871bd8c818ed78` | `2026-07-06T05:57:56Z` |
|
|
245
|
+
|
|
246
|
+
Downloaded artifact normalization:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
gh run download 27932628093 --dir /tmp/agent-runtime-p3-5-remote-7rkBqm/downloaded
|
|
250
|
+
cp /tmp/agent-runtime-p3-5-remote-7rkBqm/downloaded/agent-cli-runtime-tarball/agent-cli-runtime-0.1.0-alpha.0.tgz /tmp/agent-runtime-p3-5-remote-7rkBqm/normalized/
|
|
251
|
+
cp /tmp/agent-runtime-p3-5-remote-7rkBqm/downloaded/agent-cli-runtime-pack-metadata/npm-pack.json /tmp/agent-runtime-p3-5-remote-7rkBqm/normalized/
|
|
252
|
+
cp /tmp/agent-runtime-p3-5-remote-7rkBqm/downloaded/agent-cli-runtime-package-files/package-files.txt /tmp/agent-runtime-p3-5-remote-7rkBqm/normalized/
|
|
253
|
+
cp /tmp/agent-runtime-p3-5-remote-7rkBqm/downloaded/agent-cli-runtime-gate-evidence/gate-evidence.json /tmp/agent-runtime-p3-5-remote-7rkBqm/normalized/
|
|
254
|
+
cp /tmp/agent-runtime-p3-5-remote-7rkBqm/downloaded/agent-cli-runtime-release-verification/release-verification.json /tmp/agent-runtime-p3-5-remote-7rkBqm/normalized/
|
|
255
|
+
npm run release:verify -- --dir /tmp/agent-runtime-p3-5-remote-7rkBqm/normalized
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Downloaded artifact re-verification result:
|
|
259
|
+
|
|
260
|
+
- `schemaVersion`: `agent-cli-runtime.releaseVerification.v1`
|
|
261
|
+
- `ok`: `true`
|
|
262
|
+
- diagnostics: empty
|
|
263
|
+
- package file count: `147`
|
|
264
|
+
- local `npm pack --dry-run --json --ignore-scripts` file count at review: `147`
|
|
265
|
+
- artifact names: `agent-cli-runtime-tarball`, `agent-cli-runtime-pack-metadata`, `agent-cli-runtime-package-files`, `agent-cli-runtime-gate-evidence`, `agent-cli-runtime-release-verification`
|
|
266
|
+
- tarball: `agent-cli-runtime-0.1.0-alpha.0.tgz`
|
|
267
|
+
- tarball size: `206662` bytes
|
|
268
|
+
- tarball sha256: `6e7711a275a1d58e862809e4dd5d34c76cf79ca5f812af1e16872ea54b97542c`
|
|
269
|
+
- npm pack shasum: `3ee52f4b97131527de752651f5a395b769ccf7c0`
|
|
270
|
+
- package name/version: `agent-cli-runtime@0.1.0-alpha.0`
|
|
271
|
+
- gate evidence schema: `agent-cli-runtime.releaseGateEvidence.v1`
|
|
272
|
+
- gate evidence commands: `npm run daemon:verify`, `npm run runtime:safety`
|
|
273
|
+
- gate evidence package source: both `installed-tarball`
|
|
274
|
+
- gate evidence flags: `noAuthenticatedRealRun: true`, `noNpmPublish: true`, `noNpmToken: true`
|
|
275
|
+
|
|
276
|
+
P3-5 local sanity evidence on 2026-06-22:
|
|
277
|
+
|
|
278
|
+
- `git diff --check`: passed before P3-5 doc/test edits.
|
|
279
|
+
- `node ./dist/cli/main.js agents --json`: passed; Codex `codex-cli 0.142.0-alpha.6` and OpenCode `1.15.6` available, Claude Code `2.1.178` available with `auth_missing`.
|
|
280
|
+
- `node ./dist/cli/main.js doctor --json`: passed with `ok: true`; Claude Code remains `auth_missing`.
|
|
281
|
+
- `node ./dist/cli/main.js conformance --mode real --agent all --json`: passed without `--allow-real-run`; Codex and OpenCode reported `real_run_skipped` / `real_run_not_allowed`, Claude Code reported `auth_missing`. No authenticated real agent run was launched.
|
|
282
|
+
|
|
283
|
+
## P3-4 CI / Release Gate Alignment
|
|
284
|
+
|
|
285
|
+
P3-4 is local-first release gate alignment, not a new runtime feature and not an npm publication:
|
|
286
|
+
|
|
287
|
+
- CI matrix: `.github/workflows/ci.yml` keeps Node.js 20/22/24 for typecheck, lint, tests, build, production dependency audit, package boundary checks, and pack dry-run.
|
|
288
|
+
- Single-Node release gates: CI now runs `npm run daemon:verify`, `npm run runtime:safety`, and `npm run dogfood` once on Node.js 22 to avoid repeating installed-package gates across the matrix.
|
|
289
|
+
- Release-candidate workflow: `.github/workflows/release-candidate.yml` remains manual `workflow_dispatch`, runs `npm ci`, `npm run ci`, `npm run dogfood`, then runs `npm run release:candidate -- --out-dir release-candidate`.
|
|
290
|
+
- Candidate artifacts: `release:candidate` writes `npm-pack.json`, `package-files.txt`, `gate-evidence.json`, the tarball, and `release-verification.json`.
|
|
291
|
+
- Gate evidence schema: `gate-evidence.json` uses `schemaVersion: "agent-cli-runtime.releaseGateEvidence.v1"` and records `npm run daemon:verify` plus `npm run runtime:safety` with installed-package output schema versions.
|
|
292
|
+
- Verifier: `release:verify` requires `gate-evidence.json`; missing or incomplete daemon-ready gate evidence fails verification while package boundary, private path, token-looking value, Bearer, and auth env checks remain active.
|
|
293
|
+
- Boundary: workflows still contain no `npm publish`, no `NODE_AUTH_TOKEN` / `NPM_TOKEN`, no trusted-publishing credential setup, and no `--allow-real-run`.
|
|
294
|
+
|
|
295
|
+
Remote P3-4 evidence was pending until P3-5. P3-5 run `27932628093` is the historical workflow-head evidence closure for the five-artifact set.
|
|
296
|
+
|
|
297
|
+
## P3-1 Daemon-Ready Contract Hardening
|
|
298
|
+
|
|
299
|
+
P3-1 is a post-P2-13 contract freeze, not a new release publication:
|
|
300
|
+
|
|
301
|
+
- New embedding contract: [docs/daemon-ready-contract.md](./daemon-ready-contract.md).
|
|
302
|
+
- Runtime positioning: local-first execution kernel for daemon/product shell embedding, not hosted control plane.
|
|
303
|
+
- Root value API boundary: still `createAgentRuntime` only.
|
|
304
|
+
- Schema freeze: event envelope `agent-runtime.event.v1`, diagnostics bundle `agent-runtime.diagnostics.v1`, conformance report `agent-runtime.conformance.v1`, store health `agent-runtime.storeHealth.v1`, store repair `agent-runtime.storeRepair.v1`, and CLI JSON error `agent-runtime.cliError.v1`.
|
|
305
|
+
- Compatibility rule: optional fields may be added in-schema; removing, renaming, changing type, or changing stable semantics requires a schema bump.
|
|
306
|
+
- Failure taxonomy: event terminal reasons remain stable; CLI/conformance classifications such as `real_run_skipped`, `unsupported_flag`, `unexpected_output`, `cwd_mutated`, `needs_verification`, and `unavailable_executable` remain explicit evidence states rather than being converted to success.
|
|
307
|
+
- Non-goals: no daemon/API server, no database/WAL, no remote worker, no UI/artifact layer, no telemetry, no npm publish, no publish workflow, no npm token/trusted publishing configuration.
|
|
308
|
+
|
|
309
|
+
P3-1 local validation on 2026-06-22:
|
|
310
|
+
|
|
311
|
+
- `npm run typecheck`: passed.
|
|
312
|
+
- `npm run lint`: passed.
|
|
313
|
+
- `npm test`: passed with 173 tests across 9 files.
|
|
314
|
+
- `npm run build`: passed.
|
|
315
|
+
- `npm run package:check`: passed with `package boundary ok: 147 files checked`.
|
|
316
|
+
- `npm run release:candidate -- --out-dir /tmp/agent-runtime-p3-1-G8WgWS`: passed, producing `agent-cli-runtime-0.1.0-alpha.0.tgz`.
|
|
317
|
+
- `npm run release:verify -- --dir /tmp/agent-runtime-p3-1-G8WgWS`: passed with `schemaVersion: "agent-cli-runtime.releaseVerification.v1"`, `ok: true`, package file count `147`, and empty diagnostics.
|
|
318
|
+
- `npm pack --dry-run`: passed with total files `147` and `docs/daemon-ready-contract.md` included.
|
|
319
|
+
- `node ./dist/cli/main.js agents --json`: passed.
|
|
320
|
+
- `node ./dist/cli/main.js doctor --json`: passed with `ok: true`; Claude Code remains `auth_missing`, which is expected local auth evidence rather than real-run success.
|
|
321
|
+
- `node ./dist/cli/main.js conformance --mode real --agent all --json`: passed without `--allow-real-run`; Codex `0.142.0-alpha.6` and OpenCode `1.15.6` reported `real_run_skipped`, Claude Code `2.1.178` reported `auth_missing`.
|
|
322
|
+
- `git diff --check`: passed.
|
|
323
|
+
- `npm publish --dry-run` was not run for P3-1 because this stage does not change publish readiness or perform publish simulation.
|
|
324
|
+
|
|
325
|
+
## P2-13 Alpha Publish Readiness
|
|
326
|
+
|
|
327
|
+
Decision state:
|
|
328
|
+
|
|
329
|
+
- npm publication: not performed.
|
|
330
|
+
- Package metadata: `repository`, `homepage`, and `bugs` are present alongside the existing package entrypoint, files, engines, keywords, and `publishConfig.tag: "alpha"`.
|
|
331
|
+
- Public API boundary: package root value export remains `createAgentRuntime` only; public types remain declaration/type surface.
|
|
332
|
+
- Publish runbook: [docs/release-publish-runbook.md](./release-publish-runbook.md) records dry-run, real publish commands, human confirmation points, dist-tag checks, rollback/deprecation/unpublish boundaries, 2FA, trusted publishing, provenance, and token strategy.
|
|
333
|
+
- Workflow strategy: `.github/workflows/ci.yml` and `.github/workflows/release-candidate.yml` remain artifact/check workflows only. They do not run `npm publish`, do not configure registry credentials, and do not require npm tokens.
|
|
334
|
+
- Token/provenance/2FA decision: prefer future trusted publishing through a dedicated publish workflow and npm-side trusted publisher configuration; for a first manual alpha, use interactive maintainer publish with npm 2FA and no committed tokens. Trusted publishing is not configured in P2-13, and local manual publish must not claim GitHub Actions provenance.
|
|
335
|
+
- Dist-tag decision: future real publish must use `--tag alpha`; `latest` must not move for this pre-alpha package.
|
|
336
|
+
- Rollback decision: wrong dist-tags are fixed with `npm dist-tag`; unsafe package content requires a new version, deprecation, or npm-policy-eligible unpublish. The same `name@version` cannot be overwritten.
|
|
337
|
+
|
|
338
|
+
P2-13 local validation on 2026-06-22:
|
|
339
|
+
|
|
340
|
+
- `npm run typecheck`: passed.
|
|
341
|
+
- `npm run lint`: passed.
|
|
342
|
+
- `npm test`: passed with 172 tests across 9 files.
|
|
343
|
+
- `npm run build`: passed.
|
|
344
|
+
- `npm run package:check`: passed with `package boundary ok: 146 files checked`.
|
|
345
|
+
- `npm run release:candidate -- --out-dir <tmp-dir>`: passed, producing `agent-cli-runtime-0.1.0-alpha.0.tgz`.
|
|
346
|
+
- `npm run release:verify -- --dir <tmp-dir>`: passed with `schemaVersion: "agent-cli-runtime.releaseVerification.v1"`, `ok: true`, package file count `146`, and empty diagnostics.
|
|
347
|
+
- `npm pack --dry-run`: passed with total files `146` and `docs/release-publish-runbook.md` included.
|
|
348
|
+
- `npm publish --dry-run --ignore-scripts --tag alpha`: passed as a dry-run. npm reported `Publishing to https://registry.npmjs.org/ with tag alpha and default access (dry-run)` and did not publish.
|
|
349
|
+
- `node ./dist/cli/main.js agents --json`: passed.
|
|
350
|
+
- `node ./dist/cli/main.js doctor --json`: passed with `ok: true`; Claude Code remains `auth_missing`, which is expected local auth evidence rather than real-run success.
|
|
351
|
+
- `git diff --check`: passed.
|
|
352
|
+
|
|
353
|
+
## Local Verification Commands
|
|
354
|
+
|
|
355
|
+
Run these from the repository root:
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
npm run typecheck
|
|
359
|
+
npm run lint
|
|
360
|
+
npm test
|
|
361
|
+
npm run build
|
|
362
|
+
npm run package:check
|
|
363
|
+
npm run dogfood
|
|
364
|
+
npm run prepublish:check
|
|
365
|
+
npm run release:candidate -- --out-dir release-candidate
|
|
366
|
+
npm run release:verify -- --dir release-candidate
|
|
367
|
+
npm pack --dry-run
|
|
368
|
+
npm publish --dry-run --ignore-scripts --tag alpha
|
|
369
|
+
node ./dist/cli/main.js agents --json
|
|
370
|
+
node ./dist/cli/main.js doctor --json
|
|
371
|
+
node ./dist/cli/main.js conformance --mode real --agent all --json
|
|
372
|
+
node ./dist/cli/main.js smoke --mode real --agent codex --json
|
|
373
|
+
node ./dist/cli/main.js smoke --mode real --agent codex --allow-real-run --expect-text "agent-runtime real smoke ok" --json
|
|
374
|
+
git diff --check
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
`npm publish --dry-run --ignore-scripts --tag alpha` is a local manual safety check only. The explicit `--tag alpha` is required so dry-run output matches the pre-alpha release intent instead of reporting `latest`. Do not add it as a required CI gate unless npm dry-run output is proven stable for this repository and registry context.
|
|
378
|
+
|
|
379
|
+
## Remote CI Evidence
|
|
380
|
+
|
|
381
|
+
P2-12 remote audit evidence on 2026-06-20:
|
|
382
|
+
|
|
383
|
+
- Local branch: `main`.
|
|
384
|
+
- Remote branch: `main`.
|
|
385
|
+
- Commit SHA: `2f8832119b4ebdb8393077052560589a398ebf56`.
|
|
386
|
+
- `gh auth status` succeeded with workflow-capable GitHub CLI credentials.
|
|
387
|
+
- `gh workflow run release-candidate.yml --ref main` created run `27869580048`.
|
|
388
|
+
- Run URL: `https://github.com/iiwish/agent-cli-runtime/actions/runs/27869580048`.
|
|
389
|
+
- Event: `workflow_dispatch`.
|
|
390
|
+
- Workflow: `Release Candidate`.
|
|
391
|
+
- Run status/conclusion: `completed` / `success`.
|
|
392
|
+
- Run created: `2026-06-20T11:19:33Z`.
|
|
393
|
+
- Run updated: `2026-06-20T11:20:40Z`.
|
|
394
|
+
- Job `Build release candidate artifacts` started at `2026-06-20T11:19:37Z`, completed at `2026-06-20T11:20:39Z`, and concluded `success`.
|
|
395
|
+
- The workflow steps `Install dependencies`, `Run CI gate`, `Run dogfood gate without authenticated real runs`, `Create npm pack artifact without publishing`, and all four artifact upload steps concluded `success`.
|
|
396
|
+
- GitHub emitted a non-blocking annotation that the referenced actions still target deprecated Node.js 20 internals while the runner forces Node.js 24 for those actions.
|
|
397
|
+
|
|
398
|
+
Expected remote evidence:
|
|
399
|
+
|
|
400
|
+
- `.github/workflows/ci.yml` runs typecheck, lint, tests, build, production dependency audit, package boundary check, and `npm pack --dry-run` on Node.js 20/22/24.
|
|
401
|
+
- The CI release-gates job runs once on Node.js 22 and executes `npm run daemon:verify`, `npm run runtime:safety`, and `npm run dogfood` without passing `--allow-real-run`.
|
|
402
|
+
- `.github/workflows/release-candidate.yml` is manual `workflow_dispatch` only.
|
|
403
|
+
- The release-candidate workflow runs `npm ci`, `npm run ci`, `npm run dogfood`, creates npm pack metadata and daemon-ready gate evidence through `npm run release:candidate`, verifies the generated artifacts through `npm run release:verify`, and uploads artifacts.
|
|
404
|
+
- No workflow runs `npm publish`, sets `NODE_AUTH_TOKEN`, or requires an npm token.
|
|
405
|
+
P2-13 keeps those workflow guarantees and does not add a publish workflow.
|
|
406
|
+
|
|
407
|
+
Remote GitHub Actions evidence for the P3-10 pre-documentation release-candidate target is run `27945938663` on SHA `fdba3ebccb2e57a0ad295101028a2a3937a92204`. It must not be reused as final publish evidence after this packaged evidence packet is committed. Historical P3-9 run `27943672095` only proves target SHA `65fac505ca3eb830a06d8656068cf4ed5f6dd46a`; historical P3-9 interim run `27942743285` only proves target SHA `a0299a7d81bb614661922bebc8c75496cf0a3d11` before the strict `fixtures?` package-boundary lock; historical P3-8 run `27940814340` only proves target SHA `eb8de0f9b1edfa3f94c35a50b31005c5d3c105d4`; historical P3-5 run `27932628093` only proves workflow head SHA `8d7bc2a19c626caa1ad5223acbcd35df34aff18e`; historical P2-12 run `27869580048` must not be reused as evidence for later release-candidate targets.
|
|
408
|
+
|
|
409
|
+
## Release-Candidate Artifacts
|
|
410
|
+
|
|
411
|
+
The manual release-candidate workflow uploads:
|
|
412
|
+
|
|
413
|
+
- `agent-cli-runtime-tarball`: the packed `agent-cli-runtime-0.1.0-alpha.0.tgz` tarball.
|
|
414
|
+
- `agent-cli-runtime-pack-metadata`: `release-candidate/npm-pack.json` from `npm pack --json`.
|
|
415
|
+
- `agent-cli-runtime-package-files`: `release-candidate/package-files.txt`, one packed package path per line.
|
|
416
|
+
- `agent-cli-runtime-gate-evidence`: `release-candidate/gate-evidence.json` from `npm run release:candidate`.
|
|
417
|
+
- `agent-cli-runtime-release-verification`: `release-candidate/release-verification.json` from `npm run release:verify`.
|
|
418
|
+
|
|
419
|
+
Artifacts are retained for 14 days to keep the audit window explicit while avoiding long-lived stale release-candidate evidence.
|
|
420
|
+
|
|
421
|
+
The P3-10 artifact set has five artifacts and all were re-verified from downloaded GitHub Actions artifacts. The P2-12 downloaded artifact table below is retained as historical evidence for commit `2f8832119b4ebdb8393077052560589a398ebf56`; it predates `agent-cli-runtime-gate-evidence` and must not be reused as current release-candidate evidence.
|
|
422
|
+
|
|
423
|
+
Downloaded artifact evidence from run `27869580048`:
|
|
424
|
+
|
|
425
|
+
| Artifact | GitHub artifact id | Archive size | Digest | Expires |
|
|
426
|
+
| --- | ---: | ---: | --- | --- |
|
|
427
|
+
| `agent-cli-runtime-tarball` | `7764861497` | `187609` bytes | `sha256:db669f9ccf34873ec1619c9d7fe1669a2bdc49a4de64a7e183c1d8fe5f1a4aea` | `2026-07-04T11:20:35Z` |
|
|
428
|
+
| `agent-cli-runtime-pack-metadata` | `7764861577` | `1921` bytes | `sha256:0b02f459bd8bdf87c1787ecc43b2a748e27841bd59092b2e72b405970503250f` | `2026-07-04T11:20:36Z` |
|
|
429
|
+
| `agent-cli-runtime-package-files` | `7764861640` | `924` bytes | `sha256:9b3d5b591520d5c86723e6cb47c1bf24d11723b85d17251b4cc2095115608c52` | `2026-07-04T11:20:37Z` |
|
|
430
|
+
| `agent-cli-runtime-release-verification` | `7764861710` | `444` bytes | `sha256:56cb8a125a27b88b816762b6cc9ed5320da66fcc26040c4fa4fec39faec2cf99` | `2026-07-04T11:20:37Z` |
|
|
431
|
+
|
|
432
|
+
`gh run download 27869580048` downloaded artifacts into one subdirectory per artifact name. The downloaded files were copied into a temporary normalized review directory so the verifier could inspect `npm-pack.json`, `package-files.txt`, `release-verification.json`, and the tarball together.
|
|
433
|
+
|
|
434
|
+
Downloaded artifact re-verification:
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
npm run release:verify -- --dir /tmp/agent-runtime-p2-12-remote-5P5MSc/normalized
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
Result:
|
|
441
|
+
|
|
442
|
+
- `schemaVersion`: `agent-cli-runtime.releaseVerification.v1`
|
|
443
|
+
- `ok`: `true`
|
|
444
|
+
- package file count: `145`
|
|
445
|
+
- tarball: `agent-cli-runtime-0.1.0-alpha.0.tgz`
|
|
446
|
+
- tarball size: `187378` bytes
|
|
447
|
+
- tarball sha256: `3701bd6355651bbc200d5c017a9b01c3dd7136140b64dee0781e6eb601a7a657`
|
|
448
|
+
- package name/version: `agent-cli-runtime@0.1.0-alpha.0`
|
|
449
|
+
- diagnostics: empty
|
|
450
|
+
|
|
451
|
+
## Local Artifact Generation And Verification
|
|
452
|
+
|
|
453
|
+
Generate the same artifact shape locally without publishing:
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
npm run release:candidate -- --out-dir release-candidate
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
The command writes `npm-pack.json`, `package-files.txt`, `gate-evidence.json`, the tarball, and `release-verification.json` to the chosen directory. It does not run `npm publish` and should not leave a tarball in the repository root.
|
|
460
|
+
|
|
461
|
+
Verify a local or downloaded artifact directory:
|
|
462
|
+
|
|
463
|
+
```bash
|
|
464
|
+
npm run release:verify -- --dir release-candidate
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
The verification JSON uses `schemaVersion: "agent-cli-runtime.releaseVerification.v1"` and reports `ok`, `checkedFiles`, `tarball`, `diagnostics`, `artifactNames`, `packageName`, and `version`. Paths and secret-looking values in diagnostics are redacted.
|
|
468
|
+
|
|
469
|
+
## Artifact Review Checklist
|
|
470
|
+
|
|
471
|
+
Review the uploaded package file list and pack metadata before treating the candidate as shippable:
|
|
472
|
+
|
|
473
|
+
- No `.reference/`.
|
|
474
|
+
- No `tests/` or fixture directories.
|
|
475
|
+
- No fault fixtures.
|
|
476
|
+
- No `repair-backups/`.
|
|
477
|
+
- No raw corrupt samples.
|
|
478
|
+
- No raw real CLI output.
|
|
479
|
+
- No real private paths.
|
|
480
|
+
- No token-looking values, Bearer values, or auth env assignment values.
|
|
481
|
+
- Includes `docs/daemon-ready-contract.md`.
|
|
482
|
+
- Includes `dist/`, README files, LICENSE, docs, examples, `scripts/dogfood.mjs`, and release docs.
|
|
483
|
+
- Includes `docs/release-publish-runbook.md`.
|
|
484
|
+
- Package root value API remains limited to `createAgentRuntime`; public TypeScript types remain type exports.
|
|
485
|
+
|
|
486
|
+
## Package Boundary
|
|
487
|
+
|
|
488
|
+
`npm run package:check` is the local package boundary gate. It checks npm pack file paths and scans committed docs/examples/scripts for private paths and token-looking content. The release report itself is included in the package so consumers can inspect the candidate evidence and non-goals.
|
|
489
|
+
|
|
490
|
+
`npm run release:verify` is the release artifact gate for generated or downloaded artifacts. It validates npm pack JSON, package file list parity, daemon-ready gate evidence, tarball filename/path/existence, disallowed package paths, private paths, and token-looking values, then emits stable redacted JSON.
|
|
491
|
+
|
|
492
|
+
## Real CLI Evidence Boundary
|
|
493
|
+
|
|
494
|
+
Default release gates do not launch authenticated real agent runs. `conformance --mode real --agent all --json` and `smoke --mode real --agent <id> --json` perform real local executable/version/auth/model/profile certification and report `real_run_skipped`, `auth_missing`, `unsupported_flag`, or `needs_verification` honestly.
|
|
495
|
+
|
|
496
|
+
Authenticated real runs require explicit `--allow-real-run --expect-text <safe_text>` and remain local/manual evidence. The real-smoke summary is redacted and does not contain prompt text, token values, private cwd, raw stdout/stderr, or the final run record.
|
|
497
|
+
|
|
498
|
+
## Known Risks
|
|
499
|
+
|
|
500
|
+
- Remote GitHub Actions evidence is commit-specific; P3-10 run `27945938663` proves pre-documentation SHA `fdba3ebccb2e57a0ad295101028a2a3937a92204`, not any later commit containing this report.
|
|
501
|
+
- Because release docs are packaged, committing this report changes npm pack output; final publish evidence requires a fresh post-documentation release-candidate workflow and artifact re-verification.
|
|
502
|
+
- Historical P3-9 run `27943672095` only proves target SHA `65fac505ca3eb830a06d8656068cf4ed5f6dd46a`; historical P3-9 interim run `27942743285` only proves target SHA `a0299a7d81bb614661922bebc8c75496cf0a3d11` before the strict `fixtures?` package-boundary lock; historical P3-8 run `27940814340` only proves target SHA `eb8de0f9b1edfa3f94c35a50b31005c5d3c105d4`; historical P3-5 run `27932628093` only proves workflow head SHA `8d7bc2a19c626caa1ad5223acbcd35df34aff18e`; historical P2-12 run `27869580048` only proves commit `2f8832119b4ebdb8393077052560589a398ebf56` and predates the gate-evidence artifact.
|
|
503
|
+
- Real CLI behavior, auth state, model lists, and flags can drift after this dated evidence.
|
|
504
|
+
- OpenCode explicit read-only/workspace-write flags, extra dirs, and session/resume remain in `needsVerification`.
|
|
505
|
+
- Claude Code authenticated run smoke depends on local auth or a correctly configured provider environment.
|
|
506
|
+
- npm dry-run output can vary by npm version and registry context, so it remains a manual/local gate rather than a flaky CI requirement.
|
|
507
|
+
- Trusted publishing and provenance are not configured in P2-13. Any future provenance claim must match the actual publish path.
|
|
508
|
+
|
|
509
|
+
## Explicit Non-Goals
|
|
510
|
+
|
|
511
|
+
- Do not publish npm.
|
|
512
|
+
- Do not require npm token or registry credentials.
|
|
513
|
+
- Do not configure trusted publishing or npm provenance.
|
|
514
|
+
- Do not claim stable API.
|
|
515
|
+
- Do not claim OpenDesign daemon parity.
|
|
516
|
+
- Do not add daemon/API server, database, WAL, remote worker, web UI, telemetry, or scheduler expansion.
|
|
517
|
+
- Do not convert `real_run_skipped`, `auth_missing`, `unsupported_flag`, or `needs_verification` into real agent run success.
|