From 5b2e01984d544778e8540a3aa9038fac635479e0 Mon Sep 17 00:00:00 2001 From: Firstp1ck Date: Thu, 30 Jul 2026 17:28:58 +0200 Subject: [PATCH] fix: preserve packaged resources and prompt routing --- pi-extension-raspberrypi-wiki-local/index.ts | 5 +- .../lib/prompt-routing.mjs | 6 + .../package.json | 5 + .../tests/prompt-routing.test.mjs | 22 ++ pi-package-webui/package-lock.json | 201 ++++++++++++++++-- pi-package-webui/package.json | 17 ++ pi-package-webui/tests/mobile-static.test.mjs | 8 +- 7 files changed, 244 insertions(+), 20 deletions(-) create mode 100644 pi-extension-raspberrypi-wiki-local/lib/prompt-routing.mjs create mode 100644 pi-extension-raspberrypi-wiki-local/tests/prompt-routing.test.mjs diff --git a/pi-extension-raspberrypi-wiki-local/index.ts b/pi-extension-raspberrypi-wiki-local/index.ts index 163d7c39..e900d167 100644 --- a/pi-extension-raspberrypi-wiki-local/index.ts +++ b/pi-extension-raspberrypi-wiki-local/index.ts @@ -4,12 +4,12 @@ import path from "node:path"; import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { createLocalWikiEngine, jsonToolResult, pathExists, runCommand } from "@firstpick/pi-utils"; import { Type } from "typebox"; +import { shouldRouteLocalWikiPrompt } from "./lib/prompt-routing.mjs"; const CONFIG = { extensionId: "raspberrypi", displayName: "Raspberry Pi Documentation", topicName: "Raspberry Pi", - skillName: "raspberrypi-local", docsPath: "~/.raspberrypiwiki".replace(/^~(?=\/|$)/, os.homedir()).replace(/^\$HOME(?=\/|$)/, os.homedir()), repoUrl: "https://github.com/raspberrypi/documentation", setupCommand: "/raspberrypi-wiki-local-setup", @@ -174,8 +174,7 @@ const smokeParams = Type.Object({ maxSearchResults: Type.Optional(Type.Number({ export default function localWikiExtension(pi: ExtensionAPI) { pi.on?.("before_agent_start", async (event, ctx) => { - const skillLoaded = event.systemPromptOptions.skills?.some((skill) => skill.name === CONFIG.skillName) ?? false; - if (!skillLoaded && !CONFIG.promptDetection.test(event.prompt ?? "")) return; + if (!shouldRouteLocalWikiPrompt(event.prompt ?? "", CONFIG.promptDetection)) return; if (!await wiki.available()) { const warning = `${MISSING_DOCS_MESSAGE} Aborting ${CONFIG.displayName}-local lookup until setup is complete.`; diff --git a/pi-extension-raspberrypi-wiki-local/lib/prompt-routing.mjs b/pi-extension-raspberrypi-wiki-local/lib/prompt-routing.mjs new file mode 100644 index 00000000..f4e60bf3 --- /dev/null +++ b/pi-extension-raspberrypi-wiki-local/lib/prompt-routing.mjs @@ -0,0 +1,6 @@ +const MISSING_DOCS_REPORT = /\blocal raspberry pi documentation docs are not available at\b|raspberrypi-wiki-local-missing-docs/i; + +export function shouldRouteLocalWikiPrompt(prompt, promptDetection) { + if (MISSING_DOCS_REPORT.test(prompt)) return false; + return promptDetection.test(prompt); +} diff --git a/pi-extension-raspberrypi-wiki-local/package.json b/pi-extension-raspberrypi-wiki-local/package.json index 47b5d2d7..198bddf0 100644 --- a/pi-extension-raspberrypi-wiki-local/package.json +++ b/pi-extension-raspberrypi-wiki-local/package.json @@ -20,6 +20,9 @@ "raspberry-pi", "raspberrypi" ], + "scripts": { + "test": "node --test tests/*.test.mjs" + }, "pi": { "extensions": [ "./index.ts" @@ -37,6 +40,8 @@ }, "files": [ "index.ts", + "lib", + "tests", "skills", "references", "README.md", diff --git a/pi-extension-raspberrypi-wiki-local/tests/prompt-routing.test.mjs b/pi-extension-raspberrypi-wiki-local/tests/prompt-routing.test.mjs new file mode 100644 index 00000000..6d65e0c2 --- /dev/null +++ b/pi-extension-raspberrypi-wiki-local/tests/prompt-routing.test.mjs @@ -0,0 +1,22 @@ +import assert from "node:assert/strict"; +import test from "node:test"; +import { shouldRouteLocalWikiPrompt } from "../lib/prompt-routing.mjs"; + +const raspberryPiPrompt = /\b(raspberry\s*pi|raspberrypi|raspi|rpi|pico|rp2040|rp2350)\b/i; + +test("does not route unrelated extension diagnostics", () => { + assert.equal(shouldRouteLocalWikiPrompt("[Extension issues]", raspberryPiPrompt), false); + assert.equal(shouldRouteLocalWikiPrompt("npm:@firstpick/pi-package-webui (user)", raspberryPiPrompt), false); +}); + +test("does not intercept its own missing-corpus diagnostic", () => { + assert.equal(shouldRouteLocalWikiPrompt( + "Local Raspberry Pi Documentation docs are not available at /tmp/docs. Run /raspberrypi-wiki-local-setup to set them up.", + raspberryPiPrompt, + ), false); +}); + +test("routes actual Raspberry Pi support prompts", () => { + assert.equal(shouldRouteLocalWikiPrompt("How do I enable SSH on Raspberry Pi OS?", raspberryPiPrompt), true); + assert.equal(shouldRouteLocalWikiPrompt("Configure Pico SDK for RP2350", raspberryPiPrompt), true); +}); diff --git a/pi-package-webui/package-lock.json b/pi-package-webui/package-lock.json index b4c65cf5..1c601770 100644 --- a/pi-package-webui/package-lock.json +++ b/pi-package-webui/package-lock.json @@ -7,24 +7,26 @@ "": { "name": "@firstpick/pi-package-webui", "version": "0.7.8", + "bundleDependencies": [ + "@firstpick/pi-extension-bang-command-autocomplete", + "@firstpick/pi-extension-btw", + "@firstpick/pi-extension-fish-user-bash", + "@firstpick/pi-extension-git-footer-status", + "@firstpick/pi-extension-release-aur", + "@firstpick/pi-extension-release-npm", + "@firstpick/pi-extension-safety-guard", + "@firstpick/pi-extension-setup-skills", + "@firstpick/pi-extension-stats", + "@firstpick/pi-extension-todo-progress", + "@firstpick/pi-extension-tools", + "@firstpick/pi-extension-workflows", + "@firstpick/pi-package-remote-webui", + "@firstpick/pi-prompts-git-pr", + "@firstpick/pi-themes-bundle" + ], "license": "MIT", "dependencies": { "@earendil-works/pi-coding-agent": "^0.82.1", - "@firstpick/pi-extension-bang-command-autocomplete": "^0.2.2", - "@firstpick/pi-extension-btw": "^0.1.4", - "@firstpick/pi-extension-fish-user-bash": "^0.2.2", - "@firstpick/pi-extension-git-footer-status": "^0.4.3", - "@firstpick/pi-extension-release-aur": "^0.1.8", - "@firstpick/pi-extension-release-npm": "^0.4.4", - "@firstpick/pi-extension-safety-guard": "^0.2.6", - "@firstpick/pi-extension-setup-skills": "^0.1.9", - "@firstpick/pi-extension-stats": "^0.2.9", - "@firstpick/pi-extension-todo-progress": "^0.2.9", - "@firstpick/pi-extension-tools": "^0.1.7", - "@firstpick/pi-extension-workflows": "^0.1.7", - "@firstpick/pi-package-remote-webui": "^0.1.8", - "@firstpick/pi-prompts-git-pr": "^0.1.5", - "@firstpick/pi-themes-bundle": "^0.1.5", "@firstpick/pi-utils": "^0.2.5", "mermaid": "^11.15.0", "typebox": "^1.3.6" @@ -71,6 +73,7 @@ "version": "0.91.1", "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.91.1.tgz", "integrity": "sha512-LAmu761tSN9r66ixvmciswUj/ZC+1Q4iAfpedTfSVLeswRwnY3n2Nb6Tsk+cLPP28aLOPWeMgIuTuCcMC6W/iw==", + "inBundle": true, "license": "MIT", "dependencies": { "json-schema-to-ts": "^3.1.1" @@ -91,6 +94,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-js": "^5.2.0", @@ -106,6 +110,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/util": "^5.2.0", @@ -120,6 +125,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -129,6 +135,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.222.0", @@ -140,6 +147,7 @@ "version": "3.1048.0", "resolved": "https://registry.npmjs.org/@aws-sdk/client-bedrock-runtime/-/client-bedrock-runtime-3.1048.0.tgz", "integrity": "sha512-u+NT61JZEkRFtpL0CAw1N1dwxnaLgwVXQl/zjJxTGgLyS/jTIdg2SdoEoCTHxgDyCnqa1HEi9QOoE9/pYRNpOQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", @@ -165,6 +173,7 @@ "version": "3.977.1", "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.1.tgz", "integrity": "sha512-KVtQRtc00ES/y+Sc3vYXeP6pCIcNlBJCZOwvqSy8ZpVGmbM5+IG+AfhuTKQ2oXmIVqZJewaGMMpzPkywC6xg0w==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -184,6 +193,7 @@ "version": "3.972.61", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.61.tgz", "integrity": "sha512-qihs2ekMb89Nxd2JenCgVFhjbkb3EIo7HEBCBzyZACKVJdrLUZBLOmAE3xr0Sayml8n/jZSzwO/IufIiIzO7PQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -200,6 +210,7 @@ "version": "3.972.63", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.63.tgz", "integrity": "sha512-yfozsS8wkWZEi/n6IsrodcFKBWZ0iNAezhJbTReMNc0z1Px17qdeAeuL1/wziCAmCZyXiW7QzP75ggJkBQv8jQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -218,6 +229,7 @@ "version": "4.9.11", "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.11.tgz", "integrity": "sha512-slbzbz8taEOzoXv/9y34YNBoE+ZHmddLykCgjDAjvMAsu2nM5s2Gzwa5OGF721tD8s+CKeFUBds5lSj9lcbuDg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.30.0", @@ -232,6 +244,7 @@ "version": "3.973.6", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.6.tgz", "integrity": "sha512-jGLTW1bj148GL/6/IMlfY2fMYS9FtHOG+NahkFD4y0qkzYudNUahelxryY68/HGMslYuHClk1XaS/3b3eJzEkg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -256,6 +269,7 @@ "version": "3.972.68", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.68.tgz", "integrity": "sha512-w6tNci6g7RqFpLhj1f5xseBvaNojb4Pkgp5Jp5apl9hrJtaf2AA+rX9+qlhlWUK6kcyAFYPA7emO+55zj+S98Q==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -273,6 +287,7 @@ "version": "3.972.72", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.72.tgz", "integrity": "sha512-blQ7F5QGzylnzeh5549zQLoCAiMHkXFLjFovEMaVy4b2X8JhUu+u9NXro1hyK95YHdVFNmBHKs2hIHtZchxKlQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/credential-provider-env": "^3.972.61", @@ -295,6 +310,7 @@ "version": "3.972.61", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.61.tgz", "integrity": "sha512-xzRuj+fUVO4nkafKQJVKAF97kGpeQbfjuwmRrtGZNf42/1dkmcz6o7dswBy7alY0htQn5sCL1GWQYEykviWZkA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -311,6 +327,7 @@ "version": "3.973.5", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.5.tgz", "integrity": "sha512-fZRjjWhLFelsDoOYjqShQTrIGYC3Pf9Mx9Czf+1ikfQDgktxjze33dVo1q1/ZQ+T0qbtejVoHNHrfD5aJVpv/w==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -329,6 +346,7 @@ "version": "3.1095.0", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1095.0.tgz", "integrity": "sha512-65SudS6y4nzaYHybtqcpm3sHe5jLhdMn68HRKS1nUx690BtQeaAQOoujQ+dpOjBATIVGVgKKjEP8tR+U06QJQA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -346,6 +364,7 @@ "version": "3.972.67", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.67.tgz", "integrity": "sha512-FTNZ05gkPBA6CKbU3N4zPgybV+stdazwMOya75CmGdcJL7p8Fw/BdHP8WVxJd0mvzyPK2cg/C3gli58Ir4HgCw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -363,6 +382,7 @@ "version": "3.972.30", "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.30.tgz", "integrity": "sha512-hJboPgIpq5+ADc++/B9TBqn65CXV21cZLGB8V5RBQbxkZ/rQ6qMfcxTnW/SvQlasX4jhaSG8B1wsVjhQyDrsnQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -378,6 +398,7 @@ "version": "3.972.25", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.25.tgz", "integrity": "sha512-9SFbPzJDHHR5k6Q6KvXVas/veUm/TzNcNTFM2UhdXHZHpyIvI2lS+s4cxljw1BihGpVhsAkQDo/2nW7dHxpf4Q==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -393,6 +414,7 @@ "version": "3.972.43", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.43.tgz", "integrity": "sha512-n29++15Vma64Kd0enp9Bo8a6LTm8TvUoMbJEwqXtIksv0oEs+SUCRMm3gozDfPD1Ly0k/sSBughxarlLlRF6Xw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -411,6 +433,7 @@ "version": "3.997.35", "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.35.tgz", "integrity": "sha512-2MJfseVG/aXvIyOIBlYA/Oaf6qFDdsu4D8RKsEUdOQpVuLaor0BdxIBBtJLBNQQEe6Ku3YMvLljwb1MwVUpzRw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.0", @@ -430,6 +453,7 @@ "version": "4.9.11", "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.11.tgz", "integrity": "sha512-slbzbz8taEOzoXv/9y34YNBoE+ZHmddLykCgjDAjvMAsu2nM5s2Gzwa5OGF721tD8s+CKeFUBds5lSj9lcbuDg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.30.0", @@ -444,6 +468,7 @@ "version": "3.996.42", "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.42.tgz", "integrity": "sha512-DBV4naZP6HYBlAvPpoQzOP12Wvfou/5rN8yJPXjBTBylU5qwCbh/tXr2MddHoIjgoRkEl/eS+IljiUqvmwey1Q==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -459,6 +484,7 @@ "version": "3.1048.0", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1048.0.tgz", "integrity": "sha512-k0y/GcuesuSfWyUM0WamrGyeZmltRYaPbHO82UDA6mZ/doB+FOHKutikPAtSXMn/hDz970cF+iRuuiYO9VEbAA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.974.11", @@ -476,6 +502,7 @@ "version": "3.974.2", "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.974.2.tgz", "integrity": "sha512-3W6IUtSxFbH6X7Wb7DzGCV5QiFQsd0g8bOfntpmDxQlzBoKWUMBu/JPQR0DwkE+Hpnxd6db1tXbOwdeHddG6cA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.16.1", @@ -489,6 +516,7 @@ "version": "3.965.8", "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.965.8.tgz", "integrity": "sha512-uUbMs1cBZPafD0ohUj6EwNf0fPZ534NvBxHox4hjX+0Rxq5paSYUem7+hi833pYrzrcnBATKIYpR02MDXT5M9g==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -501,6 +529,7 @@ "version": "3.972.37", "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.972.37.tgz", "integrity": "sha512-zKq4HQum8JwDyEuyfuI4bbiAcU0KxP6qy+9PR/IsR92IyE/DaBAikzAS50tjxip4bqIIANpCcG+Yyj6CVhXupg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.16.1", @@ -514,6 +543,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.3.0.tgz", "integrity": "sha512-sl4Bm6yiMNYrZKkqqDFWN0UfnWhlS8ivKxrYl+6t0gCLrqr8y3B2IqZZbFRkfaVVp7C/baApyh71P+LeE1A2sQ==", + "inBundle": true, "license": "Apache-2.0", "engines": { "node": ">=18.0.0" @@ -523,6 +553,7 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -544,6 +575,7 @@ "version": "0.82.1", "resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.82.1.tgz", "integrity": "sha512-Z3kloziJIE2dmrisRckZX8zDca/gIv9/YdFAzeoqpHiLV2wsni6bL4hInNSjVKLbqT+4kqLIkph2JQLKvSepjg==", + "inBundle": true, "license": "MIT", "dependencies": { "@earendil-works/pi-ai": "^0.82.1", @@ -560,12 +592,14 @@ "version": "1.1.38", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.38.tgz", "integrity": "sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==", + "inBundle": true, "license": "MIT" }, "node_modules/@earendil-works/pi-ai": { "version": "0.82.1", "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.82.1.tgz", "integrity": "sha512-3WFYRhEp3lQB3444EhPMBcM7zSaEUE3eJgHOR7s4081NLqbw/FsWilIKWXSua0Gv3sRr7m9xMidR3pPDE7jI/A==", + "inBundle": true, "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "0.91.1", @@ -591,12 +625,14 @@ "version": "1.1.38", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.38.tgz", "integrity": "sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==", + "inBundle": true, "license": "MIT" }, "node_modules/@earendil-works/pi-coding-agent": { "version": "0.82.1", "resolved": "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-0.82.1.tgz", "integrity": "sha512-zbkAhoIuDPMF3pKuja0ajZabrMWU29FUMV9A/XMXT/XC1yXs5xt6t6t13GogQFsDrDqbFP4DkZQO1w8rWRAzYA==", + "inBundle": true, "license": "MIT", "dependencies": { "@earendil-works/pi-agent-core": "^0.82.1", @@ -632,12 +668,14 @@ "version": "1.1.38", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.38.tgz", "integrity": "sha512-pZ0aQPmMmXoUvSbeuWf/Hzsc+avNw/Zd6VeE8CFgkVGWyuHPJvqeJJDeJqLve+K70LvjYIoleGcoJHPT17cWoA==", + "inBundle": true, "license": "MIT" }, "node_modules/@earendil-works/pi-tui": { "version": "0.82.1", "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.82.1.tgz", "integrity": "sha512-9yN8hALfKaxZq7n54EMxqhFCWnMi6LHkraMJ/1YjHiATq75XrI6XDMVppn9EDtiK7Fks8hUe1SDXUTrIvwRWfQ==", + "inBundle": true, "license": "MIT", "dependencies": { "get-east-asian-width": "1.6.0", @@ -651,6 +689,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-bang-command-autocomplete/-/pi-extension-bang-command-autocomplete-0.2.2.tgz", "integrity": "sha512-e7IC7pLGtqi1e6EFYMYeWU6zjr+TEEq0jnzvc/taVBiwtv2u7xzGtgMyJPYeHZLtnU41pJtvhCB+vScgr2neig==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -664,6 +703,7 @@ "version": "0.1.9", "resolved": "https://registry.npmjs.org/@firstpick/pi-utils/-/pi-utils-0.1.9.tgz", "integrity": "sha512-bcLrRGxU8CoFgYFFm8Ni98NZvcHeTcf7r2Hd73gjPCwPHwJocF1wc8ZA8d/Ev5A+zB9vhh0SFLPTR3qMFyygyA==", + "inBundle": true, "license": "MIT", "optional": true, "peerDependencies": { @@ -674,6 +714,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-btw/-/pi-extension-btw-0.1.4.tgz", "integrity": "sha512-ZFea3TlvPz7dyXOucJZhxwnfdPP5WUAqynfsShVgT3EgNHqoSH8JPR3CLND1b67nwoGnm4FYxTHeYEjqGUOlTQ==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -692,6 +733,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-fish-user-bash/-/pi-extension-fish-user-bash-0.2.2.tgz", "integrity": "sha512-xPo3ZmR9zNOkDWDrj7b6bqiKMkI9wCGFLeA+tzg7az7/yNF7hglx65JPUB9+2552KZAMqlq9zlaiOvwfHhFS+w==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -705,6 +747,7 @@ "version": "0.1.9", "resolved": "https://registry.npmjs.org/@firstpick/pi-utils/-/pi-utils-0.1.9.tgz", "integrity": "sha512-bcLrRGxU8CoFgYFFm8Ni98NZvcHeTcf7r2Hd73gjPCwPHwJocF1wc8ZA8d/Ev5A+zB9vhh0SFLPTR3qMFyygyA==", + "inBundle": true, "license": "MIT", "optional": true, "peerDependencies": { @@ -715,6 +758,7 @@ "version": "0.4.3", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-git-footer-status/-/pi-extension-git-footer-status-0.4.3.tgz", "integrity": "sha512-6DIoNSWgUtKjkf96yz4UeFMFVxl1p2ws4VpJ7PrBDpWWojVzARFCKAx6sDGKq9LInPyadTe2LDo811vgsSucYg==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -730,6 +774,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-release-aur/-/pi-extension-release-aur-0.1.8.tgz", "integrity": "sha512-oALo98nZKDv8+1vF/9sprn9g0Uj9pAgkflOehLy6AbuLA1r77TgZjZR6/kKseRKo49Zj6vIsS5h9e5nSlNv2tg==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -748,6 +793,7 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-release-npm/-/pi-extension-release-npm-0.4.4.tgz", "integrity": "sha512-WAaP35gF285wNVnVa445mlcn9jJoCOlygeRxkXu55uPQCIuAPATS1CLEXCOrlpHtRpktd55RByCBXwA3uZgXng==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -766,6 +812,7 @@ "version": "0.2.6", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-safety-guard/-/pi-extension-safety-guard-0.2.6.tgz", "integrity": "sha512-8aWJn03CKLIyo3/SuO4+NAuYwFbKAtaHLRuobMZqXlI6xP6I/Ut1+LQfh2SKENWrXaMziUPZmJi4B9T3RORvUw==", + "inBundle": true, "license": "MIT", "optional": true, "peerDependencies": { @@ -777,6 +824,7 @@ "version": "0.1.9", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-setup-skills/-/pi-extension-setup-skills-0.1.9.tgz", "integrity": "sha512-E497G72/R1ofcoXcWVYuApKdo8KzFYAUwIc+owoHTPVrRgDqscgZQjZMRM0UdDcueP4iel9i6P/GrqOx1F6rug==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -790,6 +838,7 @@ "version": "0.1.9", "resolved": "https://registry.npmjs.org/@firstpick/pi-utils/-/pi-utils-0.1.9.tgz", "integrity": "sha512-bcLrRGxU8CoFgYFFm8Ni98NZvcHeTcf7r2Hd73gjPCwPHwJocF1wc8ZA8d/Ev5A+zB9vhh0SFLPTR3qMFyygyA==", + "inBundle": true, "license": "MIT", "optional": true, "peerDependencies": { @@ -800,6 +849,7 @@ "version": "0.2.9", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-stats/-/pi-extension-stats-0.2.9.tgz", "integrity": "sha512-fqi2pS4cbw8Toef6A3+ryPHRozYQTo+MZvZXfQ/2LFsQPCOzVJPmG5U1//SgrAAtTsbT2SlI0VSH1/8qn52Wsw==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -813,6 +863,7 @@ "version": "0.2.9", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-todo-progress/-/pi-extension-todo-progress-0.2.9.tgz", "integrity": "sha512-gs7tnt9SxH7Bh0JQnm101f7e9qYTSvqf7k7cBvZsiPIpEaBfn3SXMlEG0mKV311SVJ8EDzGCdAnuWoCNYLLrOQ==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -827,6 +878,7 @@ "version": "0.1.9", "resolved": "https://registry.npmjs.org/@firstpick/pi-utils/-/pi-utils-0.1.9.tgz", "integrity": "sha512-bcLrRGxU8CoFgYFFm8Ni98NZvcHeTcf7r2Hd73gjPCwPHwJocF1wc8ZA8d/Ev5A+zB9vhh0SFLPTR3qMFyygyA==", + "inBundle": true, "license": "MIT", "optional": true, "peerDependencies": { @@ -837,6 +889,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-tools/-/pi-extension-tools-0.1.7.tgz", "integrity": "sha512-OJGfWjQbg+ENyNHXtyi4ObqkXGDbb5knaNDrasrHjrcZL/SJtlibgKh4LGBot8reHpgrAtNg3ZmfBB5YBf/w4A==", + "inBundle": true, "license": "MIT", "optional": true, "peerDependencies": { @@ -847,6 +900,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-workflows/-/pi-extension-workflows-0.1.7.tgz", "integrity": "sha512-nJ6suX1dpuHgBM91XZtPNTAFROYbp6ocRVnu/ro0m1R8cbmDz/XuxIjFvTlrUsWltPC943OAm1k1Irezv+OsAQ==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -863,6 +917,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/@firstpick/pi-package-remote-webui/-/pi-package-remote-webui-0.1.8.tgz", "integrity": "sha512-WNWqUJInIz4Oth7HimdpaxuN9njiLbBykUTwlRApff4QaO7lf+FC+3F+jFOteAyaq89xR/mtfgmMCpzymkJ9XA==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -889,6 +944,7 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/@firstpick/pi-prompts-git-pr/-/pi-prompts-git-pr-0.1.5.tgz", "integrity": "sha512-iNmM3GqpPcKUk6xY2KbI94uBDUvfcqBhBvTPUk+7TIBadXdA/IuZtwod0Qo97r3yBPQOMmBhzsMqHeLgKLUXaQ==", + "inBundle": true, "license": "MIT", "optional": true }, @@ -896,6 +952,7 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/@firstpick/pi-themes-bundle/-/pi-themes-bundle-0.1.5.tgz", "integrity": "sha512-G1VK85AtX7r240EYRKruiuVwyYycumi/HaYDLMNaCa5tolo9DkZ2z9iGIUzJGM4IQdl5ikM86z1ydG+6FUHEtw==", + "inBundle": true, "license": "MIT", "optional": true }, @@ -903,6 +960,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/@firstpick/pi-utils/-/pi-utils-0.2.5.tgz", "integrity": "sha512-fi3OZVLPGF3bK3ArMKt1v3d6l7jaK/VPPpTiB2ivhQqKQgYmmebpgtjJnPsdD62vwYrnstKzQZFWUana3LNuAA==", + "inBundle": true, "license": "MIT", "peerDependencies": { "@earendil-works/pi-coding-agent": "*" @@ -913,6 +971,7 @@ "resolved": "https://registry.npmjs.org/@google/genai/-/genai-1.52.0.tgz", "integrity": "sha512-gwSvbpiN/17O9TbsqSsE/OzZcpv5Fo4RQjdngGgogtuB9RsyJ8ZHhX5KjHj1bp5N9snN2eK8LDGXSaWW2hof8Q==", "hasInstallScript": true, + "inBundle": true, "license": "Apache-2.0", "dependencies": { "google-auth-library": "^10.3.0", @@ -953,6 +1012,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/@jitl/quickjs-ffi-types/-/quickjs-ffi-types-0.32.0.tgz", "integrity": "sha512-v9T+GQpmk43VDJ7d72sf0Nexhk+ArvtUihW27dy7lqAl0zBObFKtSBBIm5RBjwIhE8VwsPPm9PNuvPvNqLWUEg==", + "inBundle": true, "license": "MIT", "optional": true }, @@ -960,6 +1020,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-debug-asyncify/-/quickjs-wasmfile-debug-asyncify-0.32.0.tgz", "integrity": "sha512-EX8zbXwGqCgAE764M+qvkHtyXDi/FUoMBea0JnES7vCM3P7a2+EOZOjGv85wtZ2sJhI1oJ+nekmqpOODFDY+hw==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -970,6 +1031,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-debug-sync/-/quickjs-wasmfile-debug-sync-0.32.0.tgz", "integrity": "sha512-LeYWrPGC1uNCTBWvibo3ZLJj0CSVNYUXvJpXMCmuQ5Sap2cCACc3uvGvYV4homHHBAzfw5akoTqMMS4YFRtw+Q==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -980,6 +1042,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-release-asyncify/-/quickjs-wasmfile-release-asyncify-0.32.0.tgz", "integrity": "sha512-3oSwPfja12ICz4aIblB58cuY8JlEq5Txt8Cut4VLo+LH47QN+mzCnSgnbB03hWzg1LBcc+VyyI9UOag7a1NF+Q==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -990,6 +1053,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-release-sync/-/quickjs-wasmfile-release-sync-0.32.0.tgz", "integrity": "sha512-BKNDI/TPBfGlLNGYpLrhcDGXmIk4xHm4MRAisOBnOzpXVn9HZWsfmMAc9WMBrAHjvvds6HOikKeaOBKdPdpVrg==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -1000,6 +1064,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@mariozechner/clipboard/-/clipboard-0.3.9.tgz", "integrity": "sha512-ABnA53mdfkGZwOFUdZNv2S0CWGO/EIuPj8Vv9xmBFmSYg/qFc7ihO6q5FcQjvoE67kZpWkEc4AhD6B/os04yuA==", + "inBundle": true, "license": "MIT", "optional": true, "engines": { @@ -1025,6 +1090,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1038,6 +1104,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@mariozechner/clipboard-darwin-universal/-/clipboard-darwin-universal-0.3.9.tgz", "integrity": "sha512-BGGR4iA9Z2shAjI65eI5xtyb3LYNlDW9X3gxKxDbqtbnREohsrqznov6zpKoIrsRWpzlYVEdKphS7ksJ0/ndSQ==", + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1054,6 +1121,7 @@ "cpu": [ "x64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1070,6 +1138,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "libc": [ "glibc" ], @@ -1089,6 +1158,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "libc": [ "musl" ], @@ -1108,6 +1178,7 @@ "cpu": [ "riscv64" ], + "inBundle": true, "libc": [ "glibc" ], @@ -1127,6 +1198,7 @@ "cpu": [ "x64" ], + "inBundle": true, "libc": [ "glibc" ], @@ -1146,6 +1218,7 @@ "cpu": [ "x64" ], + "inBundle": true, "libc": [ "musl" ], @@ -1165,6 +1238,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1181,6 +1255,7 @@ "cpu": [ "x64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1203,6 +1278,7 @@ "version": "2.2.6", "resolved": "https://registry.npmjs.org/@mistralai/mistralai/-/mistralai-2.2.6.tgz", "integrity": "sha512-W8pX7zHxjJvMIpw8JMxeJEleapXX0Q9NPszdNzqkM3MIEoIGPObdodujj+WHteXEvGfaP/AMwlNyRfEzSY6dQQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "^1.40.0", @@ -1223,6 +1299,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", + "inBundle": true, "license": "Apache-2.0", "engines": { "node": ">=8.0.0" @@ -1232,6 +1309,7 @@ "version": "1.43.0", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz", "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==", + "inBundle": true, "license": "Apache-2.0", "engines": { "node": ">=14" @@ -1241,30 +1319,35 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz", "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz", "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz", "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==", + "inBundle": true, "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1" @@ -1274,42 +1357,49 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.2.tgz", "integrity": "sha512-pa0vFRuws4wkvaXKK1uXZMAwAX4/t8ANaJo45iw/oQHNQ9q5xUzwgFmVJGXiga2BeN+zpX7Vf9vmsiIa2J+MUw==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.2.tgz", "integrity": "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/@silvia-odwyer/photon-node": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/@silvia-odwyer/photon-node/-/photon-node-0.3.4.tgz", "integrity": "sha512-bnly4BKB3KDTFxrUIcgCLbaeVVS8lrAkri1pEzskpmxu9MdfGQTy8b8EgcD83ywD3RPMsIulY8xJH5Awa+t9fA==", + "inBundle": true, "license": "Apache-2.0" }, "node_modules/@smithy/core": { "version": "3.30.0", "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.30.0.tgz", "integrity": "sha512-dl2yRglDxfzH9uJ4fSo4zTaAHa0zH7+V7BZMRWy8hEYIKT1BiqMUK/CN6T3ADQ3kbA5N1tmUulroJ2UtONS7Kw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.16.1", @@ -1323,6 +1413,7 @@ "version": "4.4.14", "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.14.tgz", "integrity": "sha512-QgbuahIb2qxQeZQvNK0sw3aF3JH5zwH8j2lLp5DUasVXexGGMWULAR+7z0omPXFolCP/m5wN9M5lm9EGdSviTQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.30.0", @@ -1337,6 +1428,7 @@ "version": "5.6.11", "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.11.tgz", "integrity": "sha512-o0Zkj1nKqJAoq+a+BrkhU39tRftMNjLwpc/z06Frfl43wpbHrJMaSAVZE4vTqlxtVkNaGaT0bIDxOp7tkFTuQQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.30.0", @@ -1351,6 +1443,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1363,6 +1456,7 @@ "version": "4.7.3", "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.7.3.tgz", "integrity": "sha512-/jPhevcTFPMVl6KNjbaI47iOg1zxC7IsnX4PQDGVZKMFceOXtB8IEYaB7a9VvkP/3oC60WzTeKocvSI7vLT0vA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.24.3", @@ -1377,6 +1471,7 @@ "version": "5.6.10", "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.6.10.tgz", "integrity": "sha512-EXhWePm3SXJAX38npIy4TXL2Aex/OVgCClTjelN2QHw/U+8CQUH8C7AaxsVzQcYieYPseywn48s89DmvuGjiAg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.30.0", @@ -1391,6 +1486,7 @@ "version": "4.16.1", "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.16.1.tgz", "integrity": "sha512-0JFs3V2y2M9tKW5na/qxe69Zv+uxLMO7QBbhxF/FHu/Gp2NFZAAL9tWl9PU02xxo07pb3G9FTyjNc6D5uZrJIg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1403,6 +1499,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^2.2.0", @@ -1416,6 +1513,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/util-buffer-from": "^2.2.0", @@ -1688,6 +1786,7 @@ "version": "26.1.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.1.tgz", "integrity": "sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==", + "inBundle": true, "license": "MIT", "dependencies": { "undici-types": "~8.3.0" @@ -1697,6 +1796,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "inBundle": true, "license": "MIT" }, "node_modules/@types/trusted-types": { @@ -1720,6 +1820,7 @@ "version": "8.17.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "inBundle": true, "license": "MIT", "optional": true, "bin": { @@ -1733,6 +1834,7 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "inBundle": true, "license": "MIT", "engines": { "node": ">= 14" @@ -1742,6 +1844,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "inBundle": true, "license": "MIT", "engines": { "node": "18 || 20 || >=22" @@ -1765,12 +1868,14 @@ "url": "https://feross.org/support" } ], + "inBundle": true, "license": "MIT" }, "node_modules/bignumber.js": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "inBundle": true, "license": "MIT", "engines": { "node": "*" @@ -1780,12 +1885,14 @@ "version": "2.14.1", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz", "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", + "inBundle": true, "license": "MIT" }, "node_modules/brace-expansion": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", + "inBundle": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" @@ -1798,12 +1905,14 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "inBundle": true, "license": "BSD-3-Clause" }, "node_modules/chalk": { "version": "5.6.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "inBundle": true, "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -1834,6 +1943,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "inBundle": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -2347,6 +2457,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "inBundle": true, "license": "MIT", "engines": { "node": ">= 12" @@ -2362,6 +2473,7 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "inBundle": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -2388,6 +2500,7 @@ "version": "8.0.4", "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "inBundle": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" @@ -2406,6 +2519,7 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" @@ -2426,6 +2540,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "inBundle": true, "license": "MIT" }, "node_modules/fetch-blob": { @@ -2442,6 +2557,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "inBundle": true, "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", @@ -2455,6 +2571,7 @@ "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "inBundle": true, "license": "MIT", "dependencies": { "fetch-blob": "^3.1.2" @@ -2467,6 +2584,7 @@ "version": "7.3.0", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.3.0.tgz", "integrity": "sha512-RB5vLV+vvQeoFPCX4QMK6/hjVkbIamPp1QSUD0CiZcnj12qbpiL+pLbYtgD+oZkWl0tl9z+o2Utp+MpM3QRhBA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", @@ -2481,6 +2599,7 @@ "version": "8.1.2", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "gaxios": "^7.0.0", @@ -2495,6 +2614,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=18" @@ -2507,6 +2627,7 @@ "version": "13.0.6", "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { "minimatch": "^10.2.2", @@ -2524,6 +2645,7 @@ "version": "10.9.1", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.9.1.tgz", "integrity": "sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "base64-js": "^1.3.0", @@ -2541,6 +2663,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "inBundle": true, "license": "Apache-2.0", "engines": { "node": ">=14" @@ -2550,6 +2673,7 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "inBundle": true, "license": "ISC" }, "node_modules/hachure-fill": { @@ -2562,6 +2686,7 @@ "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "inBundle": true, "license": "BSD-3-Clause", "engines": { "node": "*" @@ -2571,6 +2696,7 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz", "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==", + "inBundle": true, "license": "ISC", "dependencies": { "lru-cache": "^11.1.0" @@ -2583,6 +2709,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "inBundle": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.0", @@ -2596,6 +2723,7 @@ "version": "7.0.6", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "inBundle": true, "license": "MIT", "dependencies": { "agent-base": "^7.1.2", @@ -2621,6 +2749,7 @@ "version": "7.0.5", "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "inBundle": true, "license": "MIT", "engines": { "node": ">= 4" @@ -2649,12 +2778,14 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "inBundle": true, "license": "ISC" }, "node_modules/jiti": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "inBundle": true, "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -2664,6 +2795,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "inBundle": true, "license": "MIT", "dependencies": { "bignumber.js": "^9.0.0" @@ -2673,6 +2805,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/json-schema-to-ts/-/json-schema-to-ts-3.1.1.tgz", "integrity": "sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==", + "inBundle": true, "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", @@ -2686,6 +2819,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "inBundle": true, "license": "MIT", "dependencies": { "buffer-equal-constant-time": "^1.0.1", @@ -2697,6 +2831,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "inBundle": true, "license": "MIT", "dependencies": { "jwa": "^2.0.1", @@ -2749,12 +2884,14 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "inBundle": true, "license": "Apache-2.0" }, "node_modules/lru-cache": { "version": "11.5.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "inBundle": true, "license": "BlueOak-1.0.0", "engines": { "node": "20 || >=22" @@ -2764,6 +2901,7 @@ "version": "18.0.5", "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.5.tgz", "integrity": "sha512-S6GcvALHg6K4ohtu4E7x0a1AqhAjp6cV8KhLSyN9qVapnzJkusVBxZRcIU9AeYsbe6P1hKDusSbEOzGyyuce6w==", + "inBundle": true, "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -2817,6 +2955,7 @@ "version": "10.2.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.5" @@ -2832,6 +2971,7 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "inBundle": true, "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" @@ -2841,6 +2981,7 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "inBundle": true, "license": "MIT" }, "node_modules/node-addon-api": { @@ -2865,6 +3006,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "inBundle": true, "license": "MIT", "engines": { "node": ">=10.5.0" @@ -2874,6 +3016,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "inBundle": true, "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", @@ -2903,6 +3046,7 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/openai/-/openai-6.26.0.tgz", "integrity": "sha512-zd23dbWTjiJ6sSAX6s0HrCZi41JwTA1bQVs0wLQPZ2/5o2gxOJA5wh7yOAUgwYybfhDXyhwlpeQf7Mlgx8EOCA==", + "inBundle": true, "license": "Apache-2.0", "bin": { "openai": "bin/cli" @@ -2924,6 +3068,7 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "inBundle": true, "license": "MIT", "dependencies": { "@types/retry": "0.12.0", @@ -2943,6 +3088,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/partial-json/-/partial-json-0.1.7.tgz", "integrity": "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==", + "inBundle": true, "license": "MIT" }, "node_modules/path-data-parser": { @@ -2955,6 +3101,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=8" @@ -2964,6 +3111,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "inBundle": true, "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^11.0.0", @@ -2996,6 +3144,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "inBundle": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -3007,6 +3156,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "inBundle": true, "license": "MIT", "engines": { "node": ">= 4" @@ -3017,6 +3167,7 @@ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.3.tgz", "integrity": "sha512-+k0vdJKNdW+Vu+dYe8tZA/VvQb6XKNWexC6URwBFXxNnjLJz9nQJCemGyNgRAWD+B7+nGNc9qMPGwcD7s4nzUw==", "hasInstallScript": true, + "inBundle": true, "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", @@ -3040,6 +3191,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==", + "inBundle": true, "optional": true, "bin": { "qrcode-terminal": "bin/qrcode-terminal.js" @@ -3049,6 +3201,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/quickjs-emscripten/-/quickjs-emscripten-0.32.0.tgz", "integrity": "sha512-So0Sqw869y/S2oE3Nuc0uT3Dhqgvsj8FSrwBdsuTosVsG8ME5/OcudU1GxsrIFdFABgy17GHnTVO9TYV/bLQcA==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -3066,6 +3219,7 @@ "version": "0.32.0", "resolved": "https://registry.npmjs.org/quickjs-emscripten-core/-/quickjs-emscripten-core-0.32.0.tgz", "integrity": "sha512-QFnPfjFey8EqknSrSxe1hZrf1/8z7/6s1QzGOmKo6++02r7QRRX7ZoyNaZh7JuVjWsVW87KnQrbZqnHkOAzUyg==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -3076,6 +3230,7 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "inBundle": true, "license": "MIT", "engines": { "node": ">= 4" @@ -3123,6 +3278,7 @@ "url": "https://feross.org/support" } ], + "inBundle": true, "license": "MIT" }, "node_modules/safer-buffer": { @@ -3135,6 +3291,7 @@ "version": "7.8.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", "integrity": "sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==", + "inBundle": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -3147,6 +3304,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "inBundle": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -3159,6 +3317,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=8" @@ -3168,6 +3327,7 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "inBundle": true, "license": "ISC" }, "node_modules/stylis": { @@ -3189,6 +3349,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ts-algebra/-/ts-algebra-2.0.0.tgz", "integrity": "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==", + "inBundle": true, "license": "MIT" }, "node_modules/ts-dedent": { @@ -3204,18 +3365,21 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "inBundle": true, "license": "0BSD" }, "node_modules/typebox": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.3.8.tgz", "integrity": "sha512-xYaJgF0KMvBViKWRaKTAtfR6sDt/yH6xAjGAHXYJxKxUF4pVyPXZZhIlwOg6cDIE81N7L0pyIHs136RHBm6rLQ==", + "inBundle": true, "license": "MIT" }, "node_modules/undici": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/undici/-/undici-8.5.0.tgz", "integrity": "sha512-xamtWoB1EshgjpmlXd7GGm2VfdDtw1+rD8uhry8pSNW3If6S8E0m2T2+orSKeZXEn/aPJMviCpDBA65WJt8zhg==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=22.19.0" @@ -3225,6 +3389,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "inBundle": true, "license": "MIT" }, "node_modules/uuid": { @@ -3244,6 +3409,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "inBundle": true, "license": "MIT", "engines": { "node": ">= 8" @@ -3253,6 +3419,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "inBundle": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -3268,6 +3435,7 @@ "version": "8.21.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", + "inBundle": true, "license": "MIT", "engines": { "node": ">=10.0.0" @@ -3289,6 +3457,7 @@ "version": "2.9.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", + "inBundle": true, "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -3304,6 +3473,7 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "inBundle": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" @@ -3313,6 +3483,7 @@ "version": "3.25.2", "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "inBundle": true, "license": "ISC", "peerDependencies": { "zod": "^3.25.28 || ^4" diff --git a/pi-package-webui/package.json b/pi-package-webui/package.json index 78491932..c53decfe 100644 --- a/pi-package-webui/package.json +++ b/pi-package-webui/package.json @@ -78,6 +78,23 @@ "@firstpick/pi-themes-bundle": "^0.1.5", "node-pty": "^1.1.0" }, + "bundledDependencies": [ + "@firstpick/pi-extension-bang-command-autocomplete", + "@firstpick/pi-extension-btw", + "@firstpick/pi-extension-fish-user-bash", + "@firstpick/pi-extension-git-footer-status", + "@firstpick/pi-extension-release-aur", + "@firstpick/pi-extension-release-npm", + "@firstpick/pi-extension-safety-guard", + "@firstpick/pi-extension-setup-skills", + "@firstpick/pi-extension-stats", + "@firstpick/pi-extension-todo-progress", + "@firstpick/pi-extension-tools", + "@firstpick/pi-extension-workflows", + "@firstpick/pi-package-remote-webui", + "@firstpick/pi-prompts-git-pr", + "@firstpick/pi-themes-bundle" + ], "files": [ "index.ts", "lib", diff --git a/pi-package-webui/tests/mobile-static.test.mjs b/pi-package-webui/tests/mobile-static.test.mjs index e723d4c7..94c4786a 100644 --- a/pi-package-webui/tests/mobile-static.test.mjs +++ b/pi-package-webui/tests/mobile-static.test.mjs @@ -1936,10 +1936,14 @@ for (const [name, range] of Object.entries(companionDependencies)) { assert.equal(pkg.optionalDependencies?.[name], range, `webui package should optionally depend on ${name}`); assert.equal(pkg.dependencies?.[name], undefined, `webui package should not require optional companion ${name}`); assert.equal(lock.packages?.[""]?.optionalDependencies?.[name], range, `package-lock root should optionally depend on ${name}`); - assert.equal(lock.packages?.[""]?.dependencies?.[name], range, `package-lock root should record the installed optional companion ${name}`); assert.ok(lock.packages?.[`node_modules/${name}`], `package-lock should include resolved optional companion ${name}`); + assert.equal(lock.packages?.[`node_modules/${name}`]?.inBundle, true, `package-lock should mark bundled companion ${name}`); } -assert.equal(pkg.bundledDependencies, undefined, "webui optional companion packages should not be bundled into the tarball"); +assert.deepEqual( + [...(pkg.bundledDependencies || [])].sort(), + Object.keys(companionDependencies).sort(), + "webui Pi resources should be bundled so manifest-relative node_modules paths survive npm hoisting", +); assert.equal(pkg.optionalDependencies?.["@firstpick/pi-package-natural-conversation"], undefined, "webui package should not optionally depend on the standalone Natural Conversation package"); assert.equal(pkg.optionalDependencies?.["@firstpick/pi-extension-aur-review"], undefined, "webui package should not reference the unpublished aur-review extension"); assert.equal(lock.packages?.["node_modules/@firstpick/pi-extension-aur-review"], undefined, "package lock should not retain an unpublished aur-review tarball");