Adopt pi 0.80's instance-based Models API - #50
Conversation
…ua-cli pi-ai 0.80 replaced the global api-registry and free-function catalog/stream surface (getModel, getModels, streamSimple, registerApiProvider, ...) with an instance-based Models API. Adopt it directly instead of the deprecated /compat shim: - cua-ai: new createCuaModels()/cuaModels() build a pi Models collection with pi's builtins plus CUA's adjustments: openai wrapped to dispatch the openai-cua-responses api (previous_response_id threading), google accepting GOOGLE_API_KEY or GEMINI_API_KEY, and the tzafon/yutori providers pi does not ship. registerCuaProviders() and the import-time registration side effect are gone; nothing global is mutated. - cua-ai: catalog reads go through pi's static getBuiltinModel(s); the claude-sonnet-5 and gpt-5.5 overrides are dropped now that pi-ai's registry carries both. - cua-agent: CuaAgentHarness passes a Models collection to pi-agent-core 0.80 (models option, default cuaModels()); getApiKeyAndHeaders is gone upstream. CuaAgent's default stream path is cuaModels().streamSimple. - cua-cli: buildCuaHarness takes models instead of getApiKeyAndHeaders; the scripted test fixture builds an isolated collection instead of mutating the global registry. - Bump all pi deps to 0.80.3; bump cua-ai 0.4.0, cua-agent 0.4.0, cua-cli 0.2.0 and align inter-package pins so workspaces link locally.
The smoke install pulled @onkernel/cua-agent and @onkernel/cua-ai from the registry, which fails whenever a PR bumps versions ahead of publishing (this PR, and previously #37). Install all three workspace tarballs together so the packed cli resolves its workspace deps locally.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Autofix Details
Bugbot Autofix prepared a fix for the issue found in the latest run.
- ✅ Fixed: Lockfile unrelated dependency drift
- I rebuilt
package-lock.jsonfrommainand regenerated it with the intended workspace/pi version bumps so unrelated dependency upgrades were removed.
- I rebuilt
Or push these changes by commenting:
@cursor push 039ccb755e
Preview (039ccb755e)
diff --git a/package-lock.json b/package-lock.json
--- a/package-lock.json
+++ b/package-lock.json
@@ -42,6 +42,20 @@
}
}
},
+ "node_modules/@aws-crypto/crc32": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
+ "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
"node_modules/@aws-crypto/sha256-browser": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
@@ -117,17 +131,17 @@
}
},
"node_modules/@aws-sdk/core": {
- "version": "3.974.29",
- "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.29.tgz",
- "integrity": "sha512-yqKcltLbtRh1ubzhRSldIs8jFHNZlyMlgoIccCC0aDVbrB99nXaBdmfr89mK7obWX/NVg4rAMpCpZ6dCDiVBtA==",
+ "version": "3.974.20",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.974.20.tgz",
+ "integrity": "sha512-7sDi2B2N3mc3nf1nz6FyEx/FCrJ1N1QnBmraHHQNabFaeAh2IaOOLml48/rHOD1bICHgTRkbBgNTvUzEr5Z35g==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "^3.973.15",
- "@aws-sdk/xml-builder": "^3.972.33",
- "@aws/lambda-invoke-store": "^0.3.0",
- "@smithy/core": "^3.29.0",
- "@smithy/signature-v4": "^5.6.1",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/types": "^3.973.12",
+ "@aws-sdk/xml-builder": "^3.972.29",
+ "@aws/lambda-invoke-store": "^0.2.2",
+ "@smithy/core": "^3.24.6",
+ "@smithy/signature-v4": "^5.4.6",
+ "@smithy/types": "^4.14.3",
"bowser": "^2.11.0",
"tslib": "^2.6.2"
},
@@ -136,15 +150,15 @@
}
},
"node_modules/@aws-sdk/credential-provider-env": {
- "version": "3.972.55",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.55.tgz",
- "integrity": "sha512-Ah36tYkqyaVnaHkx7VseoTYrHUmwgBps3V+wnrC1idhIIMGlviH0FtrX9EIPdAlVHvXC7FQZLhmHBRz+pLaiWg==",
+ "version": "3.972.46",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.46.tgz",
+ "integrity": "sha512-+GPXVS2srMOlH74S+SmC1gVuP2TvUZ0siuC0onKO93q+udP+M72dmY8wJfVQ5CX9z/9X5A1HHwz5yRIGBtskvQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -152,17 +166,17 @@
}
},
"node_modules/@aws-sdk/credential-provider-http": {
- "version": "3.972.57",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.57.tgz",
- "integrity": "sha512-/vp6i5YEliJqRm5k/BDmYjAyRAMTdkjW6UciVRk9oh/0OfDCWeb/ih7hqte4lFvKXkIbsqe9AdK9LQK6NGardw==",
+ "version": "3.972.48",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.48.tgz",
+ "integrity": "sha512-fA5loSdlocacRxyUXtpoHSMuk5rsIKRDzQYVMnMxjcmFeZshaJlJ8lymy/hYKji6sne/UmNGj5pxuEs6kq/Qcg==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/fetch-http-handler": "^5.6.2",
- "@smithy/node-http-handler": "^4.9.2",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/fetch-http-handler": "^5.4.6",
+ "@smithy/node-http-handler": "^4.7.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -170,13 +184,13 @@
}
},
"node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/node-http-handler": {
- "version": "4.9.3",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.3.tgz",
- "integrity": "sha512-qZTa4gQFUo8RM02rk6q5UVTDLNrQ1oS20LsepBzqq1QBVc/EHJ03OOUADcqMZiXHArW+Y7+OGY0BpdTwZRq/Yg==",
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.7.tgz",
+ "integrity": "sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.29.1",
- "@smithy/types": "^4.15.1",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -184,23 +198,23 @@
}
},
"node_modules/@aws-sdk/credential-provider-ini": {
- "version": "3.972.62",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.62.tgz",
- "integrity": "sha512-pQIRiQQs+MUlVnJdWJ7/6KS0WxcLRVfut57OFgwC3cnM1F8mXw3Kh4gAVwj6AtvD6CWx8x6+po4ENRcqe64XrQ==",
+ "version": "3.972.52",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.972.52.tgz",
+ "integrity": "sha512-szg1nnebqC+Svv6Vfsdf6P/QK8x5g/ghG2CKa/1WkHifRnq0BBmDELj2Qnqk9nPsUvEu/OEcYic97CPLpKqF9g==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/credential-provider-env": "^3.972.55",
- "@aws-sdk/credential-provider-http": "^3.972.57",
- "@aws-sdk/credential-provider-login": "^3.972.61",
- "@aws-sdk/credential-provider-process": "^3.972.55",
- "@aws-sdk/credential-provider-sso": "^3.972.61",
- "@aws-sdk/credential-provider-web-identity": "^3.972.61",
- "@aws-sdk/nested-clients": "^3.997.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/credential-provider-imds": "^4.4.5",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/credential-provider-env": "^3.972.46",
+ "@aws-sdk/credential-provider-http": "^3.972.48",
+ "@aws-sdk/credential-provider-login": "^3.972.51",
+ "@aws-sdk/credential-provider-process": "^3.972.46",
+ "@aws-sdk/credential-provider-sso": "^3.972.51",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.51",
+ "@aws-sdk/nested-clients": "^3.997.19",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/credential-provider-imds": "^4.3.7",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -208,16 +222,16 @@
}
},
"node_modules/@aws-sdk/credential-provider-login": {
- "version": "3.972.61",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.61.tgz",
- "integrity": "sha512-jtrxWwC7slqxh7DnAWHrwsA3UwCsnlypdYtavGT7EX5p791wxWQys7QzkCZ7JvOMAyylDtPoxyV+ic0zg3rV9g==",
+ "version": "3.972.51",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.51.tgz",
+ "integrity": "sha512-csHFsH+/VjnI40oqm1l1OqMY4B4kza36DbfcbHcgcbobgjebasqUbTU34xvwUkvtoNGGizbfyMSlMzJWUPv3dQ==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/nested-clients": "^3.997.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/nested-clients": "^3.997.19",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -225,21 +239,21 @@
}
},
"node_modules/@aws-sdk/credential-provider-node": {
- "version": "3.972.64",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.64.tgz",
- "integrity": "sha512-zyKVYDyMR9VQL/kPi03ygN2vtD9uLMuWRLoJ77KxgZZaS1VlJloI+SzleF9Zg4HWUI+AIu+ZRs8zsJFNqbrxsw==",
+ "version": "3.972.54",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.54.tgz",
+ "integrity": "sha512-vinTSQtziNHxi2nqXF+76jr2sO44q88Ind1qFFVaotNgBaC1rcWDjBug8yoE8n0ov33s21xks9WY5XDHH9SENw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/credential-provider-env": "^3.972.55",
- "@aws-sdk/credential-provider-http": "^3.972.57",
- "@aws-sdk/credential-provider-ini": "^3.972.62",
- "@aws-sdk/credential-provider-process": "^3.972.55",
- "@aws-sdk/credential-provider-sso": "^3.972.61",
- "@aws-sdk/credential-provider-web-identity": "^3.972.61",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/credential-provider-imds": "^4.4.5",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/credential-provider-env": "^3.972.46",
+ "@aws-sdk/credential-provider-http": "^3.972.48",
+ "@aws-sdk/credential-provider-ini": "^3.972.52",
+ "@aws-sdk/credential-provider-process": "^3.972.46",
+ "@aws-sdk/credential-provider-sso": "^3.972.51",
+ "@aws-sdk/credential-provider-web-identity": "^3.972.51",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/credential-provider-imds": "^4.3.7",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -247,15 +261,15 @@
}
},
"node_modules/@aws-sdk/credential-provider-process": {
- "version": "3.972.55",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.55.tgz",
- "integrity": "sha512-x0XjjF0l1WGRtK2vEhTZqCguQuAIZLep9l2+eeEmuxQQjjD3BlGQXY5xADR+l3t576UX+dxRkRtTjEu40l81Vw==",
+ "version": "3.972.46",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.46.tgz",
+ "integrity": "sha512-VUoNFBIjWrUN8NbFiQiuxQEgFjvziAlBRPK+ddh27aj65gk0BYu6bLZnrdrNZwpW6vAihtSUtEMQ1PUJ32QRPA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -263,17 +277,17 @@
}
},
"node_modules/@aws-sdk/credential-provider-sso": {
- "version": "3.972.61",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.61.tgz",
- "integrity": "sha512-d/V0VRsz73i+PHhbult/tx0Y1+de1SNQVsXkcQCmpfeBq7uODy/RTxNsOLpT9ZVHxcRNzbQFuywLKC33fUMIxA==",
+ "version": "3.972.51",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.972.51.tgz",
+ "integrity": "sha512-60qhpQcSDIKIr0AuBlmJezKX0b5nbJPCINiR49N9yJXrEI5tTRwsXVBr0IdSvvsNJyqgiINyoBd++Ed0yvggbw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/nested-clients": "^3.997.29",
- "@aws-sdk/token-providers": "3.1081.0",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/nested-clients": "^3.997.19",
+ "@aws-sdk/token-providers": "3.1065.0",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -281,16 +295,16 @@
}
},
"node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers": {
- "version": "3.1081.0",
- "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1081.0.tgz",
- "integrity": "sha512-kduAeI6cL+zqwj3gjPh9LhuX7kBZ83msYxutavaR+UPm5K8J7iThJBvNRAsFNyWTji92CSU8dogUgvi9T0BehA==",
+ "version": "3.1065.0",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1065.0.tgz",
+ "integrity": "sha512-qdHQntq82gMqG6Tf8xrgmhJxacaYkxW4PEeDg/ISMVJ84EWe7iD6JyCTgbyox3uNDH6vqEJ8GUiTaXCq307zVw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/nested-clients": "^3.997.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/nested-clients": "^3.997.19",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -298,16 +312,16 @@
}
},
"node_modules/@aws-sdk/credential-provider-web-identity": {
- "version": "3.972.61",
- "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.61.tgz",
- "integrity": "sha512-Bv4n3NOI6hPy+rmr6Bw9R6LnBVRkcp3ncj2E2IKSYJG+0UkysSitWMvbgndNvMxDw7gE1pQ/ErwkNceuKwj7zQ==",
+ "version": "3.972.51",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.51.tgz",
+ "integrity": "sha512-0X5eWsUIp8ItRJeJBBrhQAPzc9AQelDetRTVTsycCAISCCzM17R4hs/vFAPeQ0o0B35sciLiqe/Pwmml909cZA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/nested-clients": "^3.997.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/nested-clients": "^3.997.19",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -315,14 +329,14 @@
}
},
"node_modules/@aws-sdk/eventstream-handler-node": {
- "version": "3.972.25",
- "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.25.tgz",
- "integrity": "sha512-df7HN1ozwMrB9+59re9PM7tSLxLAcheMWc5u/KyfCPCAWtN/vP7y7RTUZOy48uT1K9MESisVeOPPzF3O1AW01A==",
+ "version": "3.972.21",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.21.tgz",
+ "integrity": "sha512-mVC0hOmwGJmNFezZ+wM8Sqfap/LjsMavEf2Evl0YWrLAcrdZOEdjnY8nRvgakVViWJSGm2eJxLuPVHGdeV06kA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -330,14 +344,14 @@
}
},
"node_modules/@aws-sdk/middleware-eventstream": {
- "version": "3.972.21",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.21.tgz",
- "integrity": "sha512-HvLgDnxBLaHi9E5K++6Vuk+1+qqn7Pmn8zrlzd+NXH3jBzwujnuzZtAR9WHPkbUGPO92FkoQWj/M1IsdxTlBmQ==",
+ "version": "3.972.17",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.17.tgz",
+ "integrity": "sha512-tdbnXbw73ww62ABWP0G0Z/euvFowEEvAoi/zG4NaZo7HJFpfGho/Z65HyVzkJLT1cMsUregr4pTyxljlarT0wA==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -345,17 +359,17 @@
}
},
"node_modules/@aws-sdk/middleware-websocket": {
- "version": "3.972.37",
- "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.37.tgz",
- "integrity": "sha512-u4J2KwTe6hr0hBrcKF7vPNxoQoPdSwdhE8mEQK/ffaY/XgYQ77NRqsbxeNQDaRthQJ3D3KhOdCjrio1E+/ocng==",
+ "version": "3.972.28",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.28.tgz",
+ "integrity": "sha512-SCW06Zjugn86pq7+dxGnFcyWJuEWHT753HTU/Vj/OzVxP+NoShwdAr4ynxAcvWL883OgRVbSqW3ohnjIxwXjjw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/fetch-http-handler": "^5.6.2",
- "@smithy/signature-v4": "^5.6.1",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/fetch-http-handler": "^5.4.6",
+ "@smithy/signature-v4": "^5.4.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -363,18 +377,20 @@
}
},
"node_modules/@aws-sdk/nested-clients": {
- "version": "3.997.29",
- "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.29.tgz",
- "integrity": "sha512-ot6v8J5W8P0w6ryyuIkXP1bHZHTlvwtn83mVCYaBE0GJ6tJX4vPSBx7M98w9O4wmmDruFsDBUMjhEHA+OosUFQ==",
+ "version": "3.997.19",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.19.tgz",
+ "integrity": "sha512-P2Otgf15GBJMKzG6j5Ddf7w+Kz6z2jvesMy874TD3jlMfDWNK7clJeUd7hgigdeVOotjoUP4emcTWVdS9sfZDw==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/core": "^3.974.29",
- "@aws-sdk/signature-v4-multi-region": "^3.996.38",
- "@aws-sdk/types": "^3.973.15",
- "@smithy/core": "^3.29.0",
- "@smithy/fetch-http-handler": "^5.6.2",
- "@smithy/node-http-handler": "^4.9.2",
- "@smithy/types": "^4.15.1",
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "^3.974.20",
+ "@aws-sdk/signature-v4-multi-region": "^3.996.33",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/core": "^3.24.6",
+ "@smithy/fetch-http-handler": "^5.4.6",
+ "@smithy/node-http-handler": "^4.7.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -382,13 +398,13 @@
}
},
"node_modules/@aws-sdk/nested-clients/node_modules/@smithy/node-http-handler": {
- "version": "4.9.3",
- "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.3.tgz",
- "integrity": "sha512-qZTa4gQFUo8RM02rk6q5UVTDLNrQ1oS20LsepBzqq1QBVc/EHJ03OOUADcqMZiXHArW+Y7+OGY0BpdTwZRq/Yg==",
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.7.tgz",
+ "integrity": "sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/core": "^3.29.1",
- "@smithy/types": "^4.15.1",
+ "@smithy/core": "^3.24.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -396,14 +412,14 @@
}
},
"node_modules/@aws-sdk/signature-v4-multi-region": {
- "version": "3.996.38",
- "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.38.tgz",
- "integrity": "sha512-C379Sk+MiFZCfWZphKlMyLHKxV22OjoGM5KJjj5IJNJcOCWL4IGIpnEGzv1FQiRwhYXfq55SJMfxlqPE08JJ9g==",
+ "version": "3.996.33",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.33.tgz",
+ "integrity": "sha512-Hn0RThJEbyOZWV2PV9Z4YD3nitGPxybmyU17dSe9b61WOBcKnqS0WTtM3c1zyZq9WnGiyrfi/i+UBPUk7cM8Ug==",
"license": "Apache-2.0",
"dependencies": {
- "@aws-sdk/types": "^3.973.15",
- "@smithy/signature-v4": "^5.6.1",
- "@smithy/types": "^4.15.1",
+ "@aws-sdk/types": "^3.973.12",
+ "@smithy/signature-v4": "^5.4.6",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -428,12 +444,12 @@
}
},
"node_modules/@aws-sdk/types": {
- "version": "3.973.15",
- "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.15.tgz",
- "integrity": "sha512-IULn8uBV/SMtmOIANsm4WHXIOtVPBWfOWs3WGL0j/sI+KhaYehvOw0ET+9urnn8MBpiijuU/0JOpuwKOE451PQ==",
+ "version": "3.973.12",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.973.12.tgz",
+ "integrity": "sha512-43ajd1NF0RMgX5k0hxCNUyEdrtFUsb2aHT2QvpktSC/2Eyb2Jr/JPVqdp0XIoaHWikZJq5tNWSLO6kB5q2eMCA==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.15.1",
+ "@smithy/types": "^4.14.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -441,9 +457,9 @@
}
},
"node_modules/@aws-sdk/util-locate-window": {
- "version": "3.965.8",
- "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.8.tgz",
- "integrity": "sha512-uUbMs1cBZPafD0ohUj6EwNf0fPZ534NvBxHox4hjX+0Rxq5paSYUem7+hi833pYrzrcnBATKIYpR02MDXT5M9g==",
+ "version": "3.965.7",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.7.tgz",
+ "integrity": "sha512-M0D6oIpohdNHjc7udzTHEQyot0+0iuA36jc2I9Hps+f/GtKi2HO/pyijQnCnNcwZqLB5+rtn81z3eZK/GyjAmA==",
"license": "Apache-2.0",
"dependencies": {
"tslib": "^2.6.2"
@@ -453,12 +469,13 @@
}
},
"node_modules/@aws-sdk/xml-builder": {
- "version": "3.972.33",
- "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.33.tgz",
- "integrity": "sha512-ezbwz9WpuLctm6o7P2t2naDhVVPI5jFGrVefVybhcKGjU57VIyT46pQVO0RI2RYkUdhdj2Z9uSIlAzGZE9NW9A==",
+ "version": "3.972.29",
+ "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.29.tgz",
+ "integrity": "sha512-fk0niuGFxfi8yIJuMVM4mhwObkiQSuwZFj3tAPrLVx64Pk3BkrEIpqjzHKY4hKoEBUD6Jg/S74Zj9jy+5F3DnQ==",
"license": "Apache-2.0",
"dependencies": {
- "@smithy/types": "^4.15.1",
+ "@smithy/types": "^4.14.3",
+ "fast-xml-parser": "5.7.3",
"tslib": "^2.6.2"
},
"engines": {
@@ -466,23 +483,23 @@
}
},
"node_modules/@aws/lambda-invoke-store": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz",
- "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==",
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.2.4.tgz",
+ "integrity": "sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==",
"license": "Apache-2.0",
"engines": {
"node": ">=18.0.0"
}
},
"node_modules/@babel/generator": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz",
- "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==",
+ "version": "8.0.0-rc.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0-rc.6.tgz",
+ "integrity": "sha512-6mIzgVK8DgEzvIapoQwhXTMnnkuE4STQmVv9H03i/tZ2ml8oev3TRvZJgTenK2Bsq0YWNtzOrFdTyNzCMFtjJQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/parser": "^8.0.0",
- "@babel/types": "^8.0.0",
+ "@babel/parser": "^8.0.0-rc.6",
+ "@babel/types": "^8.0.0-rc.6",
"@jridgewell/gen-mapping": "^0.3.12",
"@jridgewell/trace-mapping": "^0.3.28",
"@types/jsesc": "^2.5.0",
@@ -493,9 +510,9 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz",
- "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==",
+ "version": "8.0.0-rc.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.6.tgz",
+ "integrity": "sha512-BCkFy+zN6kXQed3YOT7aJl93NfDSzQc3pBfsvTVPs9gU9X3V0aefEF5kwBT0E+mDWH9QgKaZstYUQN9VdQZT4g==",
"dev": true,
"license": "MIT",
"engines": {
@@ -503,9 +520,9 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.2.tgz",
- "integrity": "sha512-9Fr9QeyCAyi1BR1jKZ6uYQ24EIhQUx5ReHfQU7drOE+TPOb+w11/dsqLkMOT2U29OdCT71XajrOT8xDc1C7orA==",
+ "version": "8.0.0-rc.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.6.tgz",
+ "integrity": "sha512-nVJ+1JcCgntv8d78rRo++o2wuODT0Irknx2BF8Np4Ft2CRgjLqIs4qzSZ8b66yGbBdMWGmZBO9WEZv1hhNiSpg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -513,13 +530,13 @@
}
},
"node_modules/@babel/parser": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0.tgz",
- "integrity": "sha512-aLxAE+imI9bCcyaPrUDjBv3uSkWieifjLe0kuFOZF0zli0L6GCsTmsePnTr55adbIAgYz2zhN1vnFimCBUYcRQ==",
+ "version": "8.0.0-rc.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.6.tgz",
+ "integrity": "sha512-rOS8IpdO7mQELkTPlCsTgPejO0bFuZdEDCGQJouYbYf9e1FLTym7Fei2pEjq8q7MWbX0ravcd7QQYKs1TxOuog==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/types": "^8.0.0"
+ "@babel/types": "^8.0.0-rc.6"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -538,14 +555,14 @@
}
},
"node_modules/@babel/types": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0.tgz",
- "integrity": "sha512-K8ponJDxBwDHigkeFqaqT5wLGl4bTlwMafR8k7b5CPxr6Ww+UG9ls8Yx6Tcpboxu97eeGVEEyKcHmEyOwN1vSw==",
+ "version": "8.0.0-rc.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.6.tgz",
+ "integrity": "sha512-p7/ABylAYlexb31wtRdIfH9L9A0Z2T/9H6zAqzqndkY2PLkvNNc580wGhp/gGKN4Sp9sQvSkhc6Oga8/O+wTyw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/helper-string-parser": "^8.0.0",
- "@babel/helper-validator-identifier": "^8.0.0"
+ "@babel/helper-string-parser": "^8.0.0-rc.6",
+ "@babel/helper-validator-identifier": "^8.0.0-rc.6"
},
"engines": {
"node": "^22.18.0 || >=24.11.0"
@@ -591,27 +608,6 @@
"node": ">=22.19.0"
}
},
- "node_modules/@earendil-works/pi-ai/node_modules/openai": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/openai/-/openai-6.26.0.tgz",
- "integrity": "sha512-zd23dbWTjiJ6sSAX6s0HrCZi41JwTA1bQVs0wLQPZ2/5o2gxOJA5wh7yOAUgwYybfhDXyhwlpeQf7Mlgx8EOCA==",
- "license": "Apache-2.0",
- "bin": {
- "openai": "bin/cli"
- },
- "peerDependencies": {
- "ws": "^8.18.0",
- "zod": "^3.25 || ^4.0"
- },
- "peerDependenciesMeta": {
- "ws": {
- "optional": true
- },
- "zod": {
- "optional": true
- }
- }
- },
"node_modules/@earendil-works/pi-coding-agent": {
"version": "0.80.3",
"resolved": "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-0.80.3.tgz",
@@ -2443,43 +2439,10 @@
"node": ">=22.19.0"
}
},
- "node_modules/@emnapi/core": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
- "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "@emnapi/wasi-threads": "1.2.2",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/runtime": {
- "version": "1.11.2",
- "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.2.tgz",
- "integrity": "sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==",
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@emnapi/wasi-threads": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
- "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "tslib": "^2.4.0"
- }
- },
"node_modules/@esbuild/aix-ppc64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz",
- "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz",
+ "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==",
"cpu": [
"ppc64"
],
@@ -2494,9 +2457,9 @@
}
},
"node_modules/@esbuild/android-arm": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz",
- "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz",
+ "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==",
"cpu": [
"arm"
],
@@ -2511,9 +2474,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz",
- "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz",
+ "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==",
"cpu": [
"arm64"
],
@@ -2528,9 +2491,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz",
- "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz",
+ "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==",
"cpu": [
"x64"
],
@@ -2545,9 +2508,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz",
- "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz",
+ "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==",
"cpu": [
"arm64"
],
@@ -2562,9 +2525,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz",
- "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz",
+ "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==",
"cpu": [
"x64"
],
@@ -2579,9 +2542,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz",
- "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz",
+ "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==",
"cpu": [
"arm64"
],
@@ -2596,9 +2559,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz",
- "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz",
+ "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==",
"cpu": [
"x64"
],
@@ -2613,9 +2576,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz",
- "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz",
+ "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==",
"cpu": [
"arm"
],
@@ -2630,9 +2593,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.28.1",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz",
- "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==",
+ "version": "0.27.7",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz",
+ "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==",
"cpu": [
"arm64"
],
@@ -2647,9 +2610,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.28.1",
... diff truncated: showing 800 of 3057 linesYou can send follow-ups to the cloud agent here.
The previous lockfile was regenerated from scratch, re-resolving unrelated transitive dependencies. Rebuild it from main's lockfile with only the pi 0.80.3 bumps, workspace version changes, and the stale nested @onkernel/cua-ai registry entries removed. Verified with npm ci.
model selects which model runs (pi refs widened to CUA refs); models is the pi provider collection requests stream through. Mirrors pi-agent-core, which keeps both fields as separate concerns.
const models = cuaModels() with a short orientation comment reads clearer than an inline cuaModels().complete() call, and points power users at createCuaModels() for isolated collections.
pi-ai's registry (generated from models.dev) only carries family roots, so the dated snapshot needed a hand-maintained override to resolve. Users pin the family id; drop the snapshot rather than maintain it. The gpt-5.5 family annotation is unchanged.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Reviewed by Cursor Bugbot for commit 853debd. Configure here.
| keepToolNames: runtime.keepToolNames(), | ||
| }; | ||
| return (streamFn ?? streamSimple)(model, context, optionsWithCuaRuntime); | ||
| return (streamFn ?? defaultCuaStream)(model, context, optionsWithCuaRuntime); |
There was a problem hiding this comment.
CuaAgent ignores custom Models
Medium Severity
CuaAgentHarness accepts a custom pi Models collection, but CuaAgent always streams through cuaModels() via defaultCuaStream, even when callers pass models on pi AgentOptions. Custom collections used for isolated tests or credential stores are bypassed unless every caller supplies a custom streamFn.
Reviewed by Cursor Bugbot for commit 853debd. Configure here.



Summary
pi 0.80 replaced pi-ai's global api-registry and free-function surface (
getModel,getModels,streamSimple,complete,registerApiProvider, …) with an instance-basedModelsAPI, and pi-agent-core 0.80'sAgentHarnessnow requires aModelscollection and dropsgetApiKeyAndHeaders. This PR migrates all three packages to the new API directly — no use of the deprecated@earendil-works/pi-ai/compatshim — and mirrors pi's new shape in cua's own surface.cua-ai (0.4.0, breaking)
createCuaModels(options?)/cuaModels(): a piModelscollection with pi's builtin providers plus CUA's adjustments:openaiwrapped to dispatch cua'sopenai-cua-responsesapi (previous_response_idthreading); other apis fall through to pi's builtingoogleacceptsGOOGLE_API_KEYorGEMINI_API_KEY(pi's builtin only readsGEMINI_API_KEY)tzafonandyutoriproviders registered viacreateProviderwith env-key authregisterCuaProviders()and the import-time registration side effect removed — nothing global is mutated, and pi's registry mutators can no longer silently break tzafon/yutori streaminggetBuiltinModel(s);getCuaModel/listCuaModelsare unchanged for callersclaude-sonnet-5andgpt-5.5model overrides (pi-ai 0.80's registry carries both;gpt-5.5-2026-04-23override kept)cua-agent (0.4.0, breaking)
CuaAgentHarnesstakes an optionalmodels(defaults tocuaModels()) and passes it to pi-agent-core;getApiKeyAndHeadersis gone upstream — auth resolves through provider auth, explicit per-requestapiKeystill winsCuaAgent's default stream path iscuaModels().streamSimple(customstreamFnunchanged)cua-cli (0.2.0)
buildCuaHarnessacceptsmodelsinstead ofgetApiKeyAndHeaderscreateCuaModels()collection per test instead of mutating a process-global registry (drops thedispose()hygiene dance)Deps
All pi packages aligned at 0.80.3 (
pi-ai,pi-agent-core,pi-coding-agent,pi-tui); inter-package pins updated to the new versions so npm workspaces link locally (previouslycua-agentpinned publishedcua-ai@0.3.2, pulling a second nestedpi-ai@0.79.1).Testing
npm run typecheckcleanopenai:gpt-5.5,anthropic:claude-sonnet-5(now registry-resolved),google:gemini-3-flash-preview,tzafon:tzafon.northstar-cua-fast,yutori:n1.5-latestapiKeyfor google/tzafon/yutori — google resolved viaGOOGLE_API_KEY, proving the env wrapper (pi's builtin alone would fail)packages/ptywrightnative build (needs zig, unavailable here; fails identically on main), and the agent live e2e suite (CUA_E2E_LIVE=1)Versions are pre-bumped (cua-ai 0.4.0, cua-agent 0.4.0, cua-cli 0.2.0) with changelog entries; release tags to follow post-merge.
Note
High Risk
Breaking public APIs across cua-ai, cua-agent, and cua-cli, plus auth moving from harness callbacks to provider collections—any consumer still using global pi-ai helpers or
getApiKeyAndHeadersmust migrate. Core agent loop and all provider streaming paths change with the pi 0.80.3 bump.Overview
Breaking migration from pi-ai 0.79’s global
streamSimple/registerApiProvidersurface to pi 0.80’s instanceModelscollections, with pi-agent-core 0.80 dropping harnessgetApiKeyAndHeaders.@onkernel/cua-ai(0.4.0) addscreateCuaModels()/cuaModels(): builtins plus CUA wiring (OpenAIopenai-cua-responsesthreading, GoogleGOOGLE_API_KEY/GEMINI_API_KEY, Tzafon/Yutori viacreateProvider).registerCuaProviders()and import-time global registration are removed. Callers usecuaModels().complete()/streamSimple()instead of top-level helpers. Catalog reads usegetBuiltinModel(s); local overrides forgpt-5.5/claude-sonnet-5are dropped (pi registry); dated refs likegpt-5.5-2026-04-23no longer resolve.@onkernel/cua-agent(0.4.0) passes optionalmodels(defaultcuaModels()) into the harness and streams viacuaModels().streamSimpleby default.@onkernel/cua-cli(0.2.0) takesmodelsonbuildCuaHarness; tests use per-fixturecreateCuaModels()scripted providers instead of mutating a global registry.CI packs
cua-ai,cua-agent, andcua-clitarballs for the CLI smoke install so unreleased workspace versions resolve locally. Docs/architecture reflect theModelsstreaming path.Reviewed by Cursor Bugbot for commit 853debd. Bugbot is set up for automated code reviews on this repo. Configure here.