diff --git a/.changeset/fn-7742-pi-sdk-gpt-5-6.md b/.changeset/fn-7742-pi-sdk-gpt-5-6.md new file mode 100644 index 0000000000..6dce3e5282 --- /dev/null +++ b/.changeset/fn-7742-pi-sdk-gpt-5-6.md @@ -0,0 +1,7 @@ +--- +"@runfusion/fusion": minor +--- + +summary: Update the pi SDK and add support for GPT-5.6 codex-tier models. +category: feature +dev: Bumps @earendil-works/pi-ai and @earendil-works/pi-coding-agent from ^0.80.3 to ^0.80.5 across packages/cli, packages/dashboard, packages/engine, and packages/pi-claude-cli (packages/droid-cli and packages/pi-llama-cpp's pi-coding-agent stay unpinned at `*` per existing convention). Inspected the installed SDK's generated model catalogs directly and found no `gpt-5.6-codex` id — OpenAI dropped the separate `-codex`-suffixed tier naming starting at the 5.4 generation. Added `openai-codex:gpt-5.6-luna`, `openai-codex:gpt-5.6-sol`, and `openai-codex:gpt-5.6-terra` pricing (the actual GPT-5.6 codenamed variants exposed by the SDK under the `openai-codex` provider) to `model-pricing.ts`, mirroring the existing `gpt-5.3-codex` rate, and bumped `pricingAsOf` to 2026-07-09 so Command Center token cost reports real cost instead of `unavailable` for these models. diff --git a/packages/cli/package.json b/packages/cli/package.json index c571fd890c..a4852be7c4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -59,8 +59,8 @@ "test:pre-release": "pnpm test:slow-cli && pnpm test:build-exe" }, "dependencies": { - "@earendil-works/pi-ai": "^0.80.3", - "@earendil-works/pi-coding-agent": "^0.80.3", + "@earendil-works/pi-ai": "^0.80.5", + "@earendil-works/pi-coding-agent": "^0.80.5", "dockerode": "^4.0.12", "express": "^5.1.0", "electron": "^33.4.11", diff --git a/packages/core/src/__tests__/model-pricing.test.ts b/packages/core/src/__tests__/model-pricing.test.ts index 7ae646ce84..0830d805e2 100644 --- a/packages/core/src/__tests__/model-pricing.test.ts +++ b/packages/core/src/__tests__/model-pricing.test.ts @@ -65,6 +65,20 @@ describe("model-pricing", () => { expect(result.usd).toBeCloseTo(3.25, 2); }); + it("prices OpenAI Codex GPT-5.6 codenamed models instead of reporting unavailable", () => { + // FN-7742: gpt-5.6-luna / gpt-5.6-sol / gpt-5.6-terra mirror the gpt-5.3-codex rate + // ($1.25/1M input, $10/1M output). 1,000,000 input + 200,000 output = 1.25 + 2.00 = 3.25 + for (const model of ["gpt-5.6-luna", "gpt-5.6-sol", "gpt-5.6-terra"]) { + const result = costFor( + { ...ZERO, inputTokens: 1_000_000, outputTokens: 200_000 }, + { provider: "openai-codex", model }, + ); + expect(result.unavailable).toBe(false); + expect(result.usd).not.toBeNull(); + expect(result.usd).toBeCloseTo(3.25, 2); + } + }); + it("prices Codex mini latest instead of reporting unavailable", () => { // codex-mini-latest: input $1.50/1M, output $6/1M, cached input $0.375/1M. const result = costFor( diff --git a/packages/core/src/model-pricing.ts b/packages/core/src/model-pricing.ts index 024bc3c9f2..8cd5edf5e1 100644 --- a/packages/core/src/model-pricing.ts +++ b/packages/core/src/model-pricing.ts @@ -28,7 +28,7 @@ * The date the rates in {@link MODEL_PRICING} were last verified, ISO-8601. * Bump this whenever you edit a rate. Surfaced in the UI as "prices as of". */ -export const pricingAsOf = "2026-06-30"; +export const pricingAsOf = "2026-07-09"; /** * Pricing entries older than this (relative to a caller-supplied `now`) are @@ -293,6 +293,39 @@ export const MODEL_PRICING: Readonly> = { cacheWritePer1M: 1.25, source: "openai.com/api/pricing", }, + /* + * FNXC:CommandCenter 2026-07-09-00:00: + * FN-7742 bumped the bundled pi SDK to 0.80.5 and inspected its generated model catalogs + * directly (node_modules/@earendil-works/pi-ai/dist/providers/{openai,openai-codex}.models.js) + * rather than guessing. There is no `gpt-5.6-codex` id in either catalog — OpenAI dropped the + * separate `-codex`-suffixed tier naming starting at the 5.4 generation. GPT-5.6 instead ships + * as three codenamed variants (`gpt-5.6-luna`, `gpt-5.6-sol`, `gpt-5.6-terra`) that are present + * under BOTH the `openai` and `openai-codex` provider catalogs, so they are the faithful + * equivalent of the prior `gpt-5.x-codex` entries. Rates mirror the existing gpt-5.3-codex rate + * (no confirmed different published OpenAI rate for these codenamed models) so Command Center + * token cost does not show `unavailable` for pi-sourced GPT-5.6 codex runs. + */ + "openai-codex:gpt-5.6-luna": { + inputPer1M: 1.25, + outputPer1M: 10, + cacheReadPer1M: 0.125, + cacheWritePer1M: 1.25, + source: "openai.com/api/pricing", + }, + "openai-codex:gpt-5.6-sol": { + inputPer1M: 1.25, + outputPer1M: 10, + cacheReadPer1M: 0.125, + cacheWritePer1M: 1.25, + source: "openai.com/api/pricing", + }, + "openai-codex:gpt-5.6-terra": { + inputPer1M: 1.25, + outputPer1M: 10, + cacheReadPer1M: 0.125, + cacheWritePer1M: 1.25, + source: "openai.com/api/pricing", + }, "openai-codex:codex-mini-latest": { inputPer1M: 1.5, outputPer1M: 6, diff --git a/packages/dashboard/package.json b/packages/dashboard/package.json index d0e123a5c8..49d64fa675 100644 --- a/packages/dashboard/package.json +++ b/packages/dashboard/package.json @@ -102,7 +102,7 @@ "@codemirror/state": "^6.5.2", "@codemirror/theme-one-dark": "^6.1.2", "@codemirror/view": "^6.36.4", - "@earendil-works/pi-coding-agent": "^0.80.3", + "@earendil-works/pi-coding-agent": "^0.80.5", "@fusion-plugin-examples/cli-printing-press": "workspace:*", "@fusion-plugin-examples/compound-engineering": "workspace:*", "@fusion-plugin-examples/cursor-runtime": "workspace:*", diff --git a/packages/engine/package.json b/packages/engine/package.json index 7b759eba6a..8cde3ed3a3 100644 --- a/packages/engine/package.json +++ b/packages/engine/package.json @@ -40,8 +40,8 @@ "dependencies": { "@fusion/core": "workspace:*", "@fusion/pi-claude-cli": "workspace:*", - "@earendil-works/pi-ai": "^0.80.3", - "@earendil-works/pi-coding-agent": "^0.80.3", + "@earendil-works/pi-ai": "^0.80.5", + "@earendil-works/pi-coding-agent": "^0.80.5", "@modelcontextprotocol/sdk": "^1.0.0", "cron-parser": "^5.5.0", "esbuild": "^0.25.12", diff --git a/packages/pi-claude-cli/package.json b/packages/pi-claude-cli/package.json index cecc22f88a..4dcabff0d6 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.80.3", - "@earendil-works/pi-coding-agent": "^0.80.3" + "@earendil-works/pi-ai": "^0.80.5", + "@earendil-works/pi-coding-agent": "^0.80.5" }, "devDependencies": { - "@earendil-works/pi-ai": "^0.80.3", - "@earendil-works/pi-coding-agent": "^0.80.3", + "@earendil-works/pi-ai": "^0.80.5", + "@earendil-works/pi-coding-agent": "^0.80.5", "@types/node": "^22.0.0", "typescript": "^5.7.0", "vitest": "^4.1.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 143589ed9f..6b234b3e7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -49,11 +49,11 @@ importers: packages/cli: dependencies: '@earendil-works/pi-ai': - specifier: ^0.80.3 - version: 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) + specifier: ^0.80.5 + version: 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) '@earendil-works/pi-coding-agent': - specifier: ^0.80.3 - version: 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) + specifier: ^0.80.5 + version: 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) dockerode: specifier: ^4.0.12 version: 4.0.12 @@ -229,8 +229,8 @@ importers: specifier: ^6.36.4 version: 6.40.0 '@earendil-works/pi-coding-agent': - specifier: ^0.80.3 - version: 0.80.3(ws@8.20.0)(zod@3.25.76) + specifier: ^0.80.5 + version: 0.80.5(ws@8.20.0)(zod@3.25.76) '@fusion-plugin-examples/cli-printing-press': specifier: workspace:* version: link:../../plugins/fusion-plugin-cli-printing-press @@ -505,11 +505,11 @@ importers: packages/engine: dependencies: '@earendil-works/pi-ai': - specifier: ^0.80.3 - version: 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: ^0.80.5 + version: 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@earendil-works/pi-coding-agent': - specifier: ^0.80.3 - version: 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: ^0.80.5 + version: 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@fusion/core': specifier: workspace:* version: link:../core @@ -620,11 +620,11 @@ importers: version: 0.24.0(zod@4.3.6) devDependencies: '@earendil-works/pi-ai': - specifier: ^0.80.3 - version: 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: ^0.80.5 + version: 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@earendil-works/pi-coding-agent': - specifier: ^0.80.3 - version: 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + specifier: ^0.80.5 + version: 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@types/node': specifier: ^25.5.2 version: 25.5.2 @@ -1237,10 +1237,6 @@ packages: '@asamuzakjp/nwsapi@2.3.9': resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} - '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} - engines: {node: '>=16.0.0'} - '@aws-crypto/sha256-browser@5.2.0': resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} @@ -1326,10 +1322,6 @@ packages: resolution: {integrity: sha512-IULn8uBV/SMtmOIANsm4WHXIOtVPBWfOWs3WGL0j/sI+KhaYehvOw0ET+9urnn8MBpiijuU/0JOpuwKOE451PQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.973.9': - resolution: {integrity: sha512-kuBfgQVdcz5Bmapc4A13YbpVw/pXkesfhetcFYwbntqas8sF41OHyd4o28+/TG2ZQdHBsv90Lsu5y6oitvYCdg==} - engines: {node: '>=20.0.0'} - '@aws-sdk/util-locate-window@3.965.5': resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==} engines: {node: '>=20.0.0'} @@ -1662,6 +1654,10 @@ packages: resolution: {integrity: sha512-3qw0/GeRQBU/nlGjDe5Yb7ePKTmoxefx2YxyKMFAviFUMXpFexBG/hS7mBtwFahFvzrrTPPoRT6sFIDjwoDWPQ==} engines: {node: '>=22.19.0'} + '@earendil-works/pi-agent-core@0.80.5': + resolution: {integrity: sha512-413NZ5BEwSdL+BAtoBlk7hcA3UGvltcdAPtFoMZ1uqLZRNIoFU0WhNXGwv5Sp1SPBmMR6MAc3neoA+MdOlWJ2w==} + engines: {node: '>=22.19.0'} + '@earendil-works/pi-ai@0.77.0': resolution: {integrity: sha512-H21BrQDPf3ydaeBmS5maNDHxUGFMiKBF/n3WnE+OTWloIZSayeL+/NVEgG3aKQw8fZL6HAMYAGpUIVJgFuKtnw==} engines: {node: '>=22.19.0'} @@ -1677,6 +1673,11 @@ packages: engines: {node: '>=22.19.0'} hasBin: true + '@earendil-works/pi-ai@0.80.5': + resolution: {integrity: sha512-+7UODYKu4o/X8sxTHG8HEV3+O+dOYKg5MeO3MJIFQ+wu65pIWDhjZGc759uWsRr79AhV7MSJEe4GWnFn4l68gw==} + engines: {node: '>=22.19.0'} + hasBin: true + '@earendil-works/pi-coding-agent@0.77.0': resolution: {integrity: sha512-huS+k+dhQRR9PlTK7crLfeSRUw3a96V6JYfP0ZH3Zkko/m10gsYk8dKQmwScSy5Dll516pXorz19BURfD6S2qQ==} engines: {node: '>=22.19.0'} @@ -1692,6 +1693,11 @@ packages: engines: {node: '>=22.19.0'} hasBin: true + '@earendil-works/pi-coding-agent@0.80.5': + resolution: {integrity: sha512-GPYFuHw1BN+3m5Gzw1HGH41WdFDzbplLauS0zYSf1ZOkgKFd6wtEAcjchB/vmz9YtTGbQOwECbsVj6GxZxungA==} + engines: {node: '>=22.19.0'} + hasBin: true + '@earendil-works/pi-tui@0.77.0': resolution: {integrity: sha512-QV/eYtcT3hM9pJjLCkjUFOUmgAm4GPzJ0K4kofVq9+BGU7wNJVzflTO4VY2tYpaI4VSo6A5Hsuw00wY/CDmY/Q==} engines: {node: '>=22.19.0'} @@ -1704,6 +1710,10 @@ packages: resolution: {integrity: sha512-2BJI6qwRQfnM0Q7seL1+SbacU/jRRjBnN7Hu3n9BjAn7/s5FaBNnvdD1qBQYRsFTHfjqMaDsjYqanPyqwXj99w==} engines: {node: '>=22.19.0'} + '@earendil-works/pi-tui@0.80.5': + resolution: {integrity: sha512-raxEUD2CvCDNJuOWEAI+xD7vmxCrGH0NYb31+GQDdL1q9WXn5+uNLgP1vkJfOsTvf9k5zU5sNFA06oBIcWSYtQ==} + engines: {node: '>=22.19.0'} + '@electron/asar@3.4.1': resolution: {integrity: sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==} engines: {node: '>=10.12.0'} @@ -2871,10 +2881,6 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@smithy/core@3.24.5': - resolution: {integrity: sha512-Kt8phUg45M15EjhYAbZ+fFikYneijLu9Liugz8ZsYz2i8j0hzGv27LWKpEHYRfvj+LyCOSijpcR/2i8RouV+cA==} - engines: {node: '>=18.0.0'} - '@smithy/core@3.29.1': resolution: {integrity: sha512-qoiY4nrk5OCu1+eIR1VB8l5DmON/oKiqrd5zZFAhXJXjJlLWQusKEW/SkBDAtGDcPaz86m9kfcE1lngU0GlM6A==} engines: {node: '>=18.0.0'} @@ -2899,18 +2905,10 @@ packages: resolution: {integrity: sha512-3dA9TQ+ybRSZ/m0wnbZhiBy4Dezjgq1Ib/ZZrYTpJDBgpoLLU/SDzZc/g0x0MNAdOJe1wPcM+x2PBRmoOur+Sw==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.4.5': - resolution: {integrity: sha512-QBJKWGqIknH0dc9LWpfH1mkdokAx6iXYN3UcQ3eY6uIEyScuoQAhfl94ge7ozUy9WgFUdE8xsvwBjaYBbWmPNA==} - engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.6.2': resolution: {integrity: sha512-QgHflghMoPxCJ9axiCVh8KZfbC9fuP6vkXXyK//E3cq7nLaSSyyLj0GAoqVWezYeDQmXIZhmlRvLE16jsqDK6g==} engines: {node: '>=18.0.0'} - '@smithy/types@4.14.2': - resolution: {integrity: sha512-P+otAxbV4CqBybp7EkcJCrig63yE2E7PuNVOmilVMRcx/O+QDzGULTrKsq4DV13gSfak9ObPrWaHl/9bL5YcWw==} - engines: {node: '>=18.0.0'} - '@smithy/types@4.15.1': resolution: {integrity: sha512-x3L0XSACF6UYzKpa9biqiRMgvH5+wnFFew9Tm/grFYqgaupPwx/+ojDPpPJM8dZON3S9tjz5U+PQYsCBd1Mw5Q==} engines: {node: '>=18.0.0'} @@ -7765,18 +7763,12 @@ snapshots: '@asamuzakjp/nwsapi@2.3.9': {} - '@aws-crypto/crc32@5.2.0': - dependencies: - '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.9 - tslib: 2.8.1 - '@aws-crypto/sha256-browser@5.2.0': dependencies: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.15 '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -7784,7 +7776,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.15 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -7793,7 +7785,7 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.9 + '@aws-sdk/types': 3.973.15 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -7807,11 +7799,11 @@ snapshots: '@aws-sdk/middleware-eventstream': 3.972.14 '@aws-sdk/middleware-websocket': 3.972.23 '@aws-sdk/token-providers': 3.1048.0 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 '@smithy/fetch-http-handler': 5.4.5 '@smithy/node-http-handler': 4.7.5 - '@smithy/types': 4.14.2 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/core@3.974.26': @@ -7828,19 +7820,19 @@ snapshots: '@aws-sdk/credential-provider-env@3.972.41': dependencies: '@aws-sdk/core': 3.974.26 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/credential-provider-http@3.972.43': dependencies: '@aws-sdk/core': 3.974.26 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 '@smithy/fetch-http-handler': 5.4.5 '@smithy/node-http-handler': 4.7.5 - '@smithy/types': 4.14.2 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/credential-provider-ini@3.972.45': @@ -7853,19 +7845,19 @@ snapshots: '@aws-sdk/credential-provider-sso': 3.972.45 '@aws-sdk/credential-provider-web-identity': 3.972.45 '@aws-sdk/nested-clients': 3.997.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 '@smithy/credential-provider-imds': 4.3.5 - '@smithy/types': 4.14.2 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/credential-provider-login@3.972.45': dependencies: '@aws-sdk/core': 3.974.26 '@aws-sdk/nested-clients': 3.997.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/credential-provider-node@3.972.46': @@ -7876,18 +7868,18 @@ snapshots: '@aws-sdk/credential-provider-process': 3.972.41 '@aws-sdk/credential-provider-sso': 3.972.45 '@aws-sdk/credential-provider-web-identity': 3.972.45 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 '@smithy/credential-provider-imds': 4.3.5 - '@smithy/types': 4.14.2 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/credential-provider-process@3.972.41': dependencies: '@aws-sdk/core': 3.974.26 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/credential-provider-sso@3.972.45': @@ -7895,42 +7887,42 @@ snapshots: '@aws-sdk/core': 3.974.26 '@aws-sdk/nested-clients': 3.997.13 '@aws-sdk/token-providers': 3.1056.0 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/credential-provider-web-identity@3.972.45': dependencies: '@aws-sdk/core': 3.974.26 '@aws-sdk/nested-clients': 3.997.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/eventstream-handler-node@3.972.18': dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/middleware-eventstream@3.972.14': dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/middleware-websocket@3.972.23': dependencies: '@aws-sdk/core': 3.974.26 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 '@smithy/fetch-http-handler': 5.4.5 - '@smithy/signature-v4': 5.4.5 - '@smithy/types': 4.14.2 + '@smithy/signature-v4': 5.6.2 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/nested-clients@3.997.13': @@ -7939,36 +7931,36 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-sdk/core': 3.974.26 '@aws-sdk/signature-v4-multi-region': 3.996.30 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 '@smithy/fetch-http-handler': 5.4.5 '@smithy/node-http-handler': 4.7.5 - '@smithy/types': 4.14.2 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/signature-v4-multi-region@3.996.30': dependencies: - '@aws-sdk/types': 3.973.9 - '@smithy/signature-v4': 5.4.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/signature-v4': 5.6.2 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/token-providers@3.1048.0': dependencies: '@aws-sdk/core': 3.974.26 '@aws-sdk/nested-clients': 3.997.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/token-providers@3.1056.0': dependencies: '@aws-sdk/core': 3.974.26 '@aws-sdk/nested-clients': 3.997.13 - '@aws-sdk/types': 3.973.9 - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@aws-sdk/types': 3.973.15 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@aws-sdk/types@3.973.15': @@ -7976,11 +7968,6 @@ snapshots: '@smithy/types': 4.15.1 tslib: 2.8.1 - '@aws-sdk/types@3.973.9': - dependencies: - '@smithy/types': 4.14.2 - tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.965.5': dependencies: tslib: 2.8.1 @@ -8522,23 +8509,9 @@ snapshots: - ws - zod - '@earendil-works/pi-agent-core@0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76)': - dependencies: - '@earendil-works/pi-ai': 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) - 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-agent-core@0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: - '@earendil-works/pi-ai': 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@earendil-works/pi-ai': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) ignore: 7.0.5 typebox: 1.1.38 yaml: 2.9.0 @@ -8550,9 +8523,37 @@ snapshots: - ws - zod - '@earendil-works/pi-agent-core@0.80.3(ws@8.20.0)(zod@3.25.76)': + '@earendil-works/pi-agent-core@0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76)': dependencies: - '@earendil-works/pi-ai': 0.80.3(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-ai': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) + 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-agent-core@0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + dependencies: + '@earendil-works/pi-ai': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + 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-agent-core@0.80.5(ws@8.20.0)(zod@3.25.76)': + dependencies: + '@earendil-works/pi-ai': 0.80.5(ws@8.20.0)(zod@3.25.76) ignore: 7.0.5 typebox: 1.1.38 yaml: 2.9.0 @@ -8644,27 +8645,6 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76)': - dependencies: - '@anthropic-ai/sdk': 0.91.1(zod@3.25.76) - '@aws-sdk/client-bedrock-runtime': 3.1048.0 - '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76)) - '@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@3.25.76) - 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.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@4.3.6) @@ -8686,7 +8666,49 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.80.3(ws@8.20.0)(zod@3.25.76)': + '@earendil-works/pi-ai@0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76)': + dependencies: + '@anthropic-ai/sdk': 0.91.1(zod@3.25.76) + '@aws-sdk/client-bedrock-runtime': 3.1048.0 + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76)) + '@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@3.25.76) + 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.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + dependencies: + '@anthropic-ai/sdk': 0.91.1(zod@4.3.6) + '@aws-sdk/client-bedrock-runtime': 3.1048.0 + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6)) + '@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.3.6) + 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.80.5(ws@8.20.0)(zod@3.25.76)': dependencies: '@anthropic-ai/sdk': 0.91.1(zod@3.25.76) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -8823,40 +8845,10 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76)': - dependencies: - '@earendil-works/pi-agent-core': 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) - '@earendil-works/pi-ai': 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) - '@earendil-works/pi-tui': 0.80.3 - '@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-coding-agent@0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': dependencies: '@earendil-works/pi-agent-core': 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) - '@earendil-works/pi-ai': 0.80.3(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@earendil-works/pi-ai': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) '@earendil-works/pi-tui': 0.80.3 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 @@ -8883,11 +8875,71 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.80.3(ws@8.20.0)(zod@3.25.76)': + '@earendil-works/pi-coding-agent@0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76)': dependencies: - '@earendil-works/pi-agent-core': 0.80.3(ws@8.20.0)(zod@3.25.76) - '@earendil-works/pi-ai': 0.80.3(ws@8.20.0)(zod@3.25.76) - '@earendil-works/pi-tui': 0.80.3 + '@earendil-works/pi-agent-core': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-ai': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@3.25.76))(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-tui': 0.80.5 + '@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-coding-agent@0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6)': + dependencies: + '@earendil-works/pi-agent-core': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@earendil-works/pi-ai': 0.80.5(@modelcontextprotocol/sdk@1.28.0(zod@4.3.6))(ws@8.20.0)(zod@4.3.6) + '@earendil-works/pi-tui': 0.80.5 + '@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-coding-agent@0.80.5(ws@8.20.0)(zod@3.25.76)': + dependencies: + '@earendil-works/pi-agent-core': 0.80.5(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-ai': 0.80.5(ws@8.20.0)(zod@3.25.76) + '@earendil-works/pi-tui': 0.80.5 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 cross-spawn: 7.0.6 @@ -8928,6 +8980,11 @@ snapshots: get-east-asian-width: 1.6.0 marked: 18.0.5 + '@earendil-works/pi-tui@0.80.5': + dependencies: + get-east-asian-width: 1.6.0 + marked: 18.0.5 + '@electron/asar@3.4.1': dependencies: commander: 5.1.0 @@ -9993,12 +10050,6 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@smithy/core@3.24.5': - dependencies: - '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - '@smithy/core@3.29.1': dependencies: '@smithy/types': 4.15.1 @@ -10006,14 +10057,14 @@ snapshots: '@smithy/credential-provider-imds@4.3.5': dependencies: - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@smithy/fetch-http-handler@5.4.5': dependencies: - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': @@ -10022,20 +10073,14 @@ snapshots: '@smithy/node-http-handler@4.7.3': dependencies: - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@smithy/node-http-handler@4.7.5': dependencies: - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 - tslib: 2.8.1 - - '@smithy/signature-v4@5.4.5': - dependencies: - '@smithy/core': 3.24.5 - '@smithy/types': 4.14.2 + '@smithy/core': 3.29.1 + '@smithy/types': 4.15.1 tslib: 2.8.1 '@smithy/signature-v4@5.6.2': @@ -10044,10 +10089,6 @@ snapshots: '@smithy/types': 4.15.1 tslib: 2.8.1 - '@smithy/types@4.14.2': - dependencies: - tslib: 2.8.1 - '@smithy/types@4.15.1': dependencies: tslib: 2.8.1