From 8b039a543ec49b3219e0fe0051ab863d59360409 Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sun, 26 Jul 2026 23:47:49 -0700 Subject: [PATCH] fix(desktop): advance Pi runtime pin to 0.82.1 for packaging PR lane (#2465) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Advance the matched Pi runtime pin (`pi-ai`, `pi-coding-agent`, `pi-agent-core`, `pi-tui`) from **0.82.0 → 0.82.1** so electron-builder's production-dependency walk accepts `pi-agent-core`'s `pi-ai@^0.82.1` requirement. - Fixes the Desktop packaging PR-lane failure: `Production dependency @earendil-works/pi-ai not found for package @earendil-works/pi-agent-core` (required `^0.82.1`). - Keep the workspace override guard; update pin-policy fixtures and CLI package-config expectations. - Tighten the advisory packaging step-order test so it asserts against the real `electron-builder --dir` step (not a missing release-only step name that previously passed via `indexOf === -1`). - Run `pnpm dedupe` so the packaging lane's lockfile dedupe early-warning is clean. ## Context #2439 pinned the full Pi closure at 0.82.0 and made recent main-based packaging runs green. This advances to the current upstream patch so deploy + electron-builder stay aligned with `pi-agent-core@0.82.1`'s declared dependency range. ## Test plan - [x] `node scripts/check-pi-versions-pinned.mjs` - [x] `node --test scripts/__tests__/check-pi-versions-pinned.test.mjs` - [x] `pnpm --filter @runfusion/fusion exec vitest run src/__tests__/package-config.test.ts` - [x] `pnpm --filter @fusion/desktop exec vitest run src/__tests__/release-workflow.test.ts` - [x] `pnpm dedupe --check` - [ ] GitHub: Desktop packaging (should run full packaging walk — lockfile/package.json touched) - [ ] GitHub: PR Checks (Lint, Typecheck, Build, Gate) --- .changeset/desktop-packaging-pi-0.82.1.md | 7 + .github/actions/setup-node-pnpm/action.yml | 33 +- packages/cli/package.json | 4 +- .../cli/src/__tests__/ci-workflow.test.ts | 21 + .../cli/src/__tests__/package-config.test.ts | 4 +- packages/core/package.json | 2 +- packages/dashboard/package.json | 2 +- .../src/__tests__/release-workflow.test.ts | 23 +- packages/engine/package.json | 4 +- packages/engine/src/auth-storage.ts | 4 +- packages/engine/src/pi.ts | 2 +- packages/pi-claude-cli/package.json | 8 +- pnpm-lock.yaml | 875 +++++------------- pnpm-workspace.yaml | 11 +- .../check-pi-versions-pinned.test.mjs | 23 +- 15 files changed, 366 insertions(+), 657 deletions(-) create mode 100644 .changeset/desktop-packaging-pi-0.82.1.md diff --git a/.changeset/desktop-packaging-pi-0.82.1.md b/.changeset/desktop-packaging-pi-0.82.1.md new file mode 100644 index 0000000000..8b1aedb88f --- /dev/null +++ b/.changeset/desktop-packaging-pi-0.82.1.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": patch +--- + +summary: Keep desktop packaging on a packageable Pi 0.82.1 runtime closure. +category: fix +dev: Advances the matched Pi runtime pin (pi-ai, pi-coding-agent, pi-agent-core, pi-tui) from 0.82.0 to 0.82.1 so electron-builder accepts pi-agent-core's pi-ai@^0.82.1 dependency during the Desktop packaging PR lane. diff --git a/.github/actions/setup-node-pnpm/action.yml b/.github/actions/setup-node-pnpm/action.yml index f8068d0827..dad7948e5d 100644 --- a/.github/actions/setup-node-pnpm/action.yml +++ b/.github/actions/setup-node-pnpm/action.yml @@ -23,22 +23,37 @@ runs: - name: Install pnpm uses: pnpm/action-setup@v4 + # Do NOT cache the linked node_modules tree. pnpm builds node_modules from + # symlinks/junctions into the content-addressable store, and actions/cache does + # not preserve Windows junctions across its tar/restore — a restored tree has + # broken peer links (e.g. @vitejs/plugin-react can't resolve its `vite` peer → + # ERR_MODULE_NOT_FOUND), which silently broke the Windows release build. The + # pnpm *store* is already cached by actions/setup-node (`cache: pnpm`), so + # `pnpm install --frozen-lockfile` is fast with a warm store and relinks + # correctly per-OS/arch every time (also fixing the prior arch-key and per-job + # cache-race issues this node_modules cache was patched for). + # + # FNXC:CI 2026-07-26-23:05: + # skip-install callers (agent-browser pack fixture, version.yml) never create a + # pnpm store. setup-node's post-job cache save then fails hard with + # "Path Validation Error: Path(s) specified in the action for caching do(es) + # not exist" and marks an otherwise-successful pack job failed. Only enable + # the pnpm store cache when this composite will actually install. - name: Setup Node.js + if: ${{ inputs.skip-install != 'true' }} uses: actions/setup-node@v5 with: node-version: ${{ inputs.node-version }} cache: pnpm registry-url: ${{ inputs.registry-url }} - # Do NOT cache the linked node_modules tree. pnpm builds node_modules from - # symlinks/junctions into the content-addressable store, and actions/cache does - # not preserve Windows junctions across its tar/restore — a restored tree has - # broken peer links (e.g. @vitejs/plugin-react can't resolve its `vite` peer → - # ERR_MODULE_NOT_FOUND), which silently broke the Windows release build. The - # pnpm *store* is already cached by actions/setup-node above (`cache: pnpm`), so - # `pnpm install --frozen-lockfile` is fast with a warm store and relinks - # correctly per-OS/arch every time (also fixing the prior arch-key and per-job - # cache-race issues this node_modules cache was patched for). + - name: Setup Node.js (no pnpm store cache) + if: ${{ inputs.skip-install == 'true' }} + uses: actions/setup-node@v5 + with: + node-version: ${{ inputs.node-version }} + registry-url: ${{ inputs.registry-url }} + - name: Install dependencies if: ${{ inputs.skip-install != 'true' }} shell: bash diff --git a/packages/cli/package.json b/packages/cli/package.json index 8068b4a135..051b46b3db 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.82.0", - "@earendil-works/pi-coding-agent": "0.82.0", + "@earendil-works/pi-ai": "0.82.1", + "@earendil-works/pi-coding-agent": "0.82.1", "claude-code-cli-acp": "0.1.1", "dockerode": "^4.0.12", "electron": "^33.4.11", diff --git a/packages/cli/src/__tests__/ci-workflow.test.ts b/packages/cli/src/__tests__/ci-workflow.test.ts index 33dea6a7f0..c5e08ce562 100644 --- a/packages/cli/src/__tests__/ci-workflow.test.ts +++ b/packages/cli/src/__tests__/ci-workflow.test.ts @@ -259,6 +259,25 @@ describe("Merge gate (.github/workflows/pr-checks.yml)", () => { expect(compositeAction.inputs?.["install-args"]?.default).toBe("--frozen-lockfile"); }); + /* + FNXC:CI 2026-07-26-23:05: + skip-install pack jobs never create a pnpm store; setup-node must not enable + cache: pnpm on that path or post-job cache save fails the whole job after a + successful pack (agent-browser-install pack-fixture). + */ + it("disables pnpm store cache when skip-install is true", () => { + const setupSteps = (compositeAction.runs?.steps ?? []).filter( + (step: any) => typeof step.uses === "string" && step.uses.startsWith("actions/setup-node@"), + ); + const withCache = setupSteps.find((step: any) => step.with?.cache === "pnpm"); + const withoutCache = setupSteps.find((step: any) => step.with?.cache === undefined || step.with?.cache === ""); + expect(withCache?.if).toContain("skip-install"); + expect(withCache?.if).toContain("!="); + expect(withoutCache?.if).toContain("skip-install"); + expect(withoutCache?.if).toContain("=="); + expect(withoutCache?.with?.cache).toBeUndefined(); + }); + it("keeps lint as install + lint only, without Bun/setup build coupling", () => { const lintSteps = workflow.jobs?.lint?.steps ?? []; expect( @@ -826,6 +845,8 @@ describe("Cross-platform agent-browser install workflow", () => { const packFixture = workflow.jobs?.["pack-fixture"]; const installSmoke = workflow.jobs?.["install-smoke"]; expect(packFixture?.["runs-on"]).toBe("ubuntu-latest"); + // FNXC:CI 2026-07-26-23:05: pack fixture must keep skip-install so the composite + // takes the no-store-cache setup-node path (see setup-node-pnpm action). expect(findCompositeSetupStep(packFixture?.steps ?? [])?.with?.["skip-install"]).toBe("true"); expect(installSmoke?.needs).toBe("pack-fixture"); expect(installSmoke?.["runs-on"]).toBe("${{ matrix.os }}"); diff --git a/packages/cli/src/__tests__/package-config.test.ts b/packages/cli/src/__tests__/package-config.test.ts index 8694ad152c..ef3ce747d3 100644 --- a/packages/cli/src/__tests__/package-config.test.ts +++ b/packages/cli/src/__tests__/package-config.test.ts @@ -53,10 +53,12 @@ function assertRuntimeDepsAreNotOptionalPeers(pkg: any, label: string): void { ).not.toBe(true); } + // FNXC:DesktopPackaging 2026-07-26-22:55: Exact matched Pi runtime pin — keep in sync with + // pnpm-workspace.yaml overrides and check-pi-versions-pinned.mjs (currently 0.82.1). 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.82.0", + "0.82.1", ); 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 533590d33b..b404b50ac5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -51,7 +51,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.82.0", + "@earendil-works/pi-coding-agent": "0.82.1", "@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 64f1551d83..da61a1054c 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -107,7 +107,7 @@ "@codemirror/state": "^6.5.2", "@codemirror/theme-one-dark": "^6.1.2", "@codemirror/view": "^6.36.4", - "@earendil-works/pi-coding-agent": "0.82.0", + "@earendil-works/pi-coding-agent": "0.82.1", "@fusion-plugin-examples/claude-runtime": "workspace:*", "@fusion-plugin-examples/cli-printing-press": "workspace:*", "@fusion-plugin-examples/compound-engineering": "workspace:*", diff --git a/packages/desktop/src/__tests__/release-workflow.test.ts b/packages/desktop/src/__tests__/release-workflow.test.ts index a1d2579a0d..40cb3f0177 100644 --- a/packages/desktop/src/__tests__/release-workflow.test.ts +++ b/packages/desktop/src/__tests__/release-workflow.test.ts @@ -106,16 +106,31 @@ describe("desktop release workflow wiring", () => { expect(verifier).not.toContain("found ${platform}; expected ${expectedPlatform}"); const advisoryPackaging = await readRepoFile(".github/workflows/desktop-packaging.yml"); - for (const workflow of [release, testRelease, advisoryPackaging]) { + /* + FNXC:DesktopEmbeddedPostgres 2026-07-15-11:55: + This verifier reads electron-builder's unpacked tree, so invoking it before + the Linux packaging command would only validate stale output. + + FNXC:DesktopPackaging 2026-07-26-22:55: + Release/test-release package via the named "Package Linux desktop artifacts" + step; the advisory PR lane uses electron-builder --dir ("Validate packageable + closure"). Assert order against each workflow's real packaging step so a + missing release step cannot silently pass via indexOf === -1. + */ + for (const workflow of [release, testRelease]) { expect(workflow).toContain("Verify Linux AppImage embedded Postgres packaging"); expect(workflow).toContain("node scripts/verify-desktop-linux-pg-packaging.mjs"); - // FNXC:DesktopEmbeddedPostgres 2026-07-15-11:55: - // This verifier reads electron-builder's unpacked tree, so invoking it - // before the Linux packaging command would only validate stale output. + expect(workflow).toContain("Package Linux desktop artifacts"); expect(workflow.indexOf("node scripts/verify-desktop-linux-pg-packaging.mjs")).toBeGreaterThan( workflow.indexOf("Package Linux desktop artifacts"), ); } + expect(advisoryPackaging).toContain("Verify Linux AppImage embedded Postgres packaging"); + expect(advisoryPackaging).toContain("node scripts/verify-desktop-linux-pg-packaging.mjs"); + expect(advisoryPackaging).toContain("Validate packageable closure (electron-builder --dir)"); + expect(advisoryPackaging.indexOf("node scripts/verify-desktop-linux-pg-packaging.mjs")).toBeGreaterThan( + advisoryPackaging.indexOf("Validate packageable closure (electron-builder --dir)"), + ); }); it("wires release aggregation to include desktop assets across platforms", async () => { diff --git a/packages/engine/package.json b/packages/engine/package.json index 8b303b637d..2d83748cfd 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.82.0", - "@earendil-works/pi-coding-agent": "0.82.0", + "@earendil-works/pi-ai": "0.82.1", + "@earendil-works/pi-coding-agent": "0.82.1", "@fusion/core": "workspace:*", "@fusion/pi-claude-cli": "workspace:*", "@modelcontextprotocol/sdk": "^1.0.0", diff --git a/packages/engine/src/auth-storage.ts b/packages/engine/src/auth-storage.ts index 44b89cf0f0..24609d15fd 100644 --- a/packages/engine/src/auth-storage.ts +++ b/packages/engine/src/auth-storage.ts @@ -224,12 +224,12 @@ plus a per-provider read-modify-merge (FileAuthStorageBackend.persistProviderCha 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 pins this at -"@earendil-works/pi-coding-agent": "0.82.0" (exact matched runtime pair; locked per-provider +"@earendil-works/pi-coding-agent": "0.82.1" (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 +FN-8564 retains Fusion's credential-store adapter on Pi 0.82.x. 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 49375c21bb..9ba7b99f27 100644 --- a/packages/engine/src/pi.ts +++ b/packages/engine/src/pi.ts @@ -2627,7 +2627,7 @@ export async function createFnAgent(options: AgentOptions): Promise 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 + FN-8564 advances the exact matched pair to 0.82.x. 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. diff --git a/packages/pi-claude-cli/package.json b/packages/pi-claude-cli/package.json index 72edbef09a..a66e91793e 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.82.0", - "@earendil-works/pi-coding-agent": "0.82.0" + "@earendil-works/pi-ai": "0.82.1", + "@earendil-works/pi-coding-agent": "0.82.1" }, "devDependencies": { - "@earendil-works/pi-ai": "0.82.0", - "@earendil-works/pi-coding-agent": "0.82.0", + "@earendil-works/pi-ai": "0.82.1", + "@earendil-works/pi-coding-agent": "0.82.1", "@types/node": "^22.0.0", "typescript": "^5.7.0", "vitest": "^4.1.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 01aa080380..44414e5c63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,10 +7,10 @@ settings: overrides: '@types/node': ^25.5.2 protobufjs: ^7.5.8 - '@earendil-works/pi-agent-core': 0.82.0 - '@earendil-works/pi-ai': 0.82.0 - '@earendil-works/pi-coding-agent': 0.82.0 - '@earendil-works/pi-tui': 0.82.0 + '@earendil-works/pi-agent-core': 0.82.1 + '@earendil-works/pi-ai': 0.82.1 + '@earendil-works/pi-coding-agent': 0.82.1 + '@earendil-works/pi-tui': 0.82.1 importers: @@ -48,7 +48,7 @@ importers: version: 8.58.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) yaml: specifier: ^2.8.3 - version: 2.8.3 + version: 2.9.0 packages/cli: dependencies: @@ -56,11 +56,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) agent-browser: specifier: 0.26.0 version: 0.26.0 @@ -111,7 +111,7 @@ importers: version: 17.0.8(i18next@26.3.1(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3) ws: specifier: ^8.18.0 - version: 8.20.0 + version: 8.21.1 devDependencies: '@fusion/core': specifier: workspace:* @@ -133,7 +133,7 @@ importers: version: link:../pi-llama-cpp '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.2.0 version: 19.2.14 @@ -154,22 +154,22 @@ importers: version: 4.0.0(@types/react@19.2.14) tsup: specifier: ^8.5.1 - version: 8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3) + version: 8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) tsx: specifier: ^4.19.0 version: 4.21.0 typebox: specifier: ^1.0.0 - version: 1.1.32 + version: 1.1.38 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) yaml: specifier: ^2.8.3 - version: 2.8.3 + version: 2.9.0 packages/cli-alias: dependencies: @@ -208,17 +208,17 @@ importers: version: 7.5.13 yaml: specifier: ^2.8.3 - version: 2.8.3 + version: 2.9.0 devDependencies: '@earendil-works/pi-coding-agent': - specifier: 0.82.0 - version: 0.82.0 + specifier: 0.82.1 + version: 0.82.1 '@types/dockerode': specifier: ^3.3.41 version: 3.3.47 '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@vitest/coverage-v8': specifier: ^4.1.0 version: 4.1.8(vitest@4.1.8) @@ -227,7 +227,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) optionalDependencies: keytar: specifier: ^7.9.0 @@ -260,8 +260,8 @@ importers: specifier: ^6.36.4 version: 6.40.0 '@earendil-works/pi-coding-agent': - specifier: 0.82.0 - version: 0.82.0(ws@8.20.0)(zod@3.25.76) + specifier: 0.82.1 + version: 0.82.1(ws@8.21.1)(zod@3.25.76) '@fusion-plugin-examples/claude-runtime': specifier: workspace:* version: link:../../plugins/fusion-plugin-claude-runtime @@ -399,7 +399,7 @@ importers: version: 11.0.5 ws: specifier: ^8.18.0 - version: 8.20.0 + version: 8.21.1 zod: specifier: ^3.25.76 version: 3.25.76 @@ -421,7 +421,7 @@ importers: version: 5.0.6 '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/qrcode': specifier: ^1.5.6 version: 1.5.6 @@ -436,7 +436,7 @@ importers: version: 8.18.1 '@vitejs/plugin-react': specifier: ^4.3.0 - version: 4.7.0(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.7.0(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/coverage-v8': specifier: ^4.1.0 version: 4.1.8(vitest@4.1.8) @@ -451,10 +451,10 @@ importers: version: 5.9.3 vite: specifier: ^6.0.0 - version: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) optionalDependencies: sherpa-onnx-node: specifier: ^1.13.4 @@ -483,7 +483,7 @@ importers: version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -522,41 +522,41 @@ importers: version: 5.9.3 vite: specifier: ^6.0.0 - version: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + version: 6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/droid-cli: dependencies: '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/engine: dependencies: '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@fusion/core': specifier: workspace:* version: link:../core @@ -583,11 +583,11 @@ importers: version: 4.1.2 typebox: specifier: ^1.0.0 - version: 1.1.32 + version: 1.1.38 devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/proper-lockfile': specifier: ^4.1.4 version: 4.1.4 @@ -599,7 +599,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/i18n: dependencies: @@ -612,13 +612,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/mobile: dependencies: @@ -652,7 +652,7 @@ importers: version: 7.6.1(@capacitor/core@7.6.1) '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 tsx: specifier: ^4.19.0 version: 4.21.0 @@ -661,7 +661,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/pi-claude-cli: dependencies: @@ -670,36 +670,36 @@ importers: version: 0.24.0(zod@4.4.3) devDependencies: '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/pi-llama-cpp: dependencies: '@earendil-works/pi-coding-agent': - specifier: 0.82.0 - version: 0.82.0 + specifier: 0.82.1 + version: 0.82.1 devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/plugin-sdk: dependencies: @@ -709,13 +709,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/examples/fusion-plugin-auto-label: dependencies: @@ -725,13 +725,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/examples/fusion-plugin-ci-status: dependencies: @@ -741,13 +741,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/examples/fusion-plugin-notification: dependencies: @@ -757,13 +757,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/examples/fusion-plugin-settings-demo: dependencies: @@ -773,13 +773,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-acp-runtime: dependencies: @@ -787,11 +787,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 @@ -804,13 +804,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-agent-browser: dependencies: @@ -823,13 +823,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-claude-runtime: dependencies: @@ -837,11 +837,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 @@ -900,7 +900,7 @@ importers: version: 5.0.6 '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -909,7 +909,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-compound-engineering: dependencies: @@ -946,7 +946,7 @@ importers: version: 14.6.1(@testing-library/dom@10.4.1) '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -955,29 +955,29 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-cursor-runtime: dependencies: '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-dependency-graph: dependencies: @@ -996,7 +996,7 @@ importers: version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -1011,29 +1011,29 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-droid-runtime: dependencies: '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-even-realities-glasses: dependencies: @@ -1049,13 +1049,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-grok-runtime: dependencies: @@ -1063,11 +1063,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 @@ -1077,13 +1077,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-hermes-runtime: dependencies: @@ -1093,13 +1093,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-linear-import: dependencies: @@ -1124,7 +1124,7 @@ importers: version: 14.6.1(@testing-library/dom@10.4.1) '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -1139,7 +1139,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-omp-runtime: dependencies: @@ -1147,11 +1147,11 @@ importers: specifier: 0.24.0 version: 0.24.0(zod@4.4.3) '@earendil-works/pi-ai': - 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) + specifier: 0.82.1 + version: 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': - 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) + specifier: 0.82.1 + version: 0.82.1(@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 @@ -1161,13 +1161,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-openclaw-runtime: dependencies: @@ -1177,13 +1177,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-paperclip-runtime: dependencies: @@ -1193,13 +1193,13 @@ importers: devDependencies: '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-quality: dependencies: @@ -1221,7 +1221,7 @@ importers: version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -1239,7 +1239,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@27.4.0)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@27.4.0)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-reports: dependencies: @@ -1276,7 +1276,7 @@ importers: version: 14.6.1(@testing-library/dom@10.4.1) '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -1285,7 +1285,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-roadmap: dependencies: @@ -1325,7 +1325,7 @@ importers: version: 5.0.6 '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 '@types/react': specifier: ^19.0.0 version: 19.2.14 @@ -1334,7 +1334,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) plugins/fusion-plugin-whatsapp-chat: dependencies: @@ -1359,13 +1359,13 @@ importers: version: link:../../packages/core '@types/node': specifier: ^25.5.2 - version: 25.5.2 + version: 25.9.5 typescript: specifier: ^5.7.0 version: 5.9.3 vitest: specifier: ^4.1.0 - version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + version: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages: @@ -1516,10 +1516,6 @@ packages: resolution: {integrity: sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==} engines: {node: '>=18.0.0'} - '@babel/code-frame@7.29.0': - resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.29.7': resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} @@ -1558,18 +1554,10 @@ packages: resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} @@ -1582,11 +1570,6 @@ packages: resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.2': - resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.29.7': resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} engines: {node: '>=6.0.0'} @@ -1604,10 +1587,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.7': resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} @@ -1620,10 +1599,6 @@ packages: resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} - '@babel/types@7.29.7': resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} engines: {node: '>=6.9.0'} @@ -1832,22 +1807,22 @@ packages: resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} engines: {node: '>= 8.9.0'} - '@earendil-works/pi-agent-core@0.82.0': - resolution: {integrity: sha512-bnS9DpOKK5T/F/gQkaOnYdMsuuciWiScfAHHWC+k5OQ0HxjSqMFQvp8keurULLoT4+v8NHv4V14pNvd4hsfC0Q==} + '@earendil-works/pi-agent-core@0.82.1': + resolution: {integrity: sha512-Z3kloziJIE2dmrisRckZX8zDca/gIv9/YdFAzeoqpHiLV2wsni6bL4hInNSjVKLbqT+4kqLIkph2JQLKvSepjg==} engines: {node: '>=22.19.0'} - '@earendil-works/pi-ai@0.82.0': - resolution: {integrity: sha512-8MvW9+zno13sXDuT2kFMnWeTNUufUhPeZDRVO+igGoBRCDWgn7Xh2FkRQI1mRuet6QhF4ENQuLYdIAOyG6BhNw==} + '@earendil-works/pi-ai@0.82.1': + resolution: {integrity: sha512-3WFYRhEp3lQB3444EhPMBcM7zSaEUE3eJgHOR7s4081NLqbw/FsWilIKWXSua0Gv3sRr7m9xMidR3pPDE7jI/A==} engines: {node: '>=22.19.0'} hasBin: true - '@earendil-works/pi-coding-agent@0.82.0': - resolution: {integrity: sha512-Qnqgn9zhJFQ2HZ8R4iNuGhyCk93XX6+eUw9i+TjTuo47amzCy93ft3bB6yaUCleCrNO58dJDHYSGNHv/GAPWKg==} + '@earendil-works/pi-coding-agent@0.82.1': + resolution: {integrity: sha512-zbkAhoIuDPMF3pKuja0ajZabrMWU29FUMV9A/XMXT/XC1yXs5xt6t6t13GogQFsDrDqbFP4DkZQO1w8rWRAzYA==} engines: {node: '>=22.19.0'} hasBin: true - '@earendil-works/pi-tui@0.82.0': - resolution: {integrity: sha512-9IDjQOXne7t9l2s2YcjnIBxsVNVPE7qScVSB3YmFlXsBW4pfo2gOElTxggV84KrRiGqABnlFPBWbf0k54hszHQ==} + '@earendil-works/pi-tui@0.82.1': + resolution: {integrity: sha512-9yN8hALfKaxZq7n54EMxqhFCWnMi6LHkraMJ/1YjHiATq75XrI6XDMVppn9EDtiK7Fks8hUe1SDXUTrIvwRWfQ==} engines: {node: '>=22.19.0'} '@electron/asar@3.4.1': @@ -2872,36 +2847,21 @@ packages: '@protobufjs/codegen@2.0.5': resolution: {integrity: sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==} - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - '@protobufjs/eventemitter@1.1.1': resolution: {integrity: sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==} - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - '@protobufjs/fetch@1.1.1': resolution: {integrity: sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==} '@protobufjs/float@1.0.2': resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - - '@protobufjs/inquire@1.1.1': - resolution: {integrity: sha512-mnzgDV26ueAvk7rsbt9L7bE0SuAoqyuys/sMMrmVcN5x9VsxpcG3rqAUSgDyLp0UZlmNfIbQ4fHfCtreVBk8Ew==} - '@protobufjs/path@1.1.2': resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} '@protobufjs/pool@1.1.0': resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - '@protobufjs/utf8@1.1.1': - resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} - '@protobufjs/utf8@1.1.2': resolution: {integrity: sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==} @@ -3434,9 +3394,6 @@ packages: '@types/multer@2.1.0': resolution: {integrity: sha512-zYZb0+nJhOHtPpGDb3vqPjwpdeGlGC157VpkqNQL+UU2qwoacoQ7MpsAmUptI/0Oa127X32JzWDqQVEXp2RcIA==} - '@types/node@25.5.2': - resolution: {integrity: sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==} - '@types/node@25.9.5': resolution: {integrity: sha512-OScDchr2fwuUmWdf4kZ9h7PcJiYDVInhJizG/biAq3cAvqwYktuy/TYGGdZNMtNTFUP7rnb0NU4TUdm82kt4Rg==} @@ -3628,6 +3585,7 @@ packages: '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + deprecated: Potential CWE-502 - Update to 1.3.1 or higher '@upsetjs/venn.js@2.0.0': resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} @@ -3690,7 +3648,10 @@ packages: '@whiskeysockets/baileys@6.17.16': resolution: {integrity: sha512-cZoUaKpO4fsDUNiCtyZfbjkW0Bjl/IudzHLCvpqfqtq5TACQzNynYsYdKPJz1I8Cu/SSEvmewk0RorIs0zDWyw==} - deprecated: The new official package name for the Baileys package is "baileys". Please use that package name going forward. This version may stop receiving updates in the future. + deprecated: |- + This version is affected by a zero-day vulnerability that allows spoofing of messages, please update to + the latest versions (6.7.22^ or 7.0.0-rc12^)! For more information, check out the public advisory at + https://github.com/WhiskeySockets/Baileys/security/advisories/GHSA-qvv5-jq5g-4cgg peerDependencies: jimp: ^0.16.1 link-preview-js: ^3.0.0 @@ -3716,6 +3677,7 @@ packages: '@xmldom/xmldom@0.8.12': resolution: {integrity: sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==} engines: {node: '>=10.0.0'} + deprecated: this version has critical issues, please update to the latest version '@xterm/addon-fit@0.10.0': resolution: {integrity: sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==} @@ -3923,6 +3885,7 @@ packages: audio-decode@2.2.3: resolution: {integrity: sha512-Z0lHvMayR/Pad9+O9ddzaBJE0DrhZkQlStrC1RwcAHF3AhQAsdwKHeLGK8fYKyp2DDU6xHxzGb4CLMui12yVrg==} + deprecated: Renamed to @audio/decode — same API; this name remains a thin alias. npm i @audio/decode audio-type@2.4.1: resolution: {integrity: sha512-dK9Z/P83C/rBfTrXXgPD3jZ+aXxx2o/P4rq8+H1JqxbXklitEeJw4CrcwMC5CkON3CX3yy2gaWnIEVYejYh0zQ==} @@ -5305,10 +5268,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.4: - resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} - engines: {node: '>=14.14'} - fs-extra@11.3.6: resolution: {integrity: sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==} engines: {node: '>=14.14'} @@ -5930,9 +5889,6 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} - jsonfile@6.2.1: resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} @@ -6061,10 +6017,6 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.2.7: - resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} - engines: {node: 20 || >=22} - lru-cache@11.5.2: resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} engines: {node: 20 || >=22} @@ -6325,10 +6277,6 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - minimatch@10.2.4: - resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} - engines: {node: 18 || 20 || >=22} - minimatch@10.2.5: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} @@ -6737,10 +6685,6 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} - engines: {node: '>=12'} - picomatch@4.0.5: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} @@ -6895,10 +6839,6 @@ packages: property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - protobufjs@7.5.8: - resolution: {integrity: sha512-dvpCIeLPbXZS/Ete7yLaO7RenOdken2NHKykBXbsaGxZT0UTltcarBciw+A78SRQs9iMAAVpsYA+l8b1hTePIA==} - engines: {node: '>=12.0.0'} - protobufjs@7.6.5: resolution: {integrity: sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw==} engines: {node: '>=12.0.0'} @@ -7638,10 +7578,6 @@ packages: resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} engines: {node: '>=18'} - tinyglobby@0.2.15: - resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -7774,9 +7710,6 @@ packages: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} - typebox@1.1.32: - resolution: {integrity: sha512-cbGoj7BCxGcFDJ/RR7wbyMe9IkO2SeNhwLdZWQ+xRtun9+ze9iM1pBND4SoFAxgonuJYrCIWnEQ7sE4bMVDYHA==} - typebox@1.1.38: resolution: {integrity: sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==} @@ -7798,9 +7731,6 @@ packages: ufo@1.6.3: resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - undici-types@7.24.6: resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} @@ -8093,18 +8023,6 @@ packages: utf-8-validate: optional: true - ws@8.20.0: - resolution: {integrity: sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.21.1: resolution: {integrity: sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==} engines: {node: '>=10.0.0'} @@ -8157,11 +8075,6 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml@2.8.3: - resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==} - engines: {node: '>= 14.6'} - hasBin: true - yaml@2.9.0: resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} engines: {node: '>= 14.6'} @@ -8201,11 +8114,6 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod-to-json-schema@3.25.1: - resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} - peerDependencies: - zod: ^3.25 || ^4 - zod-to-json-schema@3.25.2: resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} peerDependencies: @@ -8277,7 +8185,7 @@ snapshots: '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.2.7 + lru-cache: 11.5.2 '@asamuzakjp/css-color@5.0.1': dependencies: @@ -8285,7 +8193,7 @@ snapshots: '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 - lru-cache: 11.2.7 + lru-cache: 11.5.2 '@asamuzakjp/dom-selector@6.8.1': dependencies: @@ -8293,7 +8201,7 @@ snapshots: bidi-js: 1.0.3 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.7 + lru-cache: 11.5.2 '@asamuzakjp/dom-selector@7.0.4': dependencies: @@ -8301,7 +8209,7 @@ snapshots: bidi-js: 1.0.3 css-tree: 3.2.1 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.7 + lru-cache: 11.5.2 '@asamuzakjp/nwsapi@2.3.9': {} @@ -8519,12 +8427,6 @@ snapshots: '@aws/lambda-invoke-store@0.3.0': {} - '@babel/code-frame@7.29.0': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/code-frame@7.29.7': dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -8535,15 +8437,15 @@ snapshots: '@babel/core@7.29.0': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.1 '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) '@babel/helpers': 7.29.2 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.7 '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -8555,8 +8457,8 @@ snapshots: '@babel/generator@7.29.1': dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 @@ -8574,7 +8476,7 @@ snapshots: '@babel/helper-module-imports@7.28.6': dependencies: '@babel/traverse': 7.29.0 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 transitivePeerDependencies: - supports-color @@ -8582,19 +8484,15 @@ snapshots: dependencies: '@babel/core': 7.29.0 '@babel/helper-module-imports': 7.28.6 - '@babel/helper-validator-identifier': 7.28.5 + '@babel/helper-validator-identifier': 7.29.7 '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color '@babel/helper-plugin-utils@7.28.6': {} - '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-identifier@7.29.7': {} '@babel/helper-validator-option@7.27.1': {} @@ -8602,11 +8500,7 @@ snapshots: '@babel/helpers@7.29.2': dependencies: '@babel/template': 7.28.6 - '@babel/types': 7.29.0 - - '@babel/parser@7.29.2': - dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@babel/parser@7.29.7': dependencies: @@ -8622,33 +8516,26 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 - '@babel/runtime@7.29.2': {} - '@babel/runtime@7.29.7': {} '@babel/template@7.28.6': dependencies: - '@babel/code-frame': 7.29.0 - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@babel/traverse@7.29.0': dependencies: - '@babel/code-frame': 7.29.0 + '@babel/code-frame': 7.29.7 '@babel/generator': 7.29.1 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.29.2 + '@babel/parser': 7.29.7 '@babel/template': 7.28.6 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/types@7.29.7': dependencies: '@babel/helper-string-parser': 7.29.7 @@ -8702,14 +8589,14 @@ snapshots: commander: 12.1.0 debug: 4.4.3 env-paths: 2.2.1 - fs-extra: 11.3.4 + fs-extra: 11.3.6 kleur: 4.1.5 native-run: 2.0.3 open: 8.4.2 plist: 3.1.0 prompts: 2.4.2 rimraf: 6.1.3 - semver: 7.7.4 + semver: 7.8.5 tar: 7.5.13 tslib: 2.8.1 xml2js: 0.6.2 @@ -8750,7 +8637,7 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.7.4 + semver: 7.8.5 '@changesets/assemble-release-plan@6.0.9': dependencies: @@ -8759,7 +8646,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.7.4 + semver: 7.8.5 '@changesets/changelog-git@0.2.1': dependencies: @@ -8790,7 +8677,7 @@ snapshots: package-manager-detector: 0.2.11 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.7.4 + semver: 7.8.5 spawndamnit: 3.0.1 term-size: 2.2.1 transitivePeerDependencies: @@ -8816,7 +8703,7 @@ snapshots: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.7.4 + semver: 7.8.5 '@changesets/get-release-plan@4.0.15': dependencies: @@ -9001,9 +8888,9 @@ snapshots: ajv: 6.14.0 ajv-keywords: 3.5.2(ajv@6.14.0) - '@earendil-works/pi-agent-core@0.82.0': + '@earendil-works/pi-agent-core@0.82.1': dependencies: - '@earendil-works/pi-ai': 0.82.0 + '@earendil-works/pi-ai': 0.82.1 diff: 8.0.4 ignore: 7.0.5 typebox: 1.1.38 @@ -9016,9 +8903,9 @@ snapshots: - ws - zod - '@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-agent-core@0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: - '@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-ai': 0.82.1(@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 @@ -9031,9 +8918,9 @@ snapshots: - ws - zod - '@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-agent-core@0.82.1(ws@8.21.1)(zod@3.25.76)': dependencies: - '@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-ai': 0.82.1(ws@8.21.1)(zod@3.25.76) diff: 8.0.4 ignore: 7.0.5 typebox: 1.1.38 @@ -9046,22 +8933,7 @@ snapshots: - ws - zod - '@earendil-works/pi-agent-core@0.82.0(ws@8.20.0)(zod@3.25.76)': - dependencies: - '@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 - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@earendil-works/pi-ai@0.82.0': + '@earendil-works/pi-ai@0.82.1': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@3.25.76) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -9071,7 +8943,7 @@ snapshots: '@smithy/node-http-handler': 4.7.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - openai: 6.26.0(ws@8.21.1)(zod@4.4.3) + openai: 6.26.0(ws@8.21.1)(zod@3.25.76) partial-json: 0.1.7 typebox: 1.1.38 transitivePeerDependencies: @@ -9082,28 +8954,7 @@ snapshots: - ws - zod - '@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 - '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3)) - '@mistralai/mistralai': 2.2.6(@opentelemetry/api@1.9.0) - '@opentelemetry/api': 1.9.0 - '@smithy/node-http-handler': 4.7.3 - http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.6 - openai: 6.26.0(ws@8.20.0)(zod@4.4.3) - partial-json: 0.1.7 - typebox: 1.1.38 - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@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-ai@0.82.1(@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 @@ -9124,7 +8975,7 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.82.0(ws@8.20.0)(zod@3.25.76)': + '@earendil-works/pi-ai@0.82.1(ws@8.21.1)(zod@3.25.76)': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@3.25.76) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -9134,7 +8985,7 @@ snapshots: '@smithy/node-http-handler': 4.7.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - openai: 6.26.0(ws@8.20.0)(zod@3.25.76) + openai: 6.26.0(ws@8.21.1)(zod@3.25.76) partial-json: 0.1.7 typebox: 1.1.38 transitivePeerDependencies: @@ -9145,11 +8996,11 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.82.0': + '@earendil-works/pi-coding-agent@0.82.1': dependencies: - '@earendil-works/pi-agent-core': 0.82.0 - '@earendil-works/pi-ai': 0.82.0 - '@earendil-works/pi-tui': 0.82.0 + '@earendil-works/pi-agent-core': 0.82.1 + '@earendil-works/pi-ai': 0.82.1 + '@earendil-works/pi-tui': 0.82.1 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -9175,11 +9026,11 @@ snapshots: - ws - zod - '@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)': + '@earendil-works/pi-coding-agent@0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: - '@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 + '@earendil-works/pi-agent-core': 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + '@earendil-works/pi-ai': 0.82.1(@modelcontextprotocol/sdk@1.28.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + '@earendil-works/pi-tui': 0.82.1 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -9205,11 +9056,11 @@ snapshots: - ws - zod - '@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)': + '@earendil-works/pi-coding-agent@0.82.1(ws@8.21.1)(zod@3.25.76)': dependencies: - '@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 + '@earendil-works/pi-agent-core': 0.82.1(ws@8.21.1)(zod@3.25.76) + '@earendil-works/pi-ai': 0.82.1(ws@8.21.1)(zod@3.25.76) + '@earendil-works/pi-tui': 0.82.1 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -9235,37 +9086,7 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.82.0(ws@8.20.0)(zod@3.25.76)': - dependencies: - '@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 - diff: 8.0.4 - glob: 13.0.6 - highlight.js: 10.7.3 - hosted-git-info: 9.0.3 - ignore: 7.0.5 - jiti: 2.7.0 - minimatch: 10.2.5 - proper-lockfile: 4.1.2 - semver: 7.8.0 - typebox: 1.1.38 - undici: 8.5.0 - yaml: 2.9.0 - optionalDependencies: - '@mariozechner/clipboard': 0.3.9 - transitivePeerDependencies: - - '@modelcontextprotocol/sdk' - - bufferutil - - supports-color - - utf-8-validate - - ws - - zod - - '@earendil-works/pi-tui@0.82.0': + '@earendil-works/pi-tui@0.82.1': dependencies: get-east-asian-width: 1.6.0 marked: 18.0.5 @@ -9353,7 +9174,7 @@ snapshots: '@malept/cross-spawn-promise': 2.0.0 debug: 4.4.3 dir-compare: 4.2.0 - fs-extra: 11.3.4 + fs-extra: 11.3.6 minimatch: 9.0.9 plist: 3.1.0 transitivePeerDependencies: @@ -9627,14 +9448,14 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.5.8 + protobufjs: 7.6.5 yargs: 17.7.2 '@grpc/proto-loader@0.8.0': dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.5.8 + protobufjs: 7.6.5 yargs: 17.7.2 '@hapi/boom@9.1.4': @@ -10048,14 +9869,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 '@types/node': 25.9.5 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -10142,7 +9963,7 @@ snapshots: pkce-challenge: 5.0.1 raw-body: 3.0.2 zod: 4.4.3 - zod-to-json-schema: 3.25.1(zod@4.4.3) + zod-to-json-schema: 3.25.2(zod@4.4.3) transitivePeerDependencies: - supports-color @@ -10187,31 +10008,18 @@ snapshots: '@protobufjs/codegen@2.0.5': {} - '@protobufjs/eventemitter@1.1.0': {} - '@protobufjs/eventemitter@1.1.1': {} - '@protobufjs/fetch@1.1.0': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/fetch@1.1.1': dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/float@1.0.2': {} - '@protobufjs/inquire@1.1.0': {} - - '@protobufjs/inquire@1.1.1': {} - '@protobufjs/path@1.1.2': {} '@protobufjs/pool@1.1.0': {} - '@protobufjs/utf8@1.1.1': {} - '@protobufjs/utf8@1.1.2': {} '@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1))(react@19.2.4)': @@ -10454,7 +10262,7 @@ snapshots: '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 '@testing-library/dom': 10.4.1 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) @@ -10482,24 +10290,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.29.2 - '@babel/types': 7.29.0 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 '@types/body-parser@1.19.6': dependencies: @@ -10653,7 +10461,7 @@ snapshots: '@types/dockerode@3.3.47': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 25.5.2 + '@types/node': 25.9.5 '@types/ssh2': 1.15.5 '@types/estree-jsx@1.0.5': @@ -10709,10 +10517,6 @@ snapshots: dependencies: '@types/express': 5.0.6 - '@types/node@25.5.2': - dependencies: - undici-types: 7.18.2 - '@types/node@25.9.5': dependencies: undici-types: 7.24.6 @@ -10729,7 +10533,7 @@ snapshots: '@types/qrcode@1.5.6': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.9.5 '@types/qs@6.15.0': {} @@ -10785,7 +10589,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 25.5.2 + '@types/node': 25.9.5 '@types/yauzl@2.10.3': dependencies: @@ -10801,7 +10605,7 @@ snapshots: '@typescript-eslint/utils': 8.58.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.58.1 eslint: 9.39.4(jiti@2.7.0) - ignore: 7.0.5 + ignore: 7.0.6 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -10850,8 +10654,8 @@ snapshots: '@typescript-eslint/project-service@8.58.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.1(typescript@5.9.3) - '@typescript-eslint/types': 8.58.1 + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.9.3) + '@typescript-eslint/types': 8.65.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: @@ -10919,9 +10723,9 @@ snapshots: '@typescript-eslint/types': 8.58.1 '@typescript-eslint/visitor-keys': 8.58.1 debug: 4.4.3 - minimatch: 10.2.4 - semver: 7.7.4 - tinyglobby: 0.2.15 + minimatch: 10.2.5 + semver: 7.8.5 + tinyglobby: 0.2.17 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: @@ -10981,7 +10785,7 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': + '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -10989,7 +10793,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + vite: 6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) transitivePeerDependencies: - supports-color @@ -11005,7 +10809,7 @@ snapshots: obug: 2.1.2 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) + vitest: 4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/expect@4.1.8': dependencies: @@ -11016,22 +10820,6 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.8(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3))': - dependencies: - '@vitest/spy': 4.1.8 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) - - '@vitest/mocker@4.1.8(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': - dependencies: - '@vitest/spy': 4.1.8 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@4.1.8(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.8 @@ -11098,9 +10886,9 @@ snapshots: lodash: 4.18.1 music-metadata: 7.14.0 pino: 9.14.0 - protobufjs: 7.5.8 + protobufjs: 7.6.5 uuid: 10.0.0 - ws: 8.20.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - debug @@ -11899,7 +11687,7 @@ snapshots: '@asamuzakjp/css-color': 4.1.2 '@csstools/css-syntax-patches-for-csstree': 1.1.1(css-tree@3.2.1) css-tree: 3.2.1 - lru-cache: 11.2.7 + lru-cache: 11.5.2 csstype@3.2.3: {} @@ -12229,7 +12017,7 @@ snapshots: '@grpc/grpc-js': 1.14.3 '@grpc/proto-loader': 0.7.15 docker-modem: 5.0.7 - protobufjs: 7.5.8 + protobufjs: 7.6.5 tar-fs: 2.1.4 uuid: 10.0.0 transitivePeerDependencies: @@ -12342,7 +12130,7 @@ snapshots: electron@33.4.11: dependencies: '@electron/get': 2.0.3 - '@types/node': 25.5.2 + '@types/node': 25.9.5 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -12350,7 +12138,7 @@ snapshots: electron@35.7.5: dependencies: '@electron/get': 2.0.3 - '@types/node': 25.5.2 + '@types/node': 25.9.5 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -12710,10 +12498,6 @@ snapshots: dependencies: pend: 1.2.0 - fdir@6.5.0(picomatch@4.0.4): - optionalDependencies: - picomatch: 4.0.4 - fdir@6.5.0(picomatch@4.0.5): optionalDependencies: picomatch: 4.0.5 @@ -12810,13 +12594,7 @@ snapshots: fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - - fs-extra@11.3.4: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 + jsonfile: 6.2.1 universalify: 2.0.1 fs-extra@11.3.6: @@ -12824,7 +12602,6 @@ snapshots: graceful-fs: 4.2.11 jsonfile: 6.2.1 universalify: 2.0.1 - optional: true fs-extra@7.0.1: dependencies: @@ -12842,7 +12619,7 @@ snapshots: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.11 - jsonfile: 6.2.0 + jsonfile: 6.2.1 universalify: 2.0.1 fs-minipass@3.0.3: @@ -13189,7 +12966,7 @@ snapshots: i18next-browser-languagedetector@8.2.1: dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 i18next-cli@1.59.1(@types/node@25.9.5)(typescript@5.9.3): dependencies: @@ -13219,7 +12996,7 @@ snapshots: i18next-resources-for-ts@2.1.0: dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 '@swc/core': 1.15.40 chokidar: 5.0.0 yaml: 2.9.0 @@ -13228,7 +13005,7 @@ snapshots: i18next-resources-to-backend@1.2.1: dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 i18next@26.3.1(typescript@5.9.3): optionalDependencies: @@ -13327,7 +13104,7 @@ snapshots: type-fest: 5.5.0 widest-line: 6.0.0 wrap-ansi: 10.0.0 - ws: 8.20.0 + ws: 8.21.1 yoga-layout: 3.2.1 optionalDependencies: '@types/react': 19.2.14 @@ -13525,7 +13302,7 @@ snapshots: decimal.js: 10.6.0 html-encoding-sniffer: 6.0.0 is-potential-custom-element-name: 1.0.1 - lru-cache: 11.2.7 + lru-cache: 11.5.2 parse5: 8.0.0 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -13571,18 +13348,11 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 - jsonfile@6.2.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - jsonfile@6.2.1: dependencies: universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 - optional: true jwa@2.0.1: dependencies: @@ -13693,8 +13463,6 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.2.7: {} - lru-cache@11.5.2: {} lru-cache@5.1.1: @@ -13724,7 +13492,7 @@ snapshots: magicast@0.5.3: dependencies: '@babel/parser': 7.29.7 - '@babel/types': 7.29.0 + '@babel/types': 7.29.7 source-map-js: 1.2.1 make-dir@4.0.0: @@ -14167,10 +13935,6 @@ snapshots: min-indent@1.0.1: {} - minimatch@10.2.4: - dependencies: - brace-expansion: 5.0.5 - minimatch@10.2.5: dependencies: brace-expansion: 5.0.5 @@ -14341,7 +14105,7 @@ snapshots: proc-log: 5.0.0 semver: 7.8.5 tar: 7.5.13 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 which: 5.0.0 transitivePeerDependencies: - supports-color @@ -14403,16 +14167,11 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@6.26.0(ws@8.20.0)(zod@3.25.76): + openai@6.26.0(ws@8.21.1)(zod@3.25.76): optionalDependencies: - ws: 8.20.0 + ws: 8.21.1 zod: 3.25.76 - openai@6.26.0(ws@8.20.0)(zod@4.4.3): - optionalDependencies: - ws: 8.20.0 - zod: 4.4.3 - openai@6.26.0(ws@8.21.1)(zod@4.4.3): optionalDependencies: ws: 8.21.1 @@ -14598,8 +14357,6 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.4: {} - picomatch@4.0.5: {} pify@4.0.1: {} @@ -14651,14 +14408,14 @@ snapshots: path-data-parser: 0.1.0 points-on-curve: 0.2.0 - postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3): + postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.7.0 postcss: 8.5.8 tsx: 4.21.0 - yaml: 2.8.3 + yaml: 2.9.0 postcss@8.5.8: dependencies: @@ -14742,21 +14499,6 @@ snapshots: property-information@7.1.0: {} - protobufjs@7.5.8: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.5 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.1 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.1 - '@types/node': 25.9.5 - long: 5.3.2 - protobufjs@7.6.5: dependencies: '@protobufjs/aspromise': 1.1.2 @@ -14842,7 +14584,7 @@ snapshots: react-i18next@17.0.8(i18next@26.3.1(typescript@5.9.3))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(typescript@5.9.3): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 html-parse-stringify: 3.0.1 i18next: 26.3.1(typescript@5.9.3) react: 19.2.4 @@ -14853,7 +14595,7 @@ snapshots: react-i18next@17.0.8(i18next@26.3.1(typescript@5.9.3))(react@19.2.7)(typescript@5.9.3): dependencies: - '@babel/runtime': 7.29.2 + '@babel/runtime': 7.29.7 html-parse-stringify: 3.0.1 i18next: 26.3.1(typescript@5.9.3) react: 19.2.7 @@ -15233,7 +14975,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.1.2 - semver: 7.7.4 + semver: 7.8.5 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -15524,7 +15266,7 @@ snapshots: lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 ts-interface-checker: 0.1.13 sumchecker@3.0.1: @@ -15638,11 +15380,6 @@ snapshots: tinyexec@1.2.4: {} - tinyglobby@0.2.15: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.5) @@ -15705,7 +15442,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.3): + tsup@8.5.1(@swc/core@1.15.40)(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.4) cac: 6.7.14 @@ -15716,13 +15453,13 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.3) + postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.9.0) resolve-from: 5.0.0 rollup: 4.60.0 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 tree-kill: 1.2.2 optionalDependencies: '@swc/core': 1.15.40 @@ -15771,8 +15508,6 @@ snapshots: media-typer: 1.1.0 mime-types: 3.0.2 - typebox@1.1.32: {} - typebox@1.1.38: {} typedarray@0.0.6: {} @@ -15792,8 +15527,6 @@ snapshots: ufo@1.6.3: {} - undici-types@7.18.2: {} - undici-types@7.24.6: {} undici@7.24.6: {} @@ -15922,44 +15655,14 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3): - dependencies: - esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - postcss: 8.5.8 - rollup: 4.60.0 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 25.5.2 - fsevents: 2.3.3 - jiti: 2.7.0 - tsx: 4.21.0 - yaml: 2.8.3 - - vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): - dependencies: - esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - postcss: 8.5.8 - rollup: 4.60.0 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 25.5.2 - fsevents: 2.3.3 - jiti: 2.7.0 - tsx: 4.21.0 - yaml: 2.9.0 - vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): dependencies: esbuild: 0.25.12 - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 postcss: 8.5.8 rollup: 4.60.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 optionalDependencies: '@types/node': 25.9.5 fsevents: 2.3.3 @@ -15967,10 +15670,10 @@ snapshots: tsx: 4.21.0 yaml: 2.9.0 - vitest@4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@27.4.0)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): + vitest@4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@27.4.0)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/mocker': 4.1.8(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.8 '@vitest/runner': 4.1.8 '@vitest/snapshot': 4.1.8 @@ -15981,85 +15684,23 @@ snapshots: magic-string: 0.30.21 obug: 2.1.2 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.5 std-env: 4.1.0 tinybench: 2.9.0 tinyexec: 1.2.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + vite: 6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@types/node': 25.5.2 + '@types/node': 25.9.5 '@vitest/coverage-v8': 4.1.8(vitest@4.1.8) happy-dom: 20.10.1 jsdom: 27.4.0 transitivePeerDependencies: - msw - vitest@4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)): - dependencies: - '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.8 - '@vitest/runner': 4.1.8 - '@vitest/snapshot': 4.1.8 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.2 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.2.4 - tinyglobby: 0.2.15 - tinyrainbow: 3.1.0 - vite: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.8.3) - why-is-node-running: 2.3.0 - optionalDependencies: - '@opentelemetry/api': 1.9.0 - '@types/node': 25.5.2 - '@vitest/coverage-v8': 4.1.8(vitest@4.1.8) - happy-dom: 20.10.1 - jsdom: 29.0.1 - transitivePeerDependencies: - - msw - - vitest@4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.5.2)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): - dependencies: - '@vitest/expect': 4.1.8 - '@vitest/mocker': 4.1.8(vite@6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.8 - '@vitest/runner': 4.1.8 - '@vitest/snapshot': 4.1.8 - '@vitest/spy': 4.1.8 - '@vitest/utils': 4.1.8 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.2 - pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 - tinybench: 2.9.0 - tinyexec: 1.2.4 - tinyglobby: 0.2.15 - tinyrainbow: 3.1.0 - vite: 6.4.1(@types/node@25.5.2)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@opentelemetry/api': 1.9.0 - '@types/node': 25.5.2 - '@vitest/coverage-v8': 4.1.8(vitest@4.1.8) - happy-dom: 20.10.1 - jsdom: 29.0.1 - transitivePeerDependencies: - - msw - vitest@4.1.8(@opentelemetry/api@1.9.0)(@types/node@25.9.5)(@vitest/coverage-v8@4.1.8)(happy-dom@20.10.1)(jsdom@29.0.1)(vite@6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.8 @@ -16074,11 +15715,11 @@ snapshots: magic-string: 0.30.21 obug: 2.1.2 pathe: 2.0.3 - picomatch: 4.0.4 + picomatch: 4.0.5 std-env: 4.1.0 tinybench: 2.9.0 tinyexec: 1.2.4 - tinyglobby: 0.2.15 + tinyglobby: 0.2.17 tinyrainbow: 3.1.0 vite: 6.4.1(@types/node@25.9.5)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 @@ -16178,8 +15819,6 @@ snapshots: ws@7.5.10: {} - ws@8.20.0: {} - ws@8.21.1: {} xml-name-validator@5.0.0: {} @@ -16207,8 +15846,6 @@ snapshots: yallist@5.0.0: {} - yaml@2.8.3: {} - yaml@2.9.0: {} yargs-parser@18.1.3: @@ -16259,14 +15896,14 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod-to-json-schema@3.25.1(zod@4.4.3): - dependencies: - zod: 4.4.3 - zod-to-json-schema@3.25.2(zod@3.25.76): dependencies: zod: 3.25.76 + zod-to-json-schema@3.25.2(zod@4.4.3): + dependencies: + zod: 4.4.3 + zod@3.25.76: {} zod@4.4.3: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 48b33ae7b4..e244f4da95 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -28,10 +28,13 @@ overrides: # FNXC:DesktopPackaging 2026-07-25-17:15: Legacy `pnpm deploy` resolves pi-coding-agent's # transitive ranges without the workspace lockfile. Pin the complete Pi runtime closure to one # exact version so new agent-core or tui patches cannot split the packageable desktop tree. - '@earendil-works/pi-agent-core': 0.82.0 - '@earendil-works/pi-ai': 0.82.0 - '@earendil-works/pi-coding-agent': 0.82.0 - '@earendil-works/pi-tui': 0.82.0 + # FNXC:DesktopPackaging 2026-07-26-22:55: Advance the matched closure 0.82.0 → 0.82.1 so + # electron-builder's production-dependency walk accepts pi-agent-core's pi-ai@^0.82.1 requirement + # (Desktop packaging PR-lane failure when deploy resolved a newer agent-core patch beside 0.82.0 ai). + '@earendil-works/pi-agent-core': 0.82.1 + '@earendil-works/pi-ai': 0.82.1 + '@earendil-works/pi-coding-agent': 0.82.1 + '@earendil-works/pi-tui': 0.82.1 # 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 7d68226d81..fb9293e396 100644 --- a/scripts/__tests__/check-pi-versions-pinned.test.mjs +++ b/scripts/__tests__/check-pi-versions-pinned.test.mjs @@ -7,10 +7,19 @@ import { validateWorkspaceOverrides, } from "../check-pi-versions-pinned.mjs"; +/* +FNXC:DesktopPackaging 2026-07-26-22:55: +Fixture versions track the workspace's exact matched Pi runtime pin (currently 0.82.1). +Keep these in sync when advancing overrides/manifests so the policy guard still exercises +matched-set and range rejection against the live pin surface. +*/ +const PINNED_VERSION = "0.82.1"; +const OTHER_VERSION = "0.82.0"; + const pinnedManifest = { dependencies: { - "@earendil-works/pi-ai": "0.82.0", - "@earendil-works/pi-coding-agent": "0.82.0", + "@earendil-works/pi-ai": PINNED_VERSION, + "@earendil-works/pi-coding-agent": PINNED_VERSION, }, }; @@ -24,7 +33,7 @@ describe("check-pi-versions-pinned", () => { }); it("rejects caret, tilde, wildcard, x, and comparator ranges", () => { - for (const version of ["^0.82.0", "~0.82.0", "*", "0.82.x", ">=0.82.0"]) { + for (const version of [`^${PINNED_VERSION}`, `~${PINNED_VERSION}`, "*", "0.82.x", `>=${PINNED_VERSION}`]) { const violations = validate({ ...pinnedManifest, dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-ai": version }, @@ -36,7 +45,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.82.1" }, + dependencies: { ...pinnedManifest.dependencies, "@earendil-works/pi-coding-agent": OTHER_VERSION }, }); assert.equal(violations.some((violation) => violation.includes("same exact version")), true); }); @@ -53,7 +62,7 @@ describe("check-pi-versions-pinned", () => { cannot split agent-core or tui from the exact runtime version. */ it("requires one exact workspace override for every staged Pi runtime package", () => { - const coherentOverrides = Object.fromEntries(PI_RUNTIME_PACKAGES.map((packageName) => [packageName, "0.82.0"])); + const coherentOverrides = Object.fromEntries(PI_RUNTIME_PACKAGES.map((packageName) => [packageName, PINNED_VERSION])); assert.deepEqual(validateWorkspaceOverrides(coherentOverrides), []); assert.equal( @@ -62,12 +71,12 @@ describe("check-pi-versions-pinned", () => { true, ); assert.equal( - validateWorkspaceOverrides({ ...coherentOverrides, "@earendil-works/pi-agent-core": "^0.82.0" }) + validateWorkspaceOverrides({ ...coherentOverrides, "@earendil-works/pi-agent-core": `^${PINNED_VERSION}` }) .some((violation) => violation.includes("pi-agent-core") && violation.includes("exact semver")), true, ); assert.equal( - validateWorkspaceOverrides({ ...coherentOverrides, "@earendil-works/pi-tui": "0.82.1" }) + validateWorkspaceOverrides({ ...coherentOverrides, "@earendil-works/pi-tui": OTHER_VERSION }) .some((violation) => violation.includes("one exact version")), true, );