diff --git a/.changeset/fn-8564-pi-082.md b/.changeset/fn-8564-pi-082.md new file mode 100644 index 0000000000..647f84194b --- /dev/null +++ b/.changeset/fn-8564-pi-082.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": patch +--- + +summary: Update bundled Pi runtime dependencies to the exact matched 0.82.0 pair. +category: internal +dev: Pins @earendil-works/pi-ai and @earendil-works/pi-coding-agent to 0.82.0. diff --git a/packages/cli/package.json b/packages/cli/package.json index 8a82e0b51b..eaec2cfe97 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -67,8 +67,8 @@ "dependencies": { "@agentclientprotocol/sdk": "0.24.0", "agent-browser": "0.26.0", - "@earendil-works/pi-ai": "0.81.1", - "@earendil-works/pi-coding-agent": "0.81.1", + "@earendil-works/pi-ai": "0.82.0", + "@earendil-works/pi-coding-agent": "0.82.0", "claude-code-cli-acp": "0.1.1", "dockerode": "^4.0.12", "electron": "^33.4.11", diff --git a/packages/cli/src/__tests__/package-config.test.ts b/packages/cli/src/__tests__/package-config.test.ts index a234c74094..8694ad152c 100644 --- a/packages/cli/src/__tests__/package-config.test.ts +++ b/packages/cli/src/__tests__/package-config.test.ts @@ -56,7 +56,7 @@ function assertRuntimeDepsAreNotOptionalPeers(pkg: any, label: string): void { for (const dependencyName of ["@earendil-works/pi-coding-agent", "@earendil-works/pi-ai"]) { expect(dependencies, `${label}: ${dependencyName} must remain a required runtime dependency`).toHaveProperty( dependencyName, - "0.81.1", + "0.82.0", ); expect(dependencies[dependencyName], `${label}: ${dependencyName} must be a clean exact semver`).toMatch( EXACT_SEMVER, diff --git a/packages/core/package.json b/packages/core/package.json index b2a19afd4b..a3f61159ef 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -46,7 +46,7 @@ "test:pg-gate": "vitest run --config vitest.pg.config.ts src/__tests__/postgres/handoff-to-review-atomicity.pg.test.ts src/__tests__/postgres/task-lifecycle-e2e.pg.test.ts --silent=passed-only --reporter=dot" }, "devDependencies": { - "@earendil-works/pi-coding-agent": "0.81.1", + "@earendil-works/pi-coding-agent": "0.82.0", "@types/dockerode": "^3.3.41", "@types/node": "^25.5.0", "@vitest/coverage-v8": "^4.1.0", diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index 174f87dd4b..2e21b3717c 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -106,7 +106,7 @@ "@codemirror/state": "^6.5.2", "@codemirror/theme-one-dark": "^6.1.2", "@codemirror/view": "^6.36.4", - "@earendil-works/pi-coding-agent": "0.81.1", + "@earendil-works/pi-coding-agent": "0.82.0", "@fusion-plugin-examples/claude-runtime": "workspace:*", "@fusion-plugin-examples/cli-printing-press": "workspace:*", "@fusion-plugin-examples/compound-engineering": "workspace:*", diff --git a/packages/dashboard/src/__tests__/register-model-routes-kimi-k3-supplemental.test.ts b/packages/dashboard/src/__tests__/register-model-routes-kimi-k3-supplemental.test.ts index 46a946e44a..a7d21eb8d3 100644 --- a/packages/dashboard/src/__tests__/register-model-routes-kimi-k3-supplemental.test.ts +++ b/packages/dashboard/src/__tests__/register-model-routes-kimi-k3-supplemental.test.ts @@ -4,9 +4,9 @@ import { ModelRegistry, ModelRuntime } from "@earendil-works/pi-coding-agent"; import { registerModelRoutes } from "../routes/register-model-routes.js"; /* -FNXC:ModelCatalog 2026-07-16-19:05: -FN-8180 requires Kimi K3 to reach both model-catalog consumers. This route-level -coverage uses pi 0.81.1's actual built-in ModelRuntime catalog after refresh, so an +FNXC:ModelCatalog 2026-07-24-12:00: +FN-8564 requires Kimi K3 to reach both model-catalog consumers. This route-level +coverage uses Pi 0.82.0's actual built-in ModelRuntime catalog after refresh, so an SDK catalog regression cannot leave the Dashboard dropdown missing K3 while the engine registry test remains green. */ diff --git a/packages/engine/package.json b/packages/engine/package.json index 4cdb06fcde..a4b720bb08 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -38,8 +38,8 @@ "test:watch": "vitest src/__tests__/executor-*.test.ts --watch" }, "dependencies": { - "@earendil-works/pi-ai": "0.81.1", - "@earendil-works/pi-coding-agent": "0.81.1", + "@earendil-works/pi-ai": "0.82.0", + "@earendil-works/pi-coding-agent": "0.82.0", "@fusion/core": "workspace:*", "@fusion/pi-claude-cli": "workspace:*", "@modelcontextprotocol/sdk": "^1.0.0", diff --git a/packages/engine/src/__tests__/provider-registration.test.ts b/packages/engine/src/__tests__/provider-registration.test.ts index 202abbba10..525098a56e 100644 --- a/packages/engine/src/__tests__/provider-registration.test.ts +++ b/packages/engine/src/__tests__/provider-registration.test.ts @@ -128,8 +128,8 @@ describe("seedDashboardProviders", () => { }); it("keeps native Kimi K3 available through the installed pi model registry", async () => { - // FNXC:ModelCatalog 2026-07-16-19:05: FN-8180 requires catalog coverage to - // exercise pi's real 0.81.1 built-in registry, not a hand-written Kimi fixture. + // FNXC:ModelCatalog 2026-07-24-12:00: FN-8564 keeps catalog coverage on Pi + // 0.82.0's real built-in registry, not a hand-written Kimi fixture. const modelRegistry = await createInMemoryModelRegistry(); await modelRegistry.refresh(); diff --git a/packages/engine/src/auth-storage.ts b/packages/engine/src/auth-storage.ts index a8894185a2..15b60b185a 100644 --- a/packages/engine/src/auth-storage.ts +++ b/packages/engine/src/auth-storage.ts @@ -223,10 +223,15 @@ vendored @earendil-works/pi-coding-agent AuthStorage backend using proper-lockfi plus a per-provider read-modify-merge (FileAuthStorageBackend.persistProviderChange / refreshOAuthTokenWithLock re-read the file under a lock and spread {...currentData, [provider]: credential} rather than flushing a whole-file in-memory -snapshot). packages/engine/package.json already floors this at -"@earendil-works/pi-coding-agent": "0.81.1" (exact pin; locked per-provider merge requires ->=0.80.3) — do not downgrade below 0.80.x, and re-verify this comment against +snapshot). packages/engine/package.json already pins this at +"@earendil-works/pi-coding-agent": "0.82.0" (exact matched runtime pair; locked per-provider +merge requires >=0.80.3) — do not downgrade below 0.80.x, and re-verify this comment against dist/core/auth-storage.js if the pin is ever lowered. See + +FNXC:ProviderAuth 2026-07-24-12:00: +FN-8564 retains Fusion's credential-store adapter on Pi 0.82.0. The release adds Kimi Code and +OpenRouter OAuth, so new upstream login providers must still use the same queued, cross-process +credential persistence contract rather than bypassing Fusion auth storage. packages/engine/src/__tests__/auth-storage-concurrency.test.ts for the regression coverage. */ diff --git a/packages/engine/src/pi.ts b/packages/engine/src/pi.ts index cf93cabfe9..582fd74602 100644 --- a/packages/engine/src/pi.ts +++ b/packages/engine/src/pi.ts @@ -2543,6 +2543,12 @@ export async function createFnAgent(options: AgentOptions): Promise 0.81 adds full provider extensions, expanded usage accounting, Qwen Token Plan, llama.cpp router management, and resilient compaction retries; Fusion session creation stays on the ModelRuntime path already adopted in 0.80.8. + + FNXC:ModelCatalog 2026-07-24-12:00: + FN-8564 advances the exact matched pair to 0.82.0. Its catalog now exposes only + provider-verified reasoning levels and adds Kimi/OpenRouter OAuth plus constrained tools; + retain Fusion's ModelRuntime session construction and supplemental catalog merges rather + than duplicating upstream provider behavior. */ const createSessionOptions: NonNullable[0]> = { cwd: options.cwd, diff --git a/packages/pi-claude-cli/package.json b/packages/pi-claude-cli/package.json index 55c814a02d..eb5910549a 100644 --- a/packages/pi-claude-cli/package.json +++ b/packages/pi-claude-cli/package.json @@ -23,12 +23,12 @@ "@agentclientprotocol/sdk": "0.24.0" }, "peerDependencies": { - "@earendil-works/pi-ai": "0.81.1", - "@earendil-works/pi-coding-agent": "0.81.1" + "@earendil-works/pi-ai": "0.82.0", + "@earendil-works/pi-coding-agent": "0.82.0" }, "devDependencies": { - "@earendil-works/pi-ai": "0.81.1", - "@earendil-works/pi-coding-agent": "0.81.1", + "@earendil-works/pi-ai": "0.82.0", + "@earendil-works/pi-coding-agent": "0.82.0", "@types/node": "^22.0.0", "typescript": "^5.7.0", "vitest": "^4.1.0" diff --git a/plugins/fusion-plugin-droid-runtime/src/thinking-config.ts b/plugins/fusion-plugin-droid-runtime/src/thinking-config.ts index d1f53e9b14..f2e9d556d3 100644 --- a/plugins/fusion-plugin-droid-runtime/src/thinking-config.ts +++ b/plugins/fusion-plugin-droid-runtime/src/thinking-config.ts @@ -6,9 +6,13 @@ * becomes high and high becomes max, leveraging their superior reasoning capability. * * FNXC:DroidThinking 2026-07-16-18:20: - * Fusion now resolves pi 0.81.1 workspace-wide, whose ThinkingLevel includes `max`. - * Keep both exhaustive mappings explicit: non-Opus must still avoid the CLI's max - * effort, while Opus may use it. + * Pi's ThinkingLevel includes `max`. Keep both exhaustive mappings explicit: + * non-Opus must still avoid the CLI's max effort, while Opus may use it. + * + * FNXC:DroidThinking 2026-07-24-12:00: + * FN-8564 updates the workspace runtime to Pi 0.82.0 while retaining `max`. + * Keep these exhaustive maps aligned with the installed type rather than casting + * unknown thinking levels through the Droid CLI boundary. * * IMPORTANT: The CLI does NOT support --thinking-budget. Only --effort is supported. */ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cab782a234..fd0147d414 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: overrides: '@types/node': ^25.5.2 protobufjs: ^7.5.8 - '@earendil-works/pi-ai': 0.81.1 - '@earendil-works/pi-coding-agent': 0.81.1 + '@earendil-works/pi-ai': 0.82.0 + '@earendil-works/pi-coding-agent': 0.82.0 importers: @@ -54,11 +54,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) agent-browser: specifier: 0.26.0 version: 0.26.0 @@ -209,8 +209,8 @@ importers: version: 2.8.3 devDependencies: '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1 + specifier: 0.82.0 + version: 0.82.0 '@types/dockerode': specifier: ^3.3.41 version: 3.3.47 @@ -258,8 +258,8 @@ importers: specifier: ^6.36.4 version: 6.40.0 '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(ws@8.20.0)(zod@3.25.76) + specifier: 0.82.0 + version: 0.82.0(ws@8.20.0)(zod@3.25.76) '@fusion-plugin-examples/claude-runtime': specifier: workspace:* version: link:../../plugins/fusion-plugin-claude-runtime @@ -524,11 +524,11 @@ importers: packages/droid-cli: dependencies: '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion-plugin-examples/droid-runtime': specifier: workspace:* version: link:../../plugins/fusion-plugin-droid-runtime @@ -546,11 +546,11 @@ importers: packages/engine: dependencies: '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/core': specifier: workspace:* version: link:../core @@ -664,11 +664,11 @@ importers: version: 0.24.0(zod@4.4.3) devDependencies: '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@types/node': specifier: ^25.5.2 version: 25.5.2 @@ -682,8 +682,8 @@ importers: packages/pi-llama-cpp: dependencies: '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1 + specifier: 0.82.0 + version: 0.82.0 devDependencies: '@types/node': specifier: ^25.5.2 @@ -781,11 +781,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/core': specifier: workspace:* version: link:../../packages/core @@ -831,11 +831,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/core': specifier: workspace:* version: link:../../packages/core @@ -954,11 +954,11 @@ importers: plugins/fusion-plugin-cursor-runtime: dependencies: '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/plugin-sdk': specifier: workspace:* version: link:../../packages/plugin-sdk @@ -1010,11 +1010,11 @@ importers: plugins/fusion-plugin-droid-runtime: dependencies: '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/plugin-sdk': specifier: workspace:* version: link:../../packages/plugin-sdk @@ -1057,11 +1057,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/core': specifier: workspace:* version: link:../../packages/core @@ -1141,11 +1141,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - specifier: 0.81.1 - version: 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + specifier: 0.82.0 + version: 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/core': specifier: workspace:* version: link:../../packages/core @@ -1826,22 +1826,22 @@ packages: resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} engines: {node: '>= 8.9.0'} - '@earendil-works/pi-agent-core@0.81.1': - resolution: {integrity: sha512-yqbh68CyhqxMov/jUogFJfMqlu2Gd37GAki+tr59YCmAPHfomiCA5ESzusXtpGzABeiZFC/OrRdQ4GwCCOMIHA==} + '@earendil-works/pi-agent-core@0.82.0': + resolution: {integrity: sha512-bnS9DpOKK5T/F/gQkaOnYdMsuuciWiScfAHHWC+k5OQ0HxjSqMFQvp8keurULLoT4+v8NHv4V14pNvd4hsfC0Q==} engines: {node: '>=22.19.0'} - '@earendil-works/pi-ai@0.81.1': - resolution: {integrity: sha512-hzHE7Z8l5mgJk+ke67Lge0rwS2+wbKJrFKl9o5M1R1rh33+cCT7D1AHz1OAtX5wFs90E1/BTGhyJRTUHaMxGvQ==} + '@earendil-works/pi-ai@0.82.0': + resolution: {integrity: sha512-8MvW9+zno13sXDuT2kFMnWeTNUufUhPeZDRVO+igGoBRCDWgn7Xh2FkRQI1mRuet6QhF4ENQuLYdIAOyG6BhNw==} engines: {node: '>=22.19.0'} hasBin: true - '@earendil-works/pi-coding-agent@0.81.1': - resolution: {integrity: sha512-r6ovAsZOgAqbC/aU6s+/dPnv/sGZBuWyZNvi3pXjpbuX5wvp3XvGkQI7/VLvX2o9XpmpFaPUxKNym1WfkN/P8A==} + '@earendil-works/pi-coding-agent@0.82.0': + resolution: {integrity: sha512-Qnqgn9zhJFQ2HZ8R4iNuGhyCk93XX6+eUw9i+TjTuo47amzCy93ft3bB6yaUCleCrNO58dJDHYSGNHv/GAPWKg==} engines: {node: '>=22.19.0'} hasBin: true - '@earendil-works/pi-tui@0.81.1': - resolution: {integrity: sha512-OMEe+Zt8oQYi/rCq3upxsTlIScWL0FPhXwQus34TbQb3EmTx88S7Uzx32JxvQiEeWOw8eDCdJf2PBUBE9r6wIg==} + '@earendil-works/pi-tui@0.82.0': + resolution: {integrity: sha512-9IDjQOXne7t9l2s2YcjnIBxsVNVPE7qScVSB3YmFlXsBW4pfo2gOElTxggV84KrRiGqABnlFPBWbf0k54hszHQ==} engines: {node: '>=22.19.0'} '@electron/asar@3.4.1': @@ -8962,9 +8962,10 @@ snapshots: ajv: 6.14.0 ajv-keywords: 3.5.2(ajv@6.14.0) - '@earendil-works/pi-agent-core@0.81.1': + '@earendil-works/pi-agent-core@0.82.0': dependencies: - '@earendil-works/pi-ai': 0.81.1 + '@earendil-works/pi-ai': 0.82.0 + diff: 8.0.4 ignore: 7.0.5 typebox: 1.1.38 yaml: 2.9.0 @@ -8976,9 +8977,10 @@ snapshots: - ws - zod - '@earendil-works/pi-agent-core@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': + '@earendil-works/pi-agent-core@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': dependencies: - '@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + diff: 8.0.4 ignore: 7.0.5 typebox: 1.1.38 yaml: 2.9.0 @@ -8990,9 +8992,10 @@ snapshots: - ws - zod - '@earendil-works/pi-agent-core@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': + '@earendil-works/pi-agent-core@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: - '@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + '@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + diff: 8.0.4 ignore: 7.0.5 typebox: 1.1.38 yaml: 2.9.0 @@ -9004,9 +9007,10 @@ snapshots: - ws - zod - '@earendil-works/pi-agent-core@0.81.1(ws@8.20.0)(zod@3.25.76)': + '@earendil-works/pi-agent-core@0.82.0(ws@8.20.0)(zod@3.25.76)': dependencies: - '@earendil-works/pi-ai': 0.81.1(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-ai': 0.82.0(ws@8.20.0)(zod@3.25.76) + diff: 8.0.4 ignore: 7.0.5 typebox: 1.1.38 yaml: 2.9.0 @@ -9018,7 +9022,7 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.81.1': + '@earendil-works/pi-ai@0.82.0': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@3.25.76) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -9039,7 +9043,7 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': + '@earendil-works/pi-ai@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@4.4.3) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -9060,7 +9064,7 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': + '@earendil-works/pi-ai@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@4.4.3) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -9081,7 +9085,7 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.81.1(ws@8.20.0)(zod@3.25.76)': + '@earendil-works/pi-ai@0.82.0(ws@8.20.0)(zod@3.25.76)': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@3.25.76) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -9102,11 +9106,11 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.81.1': + '@earendil-works/pi-coding-agent@0.82.0': dependencies: - '@earendil-works/pi-agent-core': 0.81.1 - '@earendil-works/pi-ai': 0.81.1 - '@earendil-works/pi-tui': 0.81.1 + '@earendil-works/pi-agent-core': 0.82.0 + '@earendil-works/pi-ai': 0.82.0 + '@earendil-works/pi-tui': 0.82.0 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -9132,11 +9136,11 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': + '@earendil-works/pi-coding-agent@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3)': dependencies: - '@earendil-works/pi-agent-core': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) - '@earendil-works/pi-tui': 0.81.1 + '@earendil-works/pi-agent-core': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.20.0)(zod@4.4.3) + '@earendil-works/pi-tui': 0.82.0 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -9162,11 +9166,11 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': + '@earendil-works/pi-coding-agent@0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: - '@earendil-works/pi-agent-core': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) - '@earendil-works/pi-ai': 0.81.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) - '@earendil-works/pi-tui': 0.81.1 + '@earendil-works/pi-agent-core': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + '@earendil-works/pi-ai': 0.82.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + '@earendil-works/pi-tui': 0.82.0 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -9192,11 +9196,11 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.81.1(ws@8.20.0)(zod@3.25.76)': + '@earendil-works/pi-coding-agent@0.82.0(ws@8.20.0)(zod@3.25.76)': dependencies: - '@earendil-works/pi-agent-core': 0.81.1(ws@8.20.0)(zod@3.25.76) - '@earendil-works/pi-ai': 0.81.1(ws@8.20.0)(zod@3.25.76) - '@earendil-works/pi-tui': 0.81.1 + '@earendil-works/pi-agent-core': 0.82.0(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-ai': 0.82.0(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-tui': 0.82.0 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -9222,7 +9226,7 @@ snapshots: - ws - zod - '@earendil-works/pi-tui@0.81.1': + '@earendil-works/pi-tui@0.82.0': dependencies: get-east-asian-width: 1.6.0 marked: 18.0.5 @@ -14501,7 +14505,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.2.7 + lru-cache: 11.5.2 minipass: 7.1.3 path-to-regexp@8.3.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ae3f7bcdf5..1b29762219 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -23,8 +23,10 @@ overrides: # workspace cannot resolve conflicting pi type surfaces. # FNXC:ModelCatalog 2026-07-22-12:00: Bumped workspace override pin 0.80.10 → 0.81.1 # to match guarded package manifests (cli/core/engine/dashboard/pi-claude-cli). - '@earendil-works/pi-ai': 0.81.1 - '@earendil-works/pi-coding-agent': 0.81.1 + # FNXC:ModelCatalog 2026-07-24-12:00: FN-8564 advances the matched runtime pair + # to 0.82.0. Wildcard consumers must resolve the exact guarded Pi API surface. + '@earendil-works/pi-ai': 0.82.0 + '@earendil-works/pi-coding-agent': 0.82.0 # FNXC:DesktopEmbeddedPostgres 2026-07-14-09:30: # Desktop release jobs cross-build Intel and ARM64 artifacts on one host. Install # optional native payloads for both CPU families on the current OS so each diff --git a/scripts/__tests__/check-pi-versions-pinned.test.mjs b/scripts/__tests__/check-pi-versions-pinned.test.mjs index b2c7751d9a..f18f95299d 100644 --- a/scripts/__tests__/check-pi-versions-pinned.test.mjs +++ b/scripts/__tests__/check-pi-versions-pinned.test.mjs @@ -7,8 +7,8 @@ import { const pinnedManifest = { dependencies: { - "@earendil-works/pi-ai": "0.81.1", - "@earendil-works/pi-coding-agent": "0.81.1", + "@earendil-works/pi-ai": "0.82.0", + "@earendil-works/pi-coding-agent": "0.82.0", }, }; @@ -22,7 +22,7 @@ describe("check-pi-versions-pinned", () => { }); it("rejects caret, tilde, wildcard, x, and comparator ranges", () => { - for (const version of ["^0.81.1", "~0.81.1", "*", "0.81.x", ">=0.81.1"]) { + for (const version of ["^0.82.0", "~0.82.0", "*", "0.82.x", ">=0.82.0"]) { const violations = validate({ ...pinnedManifest, dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-ai": version }, @@ -34,7 +34,7 @@ describe("check-pi-versions-pinned", () => { it("rejects a matched-set version mismatch", () => { const violations = validate({ ...pinnedManifest, - dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-coding-agent": "0.81.2" }, + dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-coding-agent": "0.82.1" }, }); assert.equal(violations.some((violation) => violation.includes("same exact version")), true); });