@arnilo/prism 0.0.23 → 0.0.24

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +19 -3
  2. package/dist/agent-event-source.d.ts +11 -0
  3. package/dist/agent-event-source.js +512 -0
  4. package/dist/agent-run-state.js +6 -1
  5. package/dist/agents.js +7 -2
  6. package/dist/contracts.d.ts +157 -0
  7. package/dist/index.d.ts +7 -2
  8. package/dist/index.js +4 -1
  9. package/dist/testing/agent-event-source-conformance.d.ts +4 -0
  10. package/dist/testing/agent-event-source-conformance.js +54 -0
  11. package/dist/testing/persistence-schema.d.ts +2 -2
  12. package/dist/testing/persistence-schema.js +58 -21
  13. package/dist/testing/tool-effect-store-conformance.d.ts +9 -0
  14. package/dist/testing/tool-effect-store-conformance.js +85 -0
  15. package/dist/tool-effects.d.ts +15 -0
  16. package/dist/tool-effects.js +338 -0
  17. package/dist/tools.d.ts +3 -1
  18. package/dist/tools.js +204 -9
  19. package/docs/0.1.0-readiness.md +9 -9
  20. package/docs/a2a.md +6 -2
  21. package/docs/ag-ui-adoption.md +77 -0
  22. package/docs/ag-ui.md +39 -42
  23. package/docs/agent-events.md +5 -1
  24. package/docs/browser-automation.md +2 -0
  25. package/docs/coding-agent-tools.md +2 -0
  26. package/docs/database-persistence.md +2 -0
  27. package/docs/enterprise-postgres-state.md +5 -1
  28. package/docs/host-security.md +8 -1
  29. package/docs/index.md +11 -9
  30. package/docs/mcp-tools.md +17 -2
  31. package/docs/migration.md +22 -0
  32. package/docs/performance.md +24 -0
  33. package/docs/postgres-persistence.md +5 -2
  34. package/docs/public-contracts.md +2 -0
  35. package/docs/release-and-install.md +52 -693
  36. package/docs/server.md +9 -6
  37. package/docs/sqlite-persistence.md +10 -2
  38. package/docs/supervisors.md +2 -0
  39. package/docs/tool-effects.md +95 -0
  40. package/docs/tools.md +4 -0
  41. package/docs/work-tools.md +4 -0
  42. package/package.json +10 -2
@@ -4,56 +4,20 @@
4
4
 
5
5
  Prism is published as one core package, forty first-party capability packages, and six pure-manifest family/profile packages (**47** publishable manifests total). This page describes how they are packed, what each tarball contains, how to install them, the required `@arnilo/prism` peer dependency, the release workflow, and the offline test budget. The measurable 1.0 readiness gates (command-per-gate) live in [`0.1.0-readiness.md`](./0.1.0-readiness.md).
6
6
 
7
- Core package:
8
-
9
- - `@arnilo/prism` — the runtime, contracts, registries, streaming events, CLI (including `prism init`), and the `/docs` hub. `files`: `dist` (with `!dist/__tests__` and `!dist/**/*.map` negations), `docs`, `templates`, `CHANGELOG.md`. `bin`: `prism` -> `dist/cli.js`. `sideEffects`: `["dist/cli.js"]`.
10
-
11
- First-party workspace packages (each has non-optional `@arnilo/prism@0.0.23` peer and `sideEffects: false`; RAG also peers on memory, and server also peers on workflows):
12
-
13
- - `@arnilo/prism-provider-anthropic`, `@arnilo/prism-provider-google`, `@arnilo/prism-provider-openai`, `@arnilo/prism-provider-openrouter`, `@arnilo/prism-provider-kimi`, `@arnilo/prism-provider-zai`, `@arnilo/prism-provider-opencode-go`, `@arnilo/prism-provider-neuralwatt` — provider adapters.
14
- - `@arnilo/prism-provider-azure`, `@arnilo/prism-provider-bedrock`, `@arnilo/prism-provider-vertex` — optional enterprise-cloud adapters (Entra/IAM/ADC; separate from consumer Anthropic/Google).
15
- - `@arnilo/prism-policy` — optional policy-decision ledger and cursor-paginated audit export.
16
- - `@arnilo/prism-model-router` — optional model governance router (allow-list, residency, budgets, circuits, fallbacks) over `ProviderResolver`.
17
- - `@arnilo/prism-work-tools` — optional identity-scoped M365/GWS connectors (`./microsoft365`, `./google-workspace`); host-pinned CLI argv only.
18
- - `@arnilo/prism-provider-ai-sdk` — optional AI SDK `LanguageModelV4` adapter; included by the provider and all umbrellas.
19
- - `@arnilo/prism-compaction-llm` — optional LLM-backed compaction strategy.
20
- - `@arnilo/prism-compaction-observational-memory` — optional source-backed observational memory.
21
- - `@arnilo/prism-observability-opentelemetry` — optional OpenTelemetry adapter for `AgentEvent` streams.
22
- - `@arnilo/prism-tool-validator-json-schema` — bounded JSON Schema tool argument validation.
23
- - `@arnilo/prism-mcp` — MCP transport/client bridge plus explicit authorized Prism tool/command server exposure.
24
- - `@arnilo/prism-coding-agent` / `@arnilo/prism-coding-security` — optional host shell/filesystem tools plus approval, containment, and sandbox policy.
25
- - `@arnilo/prism-session-store-sqlite` / `@arnilo/prism-session-store-postgres` — production session/run persistence, checkpoints, and leases.
26
- - `@arnilo/prism-enterprise-postgres` — optional PostgreSQL policy/evaluation/work-idempotency/model-router composition; separate checksum migration and explicit cleanup.
27
- - `@arnilo/prism-credentials-node` — encrypted-file and keychain credential storage.
28
- - `@arnilo/prism-workflows` — typed bounded DAG orchestration with durable approval, schedules/background runs, composition/state/replay, and multi-process coordination.
29
- - `@arnilo/prism-evals` — optional deterministic scorers, immutable datasets, and bounded batch experiments over `AgentRunResult`.
30
- - `@arnilo/prism-memory` — optional working memory, semantic recall, Embedder/VectorStore contracts, and PostgreSQL/pgvector adapter.
31
- - `@arnilo/prism-rag` — optional bounded text/Markdown chunking, vector indexing/retrieval, stable citations, and ContextProvider integration (peers on memory).
32
- - `@arnilo/prism-server` — optional framework-free authorized Web agent/workflow routes (peers on workflows).
33
- - `@arnilo/prism-supervisor` — optional bounded child delegation and A2A 1.0 card/server/client interoperability.
34
- - `@arnilo/prism-web-tools` — optional bounded host-selected Brave/Exa search and Firecrawl Markdown/schema extraction; native fetch, no vendor SDK/browser.
35
- - `@arnilo/prism-browser` — optional host-supplied Playwright browser tools (`browser_open`/`browser_snapshot`/`browser_act`/`browser_close`); import launches nothing; `playwright-core@1.61.0` optional peer.
36
- - `@arnilo/prism-ag-ui` — optional bounded AG-UI mapper/authorized Web handler/replay plus stable `./acp` sibling; root and ACP imports are inert.
37
- - `@arnilo/prism-caveman` — optional upstream Caveman behavior integration (`upstreamPath` required; not in code/sdk/all profiles).
38
- - `@arnilo/prism-ponytail` — optional upstream Ponytail behavior integration (peer `@dietrichgebert/ponytail` or `upstreamPath`; not in code/sdk/all profiles).
39
-
40
- ### 0.0.12 AG-UI package boundary
41
-
42
- `@arnilo/prism-ag-ui` is a publishable optional code package with root AG-UI exports and stable `./acp` sibling, peer `@arnilo/prism@0.0.23`, pinned `@ag-ui/core@0.0.57` / `@agentclientprotocol/sdk@1.3.0`, and no import-time network/listener/run. It is included by `@arnilo/prism-all` only—not `@arnilo/prism-code` or `@arnilo/prism-sdk`—so coding and SDK profiles stay free of UI protocol dependencies.
43
-
44
- Family/profile packages (pure manifests, no code or `dist`; ship `README.md` and `CHANGELOG.md`; use exact hard `dependencies`):
45
-
46
- - `@arnilo/prism-providers` — all eleven `@arnilo/prism-provider-*` packages: ten HTTP adapters plus AI SDK interoperability.
47
- - `@arnilo/prism-compaction` — both `@arnilo/prism-compaction-*` packages.
48
- - `@arnilo/prism-base` — core + compaction family + JSON Schema validator; excludes providers, MCP, native credentials/storage, and coding tools.
49
- - `@arnilo/prism-code` — base + coding-agent + coding-security + MCP; providers and persistence remain explicit choices.
50
- - `@arnilo/prism-sdk` — base + workflows + MCP + Node credentials + OpenTelemetry; providers and persistence remain explicit choices.
51
- - `@arnilo/prism-evals` remains optional and network-free by default; model judges are host callbacks and live credentialed gates run separately. `examples/evaluation-gate.ts` demonstrates non-zero threshold gating.
52
- - `@arnilo/prism-all` — every first-party package: code + SDK + providers + session and enterprise PostgreSQL persistence + evals + memory/RAG + server + supervisor + web tools + browser + optional policy/router/enterprise providers/work-tools. Installation activates nothing. **0.0.13** enrolls `@arnilo/prism-policy`, `@arnilo/prism-model-router`, `@arnilo/prism-provider-azure`, `@arnilo/prism-provider-bedrock`, `@arnilo/prism-provider-vertex`, and `@arnilo/prism-work-tools` in the umbrella only. Installation alone activates no network/listener, telemetry, database, memory, evaluation, delegation, MCP, shell, filesystem, or browser capability.
53
-
54
- Profile footprint snapshot (Node 24/npm 11, lockfile graph, 2026-07-19): `base` reaches 6 first-party packages and one external dependency root (Ajv); `code` reaches 10 and three (Ajv, MCP SDK, diff); `sdk` reaches 11 and three (Ajv, MCP SDK, keyring); `all` reaches **41** first-party manifests after Phase 8 optional packages ship (graph bump Task 10); AG-UI adds only its protocol SDK dependencies while native database drivers remain all-profile-only. Native database drivers stay out of base/code/sdk; both appear only in all.
55
-
56
- Each code package's `files` array is `["dist", "!dist/__tests__", "!dist/**/*.map", "README.md", "CHANGELOG.md"]`; `README.md`, `LICENSE`, and `CHANGELOG.md` ship in every code-package tarball, the core tarball also ships the `docs/` directory, and family/profile tarballs ship `README.md` + `CHANGELOG.md` + `package.json`.
7
+ Core `@arnilo/prism` ships runtime, CLI, templates, and docs. Every code package has a required `@arnilo/prism@0.0.24` peer; profiles are pure manifests. Installation activates no provider, listener, database, browser, credential, or tool capability.
8
+
9
+ Current **47** publishable manifests:
10
+
11
+ `@arnilo/prism`, `@arnilo/prism-ag-ui`, `@arnilo/prism-browser`, `@arnilo/prism-coding-agent`, `@arnilo/prism-coding-security`, `@arnilo/prism-compaction-llm`
12
+ `@arnilo/prism-compaction-observational-memory`, `@arnilo/prism-credentials-node`, `@arnilo/prism-enterprise-postgres`, `@arnilo/prism-evals`, `@arnilo/prism-mcp`, `@arnilo/prism-memory`
13
+ `@arnilo/prism-model-router`, `@arnilo/prism-observability-opentelemetry`, `@arnilo/prism-policy`, `@arnilo/prism-all`, `@arnilo/prism-base`, `@arnilo/prism-caveman`
14
+ `@arnilo/prism-code`, `@arnilo/prism-compaction`, `@arnilo/prism-ponytail`, `@arnilo/prism-providers`, `@arnilo/prism-sdk`, `@arnilo/prism-provider-ai-sdk`
15
+ `@arnilo/prism-provider-alibaba`, `@arnilo/prism-provider-anthropic`, `@arnilo/prism-provider-azure`, `@arnilo/prism-provider-bedrock`, `@arnilo/prism-provider-google`, `@arnilo/prism-provider-kimi`
16
+ `@arnilo/prism-provider-neuralwatt`, `@arnilo/prism-provider-ollama`, `@arnilo/prism-provider-openai`, `@arnilo/prism-provider-opencode-go`, `@arnilo/prism-provider-openrouter`, `@arnilo/prism-provider-vertex`
17
+ `@arnilo/prism-provider-zai`, `@arnilo/prism-rag`, `@arnilo/prism-server`, `@arnilo/prism-session-store-codecs`, `@arnilo/prism-session-store-postgres`, `@arnilo/prism-session-store-sqlite`
18
+ `@arnilo/prism-supervisor`, `@arnilo/prism-tool-validator-json-schema`, `@arnilo/prism-web-tools`, `@arnilo/prism-work-tools`, `@arnilo/prism-workflows`
19
+
20
+ Core ships `dist`, docs, templates, and `CHANGELOG.md`; code packages ship compiled output, README, license, and changelog. Family/profile packages ship manifest, README, and changelog. `@arnilo/prism-providers` includes all eleven `@arnilo/prism-provider-*` packages.
57
21
 
58
22
  ## When to use it
59
23
 
@@ -81,9 +45,9 @@ Consumers install the core package for the runtime and add first-party packages
81
45
  | Run the default (network-free) test suite | `npm test` |
82
46
  | Dry-run pack core + every package | `npm run pack:dry-run` |
83
47
  | Local mirror of the release verify gate | `npm run release:dry-run` |
84
- | Validate clean tag/version/ranges and reject registry collisions | `npm run release:check -- --version 0.0.23` |
85
- | Preview deterministic publish order | `npm run release:publish -- --version 0.0.23 --dry-run --allow-dirty --allow-untagged` |
86
- | Resume interrupted tagged publication | `npm run release:publish -- --version 0.0.23 --resume --report release-artifacts/publish-report.json` |
48
+ | Validate clean tag/version/ranges and reject registry collisions | `npm run release:check -- --version 0.0.24` |
49
+ | Preview deterministic publish order | `npm run release:publish -- --version 0.0.24 --dry-run --allow-dirty --allow-untagged` |
50
+ | Resume interrupted tagged publication | `npm run release:publish -- --version 0.0.24 --resume --report release-artifacts/publish-report.json` |
87
51
  | Protected PostgreSQL enterprise suite | `PRISM_TEST_POSTGRES_URL="$DATABASE_URL" npm run test:postgres` |
88
52
  | Full SDK readiness gate (typecheck + offline tests + pack) | `npm run sdk:ready` |
89
53
 
@@ -97,9 +61,11 @@ Public core import specifiers (from the root `exports` map):
97
61
  | `@arnilo/prism/providers/openai` | `dist/providers/openai-primitives.{js,d.ts}` |
98
62
  | `@arnilo/prism/providers/media` | `dist/providers/media.{js,d.ts}` |
99
63
  | `@arnilo/prism/testing/provider-conformance` | `dist/testing/provider-conformance.{js,d.ts}` |
64
+ | `@arnilo/prism/testing/agent-event-source-conformance` | `dist/testing/agent-event-source-conformance.{js,d.ts}` |
100
65
  | `@arnilo/prism/testing/session-store-conformance` | `dist/testing/session-store-conformance.{js,d.ts}` |
101
66
  | `@arnilo/prism/testing/compaction-conformance` | `dist/testing/compaction-conformance.{js,d.ts}` |
102
67
  | `@arnilo/prism/testing/tool-conformance` | `dist/testing/tool-conformance.{js,d.ts}` |
68
+ | `@arnilo/prism/testing/tool-effect-store-conformance` | `dist/testing/tool-effect-store-conformance.{js,d.ts}` |
103
69
  | `@arnilo/prism/testing/extension-conformance` | `dist/testing/extension-conformance.{js,d.ts}` |
104
70
  | `@arnilo/prism/testing/persistence-schema` | `dist/testing/persistence-schema.{js,d.ts}` |
105
71
  | `@arnilo/prism/testing/run-ledger-conformance` | `dist/testing/run-ledger-conformance.{js,d.ts}` |
@@ -121,7 +87,7 @@ A packed tarball contains only public compiled output and release files:
121
87
  - Code packages ship `README.md`, `LICENSE`, and `CHANGELOG.md`; family/profile packages ship `README.md` and `CHANGELOG.md`.
122
88
  - The core tarball additionally ships the full `docs/` directory (the docs hub) and `templates/init/` used by `prism init`.
123
89
  - `dist/cli.js` and the `bin` link in core.
124
- - **Tarball filenames.** npm strips the `@scope/` prefix, so the core package `@arnilo/prism` produces a tarball named `arnilo-prism-0.0.23.tgz`; first-party packages produce `arnilo-prism-provider-<name>-0.0.23.tgz` / `arnilo-prism-compaction-<name>-0.0.23.tgz` / `arnilo-prism-coding-agent-0.0.23.tgz`; family/profile packages produce `arnilo-prism-{providers,compaction,base,code,sdk,all}-0.0.23.tgz`. The CLI bin name `prism` is unaffected by the package name (`npx prism` still works; npm allows the bin field to differ from the package name).
90
+ - **Tarball filenames.** npm strips the `@scope/` prefix, so the core package `@arnilo/prism` produces a tarball named `arnilo-prism-0.0.24.tgz`; first-party packages produce `arnilo-prism-provider-<name>-0.0.24.tgz` / `arnilo-prism-compaction-<name>-0.0.24.tgz` / `arnilo-prism-coding-agent-0.0.24.tgz`; family/profile packages produce `arnilo-prism-{providers,compaction,base,code,sdk,all}-0.0.24.tgz`. The CLI bin name `prism` is unaffected by the package name (`npx prism` still works; npm allows the bin field to differ from the package name).
125
91
 
126
92
  Excluded from every tarball by `files` negation:
127
93
 
@@ -140,9 +106,9 @@ Excluded from every tarball by `files` negation:
140
106
  "name": "host-app",
141
107
  "type": "module",
142
108
  "dependencies": {
143
- "@arnilo/prism": "0.0.23",
144
- "@arnilo/prism-enterprise-postgres": "0.0.23",
145
- "@arnilo/prism-provider-openai": "0.0.23"
109
+ "@arnilo/prism": "0.0.24",
110
+ "@arnilo/prism-enterprise-postgres": "0.0.24",
111
+ "@arnilo/prism-provider-openai": "0.0.24"
146
112
  }
147
113
  }
148
114
  ```
@@ -185,11 +151,11 @@ For SDK readiness, run the same one-command gate directly. It composes existing
185
151
  npm run sdk:ready
186
152
  ```
187
153
 
188
- Release publication derives all **47** manifests from the workspace once, validates exact `0.0.23` manifest/lockfile/internal ranges, then uses deterministic dependency order. `release:check` requires a clean commit tagged `v0.0.23` and rejects any existing registry version. `release:publish --resume` skips only registry versions whose internal dependency fingerprint matches the local manifest; conflicting versions fail closed. Each attempted package is written immediately to the JSON report, so a failed job can rerun safely. `--dry-run` performs registry availability checks and invokes `npm publish --dry-run` with explicit public access, provenance, and `latest` tag, but does not publish.
154
+ Release publication derives all **47** manifests from the workspace once, validates exact `0.0.24` manifest/lockfile/internal ranges, then uses deterministic dependency order. `release:check` requires a clean commit tagged `v0.0.24` and rejects any existing registry version. `release:publish --resume` skips only registry versions whose internal dependency fingerprint matches the local manifest; conflicting versions fail closed. Each attempted package is written immediately to the JSON report, so a failed job can rerun safely. `--dry-run` performs registry availability checks and invokes `npm publish --dry-run` with explicit public access, provenance, and `latest` tag, but does not publish.
189
155
 
190
156
  ```bash
191
- npm run release:check -- --version 0.0.23
192
- npm run release:publish -- --version 0.0.23 --dry-run --allow-dirty --allow-untagged
157
+ npm run release:check -- --version 0.0.24
158
+ npm run release:publish -- --version 0.0.24 --dry-run --allow-dirty --allow-untagged
193
159
  ```
194
160
 
195
161
  `--allow-dirty` and `--allow-untagged` exist only for local preview; real publication and CI never pass them. npm registry calls occur only in these release preflight/publication commands, never build/test/package discovery.
@@ -200,6 +166,27 @@ Optional live smoke tests stay separate from SDK readiness because they require
200
166
  PRISM_LIVE_PROVIDER_TESTS=1 npm run test --workspaces --if-present
201
167
  ```
202
168
 
169
+ ### 0.0.24 publish handoff
170
+
171
+ **Decision: GO after protected operator prerequisites below.** Release **0.0.24** (Phase 7, plan 007) ships durable `AgentEventSource`, recoverable `ToolEffectStore`, AG-UI 0.0.57 compatibility, and AG-UI MCP/MCP Apps/A2A fronting. Publishable graph stays **47** manifests. Core remains dependency-free; PostgreSQL event source and enterprise `toolEffects` stay opt-in. Delivery is at-least-once — not exactly-once. See [migration](migration.md) `0.0.23 → 0.0.24` and [tool effects](tool-effects.md).
172
+
173
+ ```bash
174
+ git diff --check
175
+ npm ci
176
+ npm run sdk:ready
177
+ PRISM_TEST_POSTGRES_URL="$DATABASE_URL" npm run test:postgres
178
+ PRISM_TEST_POSTGRES_URL="$DATABASE_URL" node scripts/benchmark-0.0.24.mjs > scripts/benchmark-0.0.24.json
179
+ node --test scripts/budget-gate.test.mjs scripts/tooling-gate.test.mjs
180
+ node scripts/scan-secrets.mjs && node scripts/verify-sbom.mjs
181
+ npm audit --audit-level=moderate
182
+ npm run release:gate
183
+ npm run release:check -- --version 0.0.24 --allow-dirty --allow-untagged --report /tmp/prism-0.0.24-preflight.json
184
+ npm run release:publish -- --version 0.0.24 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.24-dry-run.json
185
+ git tag -s v0.0.24 -m "Prism 0.0.24"
186
+ git verify-tag v0.0.24
187
+ git push origin v0.0.24
188
+ ```
189
+
203
190
  ### 0.0.23 publish handoff
204
191
 
205
192
  **Decision: GO after protected operator prerequisites below.** Release **0.0.23** (Phase 6, plan 006) adds `@arnilo/prism-enterprise-postgres`, the optional PostgreSQL composition for policy decisions, evaluation records, work-mutation claim/CAS state, and cross-replica model-router rate/budget/circuit state. The publish graph is **47 manifests** (41 code + 6 family/profile; +1 package). `@arnilo/prism-all` includes it; core remains dependency-free. See [migration](migration.md#0022--0023-production-enterprise-state-adapters-intentional-pre-10-contract-changes) and [enterprise PostgreSQL state](enterprise-postgres-state.md).
@@ -244,138 +231,9 @@ git verify-tag v0.0.22
244
231
  git push origin v0.0.22
245
232
  ```
246
233
 
247
- ### 0.0.21 publish handoff
248
-
249
- **Decision: GO after protected operator prerequisites below.** Release **0.0.21** (Phase 4 coding-tool capability gaps, plan 004) ships `repo_search` `outputMode`, bounded `glob`, optional session-scoped read-before-write, bounded `delete`/`move`, and coding-security approval/sandbox wiring. The exact graph stays **44 publishable manifests**; no package added or retired. Intentional pre-1.0 breaks are documented in [migration](migration.md) under `0.0.20 → 0.0.21 coding-tool capability gaps`.
250
-
251
- ```bash
252
- git diff --check
253
- npm ci
254
- npm run sdk:ready
255
- node --test scripts/budget-gate.test.mjs
256
- node scripts/scan-secrets.mjs && node scripts/verify-sbom.mjs
257
- npm audit --audit-level=moderate
258
- npm run release:gate
259
- npm run release:check -- --version 0.0.21 --allow-dirty --allow-untagged --report /tmp/prism-0.0.21-preflight.json
260
- npm run release:publish -- --version 0.0.21 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.21-dry-run.json
261
- git tag -s v0.0.21 -m "Prism 0.0.21"
262
- git verify-tag v0.0.21
263
- git push origin v0.0.21
264
- ```
265
-
266
- The dry-run checks every registry collision and executes npm's non-publishing tarball validation for each dependency-ordered manifest. The protected tag workflow alone publishes through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`; re-run a failed job for the same tag. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish checks.
267
-
268
- ### 0.0.20 publish handoff
269
-
270
- **Decision: GO after protected operator prerequisites below.** Release **0.0.20** (Phase 3 skills and context progressive disclosure, plan 003) ships progressive skill catalog assembly (`skillsDisclosure`), session `load_skill`, empty `SkillRegistry` default with `activateAllSkills` migration opt-in, priority-aware context budget demotion, and optional `toolResultFold`. The exact graph stays **44 publishable manifests**; no package added or retired. Intentional pre-1.0 breaks are documented in [migration](migration.md) under `0.0.19 → 0.0.20 skills and context progressive disclosure`.
271
-
272
- ```bash
273
- git diff --check
274
- npm ci
275
- npm run sdk:ready
276
- node --test scripts/budget-gate.test.mjs
277
- node scripts/scan-secrets.mjs && node scripts/verify-sbom.mjs
278
- npm audit --audit-level=moderate
279
- npm run release:gate
280
- npm run release:check -- --version 0.0.20 --allow-dirty --allow-untagged --report /tmp/prism-0.0.20-preflight.json
281
- npm run release:publish -- --version 0.0.20 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.20-dry-run.json
282
- git tag -s v0.0.20 -m "Prism 0.0.20"
283
- git verify-tag v0.0.20
284
- git push origin v0.0.20
285
- ```
286
-
287
- The dry-run checks every registry collision and executes npm's non-publishing tarball validation for each dependency-ordered manifest. The protected tag workflow alone publishes through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`; re-run a failed job for the same tag. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish checks.
288
-
289
- ### 0.0.19 publish handoff
290
-
291
- **Decision: GO after protected operator prerequisites below.** Release **0.0.19** (Phase 2 observational memory lifecycle, plan 002) ships `@arnilo/prism-compaction-observational-memory` attach lifecycle, four-layer provider context, nested settings with legacy map, source-faithful recall/paging, and hard fold/render caps. Core `@arnilo/prism` runtime is unchanged. The exact graph stays **44 publishable manifests**; no package added or retired. Intentional pre-1.0 breaks are documented in [migration](migration.md) under `0.0.18 → 0.0.19 observational memory lifecycle`.
234
+ ### Historical release handoffs
292
235
 
293
- ```bash
294
- git diff --check
295
- npm ci
296
- npm run sdk:ready
297
- node --test scripts/budget-gate.test.mjs
298
- node scripts/scan-secrets.mjs && node scripts/verify-sbom.mjs
299
- npm audit --audit-level=moderate
300
- npm run release:gate
301
- npm run release:check -- --version 0.0.19 --allow-dirty --allow-untagged --report /tmp/prism-0.0.19-preflight.json
302
- npm run release:publish -- --version 0.0.19 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.19-dry-run.json
303
- git tag -s v0.0.19 -m "Prism 0.0.19"
304
- git verify-tag v0.0.19
305
- git push origin v0.0.19
306
- ```
307
-
308
- The dry-run checks every registry collision and executes npm's non-publishing tarball validation for each dependency-ordered manifest. The protected tag workflow alone publishes through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`; re-run a failed job for the same tag. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish checks.
309
-
310
- ### 0.0.18 publish handoff
311
-
312
- **Decision: GO after protected operator prerequisites below.** Release **0.0.18** (Phase 1 restore integrity, plan 001) hardens coding tools and release trust without adding packages: `repo_search` is literal-only (ReDoS mitigation), default `write`/`edit` use temp+`rename`, `applyContextBudget` evicts oldest history first, default `inputLayout` is `cache_aware`, `@arnilo/prism-mcp` pins `@modelcontextprotocol/sdk` **1.30.0** (clears moderate `@hono/node-server` advisory), and README/readiness docs match the 14-adapter / optional-browser inventory. The exact graph stays **44 publishable manifests**; no package added or retired. Intentional pre-1.0 breaks are documented in [migration](migration.md) under `0.0.17 → 0.0.18 restore integrity`.
313
-
314
- ```bash
315
- git diff --check
316
- npm ci
317
- npm run sdk:ready
318
- node --test scripts/budget-gate.test.mjs
319
- node scripts/scan-secrets.mjs && node scripts/verify-sbom.mjs
320
- npm audit --audit-level=moderate
321
- npm run release:gate
322
- npm run release:check -- --version 0.0.18 --allow-dirty --allow-untagged --report /tmp/prism-0.0.18-preflight.json
323
- npm run release:publish -- --version 0.0.18 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.18-dry-run.json
324
- git tag -s v0.0.18 -m "Prism 0.0.18"
325
- git verify-tag v0.0.18
326
- git push origin v0.0.18
327
- ```
328
-
329
- The dry-run checks every registry collision and executes npm's non-publishing tarball validation for each dependency-ordered manifest. The protected tag workflow alone publishes through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`; re-run a failed job for the same tag. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish checks.
330
-
331
- ### 0.0.17 publish handoff
332
-
333
- **Decision: GO after protected operator prerequisites below.** Release 0.0.17 implements the 2026-07-29 full implementation review (plan 081, twenty fixes): durable run-state load bound, explicit resume-as-approval, unconditional `input_assembly` middleware, same-session parent enforcement, jitter + `Retry-After`-aware retries with provider error wiring, O(n) context-budget eviction, fingerprint coverage of instructions/system prompt/skills, stage-named guardrail interrupts with `metadata.error`, `steer_rejected`, middleware double-`next()` detection, parked-consumer sorted multiplexer delivery, checkpoint-store bounds, strict credential opt-in, extension `unregister`/dispose handles with failed-setup unwind, loud CLI rejection of inert flags, capability-conditional tool listing, and the C8 nit bundle. The exact graph stays **44 publishable manifests**; no package added or retired. Intentional pre-1.0 breaks are documented in [migration](migration.md): inert CLI flags rejected (`CliOptions` dead fields removed) and `ExtensionKernel.load()` now resolves to `LoadedExtension[]`. The compat baseline was refreshed with `--allow-break` + migration note. Provider HTTP errors now carry numeric codes and `Retry-After` hints across anthropic/google/kimi/openai/opencode-go and the shared OpenAI-compatible transport — wire behavior is additive (more retries of genuinely transient failures), so the 0.0.15 protected live-canary matrix below still applies and no new live row is introduced.
334
-
335
- ```bash
336
- git diff --check
337
- npm ci
338
- npm run sdk:ready
339
- node --test scripts/budget-gate.test.mjs
340
- node scripts/scan-secrets.mjs && node scripts/verify-sbom.mjs
341
- npm audit --audit-level=high
342
- npm run release:gate
343
- npm run release:check -- --version 0.0.17 --allow-dirty --allow-untagged --report /tmp/prism-0.0.17-preflight.json
344
- npm run release:publish -- --version 0.0.17 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.17-dry-run.json
345
- git tag -s v0.0.17 -m "Prism 0.0.17"
346
- git verify-tag v0.0.17
347
- git push origin v0.0.17
348
- ```
349
-
350
- The dry-run checks every registry collision and executes npm's non-publishing tarball validation for each dependency-ordered manifest. The protected tag workflow alone publishes through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`; re-run a failed job for the same tag. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish checks.
351
-
352
- ### 0.0.16 publish handoff
353
-
354
- **Decision: GO after protected operator prerequisites below.** Phase 11 (plan 079) is a simplification/readiness release: no runtime behavior changes and no package retired. The exact graph is **44 publishable manifests** — Phase 11 Task 3 added one internal implementation package, `@arnilo/prism-session-store-codecs` (shared SQLite/Postgres row codecs, not enrolled in any profile family). The only public-surface change is the additive `resolveRedactor` export from `@arnilo/prism`; provider `cleanJson` was deliberately left per-package (wire-shape variants). All six profiles (`prism-all`, `prism-base`, `prism-code`, `prism-compaction`, `prism-providers`, `prism-sdk`) are retained on adoption evidence (zero retirements). The root tarball dropped the historical `docs/review-coverage-*.md` (659,478 → ≈575,680 packed bytes, 281 → 270 files). New offline release gates (`npm run release:gate`: API-surface `.d.ts` diff, tarball deny-list, exact ranges) run inside `sdk:ready`, and performance budgets (`scripts/budgets.json`) are enforced by `scripts/budget-gate.test.mjs` + `scripts/benchmark-0.0.16.mjs`. No Studio, Office, remote-browser vendor, additional vector-store, Slack/Teams, voice/desktop-control, internal-auth, or queue package ships. Protected CI, signed tag, npm authentication, OIDC attestation, and protected live-canary evidence remain operator/workflow prerequisites; no package is published by this handoff.
355
-
356
- ```bash
357
- git diff --check
358
- npm ci
359
- npm run sdk:ready
360
- node scripts/benchmark-0.0.16.mjs
361
- node --test scripts/budget-gate.test.mjs
362
- node scripts/scan-secrets.mjs && node scripts/verify-sbom.mjs
363
- npm audit --audit-level=high
364
- npm run release:gate
365
- npm run release:check -- --version 0.0.17 --allow-dirty --allow-untagged --report /tmp/prism-0.0.16-preflight.json
366
- npm run release:publish -- --version 0.0.17 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.16-dry-run.json
367
- git tag -s v0.0.16 -m "Prism 0.0.16"
368
- git verify-tag v0.0.16
369
- git push origin v0.0.16
370
- ```
371
-
372
- The dry-run checks every registry collision and executes npm's non-publishing tarball validation for each dependency-ordered manifest. The protected tag workflow alone publishes through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`; re-run a failed job for the same tag. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish checks. The 0.0.15 protected live-canary matrix below still applies; 0.0.16 changes no provider/protocol/tenant surface, so no new live row is introduced.
373
-
374
- #### Rollback limitations
375
-
376
- npm publication is immutable: partial publication is a resume case, and a confirmed defect requires deprecation plus a fixed version rather than rollback.
377
-
378
- The 0.0.16 package set is the canonical **44-package** list below (the 0.0.15 set plus `@arnilo/prism-session-store-codecs`); `release:check` derives it from the workspace and rejects missing, private, version-skewed, or internally mismatched manifests.
236
+ Release-specific migration detail lives in [migration](migration.md). The current handoff plus the retained protected matrix below supersede 0.0.16–0.0.21 command transcripts.
379
237
 
380
238
  ### 0.0.15 protected live-canary matrix
381
239
 
@@ -399,512 +257,13 @@ Default `npm test`, `npm run sdk:ready`, and `benchmark-0.0.15` are network-free
399
257
 
400
258
  The scheduled/manual `live-canaries` workflow uses protected environment `live-canaries`; release validation uses its protected release environment. Neither workflow receives a broad workspace key. A successful offline benchmark is never evidence that a live row ran; each protected invocation must record its enabled matrix rows and skipped/missing prerequisites.
401
259
 
402
- ### 0.0.15 publish handoff
403
-
404
- **Decision: GO after protected operator prerequisites below.** Phase 10 closes provider, memory, and RAG ecosystem parity without changing the Task 0 package freeze: the exact graph remains **43 publishable manifests**. It adds OpenAI hosted-tool attribution, bounded Responses continuation and Realtime; exact AI SDK V4 mapping; bounded RAG source lifecycle/document adapters/reranking/provenance/trust/status; and memory export/rebuild production conformance. No Studio, Office, remote-browser vendor, additional vector-store, Slack/Teams, voice/desktop-control, internal-auth, or queue package ships. Phase 11 (plan 079, Task 3) adds one internal implementation package, `@arnilo/prism-session-store-codecs` (shared session-store row codecs, not enrolled in any family), bringing the exact graph to **44 publishable manifests**. Protected CI, signed tag, npm authentication, OIDC attestation, and protected live-canary evidence remain operator/workflow prerequisites; no package is published by this handoff.
405
-
406
- ```bash
407
- git diff --check
408
- npm ci
409
- npm run sdk:ready
410
- node scripts/benchmark-0.0.15.mjs
411
- node --test scripts/benchmark-0.0.15.test.mjs
412
- npm audit --audit-level=high
413
- npm run release:check -- --version 0.0.15 --allow-dirty --allow-untagged --report /tmp/prism-0.0.15-preflight.json
414
- npm run release:publish -- --version 0.0.15 --dry-run --allow-dirty --allow-untagged --report /tmp/prism-0.0.15-dry-run.json
415
- git tag -s v0.0.15 -m "Prism 0.0.15"
416
- git verify-tag v0.0.15
417
- git push origin v0.0.15
418
- ```
419
-
420
- The dry-run checks every registry collision and executes npm's non-publishing tarball validation for each dependency-ordered manifest. The protected tag workflow alone publishes through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`; re-run a failed job for the same tag. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish checks.
421
-
422
- #### Rollback limitations
423
-
424
- npm publication is immutable: partial publication is a resume case, and a confirmed defect requires deprecation plus a fixed version rather than rollback.
425
-
426
- The 0.0.15 package set is unchanged from the canonical **43-package** list below; `release:check` derives it from the workspace and rejects missing, private, version-skewed, or internally mismatched manifests.
427
-
428
- ### 0.0.14 publish handoff
429
-
430
- **Decision: GO after operator prerequisites below.** Phase 9 personal/work-agent conversations, memory consent/lifecycle, durable artifact review + authorized delivery, AG-UI co-work events, scoped M365/GWS OAuth connectors, browser verified-state checkpoints, a deny-by-default device adapter contract, and two new optional provider packages (`@arnilo/prism-provider-alibaba`, `@arnilo/prism-provider-ollama`). The exact 0.0.14 graph has **43 manifests** (41 → 43; only the two provider packages are new, enrolled via `@arnilo/prism-providers`). `@arnilo/prism-code` and `@arnilo/prism-sdk` stay lean; browser/ag-ui/work-tools remain optional. no Office package, Slack/Teams channel package, voice/desktop-control vendor package, internal auth DB, or Redis/SQS queue adapter ships. Clean protected-branch CI, signed commit/tag, npm authentication, OIDC attestation, protected live canaries, and actual publication remain operator/workflow prerequisites.
431
-
432
- ```bash
433
- git diff --check
434
- npm ci
435
- npm run sdk:ready
436
- node scripts/benchmark-0.0.14.mjs
437
- node --test scripts/benchmark-0.0.14.test.mjs
438
- npm run release:check -- --version 0.0.14 --allow-untagged --report /tmp/prism-0.0.14-preflight.json
439
- git tag -s v0.0.14 -m "Prism 0.0.14"
440
- git verify-tag v0.0.14
441
- git push origin v0.0.14
442
- ```
443
-
444
- The tag workflow publishes only through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`. Re-run failed jobs for the same tag; registry state is the resumable journal. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish operator checks.
445
-
446
- #### Rollback limitations
447
-
448
- npm publication is immutable: partial publication is a resume case, and confirmed defects require deprecation plus a fixed version rather than rollback.
449
-
450
- Package set (43):
451
-
452
- ```text
453
- @arnilo/prism
454
- @arnilo/prism-ag-ui
455
- @arnilo/prism-browser
456
- @arnilo/prism-coding-agent
457
- @arnilo/prism-coding-security
458
- @arnilo/prism-compaction-llm
459
- @arnilo/prism-compaction-observational-memory
460
- @arnilo/prism-credentials-node
461
- @arnilo/prism-evals
462
- @arnilo/prism-mcp
463
- @arnilo/prism-memory
464
- @arnilo/prism-model-router
465
- @arnilo/prism-observability-opentelemetry
466
- @arnilo/prism-policy
467
- @arnilo/prism-all
468
- @arnilo/prism-base
469
- @arnilo/prism-code
470
- @arnilo/prism-compaction
471
- @arnilo/prism-providers
472
- @arnilo/prism-sdk
473
- @arnilo/prism-provider-ai-sdk
474
- @arnilo/prism-provider-alibaba
475
- @arnilo/prism-provider-anthropic
476
- @arnilo/prism-provider-azure
477
- @arnilo/prism-provider-bedrock
478
- @arnilo/prism-provider-google
479
- @arnilo/prism-provider-kimi
480
- @arnilo/prism-provider-neuralwatt
481
- @arnilo/prism-provider-ollama
482
- @arnilo/prism-provider-openai
483
- @arnilo/prism-provider-opencode-go
484
- @arnilo/prism-provider-openrouter
485
- @arnilo/prism-provider-vertex
486
- @arnilo/prism-provider-zai
487
- @arnilo/prism-rag
488
- @arnilo/prism-server
489
- @arnilo/prism-session-store-codecs
490
- @arnilo/prism-session-store-postgres
491
- @arnilo/prism-session-store-sqlite
492
- @arnilo/prism-supervisor
493
- @arnilo/prism-tool-validator-json-schema
494
- @arnilo/prism-web-tools
495
- @arnilo/prism-work-tools
496
- @arnilo/prism-workflows
497
- ```
498
-
499
- ### 0.0.13 publish handoff
500
-
501
- **Decision: GO after operator prerequisites below.** Phase 8 enterprise identity, policy/audit, model governance, Azure/Bedrock/Vertex providers, server deployment seams, persistence schema v5 lifecycle hooks, and M365/GWS work connectors. The exact 0.0.13 graph has **41 manifests**. Phase 8 optional packages (`@arnilo/prism-policy`, `@arnilo/prism-model-router`, enterprise providers, `@arnilo/prism-work-tools`) enroll in `@arnilo/prism-all` only; `@arnilo/prism-code` and `@arnilo/prism-sdk` stay lean. no Office package, 0.0.14 conversation/artifact services, internal auth DB, or Redis/SQS queue adapter ships. Clean protected-branch CI, signed commit/tag, npm authentication, OIDC attestation, protected live canaries, and actual publication remain operator/workflow prerequisites.
502
-
503
- ```bash
504
- git diff --check
505
- npm ci
506
- npm run sdk:ready
507
- node scripts/benchmark-0.0.13.mjs
508
- node --test scripts/benchmark-0.0.13.test.mjs
509
- npm run release:check -- --version 0.0.13 --allow-untagged --report /tmp/prism-0.0.13-preflight.json
510
- git tag -s v0.0.13 -m "Prism 0.0.13"
511
- git verify-tag v0.0.13
512
- git push origin v0.0.13
513
- ```
514
-
515
- The tag workflow publishes only through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`. Re-run failed jobs for the same tag; registry state is the resumable journal. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish operator checks.
516
-
517
- #### Rollback limitations
518
-
519
- npm publication is immutable: partial publication is a resume case, and confirmed defects require deprecation plus a fixed version rather than rollback.
520
-
521
- Package set (41):
522
-
523
- ```text
524
- @arnilo/prism
525
- @arnilo/prism-ag-ui
526
- @arnilo/prism-browser
527
- @arnilo/prism-coding-agent
528
- @arnilo/prism-coding-security
529
- @arnilo/prism-compaction-llm
530
- @arnilo/prism-compaction-observational-memory
531
- @arnilo/prism-credentials-node
532
- @arnilo/prism-evals
533
- @arnilo/prism-mcp
534
- @arnilo/prism-memory
535
- @arnilo/prism-model-router
536
- @arnilo/prism-observability-opentelemetry
537
- @arnilo/prism-policy
538
- @arnilo/prism-all
539
- @arnilo/prism-base
540
- @arnilo/prism-code
541
- @arnilo/prism-compaction
542
- @arnilo/prism-providers
543
- @arnilo/prism-sdk
544
- @arnilo/prism-provider-ai-sdk
545
- @arnilo/prism-provider-anthropic
546
- @arnilo/prism-provider-azure
547
- @arnilo/prism-provider-bedrock
548
- @arnilo/prism-provider-google
549
- @arnilo/prism-provider-kimi
550
- @arnilo/prism-provider-neuralwatt
551
- @arnilo/prism-provider-openai
552
- @arnilo/prism-provider-opencode-go
553
- @arnilo/prism-provider-openrouter
554
- @arnilo/prism-provider-vertex
555
- @arnilo/prism-provider-zai
556
- @arnilo/prism-rag
557
- @arnilo/prism-server
558
- @arnilo/prism-session-store-postgres
559
- @arnilo/prism-session-store-sqlite
560
- @arnilo/prism-supervisor
561
- @arnilo/prism-tool-validator-json-schema
562
- @arnilo/prism-web-tools
563
- @arnilo/prism-work-tools
564
- @arnilo/prism-workflows
565
- ```
566
-
567
- ### 0.0.12 publish handoff
568
-
569
- **Decision: GO after operator prerequisites below.** Phase 7 coding-harness interoperability ships the optional `@arnilo/prism-ag-ui` root/`./acp` adapter, shared durable resume stream, coding compaction preset, and provider-authorized OAuth boundary. The exact 0.0.12 graph has 35 manifests. `@arnilo/prism-ag-ui` is included by `@arnilo/prism-all` only; `@arnilo/prism-code` and `@arnilo/prism-sdk` remain free of AG-UI/ACP dependencies. no Office package, 0.0.13 conversations/artifacts/enterprise identity APIs, or Anthropic/Gemini subscription OAuth adapter ships. Clean protected-branch CI, signed commit/tag, npm authentication, OIDC attestation, protected live provider/Docker/Playwright/PostgreSQL/keychain gates, and actual publication remain operator/workflow prerequisites.
570
-
571
- ```bash
572
- git diff --check
573
- npm ci
574
- npm run sdk:ready
575
- npm run release:check -- --version 0.0.12 --allow-untagged --report /tmp/prism-0.0.12-preflight.json
576
- git tag -s v0.0.12 -m "Prism 0.0.12"
577
- git verify-tag v0.0.12
578
- git push origin v0.0.12
579
- ```
580
-
581
- The tag workflow publishes only through `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`. Re-run failed jobs for the same tag; registry state is the resumable journal. `npm audit signatures --json --include-attestations` and artifact checksums remain post-publish operator checks.
582
-
583
- #### Rollback limitations
584
-
585
- npm publication is immutable: partial publication is a resume case, and confirmed defects require deprecation plus a fixed version rather than rollback.
586
-
587
- Package set (35):
588
-
589
- ```text
590
- @arnilo/prism
591
- @arnilo/prism-ag-ui
592
- @arnilo/prism-browser
593
- @arnilo/prism-coding-agent
594
- @arnilo/prism-coding-security
595
- @arnilo/prism-compaction-llm
596
- @arnilo/prism-compaction-observational-memory
597
- @arnilo/prism-credentials-node
598
- @arnilo/prism-evals
599
- @arnilo/prism-mcp
600
- @arnilo/prism-memory
601
- @arnilo/prism-observability-opentelemetry
602
- @arnilo/prism-all
603
- @arnilo/prism-base
604
- @arnilo/prism-code
605
- @arnilo/prism-compaction
606
- @arnilo/prism-providers
607
- @arnilo/prism-sdk
608
- @arnilo/prism-provider-ai-sdk
609
- @arnilo/prism-provider-anthropic
610
- @arnilo/prism-provider-google
611
- @arnilo/prism-provider-kimi
612
- @arnilo/prism-provider-neuralwatt
613
- @arnilo/prism-provider-openai
614
- @arnilo/prism-provider-opencode-go
615
- @arnilo/prism-provider-openrouter
616
- @arnilo/prism-provider-zai
617
- @arnilo/prism-rag
618
- @arnilo/prism-server
619
- @arnilo/prism-session-store-postgres
620
- @arnilo/prism-session-store-sqlite
621
- @arnilo/prism-supervisor
622
- @arnilo/prism-tool-validator-json-schema
623
- @arnilo/prism-web-tools
624
- @arnilo/prism-workflows
625
- ```
626
-
627
- ### 0.0.11 publish handoff
628
-
629
- **Decision: GO after operator prerequisites below.** Phase 6 coding-harness fundamentals: `SessionIndex`/`searchSessions`, assembler `contextBudget`, `@arnilo/prism-provider-anthropic` + `@arnilo/prism-provider-google`, mid-run `steer`, coding-agent `runCodingGoalVerify` + opt-in `ask_user_decision`, and `scripts/benchmark-0.0.11.mjs` search/budget evidence. Code, tests, exact `0.0.11` package graph (34 manifests), packed artifacts, security gates, and dependency-ordered publication dry-run passed from the Phase 6 release-candidate tree. Clean protected-branch CI, signed commit/tag, npm authentication, OIDC attestation, protected Anthropic/Google live canaries + Docker/Playwright/PostgreSQL gates (when host-provisioned), and actual publication remain operator/workflow prerequisites. No package was published during readiness work. Scope is coding-harness P1 only; **no Office** package, binary, SDK, wrapper, docs page, test, or release gate exists. Host mode never claims disposable containment. `@arnilo/prism-browser` remains optional via `@arnilo/prism-all` only.
630
-
631
- #### npm authentication prerequisite
632
-
633
- The existing GitHub Actions secret `NPM_TOKEN` is used only by the publish step as `NODE_AUTH_TOKEN`, matching previous Prism releases. Confirm that token remains valid and can publish existing and new public packages under `@arnilo`; no additional secret or manual npm publish is required. The workflow also requests OIDC and always passes `--provenance`.
634
-
635
- #### Release commit and tag
636
-
637
- Merge through the protected release branch, then run these commands from a clean checkout of the protected merge commit. `git push origin v0.0.11` is the workflow dispatch; there is no manual publish command.
638
-
639
- ```bash
640
- # Prepare and push the release commit.
641
- git diff --check
642
- npm ci
643
- npm run sdk:ready
644
- git add -A
645
- git diff --cached --check
646
- git commit -S -m "Release 0.0.11"
647
- git push origin HEAD
648
-
649
- # Merge/confirm protected branch CI, then check out that exact clean merge commit.
650
- test -z "$(git status --porcelain)"
651
- npm ci
652
- npm run release:check -- --version 0.0.11 --allow-untagged --report /tmp/prism-0.0.11-preflight.json
653
-
654
- git tag -s v0.0.11 -m "Prism 0.0.11"
655
- git verify-tag v0.0.11
656
- test "$(git rev-parse HEAD)" = "$(git rev-list -n 1 v0.0.11)"
657
- npm run release:check -- --version 0.0.11 --report /tmp/prism-0.0.11-tagged-preflight.json
658
- git push origin v0.0.11
659
- ```
660
-
661
- The tag workflow's only publication command is `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`. Latest registry preflight returned `available` for all 34 `0.0.11` versions at handoff. Publisher order is stable and dependency-safe (run `node -e` via `release:check` for the live order). Package set:
662
-
663
- ```text
664
- @arnilo/prism
665
- @arnilo/prism-coding-agent
666
- @arnilo/prism-coding-security
667
- @arnilo/prism-compaction-llm
668
- @arnilo/prism-compaction-observational-memory
669
- @arnilo/prism-credentials-node
670
- @arnilo/prism-evals
671
- @arnilo/prism-mcp
672
- @arnilo/prism-memory
673
- @arnilo/prism-observability-opentelemetry
674
- @arnilo/prism-provider-ai-sdk
675
- @arnilo/prism-provider-anthropic
676
- @arnilo/prism-provider-google
677
- @arnilo/prism-provider-kimi
678
- @arnilo/prism-provider-neuralwatt
679
- @arnilo/prism-provider-openai
680
- @arnilo/prism-provider-opencode-go
681
- @arnilo/prism-provider-openrouter
682
- @arnilo/prism-provider-zai
683
- @arnilo/prism-session-store-postgres
684
- @arnilo/prism-session-store-sqlite
685
- @arnilo/prism-supervisor
686
- @arnilo/prism-tool-validator-json-schema
687
- @arnilo/prism-web-tools
688
- @arnilo/prism-browser
689
- @arnilo/prism-workflows
690
- @arnilo/prism-compaction
691
- @arnilo/prism-providers
692
- @arnilo/prism-rag
693
- @arnilo/prism-server
694
- @arnilo/prism-base
695
- @arnilo/prism-code
696
- @arnilo/prism-sdk
697
- @arnilo/prism-all
698
- ```
699
-
700
- #### Interruption and resume
701
-
702
- Do not create another tag or rerun packages manually. Re-run failed jobs for the same tag in GitHub Actions. The workflow invokes `release:publish --resume`: registry versions with matching names, versions, and internal dependency fingerprints are skipped; any mismatch stops the job. Retain `release-artifacts-v0.0.11` and `publish-report-v0.0.11` for audit.
703
-
704
- #### Bounded post-publish smoke
705
-
706
- Download the workflow artifact and run `sha256sum -c SHA256SUMS`. Then verify all registry versions/tags/integrity and install the complete profile in a fresh directory:
707
-
708
- ```bash
709
- while read -r package; do
710
- test "$(npm view "$package@0.0.11" version)" = "0.0.11"
711
- test "$(npm view "$package" dist-tags.latest)" = "0.0.11"
712
- npm view "$package@0.0.11" dist.integrity >/dev/null
713
- done <<'PACKAGES'
714
- @arnilo/prism
715
- @arnilo/prism-coding-agent
716
- @arnilo/prism-coding-security
717
- @arnilo/prism-compaction-llm
718
- @arnilo/prism-compaction-observational-memory
719
- @arnilo/prism-credentials-node
720
- @arnilo/prism-evals
721
- @arnilo/prism-mcp
722
- @arnilo/prism-memory
723
- @arnilo/prism-observability-opentelemetry
724
- @arnilo/prism-provider-ai-sdk
725
- @arnilo/prism-provider-anthropic
726
- @arnilo/prism-provider-google
727
- @arnilo/prism-provider-kimi
728
- @arnilo/prism-provider-neuralwatt
729
- @arnilo/prism-provider-openai
730
- @arnilo/prism-provider-opencode-go
731
- @arnilo/prism-provider-openrouter
732
- @arnilo/prism-provider-zai
733
- @arnilo/prism-session-store-postgres
734
- @arnilo/prism-session-store-sqlite
735
- @arnilo/prism-supervisor
736
- @arnilo/prism-tool-validator-json-schema
737
- @arnilo/prism-web-tools
738
- @arnilo/prism-browser
739
- @arnilo/prism-workflows
740
- @arnilo/prism-compaction
741
- @arnilo/prism-providers
742
- @arnilo/prism-rag
743
- @arnilo/prism-server
744
- @arnilo/prism-base
745
- @arnilo/prism-code
746
- @arnilo/prism-sdk
747
- @arnilo/prism-all
748
- PACKAGES
749
-
750
- npm audit signatures --json --include-attestations
751
- npm install --no-audit --no-fund @arnilo/prism-all@0.0.11
752
- ```
753
-
754
- #### Rollback limitations
755
-
756
- npm publication is not transactional and published versions are immutable. Partial publication is a resume case, not rollback. For a confirmed systemic defect after completion, deprecate every affected `@0.0.11`; restore `latest` to the previous good release only where that tag already existed. Exact `0.0.11` installs remain possible, so publish a fixed version promptly. Do not unpublish except for a security/legal emergency under npm policy.
757
-
758
- ### 0.0.10 publish handoff (historical)
759
-
760
- **Decision: GO after operator prerequisites below.** Phase 5 coding-harness unified workspace: required `workspaceMode`, fail-closed mixed wiring, sandbox FS auto-wire, tree identity, adversarial consistency tests, and `scripts/benchmark-0.0.10.mjs` evidence. Code, tests, exact `0.0.10` package graph (retargeted from post-ship `0.0.96`), packed artifacts, security gates, and dependency-ordered publication dry-run passed from the Phase 5 release-candidate tree. Clean protected-branch CI, signed commit/tag, npm authentication, OIDC attestation, protected Docker/Playwright live gates (when host-provisioned), and actual publication remain operator/workflow prerequisites. No package was published during readiness work. Scope is coding-harness P0 only; **no Office** package, binary, SDK, wrapper, docs page, test, or release gate exists. Host mode never claims disposable containment.
761
-
762
- #### npm authentication prerequisite
763
-
764
- The existing GitHub Actions secret `NPM_TOKEN` is used only by the publish step as `NODE_AUTH_TOKEN`, matching previous Prism releases. Confirm that token remains valid and can publish existing and new public packages under `@arnilo`; no additional secret or manual npm publish is required. The workflow also requests OIDC and always passes `--provenance`.
765
-
766
- #### Release commit and tag
767
-
768
- Merge through the protected release branch, then run these commands from a clean checkout of the protected merge commit. `git push origin v0.0.10` is the workflow dispatch; there is no manual publish command.
769
-
770
- ```bash
771
- # Prepare and push the release commit.
772
- git diff --check
773
- npm ci
774
- npm run sdk:ready
775
- git add -A
776
- git diff --cached --check
777
- git commit -S -m "Release 0.0.10"
778
- git push origin HEAD
779
-
780
- # Merge/confirm protected branch CI, then check out that exact clean merge commit.
781
- test -z "$(git status --porcelain)"
782
- npm ci
783
- npm run release:check -- --version 0.0.10 --allow-untagged --report /tmp/prism-0.0.10-preflight.json
784
-
785
- git tag -s v0.0.10 -m "Prism 0.0.10"
786
- git verify-tag v0.0.10
787
- test "$(git rev-parse HEAD)" = "$(git rev-list -n 1 v0.0.10)"
788
- npm run release:check -- --version 0.0.10 --report /tmp/prism-0.0.10-tagged-preflight.json
789
- git push origin v0.0.10
790
- ```
791
-
792
- The tag workflow's only publication command is `npm run release:publish -- --version "${GITHUB_REF_NAME#v}" --resume --report release-artifacts/publish-report.json`. Latest registry preflight returned `available` for all 32 `0.0.10` versions at handoff. Publisher order is stable and dependency-safe:
793
-
794
- ```text
795
- 1 @arnilo/prism
796
- 2 @arnilo/prism-coding-agent
797
- 3 @arnilo/prism-compaction-llm
798
- 4 @arnilo/prism-compaction-observational-memory
799
- 5 @arnilo/prism-credentials-node
800
- 6 @arnilo/prism-evals
801
- 7 @arnilo/prism-mcp
802
- 8 @arnilo/prism-memory
803
- 9 @arnilo/prism-observability-opentelemetry
804
- 10 @arnilo/prism-provider-ai-sdk
805
- 11 @arnilo/prism-provider-kimi
806
- 12 @arnilo/prism-provider-neuralwatt
807
- 13 @arnilo/prism-provider-openai
808
- 14 @arnilo/prism-provider-opencode-go
809
- 15 @arnilo/prism-provider-openrouter
810
- 16 @arnilo/prism-provider-zai
811
- 17 @arnilo/prism-session-store-postgres
812
- 18 @arnilo/prism-session-store-sqlite
813
- 19 @arnilo/prism-supervisor
814
- 20 @arnilo/prism-tool-validator-json-schema
815
- 21 @arnilo/prism-web-tools
816
- 22 @arnilo/prism-browser
817
- 23 @arnilo/prism-workflows
818
- 24 @arnilo/prism-coding-security
819
- 25 @arnilo/prism-compaction
820
- 26 @arnilo/prism-providers
821
- 27 @arnilo/prism-rag
822
- 28 @arnilo/prism-server
823
- 29 @arnilo/prism-base
824
- 30 @arnilo/prism-code
825
- 31 @arnilo/prism-sdk
826
- 32 @arnilo/prism-all
827
- ```
828
-
829
- #### Interruption and resume
830
-
831
- Do not create another tag or rerun packages manually. Re-run failed jobs for the same tag in GitHub Actions. The workflow invokes `release:publish --resume`: registry versions with matching names, versions, and internal dependency fingerprints are skipped; any mismatch stops the job. Retain `release-artifacts-v0.0.10` and `publish-report-v0.0.10` for audit.
832
-
833
- #### Bounded post-publish smoke
834
-
835
- Download the workflow artifact and run `sha256sum -c SHA256SUMS`. Then verify all registry versions/tags/integrity and install the complete profile in a fresh directory:
836
-
837
- ```bash
838
- while read -r package; do
839
- test "$(npm view "$package@0.0.10" version)" = "0.0.10"
840
- test "$(npm view "$package" dist-tags.latest)" = "0.0.10"
841
- npm view "$package@0.0.10" dist.integrity >/dev/null
842
- done <<'PACKAGES'
843
- @arnilo/prism
844
- @arnilo/prism-coding-agent
845
- @arnilo/prism-compaction-llm
846
- @arnilo/prism-compaction-observational-memory
847
- @arnilo/prism-credentials-node
848
- @arnilo/prism-evals
849
- @arnilo/prism-mcp
850
- @arnilo/prism-memory
851
- @arnilo/prism-rag
852
- @arnilo/prism-server
853
- @arnilo/prism-supervisor
854
- @arnilo/prism-observability-opentelemetry
855
- @arnilo/prism-provider-ai-sdk
856
- @arnilo/prism-provider-kimi
857
- @arnilo/prism-provider-neuralwatt
858
- @arnilo/prism-provider-openai
859
- @arnilo/prism-provider-opencode-go
860
- @arnilo/prism-provider-openrouter
861
- @arnilo/prism-provider-zai
862
- @arnilo/prism-session-store-postgres
863
- @arnilo/prism-session-store-sqlite
864
- @arnilo/prism-tool-validator-json-schema
865
- @arnilo/prism-web-tools
866
- @arnilo/prism-browser
867
- @arnilo/prism-workflows
868
- @arnilo/prism-coding-security
869
- @arnilo/prism-compaction
870
- @arnilo/prism-providers
871
- @arnilo/prism-base
872
- @arnilo/prism-code
873
- @arnilo/prism-sdk
874
- @arnilo/prism-all
875
- PACKAGES
876
-
877
- consumer="$(mktemp -d)"
878
- cd "$consumer"
879
- npm init -y >/dev/null
880
- npm install --no-audit --no-fund @arnilo/prism-all@0.0.10
881
- node --input-type=module <<'NODE'
882
- for (const name of [
883
- "@arnilo/prism", "@arnilo/prism-coding-agent", "@arnilo/prism-coding-security",
884
- "@arnilo/prism-compaction-llm", "@arnilo/prism-compaction-observational-memory",
885
- "@arnilo/prism-credentials-node", "@arnilo/prism-mcp", "@arnilo/prism-observability-opentelemetry",
886
- "@arnilo/prism-provider-kimi", "@arnilo/prism-provider-neuralwatt", "@arnilo/prism-provider-openai",
887
- "@arnilo/prism-provider-opencode-go", "@arnilo/prism-provider-openrouter", "@arnilo/prism-provider-zai",
888
- "@arnilo/prism-session-store-postgres", "@arnilo/prism-session-store-sqlite",
889
- "@arnilo/prism-tool-validator-json-schema", "@arnilo/prism-workflows", "@arnilo/prism-evals",
890
- "@arnilo/prism-provider-ai-sdk", "@arnilo/prism-memory", "@arnilo/prism-rag",
891
- "@arnilo/prism-server", "@arnilo/prism-supervisor", "@arnilo/prism-web-tools",
892
- "@arnilo/prism-browser",
893
- ]) await import(name);
894
- NODE
895
- ./node_modules/.bin/prism --help >/dev/null
896
- npm audit signatures --json --include-attestations > npm-signatures.json
897
- ```
898
-
899
- This smoke is bounded to registry metadata, imports, CLI startup, checksums, signatures, and provenance; do not rerun the full release suite after immutable publication.
900
-
901
- #### Rollback limitations
260
+ ### Historical release notes
902
261
 
903
- npm publication is not transactional and published versions are immutable. Partial publication is a resume case, not rollback. For a confirmed systemic defect after completion, deprecate every affected `@0.0.10`; restore `latest` to the previous good release only where that tag already existed. Exact `0.0.10` installs remain possible, so publish a fixed version promptly. Do not unpublish except for a security/legal emergency under npm policy.
262
+ Older 0.0.10–0.0.15 handoffs are summarized in [migration](migration.md); historical 43-package evidence remains there. The publishable package catalog includes `@arnilo/prism-provider-alibaba`, `@arnilo/prism-provider-ollama`, and `@arnilo/prism-session-store-codecs`; current publication uses the 47-manifest handoff above.
904
263
 
905
264
  ## Extension and configuration notes
906
265
 
907
- - **Required `@arnilo/prism` peer.** Every first-party code package declares a non-optional `@arnilo/prism@0.0.23` peer (`peerDependenciesMeta` must not mark `@arnilo/prism` optional; other peers such as `playwright-core` may be optional). The range stays pinned to `0.0.23` for the current 0.x release and will widen to `^1.0.0` at the 1.x stable release. Inside the workspace each package also declares `"@arnilo/prism": "file:../.."` in `devDependencies` so `npm install` resolves the peer locally; that devDependency is stripped from consumer installs and is not a runtime dependency.
266
+ - **Required `@arnilo/prism` peer.** Every first-party code package declares a non-optional `@arnilo/prism@0.0.24` peer (`peerDependenciesMeta` must not mark `@arnilo/prism` optional; other peers such as `playwright-core` may be optional). The range stays pinned to `0.0.24` for the current 0.x release and will widen to `^1.0.0` at the 1.x stable release. Inside the workspace each package also declares `"@arnilo/prism": "file:../.."` in `devDependencies` so `npm install` resolves the peer locally; that devDependency is stripped from consumer installs and is not a runtime dependency.
908
267
  - **Public access.** All 47 manifests (41 code packages + 6 family/profile packages) declare `"publishConfig": { "access": "public" }`; the publisher also passes `--access public` explicitly because scoped packages otherwise default to restricted on first publish.
909
268
  - **Map retention knob.** Source maps are emitted locally but stripped from tarballs by `!dist/**/*.map`. Removing that `files` negation ships maps in releases (larger tarballs, better consumer stack traces).
910
269
  - **Release workflow.** `.github/workflows/release.yml` has six jobs. `verify` runs network-free SDK readiness on Node 24; `node20-compat` builds/imports every public root `exports` default target on Node 20 for declared `engines.node >=20` (docs examples need Node >=22.6 native TypeScript stripping); `postgres-integration` uses `pgvector/pgvector:pg16`; `supply-chain` runs high-severity audit, SPDX/license policy, and tracked-source secret scanning; and tag-only `codeql-release` runs SAST. Tag-only `publish` needs all five gates, preserves clean exact-tag/version/topological publication, and alone receives `NPM_TOKEN`, `id-token: write`, and `attestations: write`. Before npm publish it packs all current tarballs, generates checksums plus SPDX, scans unpacked public artifacts, creates GitHub attestations for tarballs and SBOM, then retains artifacts for 30 days. Registry state remains the resumable journal. Local `npm run release:dry-run` remains network-free SDK readiness; local PostgreSQL coverage is `PRISM_TEST_POSTGRES_URL=... npm run test:postgres`.