From c09d82dd8a5bad98a632e178820f142afa173fab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Nov 2026 06:57:27 +0000 Subject: [PATCH 1/4] chore(deps): bump @earendil-works/pi-ai from 1.1.0 to 1.4.0 Bumps [@earendil-works/pi-ai](https://github.com/earendil-works/pi/tree/HEAD/packages/ai) from 1.1.0 to 1.4.0. - [Release notes](https://github.com/earendil-works/pi/releases) - [Changelog](https://github.com/earendil-works/pi/blob/main/packages/ai/CHANGELOG.md) - [Commits](https://github.com/earendil-works/pi/commits/v1.4.0/packages/ai) --- updated-dependencies: - dependency-name: "@earendil-works/pi-ai" dependency-version: 1.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- packages/runner-pi/package.json | 2 +- pnpm-lock.yaml | 1212 +++++++------------------------ 2 files changed, 244 insertions(+), 970 deletions(-) diff --git a/packages/runner-pi/package.json b/packages/runner-pi/package.json index 95afde6de..025289355 100644 --- a/packages/runner-pi/package.json +++ b/packages/runner-pi/package.json @@ -14,7 +14,7 @@ "test": "corepack pnpm --filter @ling-stack/plugin-sdk build && tsc -p tsconfig.json && node --test test/*.test.mjs" }, "dependencies": { - "@earendil-works/pi-ai": "1.1.0", + "@earendil-works/pi-ai": "1.4.0", "@earendil-works/pi-coding-agent": "1.1.0", "@ling-stack/plugin-sdk": "workspace:*", "undici": "7.30.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e79b8e9d..6590376d7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,30 +32,30 @@ patchedDependencies: braces@3.0.3: hash: ad74a34b0200bbe14ba95e31e8f296205ce32a374eca2cef25cc8940aa0c76c1 path: patches/braces@3.0.3.patch + glob@11.1.0: + hash: 181caa5dc9cc2da79ef843bd0d516d35d1b2049a1414d5ebb5dc1c7c6245febd + path: patches/glob@11.1.0.patch + glob@13.0.6: + hash: 6beb643a718eff7d7e70483b7992e3f1ddfbe50878326cd97dd817c5f5953fe7 + path: patches/glob@13.0.6.patch http-cache-semantics@4.3.0: hash: 03e58cecb06676afed23b54884e117f11f59d59690746f98e498e365102f6da0 path: patches/http-cache-semantics@4.3.0.patch image-size@2.0.4: hash: 4045ad5d2de4ed47956f4f703fa65e6328c367e3e1acff969728cbb50b29187b path: patches/image-size@2.0.4.patch + minimatch@10.2.6: + hash: 4c80b68ecba29d8bdc1b80faeac833cf39dd28487711a846e5804e3bc044f6e7 + path: patches/minimatch@10.2.6.patch + minimatch@9.0.9: + hash: d82eb6ab78ab1012d55ae44d746c1f8f19d358535ebc56e5e865c5daa78cb1f4 + path: patches/minimatch@9.0.9.patch sprintf-js@1.0.3: hash: bd6495e712b47ec612cde7288449c45ab0c719717b423e6a94b693e297bbb452 path: patches/sprintf-js@1.0.3.patch sprintf-js@1.1.3: hash: 82b04dd9d1d8254e00580a51ea22a3710721fd7fa0350e51ef33829396255efb path: patches/sprintf-js@1.1.3.patch - minimatch@9.0.9: - hash: d82eb6ab78ab1012d55ae44d746c1f8f19d358535ebc56e5e865c5daa78cb1f4 - path: patches/minimatch@9.0.9.patch - minimatch@10.2.6: - hash: 4c80b68ecba29d8bdc1b80faeac833cf39dd28487711a846e5804e3bc044f6e7 - path: patches/minimatch@10.2.6.patch - glob@11.1.0: - hash: 181caa5dc9cc2da79ef843bd0d516d35d1b2049a1414d5ebb5dc1c7c6245febd - path: patches/glob@11.1.0.patch - glob@13.0.6: - hash: 6beb643a718eff7d7e70483b7992e3f1ddfbe50878326cd97dd817c5f5953fe7 - path: patches/glob@13.0.6.patch importers: @@ -415,9 +415,6 @@ importers: packages/daemon: dependencies: - acorn: - specifier: 8.19.0 - version: 8.19.0 '@agentclientprotocol/sdk': specifier: 1.9.0 version: 1.9.0(zod@4.6.7) @@ -457,6 +454,9 @@ importers: '@xmldom/xmldom': specifier: 0.9.12 version: 0.9.12 + acorn: + specifier: 8.19.0 + version: 8.19.0 diff: specifier: 9.0.0 version: 9.0.0 @@ -550,11 +550,11 @@ importers: packages/runner-pi: dependencies: '@earendil-works/pi-ai': - specifier: 1.1.0 - version: 1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + specifier: 1.4.0 + version: 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@7.30.1)(ws@8.22.1)(zod@4.6.7) '@earendil-works/pi-coding-agent': specifier: 1.1.0 - version: 1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(ws@8.22.0)(zod@4.6.7) + version: 1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7) '@ling-stack/plugin-sdk': specifier: workspace:* version: link:../plugin-sdk @@ -658,76 +658,76 @@ packages: resolution: {integrity: sha512-IDl/lrPb90aH+pZFHGNDmgH9nAUQj5PlZH1sJ3w7RikctyjHSnY3oNjZhrLoaBoQn/rNK0zsP6OHEqEhj2tdLA==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.978.1': - resolution: {integrity: sha512-LbY9aGsEiznDWmUc30Nwv3aIX/+dbwTx8KfS0yOC3NPYMO+O91e6jkT1azf34FwjOndq8/Q+RcVVZz5xnerwdg==} + '@aws-sdk/core@3.979.1': + resolution: {integrity: sha512-ayOlV1VhLNMiq8PW9ZkVobG4gkldnUoHjG69yy2b8j+VYFlhz/uAL7ZdYQAoQ+eShtGUdNDnnG5rxDg6yUJrOg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.72': - resolution: {integrity: sha512-xTKO/FWJPozTIXbozVnVGoNBhaGba8TBcx+KyUjRVeOlXE+dUc7GTR1cLvu0uTdIdmemzaFbqqCshXeZA1fZew==} + '@aws-sdk/credential-provider-env@3.972.80': + resolution: {integrity: sha512-uO5TiSvb6j1w9RTe5z28OaOmsrOxVQUPaC5+wZl50RfOXcrYD/KgnS8I9lfyGXc7sGbkCopK6VnhNIAoLqfewQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.74': - resolution: {integrity: sha512-u91E/hT8f4d1xy0Jl7VG4nVKJ3lxbrZkoBTeSVoJdWBiSEUMwMS/9+e0H/aJVQV//Lt5wuzP+E69v4aRSsNTmw==} + '@aws-sdk/credential-provider-http@3.972.82': + resolution: {integrity: sha512-vQzlDHlC24Yz42p+rT4NBoP/5VdetkBoujbOLq9h6QYWC8THuZSPYnXIR9OP3XcOrdMgPBBipOrdssfxnIiWUg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.973.17': - resolution: {integrity: sha512-ged4KXdBkvIC81bLvNHHuQKdKak/VXhQTR1NWYTTqW0474nlmsxy9O/vlgTIohDDWH3xpBdtVMZRyjb+DnocDA==} + '@aws-sdk/credential-provider-ini@3.973.25': + resolution: {integrity: sha512-b5xl71uCRdWsu7P1VeGpiGuCf6zfYETsSNOv8AmYVTrsgbvTJRXdmmOPVfxkvGGVNsiKkGctClQW3jAn0SZLug==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.79': - resolution: {integrity: sha512-L+Z85anONJd8MaiuraO4wRxATCdEejBZ3K3eymzWI5JPXa9sOS9CkIm72PBKqXKX+Z9p9NGMX5AIMXm0LEflgw==} + '@aws-sdk/credential-provider-login@3.972.87': + resolution: {integrity: sha512-C4ZFmcwM+Zj14Z8huVUk54Gv4uzT1ZdzG9cY3Gdh8FePakq7Bss1OFsgZjAhWFOkFOGpBvFBeu0OWjWf8HNKRQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.84': - resolution: {integrity: sha512-oHt854odINVwzwsh+c5x69j0ajm4DbqqqVJ+O1ECsCIZeMDAbzFpXItaqP7UZstJj/ATdTk/KFSH0LaNAgV+kA==} + '@aws-sdk/credential-provider-node@3.972.92': + resolution: {integrity: sha512-jC3zmOo7Qxlk+oBivvSsS1Ph7sFGm0QfuhqDGbqgRXi4cxUYMG+dWtBwS2XYYXgc8TIVXJiwgQ65sbNpbYupTA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.72': - resolution: {integrity: sha512-rLIp2xbMjX/k9/od7APpqq1ZgXXnV0pOL1Th3ZsL8Wu0TRtBsDTVS8iPqcfRFcHakFxPvR04OSTv2ka2qOb/2A==} + '@aws-sdk/credential-provider-process@3.972.80': + resolution: {integrity: sha512-xqfixO5aclje7tbQJDias+iNND5wp/3QZixCdZcVQpgWPTZ0V5DfTW9A804A5Z7ezu7sH3WRO+vzUjtiJBA8yg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.973.16': - resolution: {integrity: sha512-IGihaJfFZYacJJr/odqILCoK7W/mvrZ7cuK7ECn3sAu4vLC6u0V8bS7mCGbdugJ8Aum2tnvqmx0F2MRFp2rn9g==} + '@aws-sdk/credential-provider-sso@3.973.24': + resolution: {integrity: sha512-nlg3BKG03Cgzvv/dMnhxvDJPhAhQSpaN0RUdwgU7ziwkasoev7iI8el8Xy4Rd5sqzgaDUbV269fOXck5SargqA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.78': - resolution: {integrity: sha512-/y9WvNtlcPBGLR0qc1a+9J/xtYZfVczvLUOuXaVWylzttH7ewsxwHtjmiJSolNrVSDorIxHGHMU61CbonRkmwA==} + '@aws-sdk/credential-provider-web-identity@3.972.86': + resolution: {integrity: sha512-zKTyLJBEyfQBVlYqT6Jt+mYV4r8kGbWM7dn6v4Y4MRARizhYafjDXP/iMu76UMRhToSPNmIKX1XAb24gtpBFIA==} engines: {node: '>=20.0.0'} - '@aws-sdk/eventstream-handler-node@3.972.35': - resolution: {integrity: sha512-a8xilRoRaalvSPZdfrs0VY3/BPc0uYhXW56Z/k6nmZ5Vk430LHeowf9APIPq8utM3tMJSNGSSuJMlB9YrPsN+A==} + '@aws-sdk/eventstream-handler-node@3.972.40': + resolution: {integrity: sha512-LR2mRKFb9EMlGHmJNXMtuMPvVQqN1b9/v68A1UQaE72pb8pHqiHxTtS++vaab8844YesGVzBVrloAis7+EXq/w==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-eventstream@3.972.30': - resolution: {integrity: sha512-B6gvZlcnRBNWraKgyEjKsbhv+VjtbyHmpU7hmtTHzXpDSxHPpCJnYLpglEOOsF+SFne20DbZC5IVC1aNr2Pb4A==} + '@aws-sdk/middleware-eventstream@3.972.36': + resolution: {integrity: sha512-OkV+alDzmJ3DOs2mRPLSM9FUVSul7G1wkpKrbO+tyxxGOT7qLMPZHOlj4Ipjw9OayRmU7nMVPSFo7hvUqOSeJg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-websocket@3.972.54': - resolution: {integrity: sha512-bhESdru8u8KosziH8jcVta/NM/dNreeRz2+2aU86si5bfBYOiJ6IiqD+9U4URUcU5WJO3Yw+jO3GLDIHlscXMQ==} + '@aws-sdk/middleware-websocket@3.972.62': + resolution: {integrity: sha512-pNkKv8TlxEBpL26J8zpeHLzW//As72QapCPfciTs7k7H+ppFZxE/zVteAH9zdFI83Xx7Ki5rE0hJjVh+TmOH7g==} engines: {node: '>= 14.0.0'} - '@aws-sdk/nested-clients@3.997.46': - resolution: {integrity: sha512-oRxtBcka/JGHGs9l9p9IVajGoTP8vTPmoAzdHGy4Qcy9P5vPnDf6nhIeM/COQNY9k/OahImTRaLkHftoXvfcmQ==} + '@aws-sdk/nested-clients@3.997.54': + resolution: {integrity: sha512-/OczlavsS7U5sOodRO10Ug4R/AKFVZiXTstKipWe68EfjPkmdDFNXNl9FCJyXWkg1DG6RBm3qAuVB8FNW9O8KQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.47': - resolution: {integrity: sha512-Zk08macMvQTHzQJCLJVkOlviVoqwYMrpXv4lmLN7b7sAbiMoOK7Go0NYdR5UeF+MW8LIbRmwrNy9u/5VvX1U5g==} + '@aws-sdk/signature-v4-multi-region@3.996.51': + resolution: {integrity: sha512-+aHvUugVBuMPXxgkPfWnTMyGdE/yWS8GHi5+qQ37HowS0YqzrbuaDLznj+Dtmtu5jgCdqz36gXmujOToUhNNWw==} engines: {node: '>=20.0.0'} '@aws-sdk/token-providers@3.1127.0': resolution: {integrity: sha512-Dv2TMWBshJ+tF6ahs2Sy5bh4Iabsd4GAQqVvE9XZmYmnoaVbpS2QKIKE/HRacc7bTtbjEEvP+laGzHvHlf1CiQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1138.0': - resolution: {integrity: sha512-GpyAr0DD63YOEmYFM6Df+gJuIgC92MMTiBK4FTKfxii5MJ9ge20epR7LyroulscYlG89J+ZB2ivFDPjvfQhzdw==} + '@aws-sdk/token-providers@3.1161.0': + resolution: {integrity: sha512-ypbXSofNcSHwf/KA40bFCXJb0MLaAKrfT7sot4dFaA+2lsuXNah4zLRJIAU7Qmvs9PFJ6rnY0bZFEC+mE7attA==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.974.6': - resolution: {integrity: sha512-v/clNZzZnDxGyvpHMOGpJKVXFAExJzUNAAjaWGdcx8QAcXLGwTaOkw33p5SHAi0YAioK32xB3hWwOekRVfmfKg==} + '@aws-sdk/types@3.975.0': + resolution: {integrity: sha512-WQlhs6juByzWOzj5fwxOx0mPJaEqMcG/sDpl3Id61B3XhKE63xY+0QWcnG+sWR/sCfprmreyUo1lM7IKZmHMzw==} engines: {node: '>=20.0.0'} - '@aws-sdk/xml-builder@3.972.41': - resolution: {integrity: sha512-ctjVSyCMegrWfXlx6VqzSBFI6UqmQ5ZlnfMhdLIiWmhoH8UAQxSCP5N3OpG7X3k4LnS7ou74C4mt20+bfTW2aQ==} + '@aws-sdk/xml-builder@3.972.42': + resolution: {integrity: sha512-smX8/gNP8Kjq+CWTBMZQLQ912vOQjiWExzwzvMO+eujPB5RY8IbtF0AGdUUXHKN7KoDWK9dIcuW0WG269kiP6w==} engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.3.0': @@ -1138,8 +1138,8 @@ packages: resolution: {integrity: sha512-aX1KZomNCPmwYnXa3OivF3VYLJ+WPUkIJlEIZTgwdOZdY/+oToWTQ334WYpQeOz9POpiYFNMJLPwIhXQ4e48kg==} engines: {node: '>=22.19.0'} - '@earendil-works/pi-ai@1.1.0': - resolution: {integrity: sha512-1T7LAkc/5Bvc0v6w4vAGVdCrli0o/E0pEmYKTnixu95vSFArBjvbhS/G4ZwI0RUePgf0Imcu0VyqlM4EcXxqfw==} + '@earendil-works/pi-ai@1.4.0': + resolution: {integrity: sha512-hQM/C4+1w8rHYACzDDf+0vQMnEnpzIop1tptIERVgR3ZeT/hHSzBNG8PaWPgxWQjqSeKCyBZSyp8uTT6eKK1pQ==} engines: {node: '>=22.19.0'} hasBin: true @@ -1156,8 +1156,8 @@ packages: resolution: {integrity: sha512-xGKwvu3SvVTeoIx8Z7UGoJprB4VK20wKORMhufcWGx61fIauhu3J+UqfB5eeoF1oE/geYBA598K6nh1SdABQkg==} engines: {node: '>=22.19.0'} - '@earendil-works/pi-telemetry@1.1.0': - resolution: {integrity: sha512-8gAK05/2pPozZZz6hCLOi8x2vsqzvsmO9gG92kbvuvTPm0qMHaFlaXX98ndXsrOi5pmzha7vNLguuG4+0Rgxjw==} + '@earendil-works/pi-telemetry@1.4.0': + resolution: {integrity: sha512-MLIfowwUYIY65jSjMX82paZOrX/NTvLk6D08h+3Jq42a99RzUOewzuCR0zOlPul3D6UBfddat76VT6LvsHEs1w==} engines: {node: '>=22.19.0'} '@earendil-works/pi-tui@1.1.0': @@ -2632,8 +2632,8 @@ packages: resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} - '@smithy/core@3.35.1': - resolution: {integrity: sha512-i4YPS4B6ts7bjn7UwLnGjiZdprOvHvgGobFZsYK3GIY3E5hIqtj0rReU69BcTpGp+fvtraSNXeG1l+jtJvF55w==} + '@smithy/core@3.38.1': + resolution: {integrity: sha512-U/mB2XiwTLaf+NSgLSWwJfptsMT/H8aBi0aTAA/E5e2/TagFeGCqAyhKGG0w0A9IWTkm4qYEmLoD/HB6aYfnRA==} engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.5.2': @@ -2648,8 +2648,12 @@ packages: resolution: {integrity: sha512-ThMkboGeONWXAelq9FvGsuJC4rOi+qyC4/zhUF58xYpxUg5sQKx2VXZYJmtNjr4dSuBJ1HeJXETQILCz3wOHvw==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.7.4': - resolution: {integrity: sha512-tHy0K0VtqNd5Y7Y41h0a0Lhh0L1GzC08dTWg0F7vRJWFtTENg7IZikf3wQkanYIRdb7ngoIPMTmqgUi401fEeQ==} + '@smithy/node-http-handler@4.14.1': + resolution: {integrity: sha512-/T6E1jzCL0fErS9uq8JqES/5yYQQ4ppVmmYHwXw2nlov8KFzLb+3QqHR5iAun1BsuAB50IPxZliV8YMgghLwhA==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.7.5': + resolution: {integrity: sha512-WPjdr5oWOk1LArpI4pavu+fSo+/evi0Re1olxGvqwuZopd4gYR1UGCi+Soyn/IjmafqbWs+ZC+3AKxJS3ZpwUg==} engines: {node: '>=18.0.0'} '@smithy/types@4.19.0': @@ -3140,14 +3144,6 @@ packages: resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} engines: {node: '>=10'} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -3159,10 +3155,6 @@ packages: resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} engines: {node: '>=0.12.0'} - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -3173,10 +3165,6 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - aws4@1.13.2: resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} @@ -3275,8 +3263,8 @@ packages: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - bowser@2.14.1: - resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} + bowser@2.15.0: + resolution: {integrity: sha512-xic6KSZglg/I4ymp45fdM4GWfYpBK79Fxd/TOvJktlaPgQqqDxvmGwOPZl2V0dyeS3Lj5c180bLhXF43iyAjZQ==} bplist-creator@0.1.0: resolution: {integrity: sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==} @@ -3359,10 +3347,6 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} - engines: {node: '>= 0.4'} - call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -3745,18 +3729,6 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - dayjs@1.11.23: resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} @@ -3964,14 +3936,6 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract-get@1.0.0: - resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==} - engines: {node: '>= 0.4'} - - es-abstract@1.24.2: - resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} - engines: {node: '>= 0.4'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -3988,10 +3952,6 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-to-primitive@1.3.4: - resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==} - engines: {node: '>= 0.4'} - es-toolkit@1.52.0: resolution: {integrity: sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==} @@ -4313,10 +4273,6 @@ packages: resolution: {integrity: sha512-O8QvQf/B3rBF+eagcc9/WMAjfJoaKckdgSd8PT/qvMIIe4ZjVKrSqV5SDnRFAKY0VrE8r5C4ADYgvYhmwkWADA==} engines: {node: '>=0.4.0'} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -4388,13 +4344,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.2.0: - resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gaxios@7.3.1: resolution: {integrity: sha512-kB3rzJV7d9juLZh8/56QTXCwQfxyhdOMdyYk1HdQKFtF8TJTDTZQJtixWIwXdE9Jji91mC41DUNpjleo4L4eAQ==} engines: {node: '>=18'} @@ -4403,10 +4352,6 @@ packages: resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} engines: {node: '>=18'} - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4435,10 +4380,6 @@ packages: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - getenv@2.0.0: resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} engines: {node: '>=6'} @@ -4491,10 +4432,6 @@ packages: hachure-fill@0.5.2: resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -4506,10 +4443,6 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -4629,10 +4562,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} @@ -4651,74 +4580,22 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - is-arrayish@0.3.4: resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - is-core-module@2.17.0: resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==} engines: {node: '>= 0.4'} - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - is-document.all@1.0.0: - resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==} - engines: {node: '>= 0.4'} - - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4734,45 +4611,9 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-url@1.2.4: resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -4780,9 +4621,6 @@ packages: isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbinaryfile@4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} @@ -5006,9 +4844,6 @@ packages: resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==} engines: {node: '>= 12.0.0'} - listenercount@1.0.1: - resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -5593,10 +5428,6 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - officeparser@8.4.1: resolution: {integrity: sha512-MeyEdnqlZCThds/7W/w2xgMrwYKa7VoZirfECJ9+a3jigkF9HNHLNYqEGGS0k6kmfhUmPdoL0G2Od5EgKZDa5w==} engines: {node: '>=22.13.0'} @@ -5681,10 +5512,6 @@ packages: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} - own-keys@1.0.2: - resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==} - engines: {node: '>= 0.4'} - p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -5830,10 +5657,6 @@ packages: points-on-path@0.2.1: resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss@8.5.29: resolution: {integrity: sha512-49cGhUbXj8Qenv0iTMxA1cFBzxXoctpC9Ujd77t1WcbJIr6nF/eI7g/8MgxrYldFRuAXvja7xQRwavoW7kgrxQ==} engines: {node: ^10 || ^12 || >=14} @@ -6041,10 +5864,6 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.3.0: resolution: {integrity: sha512-9ns8odR8e9q3otKeHj3DE80jZYKg6zVeZKE+zQmRKXFoVUcuiTGeO6iusDhPRoIQQPVPRvH+SfBhrTud4eczuw==} engines: {node: '>=4'} @@ -6064,10 +5883,6 @@ packages: regex@6.1.0: resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - regexpu-core@6.5.3: resolution: {integrity: sha512-E8VgUoSK+LMQrLboDxavm76MTBGrQhx9RiNuomRmYnZ10Uw12HrI8fkxOOncktb2hBpzIZ9SV/347euQHG5z+g==} engines: {node: '>=4'} @@ -6167,24 +5982,12 @@ packages: rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} - safe-array-concat@1.1.4: - resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} - engines: {node: '>=0.4'} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -6259,18 +6062,6 @@ packages: set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -6392,10 +6183,6 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - stream-buffers@2.2.0: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} @@ -6407,18 +6194,6 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string.prototype.trim@1.2.11: - resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.10: - resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -6543,10 +6318,6 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - traverse@0.3.10: - resolution: {integrity: sha512-pd6fq5qmiFuPA3TpdqBCqJXlOrSdCSt0l9IZDg83Vbf4x3m/X18prEwMMVM5LXp9vGL9NxjeiDGBrTasqyngXQ==} - engines: {node: '>= 0.4'} - trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -6566,6 +6337,9 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tslib@2.9.1: + resolution: {integrity: sha512-a4Ux9VKuIMHsOS7ENbEq6hK2ZGYIT27Rtl0E4eD9KqwxhKiQeMZE/9xb3IdYwWaSOyIBQLExhQgXDTYoiCxnWA==} + type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -6589,26 +6363,6 @@ packages: typebox@1.3.27: resolution: {integrity: sha512-zu+jc1pcy4UiNThxikUr36f0Rybk9PEeCg/NE6adeWr/SKsdNO4EzZHYRDlv2YCVAfj3Odq3dESSo/jNyoBXzA==} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.5: - resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.8: - resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==} - engines: {node: '>= 0.4'} - - typedarray.prototype.slice@1.0.6: - resolution: {integrity: sha512-r+7YvGfM5TkTiDQ5EqWi/Z4L4KP3jUI+YCmTtWg1tmTHUw6xladLJqzR2heMaHBIM0TTFLZmn/EkIaEHYs/bIA==} - engines: {node: '>= 0.4'} - typescript@7.0.2: resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} engines: {node: '>=16.20.0'} @@ -6618,10 +6372,6 @@ packages: resolution: {integrity: sha512-8iAasVS4wUx0gPLjH8Xtz2PeDzTSiy8QiLGu2DT3X5GU+egFEQhpnbtkehbAwjvDcxIERmCYcysiODFmE3Ud0Q==} engines: {node: '>=18'} - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - underscore@1.13.8: resolution: {integrity: sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==} @@ -6856,25 +6606,9 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - which-typed-array@1.1.24: - resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -6952,9 +6686,6 @@ packages: resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} engines: {node: '>=4.0.0'} - xml@1.0.1: - resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} - xmlbuilder@10.1.1: resolution: {integrity: sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==} engines: {node: '>=4.0'} @@ -7095,183 +6826,183 @@ snapshots: '@aws-sdk/client-bedrock-runtime@3.1127.0': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/credential-provider-node': 3.972.84 - '@aws-sdk/eventstream-handler-node': 3.972.35 - '@aws-sdk/middleware-eventstream': 3.972.30 - '@aws-sdk/middleware-websocket': 3.972.54 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/credential-provider-node': 3.972.92 + '@aws-sdk/eventstream-handler-node': 3.972.40 + '@aws-sdk/middleware-eventstream': 3.972.36 + '@aws-sdk/middleware-websocket': 3.972.62 '@aws-sdk/token-providers': 3.1127.0 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/fetch-http-handler': 5.8.0 - '@smithy/node-http-handler': 4.12.1 + '@smithy/node-http-handler': 4.14.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/core@3.978.1': + '@aws-sdk/core@3.979.1': dependencies: - '@aws-sdk/types': 3.974.6 - '@aws-sdk/xml-builder': 3.972.41 + '@aws-sdk/types': 3.975.0 + '@aws-sdk/xml-builder': 3.972.42 '@aws/lambda-invoke-store': 0.3.0 - '@smithy/core': 3.35.1 - '@smithy/signature-v4': 5.7.4 + '@smithy/core': 3.38.1 + '@smithy/signature-v4': 5.7.5 '@smithy/types': 4.19.0 - bowser: 2.14.1 - tslib: 2.8.1 + bowser: 2.15.0 + tslib: 2.9.1 - '@aws-sdk/credential-provider-env@3.972.72': + '@aws-sdk/credential-provider-env@3.972.80': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/credential-provider-http@3.972.74': + '@aws-sdk/credential-provider-http@3.972.82': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/fetch-http-handler': 5.8.0 - '@smithy/node-http-handler': 4.12.1 + '@smithy/node-http-handler': 4.14.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.973.17': - dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/credential-provider-env': 3.972.72 - '@aws-sdk/credential-provider-http': 3.972.74 - '@aws-sdk/credential-provider-login': 3.972.79 - '@aws-sdk/credential-provider-process': 3.972.72 - '@aws-sdk/credential-provider-sso': 3.973.16 - '@aws-sdk/credential-provider-web-identity': 3.972.78 - '@aws-sdk/nested-clients': 3.997.46 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + tslib: 2.9.1 + + '@aws-sdk/credential-provider-ini@3.973.25': + dependencies: + '@aws-sdk/core': 3.979.1 + '@aws-sdk/credential-provider-env': 3.972.80 + '@aws-sdk/credential-provider-http': 3.972.82 + '@aws-sdk/credential-provider-login': 3.972.87 + '@aws-sdk/credential-provider-process': 3.972.80 + '@aws-sdk/credential-provider-sso': 3.973.24 + '@aws-sdk/credential-provider-web-identity': 3.972.86 + '@aws-sdk/nested-clients': 3.997.54 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/credential-provider-imds': 4.5.2 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/credential-provider-login@3.972.79': + '@aws-sdk/credential-provider-login@3.972.87': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/nested-clients': 3.997.46 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/nested-clients': 3.997.54 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-node@3.972.84': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.72 - '@aws-sdk/credential-provider-http': 3.972.74 - '@aws-sdk/credential-provider-ini': 3.973.17 - '@aws-sdk/credential-provider-process': 3.972.72 - '@aws-sdk/credential-provider-sso': 3.973.16 - '@aws-sdk/credential-provider-web-identity': 3.972.78 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + tslib: 2.9.1 + + '@aws-sdk/credential-provider-node@3.972.92': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.80 + '@aws-sdk/credential-provider-http': 3.972.82 + '@aws-sdk/credential-provider-ini': 3.973.25 + '@aws-sdk/credential-provider-process': 3.972.80 + '@aws-sdk/credential-provider-sso': 3.973.24 + '@aws-sdk/credential-provider-web-identity': 3.972.86 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/credential-provider-imds': 4.5.2 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/credential-provider-process@3.972.72': + '@aws-sdk/credential-provider-process@3.972.80': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/credential-provider-sso@3.973.16': + '@aws-sdk/credential-provider-sso@3.973.24': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/nested-clients': 3.997.46 - '@aws-sdk/token-providers': 3.1138.0 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/nested-clients': 3.997.54 + '@aws-sdk/token-providers': 3.1161.0 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/credential-provider-web-identity@3.972.78': + '@aws-sdk/credential-provider-web-identity@3.972.86': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/nested-clients': 3.997.46 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/nested-clients': 3.997.54 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/eventstream-handler-node@3.972.35': + '@aws-sdk/eventstream-handler-node@3.972.40': dependencies: - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/middleware-eventstream@3.972.30': + '@aws-sdk/middleware-eventstream@3.972.36': dependencies: - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/middleware-websocket@3.972.54': + '@aws-sdk/middleware-websocket@3.972.62': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/fetch-http-handler': 5.8.0 - '@smithy/signature-v4': 5.7.4 + '@smithy/signature-v4': 5.7.5 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/nested-clients@3.997.46': + '@aws-sdk/nested-clients@3.997.54': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/signature-v4-multi-region': 3.996.47 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/signature-v4-multi-region': 3.996.51 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/fetch-http-handler': 5.8.0 - '@smithy/node-http-handler': 4.12.1 + '@smithy/node-http-handler': 4.14.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/signature-v4-multi-region@3.996.47': + '@aws-sdk/signature-v4-multi-region@3.996.51': dependencies: - '@aws-sdk/types': 3.974.6 - '@smithy/signature-v4': 5.7.4 + '@aws-sdk/types': 3.975.0 + '@smithy/signature-v4': 5.7.5 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 '@aws-sdk/token-providers@3.1127.0': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/nested-clients': 3.997.46 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/nested-clients': 3.997.54 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/token-providers@3.1138.0': + '@aws-sdk/token-providers@3.1161.0': dependencies: - '@aws-sdk/core': 3.978.1 - '@aws-sdk/nested-clients': 3.997.46 - '@aws-sdk/types': 3.974.6 - '@smithy/core': 3.35.1 + '@aws-sdk/core': 3.979.1 + '@aws-sdk/nested-clients': 3.997.54 + '@aws-sdk/types': 3.975.0 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/types@3.974.6': + '@aws-sdk/types@3.975.0': dependencies: '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@aws-sdk/xml-builder@3.972.41': + '@aws-sdk/xml-builder@3.972.42': dependencies: '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 '@aws/lambda-invoke-store@0.3.0': {} @@ -7783,9 +7514,9 @@ snapshots: dependencies: esbuild: 0.28.2 - '@earendil-works/pi-agent-core@1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.2)(ws@8.22.0)(zod@4.6.7)': + '@earendil-works/pi-agent-core@1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7)': dependencies: - '@earendil-works/pi-ai': 1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.2)(ws@8.22.0)(zod@4.6.7) + '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) typebox: 1.3.27 transitivePeerDependencies: - '@aws-sdk/credential-provider-node' @@ -7800,16 +7531,16 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7)': + '@earendil-works/pi-ai@1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@7.30.1)(ws@8.22.1)(zod@4.6.7)': dependencies: '@anthropic-ai/sdk': 0.129.0(zod@4.6.7) '@aws-sdk/client-bedrock-runtime': 3.1127.0 - '@earendil-works/pi-telemetry': 1.1.0 + '@earendil-works/pi-telemetry': 1.4.0 '@google/genai': 2.21.0(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7)) '@smithy/node-http-handler': 4.12.1 http-proxy-agent: 9.1.0 https-proxy-agent: 9.1.0 - openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7) + openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.92)(@smithy/signature-v4@5.7.5)(undici@7.30.1)(ws@8.22.1)(zod@4.6.7) partial-json: 0.1.7 typebox: 1.3.27 transitivePeerDependencies: @@ -7825,16 +7556,16 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.2)(ws@8.22.0)(zod@4.6.7)': + '@earendil-works/pi-ai@1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7)': dependencies: '@anthropic-ai/sdk': 0.129.0(zod@4.6.7) '@aws-sdk/client-bedrock-runtime': 3.1127.0 - '@earendil-works/pi-telemetry': 1.1.0 + '@earendil-works/pi-telemetry': 1.4.0 '@google/genai': 2.21.0(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7)) '@smithy/node-http-handler': 4.12.1 http-proxy-agent: 9.1.0 https-proxy-agent: 9.1.0 - openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.12.2)(ws@8.22.0)(zod@4.6.7) + openai: 7.19.0(@aws-sdk/credential-provider-node@3.972.92)(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) partial-json: 0.1.7 typebox: 1.3.27 transitivePeerDependencies: @@ -7854,11 +7585,11 @@ snapshots: dependencies: quickjs-wasi: 3.6.2 - '@earendil-works/pi-coding-agent@1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(ws@8.22.0)(zod@4.6.7)': + '@earendil-works/pi-coding-agent@1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7)': dependencies: '@earendil-works/chord': 1.1.0 - '@earendil-works/pi-agent-core': 1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.2)(ws@8.22.0)(zod@4.6.7) - '@earendil-works/pi-ai': 1.1.0(@aws-sdk/credential-provider-node@3.972.84)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.4)(undici@8.12.2)(ws@8.22.0)(zod@4.6.7) + '@earendil-works/pi-agent-core': 1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) + '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) '@earendil-works/pi-codemode': 1.1.0 '@earendil-works/pi-mcp': 1.1.0 '@earendil-works/pi-tui': 1.1.0 @@ -7895,7 +7626,7 @@ snapshots: dependencies: cross-spawn: 7.0.6 - '@earendil-works/pi-telemetry@1.1.0': {} + '@earendil-works/pi-telemetry@1.4.0': {} '@earendil-works/pi-tui@1.1.0': dependencies: @@ -8523,7 +8254,7 @@ snapshots: google-auth-library: 10.9.1 p-retry: 4.6.2 protobufjs: 7.6.5 - ws: 8.22.0 + ws: 8.22.1 optionalDependencies: '@modelcontextprotocol/sdk': 1.32.2(zod@4.6.7) transitivePeerDependencies: @@ -8828,15 +8559,15 @@ snapshots: dependencies: '@peculiar/utils': 2.0.3 asn1js: 3.0.10 - tslib: 2.8.1 + tslib: 2.9.1 '@peculiar/json-schema@1.1.12': dependencies: - tslib: 2.8.1 + tslib: 2.9.1 '@peculiar/utils@2.0.3': dependencies: - tslib: 2.8.1 + tslib: 2.9.1 '@peculiar/webcrypto@1.7.1': dependencies: @@ -9506,38 +9237,44 @@ snapshots: '@sindresorhus/is@4.6.0': {} - '@smithy/core@3.35.1': + '@smithy/core@3.38.1': dependencies: '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 '@smithy/credential-provider-imds@4.5.2': dependencies: - '@smithy/core': 3.35.1 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 '@smithy/fetch-http-handler@5.8.0': dependencies: - '@smithy/core': 3.35.1 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 '@smithy/node-http-handler@4.12.1': dependencies: - '@smithy/core': 3.35.1 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 - '@smithy/signature-v4@5.7.4': + '@smithy/node-http-handler@4.14.1': dependencies: - '@smithy/core': 3.35.1 + '@smithy/core': 3.38.1 '@smithy/types': 4.19.0 - tslib: 2.8.1 + tslib: 2.9.1 + + '@smithy/signature-v4@5.7.5': + dependencies: + '@smithy/core': 3.38.1 + '@smithy/types': 4.19.0 + tslib: 2.9.1 '@smithy/types@4.19.0': dependencies: - tslib: 2.8.1 + tslib: 2.9.1 '@stablelib/base64@1.0.1': {} @@ -10042,21 +9779,6 @@ snapshots: dependencies: tslib: 2.8.1 - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - asap@2.0.6: {} asn1js@3.0.10: @@ -10067,18 +9789,12 @@ snapshots: async-exit-hook@2.0.1: {} - async-function@1.0.0: {} - async@3.2.6: {} asynckit@0.4.0: {} at-least-node@1.0.0: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - aws4@1.13.2: {} babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): @@ -10224,7 +9940,7 @@ snapshots: boolean@3.2.0: optional: true - bowser@2.14.1: {} + bowser@2.15.0: {} bplist-creator@0.1.0: dependencies: @@ -10337,13 +10053,6 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.9: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 @@ -10732,24 +10441,6 @@ snapshots: data-uri-to-buffer@4.0.1: {} - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - dayjs@1.11.23: {} debug@2.6.9: @@ -10785,6 +10476,7 @@ snapshots: es-define-property: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 + optional: true define-lazy-prop@2.0.0: {} @@ -10793,6 +10485,7 @@ snapshots: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 + optional: true delaunator@5.1.0: dependencies: @@ -10967,70 +10660,6 @@ snapshots: dependencies: stackframe: 1.3.4 - es-abstract-get@1.0.0: - dependencies: - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - is-callable: 1.2.7 - object-inspect: 1.13.4 - - es-abstract@1.24.2: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.4 - function.prototype.name: 1.2.0 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.4 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.2 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.4 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.11 - string.prototype.trimend: 1.0.10 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.5 - typed-array-length: 1.0.8 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.24 - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -11046,15 +10675,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.4 - es-to-primitive@1.3.4: - dependencies: - es-abstract-get: 1.0.0 - es-define-property: 1.0.1 - es-errors: 1.3.0 - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - es-toolkit@1.52.0: {} es6-error@4.1.1: @@ -11471,10 +11091,6 @@ snapshots: dependencies: flow-estree: 0.336.0 - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -11558,20 +11174,6 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.2.0: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - es-define-property: 1.0.1 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - hasown: 2.0.4 - is-callable: 1.2.7 - is-document.all: 1.0.0 - - functions-have-names@1.2.3: {} - gaxios@7.3.1: dependencies: extend: 3.0.2 @@ -11588,8 +11190,6 @@ snapshots: transitivePeerDependencies: - supports-color - generator-function@2.0.1: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -11620,12 +11220,6 @@ snapshots: dependencies: pump: 3.0.4 - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - getenv@2.0.0: {} glob@11.1.0(patch_hash=181caa5dc9cc2da79ef843bd0d516d35d1b2049a1414d5ebb5dc1c7c6245febd): @@ -11666,6 +11260,7 @@ snapshots: dependencies: define-properties: 1.2.1 gopd: 1.2.0 + optional: true google-auth-library@10.9.1: dependencies: @@ -11702,8 +11297,6 @@ snapshots: hachure-fill@0.5.2: {} - has-bigints@1.1.0: {} - has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -11711,10 +11304,7 @@ snapshots: has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 + optional: true has-symbols@1.1.0: {} @@ -11848,12 +11438,6 @@ snapshots: inherits@2.0.4: {} - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.4 - side-channel: 1.1.1 - internmap@1.0.1: {} internmap@2.0.3: {} @@ -11866,77 +11450,16 @@ snapshots: ipaddr.js@1.9.1: {} - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-arrayish@0.3.4: {} - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-callable@1.2.7: {} - is-core-module@2.17.0: dependencies: hasown: 2.0.4 - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-docker@2.2.1: {} - is-document.all@1.0.0: - dependencies: - call-bound: 1.0.4 - - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-map@2.0.3: {} - - is-negative-zero@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-number@7.0.0: {} is-plain-obj@2.1.0: {} @@ -11945,55 +11468,14 @@ snapshots: is-promise@4.0.0: {} - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.4 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.24 - is-url@1.2.4: {} - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 isarray@1.0.0: {} - isarray@2.0.5: {} - isbinaryfile@4.0.10: {} isbinaryfile@5.0.7: {} @@ -12195,8 +11677,6 @@ snapshots: lightningcss-win32-arm64-msvc: 1.33.0 lightningcss-win32-x64-msvc: 1.33.0 - listenercount@1.0.1: {} - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -13158,16 +12638,8 @@ snapshots: object-inspect@1.13.4: {} - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.2 - has-symbols: 1.1.0 - object-keys: 1.1.1 + object-keys@1.1.1: + optional: true officeparser@8.4.1: dependencies: @@ -13216,20 +12688,20 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@7.19.0(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@7.30.1)(ws@8.22.0)(zod@4.6.7): + openai@7.19.0(@aws-sdk/credential-provider-node@3.972.92)(@smithy/signature-v4@5.7.5)(undici@7.30.1)(ws@8.22.1)(zod@4.6.7): optionalDependencies: - '@aws-sdk/credential-provider-node': 3.972.84 - '@smithy/signature-v4': 5.7.4 + '@aws-sdk/credential-provider-node': 3.972.92 + '@smithy/signature-v4': 5.7.5 undici: 7.30.1 - ws: 8.22.0 + ws: 8.22.1 zod: 4.6.7 - openai@7.19.0(@aws-sdk/credential-provider-node@3.972.84)(@smithy/signature-v4@5.7.4)(undici@8.12.2)(ws@8.22.0)(zod@4.6.7): + openai@7.19.0(@aws-sdk/credential-provider-node@3.972.92)(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7): optionalDependencies: - '@aws-sdk/credential-provider-node': 3.972.84 - '@smithy/signature-v4': 5.7.4 + '@aws-sdk/credential-provider-node': 3.972.92 + '@smithy/signature-v4': 5.7.5 undici: 8.12.2 - ws: 8.22.0 + ws: 8.22.1 zod: 4.6.7 opencollective-postinstall@2.0.3: {} @@ -13245,13 +12717,6 @@ snapshots: strip-ansi: 5.2.0 wcwidth: 1.0.1 - own-keys@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - p-cancelable@2.1.1: {} p-limit@2.3.0: @@ -13369,8 +12834,6 @@ snapshots: path-data-parser: 0.1.0 points-on-curve: 0.2.0 - possible-typed-array-names@1.1.0: {} - postcss@8.5.29: dependencies: nanoid: 3.3.20 @@ -13459,7 +12922,7 @@ snapshots: pvtsutils@1.3.6: dependencies: - tslib: 2.8.1 + tslib: 2.9.1 pvutils@1.1.5: {} @@ -13574,7 +13037,7 @@ snapshots: dependencies: react: 19.3.0 react-style-singleton: 2.2.3(@types/react@19.3.0)(react@19.3.0) - tslib: 2.8.1 + tslib: 2.9.1 optionalDependencies: '@types/react': 19.3.0 @@ -13593,7 +13056,7 @@ snapshots: dependencies: get-nonce: 1.0.1 react: 19.3.0 - tslib: 2.8.1 + tslib: 2.9.1 optionalDependencies: '@types/react': 19.3.0 @@ -13625,17 +13088,6 @@ snapshots: dependencies: minimatch: 5.1.9 - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - regenerate-unicode-properties@10.3.0: dependencies: regenerate: 1.5.0 @@ -13654,15 +13106,6 @@ snapshots: dependencies: regex-utilities: 2.3.0 - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - regexpu-core@6.5.3: dependencies: regenerate: 1.5.0 @@ -13809,29 +13252,10 @@ snapshots: rw@1.3.3: {} - safe-array-concat@1.1.4: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - safer-buffer@2.1.2: {} sandbox-cli-detector@0.2.0: {} @@ -13922,28 +13346,6 @@ snapshots: set-blocking@2.0.0: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -14060,11 +13462,6 @@ snapshots: statuses@2.0.2: {} - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - stream-buffers@2.2.0: {} strictdom@1.0.1: {} @@ -14075,30 +13472,6 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string.prototype.trim@1.2.11: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-object-atoms: 1.1.2 - has-property-descriptors: 1.0.2 - safe-regex-test: 1.1.0 - - string.prototype.trimend@1.0.10: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.2 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-object-atoms: 1.1.2 - string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -14242,14 +13615,6 @@ snapshots: tr46@0.0.3: {} - traverse@0.3.10: - dependencies: - define-data-property: 1.1.4 - es-to-primitive: 1.3.4 - gopd: 1.2.0 - typedarray.prototype.slice: 1.0.6 - which-typed-array: 1.1.24 - trim-lines@3.0.1: {} trough@2.2.0: {} @@ -14264,6 +13629,8 @@ snapshots: tslib@2.8.1: {} + tslib@2.9.1: {} + type-fest@0.13.1: optional: true @@ -14283,49 +13650,6 @@ snapshots: typebox@1.3.27: {} - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.9 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.5: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.8: - dependencies: - call-bind: 1.0.9 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - - typedarray.prototype.slice@1.0.6: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - get-proto: 1.0.1 - math-intrinsics: 1.1.0 - typed-array-buffer: 1.0.3 - typed-array-byte-offset: 1.0.5 - typescript@7.0.2: optionalDependencies: '@typescript/typescript-aix-ppc64': 7.0.2 @@ -14351,13 +13675,6 @@ snapshots: uint8array-extras@1.6.0: {} - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - underscore@1.13.8: {} undici-types@6.21.0: {} @@ -14460,7 +13777,7 @@ snapshots: use-callback-ref@1.3.3(@types/react@19.3.0)(react@19.3.0): dependencies: react: 19.3.0 - tslib: 2.8.1 + tslib: 2.9.1 optionalDependencies: '@types/react': 19.3.0 @@ -14472,7 +13789,7 @@ snapshots: dependencies: detect-node-es: 1.1.0 react: 19.3.0 - tslib: 2.8.1 + tslib: 2.9.1 optionalDependencies: '@types/react': 19.3.0 @@ -14541,7 +13858,7 @@ snapshots: '@peculiar/json-schema': 1.1.12 '@peculiar/utils': 2.0.3 asn1js: 3.0.10 - tslib: 2.8.1 + tslib: 2.9.1 webidl-conversions@3.0.1: {} @@ -14554,49 +13871,8 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.2.0 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.2 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.24 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - which-module@2.0.1: {} - which-typed-array@1.1.24: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -14650,8 +13926,6 @@ snapshots: sax: 1.6.1 xmlbuilder: 11.0.1 - xml@1.0.1: {} - xmlbuilder@10.1.1: {} xmlbuilder@11.0.1: {} From 18ac08136f4eb2ffad8c0053175d6dfe15fcd834 Mon Sep 17 00:00:00 2001 From: tianxiaochannel-oss88 Date: Sat, 7 Nov 2026 10:15:13 +0800 Subject: [PATCH 2/4] fix(runner-pi): keep Pi packages on a compatible release --- packages/runner-pi/package.json | 2 +- pnpm-lock.yaml | 62 +++++++++++++++++---------------- 2 files changed, 33 insertions(+), 31 deletions(-) diff --git a/packages/runner-pi/package.json b/packages/runner-pi/package.json index 025289355..928e7d65f 100644 --- a/packages/runner-pi/package.json +++ b/packages/runner-pi/package.json @@ -15,7 +15,7 @@ }, "dependencies": { "@earendil-works/pi-ai": "1.4.0", - "@earendil-works/pi-coding-agent": "1.1.0", + "@earendil-works/pi-coding-agent": "1.4.0", "@ling-stack/plugin-sdk": "workspace:*", "undici": "7.30.1", "zod": "4.6.7" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6590376d7..24c1d9107 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -553,8 +553,8 @@ importers: specifier: 1.4.0 version: 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@7.30.1)(ws@8.22.1)(zod@4.6.7) '@earendil-works/pi-coding-agent': - specifier: 1.1.0 - version: 1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7) + specifier: 1.4.0 + version: 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7) '@ling-stack/plugin-sdk': specifier: workspace:* version: link:../plugin-sdk @@ -1130,12 +1130,8 @@ packages: '@chevrotain/types@11.1.2': resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==} - '@earendil-works/chord@1.1.0': - resolution: {integrity: sha512-gsHzKfyQ3t0ZIQ3cLBjJ5Vqy1TYnFyruHIV3g3BwmulCDYe5BW4yT9vaJk9QzN6YANILIO75uzuq+Gdxtzz1og==} - engines: {node: '>=22.19.0'} - - '@earendil-works/pi-agent-core@1.1.0': - resolution: {integrity: sha512-aX1KZomNCPmwYnXa3OivF3VYLJ+WPUkIJlEIZTgwdOZdY/+oToWTQ334WYpQeOz9POpiYFNMJLPwIhXQ4e48kg==} + '@earendil-works/pi-agent-core@1.4.0': + resolution: {integrity: sha512-PoKY84SKUwnt7S5QBZaGUqfNO1kjP3KHpHUA9QpFTj4cOjaVWMYIcBPJ6FDRCdE8Zen9OSECQUd0uUfVgtSmgA==} engines: {node: '>=22.19.0'} '@earendil-works/pi-ai@1.4.0': @@ -1143,25 +1139,25 @@ packages: engines: {node: '>=22.19.0'} hasBin: true - '@earendil-works/pi-codemode@1.1.0': - resolution: {integrity: sha512-8Asc2AzhoNaXS1snmRFa96OhcWIlFM5k1Kuiz6p2DvIYgi5QHQccRAmDVY9oO92TzWrizpvQpconZGQ7JhlI7Q==} + '@earendil-works/pi-codemode@1.4.0': + resolution: {integrity: sha512-23CNAXpS9DuLzPMyYuvrXVVio46x4YhffCgCqaWmF7F5H8PooqjrQvX4ucF6M0BhUd+x2tV6r1J0dv8cCME4Cg==} engines: {node: '>=22.19.0'} - '@earendil-works/pi-coding-agent@1.1.0': - resolution: {integrity: sha512-SeEi/4hdcHNgA9UWlefZl7ZZpm3dzi2OoxNjDHsBJ9o298LNOtbL4DGKgitlEj6uCTccvtw6f2hlCkTPVJ2RXg==} + '@earendil-works/pi-coding-agent@1.4.0': + resolution: {integrity: sha512-Z41LpZ3yYHSC/UUps6Mr39UMFPwH8elhJBG9DY1P7kuzsE5qSK/6eMj2EHzO5evJRQWLbKSqUMw+4nCNtIyiQg==} engines: {node: '>=22.19.0'} hasBin: true - '@earendil-works/pi-mcp@1.1.0': - resolution: {integrity: sha512-xGKwvu3SvVTeoIx8Z7UGoJprB4VK20wKORMhufcWGx61fIauhu3J+UqfB5eeoF1oE/geYBA598K6nh1SdABQkg==} + '@earendil-works/pi-mcp@1.4.0': + resolution: {integrity: sha512-92aZmmGsUpHHknYuKXZHRINQfahntw5hU9If0I0ZM49GojOaFHpkl5/GF3/aatqpt7v7GjZbBfpfSygGKW+pnw==} engines: {node: '>=22.19.0'} '@earendil-works/pi-telemetry@1.4.0': resolution: {integrity: sha512-MLIfowwUYIY65jSjMX82paZOrX/NTvLk6D08h+3Jq42a99RzUOewzuCR0zOlPul3D6UBfddat76VT6LvsHEs1w==} engines: {node: '>=22.19.0'} - '@earendil-works/pi-tui@1.1.0': - resolution: {integrity: sha512-v7wkS0y2ErZvZkSfemqd9RrBZJ5x6p8Ujsv7NdJj01IXJyFM0kNL6rMdcKcvTe7EVTd6ugvDB9VPZSoaBF9QxQ==} + '@earendil-works/pi-tui@1.4.0': + resolution: {integrity: sha512-4obPOjgOD7g4mGSlngIvxyujC1UPdmyI9zdVthbr8GufacFEX+Ce0+scPgHg++k2xj5+QjESM2d5TxvIuzCVmg==} engines: {node: '>=22.19.0'} '@electron-internal/extract-zip@1.0.5': @@ -4955,6 +4951,12 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marked-cjk-friendly@0.1.2: + resolution: {integrity: sha512-GUj8HjiEbur9yhgUo52FBgKizggF1QtT6gVdrYdWW6ZB4lVVjgS3EyyXPyfyRD0V4ghGRPlO7MO80rgSWbm0eA==} + engines: {node: '>=18'} + peerDependencies: + marked: '>=15.0.0' + marked@16.4.2: resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} engines: {node: '>= 20'} @@ -7510,11 +7512,7 @@ snapshots: '@chevrotain/types@11.1.2': {} - '@earendil-works/chord@1.1.0': - dependencies: - esbuild: 0.28.2 - - '@earendil-works/pi-agent-core@1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7)': + '@earendil-works/pi-agent-core@1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7)': dependencies: '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) typebox: 1.3.27 @@ -7581,18 +7579,17 @@ snapshots: - ws - zod - '@earendil-works/pi-codemode@1.1.0': + '@earendil-works/pi-codemode@1.4.0': dependencies: quickjs-wasi: 3.6.2 - '@earendil-works/pi-coding-agent@1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7)': + '@earendil-works/pi-coding-agent@1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7)': dependencies: - '@earendil-works/chord': 1.1.0 - '@earendil-works/pi-agent-core': 1.1.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) + '@earendil-works/pi-agent-core': 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) - '@earendil-works/pi-codemode': 1.1.0 - '@earendil-works/pi-mcp': 1.1.0 - '@earendil-works/pi-tui': 1.1.0 + '@earendil-works/pi-codemode': 1.4.0 + '@earendil-works/pi-mcp': 1.4.0 + '@earendil-works/pi-tui': 1.4.0 '@silvia-odwyer/photon-node': 0.3.4 brace-expansion: 5.0.12 chalk: 6.0.0 @@ -7622,16 +7619,17 @@ snapshots: - ws - zod - '@earendil-works/pi-mcp@1.1.0': + '@earendil-works/pi-mcp@1.4.0': dependencies: cross-spawn: 7.0.6 '@earendil-works/pi-telemetry@1.4.0': {} - '@earendil-works/pi-tui@1.1.0': + '@earendil-works/pi-tui@1.4.0': dependencies: get-east-asian-width: 1.6.0 marked: 18.0.11 + marked-cjk-friendly: 0.1.2(marked@18.0.11) '@electron-internal/extract-zip@1.0.5': {} @@ -11770,6 +11768,10 @@ snapshots: markdown-table@3.0.4: {} + marked-cjk-friendly@0.1.2(marked@18.0.11): + dependencies: + marked: 18.0.11 + marked@16.4.2: {} marked@18.0.11: {} From d8b92f179857dcc384236a597de42c833a8bc929 Mon Sep 17 00:00:00 2001 From: tianxiaochannel-oss88 Date: Sat, 7 Nov 2026 17:18:33 +0800 Subject: [PATCH 3/4] fix(runner-pi): preserve recovery authority across SDK system patches --- packages/runner-pi/package.json | 8 +- packages/runner-pi/src/adapter.ts | 6 + .../runner-pi/test/session-authority.test.ts | 109 ++++++++++++++++++ packages/runner-pi/tsconfig.test.json | 12 ++ 4 files changed, 131 insertions(+), 4 deletions(-) create mode 100644 packages/runner-pi/test/session-authority.test.ts create mode 100644 packages/runner-pi/tsconfig.test.json diff --git a/packages/runner-pi/package.json b/packages/runner-pi/package.json index 928e7d65f..1eb31f7d1 100644 --- a/packages/runner-pi/package.json +++ b/packages/runner-pi/package.json @@ -6,12 +6,12 @@ "types": "./dist/index.d.ts", "scripts": { "build:ci": "tsc -p tsconfig.json", - "typecheck:ci": "tsc -p tsconfig.json --noEmit", - "test:ci": "node --test test/*.test.mjs", + "typecheck:ci": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json", + "test:ci": "node --test test/*.test.mjs test/*.test.ts", "build": "corepack pnpm --filter @ling-stack/plugin-sdk build && tsc -p tsconfig.json", - "typecheck": "corepack pnpm --filter @ling-stack/plugin-sdk build && tsc -p tsconfig.json --noEmit", + "typecheck": "corepack pnpm --filter @ling-stack/plugin-sdk build && corepack pnpm typecheck:ci", "lint": "echo \"lint not configured yet\"", - "test": "corepack pnpm --filter @ling-stack/plugin-sdk build && tsc -p tsconfig.json && node --test test/*.test.mjs" + "test": "corepack pnpm --filter @ling-stack/plugin-sdk build && tsc -p tsconfig.json && corepack pnpm test:ci" }, "dependencies": { "@earendil-works/pi-ai": "1.4.0", diff --git a/packages/runner-pi/src/adapter.ts b/packages/runner-pi/src/adapter.ts index 5a25a2e8b..c8d113faa 100644 --- a/packages/runner-pi/src/adapter.ts +++ b/packages/runner-pi/src/adapter.ts @@ -145,6 +145,12 @@ export class PiRunnerAdapter { if (event.type === "agent_settled") sdkSettlement = { aborted: event.aborted }; if ((event.type === "message_start" || event.type === "message_end" || event.type === "message_update") && isPiHostResumeControl(event.message)) return; + if (event.type === "message_end" && event.message.role === "system" && session && frozenAuthority) { + // Pi reduces the system patch into state before notifying subscribers. + // Omit SDK bookkeeping only after proving prompt and tools are unchanged. + frozenPiConversation(session.state.messages, frozenAuthority); + return; + } const translatedEvents = translatePiEvents(event); // Buffer only Pi's exact reflection of this boundary's private control // error and its identity-paired empty turn_end. Nothing is discarded until diff --git a/packages/runner-pi/test/session-authority.test.ts b/packages/runner-pi/test/session-authority.test.ts new file mode 100644 index 000000000..0749932ed --- /dev/null +++ b/packages/runner-pi/test/session-authority.test.ts @@ -0,0 +1,109 @@ +import assert from "node:assert/strict"; +import { mkdtemp, rm } from "node:fs/promises"; +import { createServer } from "node:http"; +import { tmpdir } from "node:os"; +import { join } from "node:path"; +import test, { type TestContext } from "node:test"; +import type { SystemMessage } from "@earendil-works/pi-ai"; +import { AgentSession } from "@earendil-works/pi-coding-agent"; +import { PiRunnerAdapter } from "../dist/adapter.js"; +import { frozenPiConversation } from "../dist/session-transcript.js"; +import type { PiRunnerEvent, PiRunnerRunOptions } from "../dist/types.js"; + +async function fixture(t: TestContext) { + const cwd = await mkdtemp(join(tmpdir(), "ling-pi-authority-")); + t.after(() => rm(cwd, { recursive: true, force: true })); + const requests: unknown[] = []; + const events: PiRunnerEvent[] = []; + let effects = 0; + const server = createServer(async (request, response) => { + const chunks: Buffer[] = []; + for await (const chunk of request) chunks.push(Buffer.from(chunk)); + requests.push(JSON.parse(Buffer.concat(chunks).toString("utf8"))); + response.writeHead(200, { "content-type": "text/event-stream" }); + response.end('data: {"choices":[{"index":0,"delta":{"content":"Recovered."},"finish_reason":null}]}\n\n' + + 'data: {"choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}\n\ndata: [DONE]\n\n'); + }); + t.after(() => new Promise((resolve, reject) => { + server.close(error => error ? reject(error) : resolve()); + server.closeAllConnections(); + })); + await new Promise((resolve, reject) => { + server.once("error", reject); + server.listen(0, "127.0.0.1", resolve); + }); + const address = server.address(); + assert.ok(address && typeof address !== "string"); + const runner = new PiRunnerAdapter(); + const options: PiRunnerRunOptions = { + cwd, agentDir: join(cwd, "agent"), runId: "saved-run", runnerAttemptId: "restored-attempt", + task: { id: "saved-task", title: "Recover", prompt: "Report the saved read without repeating it." }, + provider: { provider: "authority-fixture", model: "fixture", api: "openai-completions", + baseUrl: `http://127.0.0.1:${address.port}/v1`, apiKey: "fixture-no-network", reasoning: false }, + tools: ["read"], onEvent: event => { events.push(event); }, + onToolBefore: () => { effects += 1; return { allowed: true }; }, + onTaskContinuationBoundary: async () => {}, + }; + const preparedInput = await runner.prepareTaskInput(options); + const modelView = [ + { role: "user", content: [{ type: "text", text: preparedInput.userPrompt }], timestamp: 0 }, + { role: "assistant", content: [{ type: "toolCall", id: "saved-read", name: "read", arguments: { path: "saved.txt" } }], + api: "openai-completions", provider: options.provider.provider, model: options.provider.model, stopReason: "toolUse", + usage: { input: 10, output: 5, cacheRead: 0, cacheWrite: 0, totalTokens: 15, + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 } }, timestamp: 1 }, + { role: "toolResult", toolCallId: "saved-read", toolName: "read", isError: false, + content: [{ type: "text", text: "The original durable result." }], timestamp: 2 }, + ]; + return { runner, options: { ...options, preparedInput, + ordinaryProgressRecovery: { schemaVersion: 1 as const, modelView } }, modelView, events, requests, effects: () => effects }; +} + +test("a restored SDK system patch preserves frozen authority without adding Host recovery effects", { timeout: 15_000 }, async t => { + const f = await fixture(t); + let admissions = 0; + const result = await f.runner.runTask({ ...f.options, onTaskContinuationBoundary: async point => { + if (point !== "before_provider_request") return; + admissions += 1; + assert.deepEqual(f.events.map(event => event.type), ["run_start", "turn_start"], + "only canonical recovery bookkeeping may precede the first provider request"); + } }); + assert.equal(admissions, 1); + assert.equal(f.requests.length, 1); + assert.equal(f.effects(), 0); + assert.ok(result.messages.filter(message => (message as { role: string }).role === "system").length >= 2, + "the SDK transcript retains its system patch"); + const conversation = frozenPiConversation(result.messages, f.options.preparedInput); + assert.deepEqual(conversation.slice(0, -1), f.modelView); + assert.equal((conversation.at(-1) as { role: string }).role, "assistant"); + assert.equal(f.events.some(event => event.type === "message_end" && event.role === "system"), false); + assert.equal(f.events.some(event => event.type === "run_end"), true); +}); + +const drifts: { name: string; patch: Partial }[] = [ + { name: "prompt", patch: { content: "Unsealed replacement instructions." } }, + { name: "tool declaration", patch: { toolsAdded: [{ name: "read", description: "Changed read authority", parameters: { type: "object" } }] } }, + { name: "tool removal", patch: { toolsRemoved: [{ name: "read" }] } }, +]; + +for (const { name, patch } of drifts) { + test(`a restored ${name} change cannot be omitted as bookkeeping or reach a provider`, { timeout: 15_000 }, async t => { + const subscribe = AgentSession.prototype.subscribe; + let injected = false; + t.mock.method(AgentSession.prototype, "subscribe", function (this: AgentSession, listener: Parameters[0]) { + return subscribe.call(this, event => { + if (event.type === "message_end" && event.message.role === "system") { + const message = { ...event.message, ...patch }; + this.agent.state.messages = this.agent.state.messages.map(value => value === event.message ? message : value); + injected = true; + listener({ ...event, message }); + } else listener(event); + }); + }); + const f = await fixture(t); + await assert.rejects(f.runner.runTask(f.options)); + assert.equal(injected, true); + assert.equal(f.requests.length, 0); + assert.equal(f.effects(), 0); + assert.equal(f.events.some(event => event.type === "run_end"), false); + }); +} diff --git a/packages/runner-pi/tsconfig.test.json b/packages/runner-pi/tsconfig.test.json new file mode 100644 index 000000000..c9e4ef726 --- /dev/null +++ b/packages/runner-pi/tsconfig.test.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "noEmit": true, + "skipLibCheck": true, + "strict": true, + "target": "ES2022", + "types": ["node"] + }, + "include": ["test/**/*.ts"] +} From 899ba6e325464cccdd4fa532bfbda0dfabcc16d0 Mon Sep 17 00:00:00 2001 From: tianxiaochannel-oss88 Date: Sat, 7 Nov 2026 19:27:51 +0800 Subject: [PATCH 4/4] fix(runner-pi): bound SDK summary output --- package.json | 3 +- .../runner-pi/test/summary-budget.test.ts | 134 ++++++++++++++++++ ...arendil-works__pi-coding-agent@1.4.0.patch | 112 +++++++++++++++ pnpm-lock.yaml | 7 +- 4 files changed, 253 insertions(+), 3 deletions(-) create mode 100644 packages/runner-pi/test/summary-budget.test.ts create mode 100644 patches/@earendil-works__pi-coding-agent@1.4.0.patch diff --git a/package.json b/package.json index a4f63f30a..43b7b2636 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,8 @@ "minimatch@9.0.9": "patches/minimatch@9.0.9.patch", "minimatch@10.2.6": "patches/minimatch@10.2.6.patch", "glob@11.1.0": "patches/glob@11.1.0.patch", - "glob@13.0.6": "patches/glob@13.0.6.patch" + "glob@13.0.6": "patches/glob@13.0.6.patch", + "@earendil-works/pi-coding-agent@1.4.0": "patches/@earendil-works__pi-coding-agent@1.4.0.patch" } } } diff --git a/packages/runner-pi/test/summary-budget.test.ts b/packages/runner-pi/test/summary-budget.test.ts new file mode 100644 index 000000000..36f27bda9 --- /dev/null +++ b/packages/runner-pi/test/summary-budget.test.ts @@ -0,0 +1,134 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { InMemoryCredentialStore, InMemoryModelsStore, type Model } from "@earendil-works/pi-ai"; +import { stream } from "@earendil-works/pi-ai/api/openai-completions"; +import { compact, generateBranchSummary, generateSummaryWithUsage, ModelRuntime, type SessionEntry } from "@earendil-works/pi-coding-agent"; +import { createPiTaskBoundary } from "../dist/task-boundary.js"; +import type { PiRunnerRunOptions } from "../dist/types.js"; + +const messages = [{ role: "user" as const, content: "Preserve the completed work.", timestamp: 0 }]; + +async function fixture({ outputLimit = 1_024, quota = 204, finishReason = "stop", finishAt = 1 } = {}) { + const model: Model<"openai-completions"> = { + provider: "summary-budget-fixture", id: "fixture", name: "fixture", api: "openai-completions", + baseUrl: "https://fixture.invalid/v1", reasoning: false, input: ["text"], contextWindow: 32_768, + maxTokens: outputLimit, cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + }; + const reservations: { maxOutputTokens: number; payload: unknown }[] = []; + const requests: { max_tokens?: number; max_completion_tokens?: number }[] = []; + let settlements = 0; + const options: PiRunnerRunOptions = { + cwd: process.cwd(), task: { id: "summary-budget", title: "Summary", prompt: "Preserve the completed work." }, + runId: "summary-run", runnerAttemptId: "summary-attempt", + provider: { provider: model.provider, model: model.id, api: model.api, baseUrl: model.baseUrl, + contextWindow: model.contextWindow, maxTokens: model.maxTokens, apiKey: "fixture-no-network" }, + providerBudget: { + requiresTokenUpperBound: true, requiresCostUpperBound: false, + reserve(request) { + reservations.push(request); + if (request.maxOutputTokens > quota) throw new Error("summary quota exhausted"); + return { reservationId: `summary-${reservations.length}`, reservedTokens: 32_768 + quota }; + }, + settle() { settlements += 1; }, + settleUnknown() { assert.fail("the fixture supplies measured usage"); }, + }, + }; + const runtime = await ModelRuntime.create({ credentials: new InMemoryCredentialStore(), modelsStore: new InMemoryModelsStore(), + modelsPath: null, allowModelNetwork: false, refreshOnCreate: false }); + runtime.registerProvider(model.provider, { + api: model.api, apiKey: options.provider.apiKey, + streamSimple: (requestModel, context, requestOptions) => stream(requestModel as Model<"openai-completions">, context, { + ...requestOptions, + fetch: async (_url, init) => { + requests.push(JSON.parse(String(init?.body))); + const records = [ + { choices: [{ index: 0, delta: { content: "Completed work retained." }, finish_reason: null }] }, + { choices: [{ index: 0, delta: {}, finish_reason: requests.length === finishAt ? finishReason : "stop" }] }, + { choices: [], usage: { prompt_tokens: 20, completion_tokens: 16, total_tokens: 36 } }, + ]; + return new Response(records.map(record => `data: ${JSON.stringify(record)}\n\n`).join("") + "data: [DONE]\n\n", { + headers: { "content-type": "text/event-stream" }, + }); + }, + }), + }); + const boundary = createPiTaskBoundary(options); + boundary.bindModelRuntime(runtime); + const signal = boundary.options.signal; + assert.ok(signal); + async function admitted(operation: Promise): Promise { + const result = await operation; + boundary.assertOpen(); + return result; + } + return { model, runtime, boundary, reservations, requests, settlements: () => settlements, + summary: (reserveTokens = 256, previousSummary?: string) => admitted(generateSummaryWithUsage(messages, model, reserveTokens, + options.provider.apiKey, undefined, signal, undefined, previousSummary, "off", runtime.streamSimple)), + compact: (split = false) => admitted(compact({ firstKeptEntryId: "retained-entry", messagesToSummarize: messages, + turnPrefixMessages: split ? messages : [], isSplitTurn: split, tokensBefore: 500, + fileOps: { read: new Set(), written: new Set(), edited: new Set() }, + settings: { enabled: true, reserveTokens: 256, keepRecentTokens: 64 } }, model, options.provider.apiKey, + undefined, undefined, signal, "off", runtime.streamSimple)), + branch: () => admitted(generateBranchSummary([{ type: "message", id: "abandoned-entry", parentId: null, + timestamp: new Date(0).toISOString(), message: messages[0] } satisfies SessionEntry], { + model, apiKey: options.provider.apiKey, reserveTokens: 256, signal, streamFn: runtime.streamSimple, + })), + }; +} + +for (const mode of ["summary", "update", "compact", "split", "branch"] as const) { + test(`${mode} summary reserves and sends the configured output cap`, { timeout: 15_000 }, async () => { + const f = await fixture(); + const result = mode === "summary" ? await f.summary() + : mode === "update" ? await f.summary(256, "Earlier completed work.") + : mode === "branch" ? await f.branch() : await f.compact(mode === "split"); + assert.match(("text" in result ? result.text : result.summary) ?? "", /Completed work retained\./); + assert.equal(f.requests.length, mode === "split" ? 2 : 1); + assert.equal(f.reservations.length, f.requests.length); + assert.equal(f.settlements(), f.requests.length); + for (const [index, request] of f.requests.entries()) { + assert.equal(request.max_tokens ?? request.max_completion_tokens, 204); + assert.equal(f.reservations[index].maxOutputTokens, 204); + assert.deepEqual(f.reservations[index].payload, request); + } + f.boundary.assertOpen(); + }); +} + +test("the summary cap never exceeds the model output limit", async () => { + const f = await fixture({ outputLimit: 128, quota: 128 }); + await f.summary(); + assert.equal(f.reservations[0].maxOutputTokens, 128); + assert.equal(f.requests[0].max_tokens ?? f.requests[0].max_completion_tokens, 128); +}); + +test("an insufficient summary quota still rejects before transport", async () => { + const f = await fixture({ quota: 203 }); + await assert.rejects(f.summary(), /summary quota exhausted/); + assert.equal(f.reservations.length, 1); + assert.equal(f.reservations[0].maxOutputTokens, 204); + assert.equal(f.requests.length, 0); + assert.throws(() => f.boundary.assertOpen(), /summary quota exhausted/); +}); + +for (const mode of ["summary", "update", "compact", "split", "branch"] as const) { + test(`${mode} output at the token cap cannot become a checkpoint`, async () => { + const requestCount = mode === "split" ? 2 : 1; + const f = await fixture({ finishReason: "length", finishAt: requestCount }); + const operation = mode === "summary" ? f.summary() + : mode === "update" ? f.summary(256, "Earlier completed work.") + : mode === "branch" ? f.branch() : f.compact(mode === "split"); + if (mode === "branch") { + assert.deepEqual(await operation, { + error: "Branch summarization failed: generation hit the token cap and the summary is incomplete", + }); + } else { + await assert.rejects(operation, /summary is incomplete/); + } + assert.equal(f.requests.length, requestCount); + assert.equal(f.settlements(), requestCount); + for (const request of f.requests) { + assert.equal(request.max_tokens ?? request.max_completion_tokens, 204); + } + }); +} diff --git a/patches/@earendil-works__pi-coding-agent@1.4.0.patch b/patches/@earendil-works__pi-coding-agent@1.4.0.patch new file mode 100644 index 000000000..6381a4a80 --- /dev/null +++ b/patches/@earendil-works__pi-coding-agent@1.4.0.patch @@ -0,0 +1,112 @@ +diff --git a/dist/core/compaction/branch-summarization.js b/dist/core/compaction/branch-summarization.js +index dba3462974d41ae6201ccf12a775c75ec6c7de5e..7292cadd2e390b27edc22f3bfff2a798aea5fc1b 100644 +--- a/dist/core/compaction/branch-summarization.js ++++ b/dist/core/compaction/branch-summarization.js +@@ -221,7 +221,8 @@ export async function generateBranchSummary(entries, options) { + // without running through agent state/events. Retried via completeSummarization + // so transient stream drops reuse the configured retry policy. + const context = normalizeContext({ systemPrompt: SUMMARIZATION_SYSTEM_PROMPT, messages: summarizationMessages }); +- const requestOptions = { apiKey, headers, env, signal }; ++ const maxTokens = Math.min(Math.floor(0.8 * reserveTokens), model.maxTokens); ++ const requestOptions = { apiKey, headers, env, signal, maxTokens }; + const response = await completeSummarization(model, context, requestOptions, streamFn, retry, callbacks); + // Check if aborted or errored + if (response.stopReason === "aborted") { +diff --git a/dist/core/compaction/compaction.js b/dist/core/compaction/compaction.js +index 9b1a409d96b39413d8598c79f14fee72f4cd533c..528b87e11eaa1d318f0261603b4b62608c301408 100644 +--- a/dist/core/compaction/compaction.js ++++ b/dist/core/compaction/compaction.js +@@ -460,8 +460,10 @@ export function getSummarizationFailure(response, label) { + } + return undefined; + } +-function createSummarizationOptions(model, apiKey, headers, env, signal, thinkingLevel, sessionId) { +- const options = { signal, apiKey, headers, env, sessionId }; ++function createSummarizationOptions(model, apiKey, headers, env, signal, thinkingLevel, sessionId, reserveTokens = 16384) { ++ // Summary output must fit the reserve admitted by the host's provider budget. ++ const maxTokens = Math.min(Math.floor(0.8 * reserveTokens), model.maxTokens); ++ const options = { signal, apiKey, headers, env, sessionId, maxTokens }; + if (model.reasoning && thinkingLevel && thinkingLevel !== "off") { + options.reasoning = thinkingLevel; + } +@@ -491,10 +493,8 @@ export async function completeSummarization(model, context, options, streamFn, r + * Generate a summary of the conversation using the LLM. + * If previousSummary is provided, uses the update prompt to merge. + */ +-export async function generateSummary(currentMessages, model, +-// Unused. Kept for existing callers; summaries use the model's output limit (#9512). +-_reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId) { +- return (await generateSummaryWithUsage(currentMessages, model, _reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId)).text; ++export async function generateSummary(currentMessages, model, reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId) { ++ return (await generateSummaryWithUsage(currentMessages, model, reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId)).text; + } + /** Build the provider context for a standalone summary request. */ + function buildSummarizationContext(promptText) { +@@ -510,9 +510,7 @@ function buildSummarizationContext(promptText) { + }); + } + /** Generate or update a conversation summary and return its provider usage. */ +-export async function generateSummaryWithUsage(currentMessages, model, +-// Unused. Kept for existing callers; summaries use the model's output limit (#9512). +-_reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId) { ++export async function generateSummaryWithUsage(currentMessages, model, reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId) { + // Use update prompt if we have a previous summary, otherwise initial prompt + let basePrompt = previousSummary ? UPDATE_SUMMARIZATION_PROMPT : SUMMARIZATION_PROMPT; + if (customInstructions) { +@@ -528,7 +526,7 @@ _reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, th + promptText += `\n${previousSummary}\n\n\n`; + } + promptText += basePrompt; +- const completionOptions = createSummarizationOptions(model, apiKey, headers, env, signal, thinkingLevel, sessionId); ++ const completionOptions = createSummarizationOptions(model, apiKey, headers, env, signal, thinkingLevel, sessionId, reserveTokens); + const response = await completeSummarization(model, buildSummarizationContext(promptText), completionOptions, streamFn, retry, callbacks); + const failure = getSummarizationFailure(response, "Summarization"); + if (failure) { +@@ -686,7 +684,7 @@ Only summarize information explicitly present above. Do not infer or recreate la + * @param sessionId - Optional routing session ID forwarded without enabling prompt caching + */ + export async function compact(preparation, model, apiKey, headers, customInstructions, signal, thinkingLevel, streamFn, env, retry, callbacks, sessionId) { +- const { firstKeptEntryId, messagesToSummarize, turnPrefixMessages, isSplitTurn, tokensBefore, previousSummary, fileOps, } = preparation; ++ const { firstKeptEntryId, messagesToSummarize, turnPrefixMessages, isSplitTurn, tokensBefore, previousSummary, fileOps, settings, } = preparation; + // Generate summaries and merge into one + let summary; + let summaryUsage; +@@ -694,18 +692,18 @@ export async function compact(preparation, model, apiKey, headers, customInstruc + let historyText = previousSummary ?? "No prior history."; + let historyUsage; + if (messagesToSummarize.length > 0) { +- const historyResult = await generateSummaryWithUsage(messagesToSummarize, model, undefined, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId); ++ const historyResult = await generateSummaryWithUsage(messagesToSummarize, model, settings.reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId); + historyText = historyResult.text; + historyUsage = historyResult.usage; + } +- const turnPrefixResult = await generateTurnPrefixSummary(turnPrefixMessages, model, apiKey, headers, env, signal, thinkingLevel, streamFn, retry, callbacks, sessionId, customInstructions); ++ const turnPrefixResult = await generateTurnPrefixSummary(turnPrefixMessages, model, apiKey, headers, env, signal, thinkingLevel, streamFn, retry, callbacks, sessionId, customInstructions, settings.reserveTokens); + // Merge into single summary + summary = `${historyText}\n\n---\n\n**Turn Context (split turn):**\n\n${turnPrefixResult.text}`; + summaryUsage = historyUsage ? combineUsage(historyUsage, turnPrefixResult.usage) : turnPrefixResult.usage; + } + else { + // Just generate history summary +- const result = await generateSummaryWithUsage(messagesToSummarize, model, undefined, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId); ++ const result = await generateSummaryWithUsage(messagesToSummarize, model, settings.reserveTokens, apiKey, headers, signal, customInstructions, previousSummary, thinkingLevel, streamFn, env, retry, callbacks, sessionId); + summary = result.text; + summaryUsage = result.usage; + } +@@ -726,14 +724,14 @@ export async function compact(preparation, model, apiKey, headers, customInstruc + /** + * Generate a summary for a turn prefix (when splitting a turn). + */ +-async function generateTurnPrefixSummary(messages, model, apiKey, headers, env, signal, thinkingLevel, streamFn, retry, callbacks, sessionId, customInstructions) { ++async function generateTurnPrefixSummary(messages, model, apiKey, headers, env, signal, thinkingLevel, streamFn, retry, callbacks, sessionId, customInstructions, reserveTokens) { + const llmMessages = convertToLlm(messages); + const conversationText = serializeConversation(llmMessages); + let promptText = `# Conversation\n${conversationText}\n\n# Instructions\n${TURN_PREFIX_SUMMARIZATION_PROMPT}`; + if (customInstructions) { + promptText = `${promptText}\n\nAdditional focus: ${customInstructions}`; + } +- const response = await completeSummarization(model, buildSummarizationContext(promptText), createSummarizationOptions(model, apiKey, headers, env, signal, thinkingLevel, sessionId), streamFn, retry, callbacks); ++ const response = await completeSummarization(model, buildSummarizationContext(promptText), createSummarizationOptions(model, apiKey, headers, env, signal, thinkingLevel, sessionId, reserveTokens), streamFn, retry, callbacks); + const failure = getSummarizationFailure(response, "Turn prefix summarization"); + if (failure) { + throw new Error(failure); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30a3c9e40..28b36def8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ overrides: exceljs>unzipper: 0.11.2 patchedDependencies: + '@earendil-works/pi-coding-agent@1.4.0': + hash: 0109641cd7ceb1a42210da2d94dc5b96cb397d4497a63266354e21fe1fdf1ef0 + path: patches/@earendil-works__pi-coding-agent@1.4.0.patch braces@3.0.3: hash: ad74a34b0200bbe14ba95e31e8f296205ce32a374eca2cef25cc8940aa0c76c1 path: patches/braces@3.0.3.patch @@ -554,7 +557,7 @@ importers: version: 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@7.30.1)(ws@8.22.1)(zod@4.6.7) '@earendil-works/pi-coding-agent': specifier: 1.4.0 - version: 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7) + version: 1.4.0(patch_hash=0109641cd7ceb1a42210da2d94dc5b96cb397d4497a63266354e21fe1fdf1ef0)(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7) '@ling-stack/plugin-sdk': specifier: workspace:* version: link:../plugin-sdk @@ -7587,7 +7590,7 @@ snapshots: dependencies: quickjs-wasi: 3.6.2 - '@earendil-works/pi-coding-agent@1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7)': + '@earendil-works/pi-coding-agent@1.4.0(patch_hash=0109641cd7ceb1a42210da2d94dc5b96cb397d4497a63266354e21fe1fdf1ef0)(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(ws@8.22.1)(zod@4.6.7)': dependencies: '@earendil-works/pi-agent-core': 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7) '@earendil-works/pi-ai': 1.4.0(@aws-sdk/credential-provider-node@3.972.92)(@modelcontextprotocol/sdk@1.32.2(zod@4.6.7))(@smithy/signature-v4@5.7.5)(undici@8.12.2)(ws@8.22.1)(zod@4.6.7)