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 dba5058d..c1b6bb9a 100644 --- a/pi-package-webui/package-lock.json +++ b/pi-package-webui/package-lock.json @@ -1,12 +1,29 @@ { "name": "@firstpick/pi-package-webui", - "version": "0.7.9", + "version": "0.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@firstpick/pi-package-webui", - "version": "0.7.9", + "version": "0.8.0", + "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.83.0", @@ -57,6 +74,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" @@ -77,6 +95,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", @@ -92,6 +111,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", @@ -106,6 +126,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" @@ -115,6 +136,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", @@ -126,6 +148,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", @@ -151,6 +174,7 @@ "version": "3.977.3", "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.977.3.tgz", "integrity": "sha512-6YZTpF5Zzl0KdSrztM0l6ErKdnXrnnodIDYfayHE9SFfZU8Ubxls7H2XnfWT121jgwiG+WP1z5kyfVDsH5V4qA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -170,6 +194,7 @@ "version": "3.972.64", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.972.64.tgz", "integrity": "sha512-14kkR5aj1c7D+cYCrEcG2W3xw87wMYAEUeB/tMiQ2j0RVKzzdewd4mJw1+Q0JVLr4IFU1JHGDCyj0WqLrtIixg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -186,6 +211,7 @@ "version": "3.972.66", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.972.66.tgz", "integrity": "sha512-BrZxoXScBZ+nTOYy388zHkz1n5cS8C+uGFMozD4w9OKEWMq39Cu/9l/k385Hb54dtv0VIeh12f8h67o3xDNH9g==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -204,6 +230,7 @@ "version": "4.9.13", "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.13.tgz", "integrity": "sha512-Nmd/Nl35zfYrd+a6OO2cDJb3GPh9bgTjIUhcM+JFfjpp8/osCgboDV5nCT1I01Pv6R13eSKDKLSoVa5ZB6Zsfw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.31.1", @@ -218,6 +245,7 @@ "version": "3.973.9", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.973.9.tgz", "integrity": "sha512-d/mMvS+sQjSWNA6+JCldK1YB/jQmtoWM8Izj10mrOZdRCeWNVb8IYQuuyHHKKKXcpGo5Pd0LIK6onHbLvlhuVQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -242,6 +270,7 @@ "version": "3.972.71", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.972.71.tgz", "integrity": "sha512-l93922lXnTs5RjM3QrMCXSmXiEgLFLaQ0Lco9F3tJ08o0mzGdAj6m2nAXDuTMHoUuL0u7RKmrhm+Z8/7GCilyg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -259,6 +288,7 @@ "version": "3.972.75", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.972.75.tgz", "integrity": "sha512-sdFhR4E3HWZefGL6OsBhxqXdqtFvxGOh8VLfiu9yttPgVNcpEozEDPmrTYmXA3CIf6npUETVLveQPGQ7GBzVhg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/credential-provider-env": "^3.972.64", @@ -281,6 +311,7 @@ "version": "3.972.64", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.972.64.tgz", "integrity": "sha512-Q5noG5vfFo++bUaLGcjj8OHX5tmwa1O/5nDVMeaSSZgjzgvWbW6tgu/gSa+aENwcJXjoXDQh+8TRZR2zHds/aw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -297,6 +328,7 @@ "version": "3.973.8", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.973.8.tgz", "integrity": "sha512-37okeZyRdVkGrU6nyKBPGqQvyl/7CEiMpUVOb0+BCNCIR0VAuBxNgjMb0mnsR1EXm8dqQFfQZOJ5YW/0sBfa1w==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -315,6 +347,7 @@ "version": "3.1098.0", "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.1098.0.tgz", "integrity": "sha512-6cFAviffeqYGjrXn4FqGbWcTxB3nbpBpQXUm6MvnrWZThJaVBTHHnespHgSUh4yVLfzhipSh9H/XjzkHQd9P4g==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -332,6 +365,7 @@ "version": "3.972.70", "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.972.70.tgz", "integrity": "sha512-Ps/f9USafScb6CSQTRPNMzdKL5x5XRwDIRgFvnuFWfClGZe7/fI7iCFqXdxKjc9LBxP28E7iUgNloGgfgw406w==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -349,6 +383,7 @@ "version": "3.972.31", "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.972.31.tgz", "integrity": "sha512-/BRzvkp46mF6eXBL/l9WKPQQfifLlUPaWli6n9/T/WDLUg8he7TCyuNFnk6RvHP5j5W/kMj5Gxw7W778LJaXDA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -364,6 +399,7 @@ "version": "3.972.26", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.972.26.tgz", "integrity": "sha512-2eIvouTZoxPu5ClHY6ij13De1yhY8Rmllt0dlGeBNXX3wmR7fU1pvMCGb50fKm1GxcuntWK0t1T0cMjTyDoUQA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -379,6 +415,7 @@ "version": "3.972.46", "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-websocket/-/middleware-websocket-3.972.46.tgz", "integrity": "sha512-4ZWFqfiqSTda+SsMUihhype6L0sHWKnLouWj2WYRrF5oC+3G+yUatBILLiesELF+7AP+kHMhEpD2UGnk2vOPMw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -397,6 +434,7 @@ "version": "3.997.38", "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.997.38.tgz", "integrity": "sha512-jQDs+nxnmgo4+WPOmY373HIC8jx4KyYYMYDI74FWrzX3Ba9fYsV0dSA+7PNYNkhRbbRCRLre83tQ31F1ACCHkA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/core": "^3.977.3", @@ -416,6 +454,7 @@ "version": "4.9.13", "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.9.13.tgz", "integrity": "sha512-Nmd/Nl35zfYrd+a6OO2cDJb3GPh9bgTjIUhcM+JFfjpp8/osCgboDV5nCT1I01Pv6R13eSKDKLSoVa5ZB6Zsfw==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.31.1", @@ -430,6 +469,7 @@ "version": "3.996.43", "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.996.43.tgz", "integrity": "sha512-lKekx8bLBXSv4O+cslk9Zfnw2XKSkWBs3uWL5QGhH2ZAQfNS7FE0vcSSN2vD/AhxX54ZTywWxR4STThoeOXlBA==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "^3.974.2", @@ -445,6 +485,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", @@ -462,6 +503,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", @@ -475,6 +517,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" @@ -487,6 +530,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", @@ -500,6 +544,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" @@ -509,6 +554,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" @@ -530,6 +576,7 @@ "version": "0.83.0", "resolved": "https://registry.npmjs.org/@earendil-works/pi-agent-core/-/pi-agent-core-0.83.0.tgz", "integrity": "sha512-RorGp9OH5l3ElpuC5a5ZQ2eWcchZGXflXRzVGkV99y3y6tT+LLNyxoYIdVKvTKWEObwhExeQbTH0fI2tE4iX4g==", + "inBundle": true, "license": "MIT", "dependencies": { "@earendil-works/pi-ai": "^0.83.0", @@ -546,12 +593,14 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.3.7.tgz", "integrity": "sha512-meKuifc33Pccx0O6PdIzYMq3Og8zvP4TIi/a+Bw3AEMZMxOD0+RHGQvpglEe6Zdy3wZ8nqn/j95h8LUZLk/6Hg==", + "inBundle": true, "license": "MIT" }, "node_modules/@earendil-works/pi-ai": { "version": "0.83.0", "resolved": "https://registry.npmjs.org/@earendil-works/pi-ai/-/pi-ai-0.83.0.tgz", "integrity": "sha512-m3IZD4g3er0V8TC9+Vpgw/sjTKqcJlkcIBy/JvsgRubuuik3tAVzyugUg4rVrShIkkOT69mEd34NEqKUIsl6JQ==", + "inBundle": true, "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "0.91.1", @@ -577,12 +626,14 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.3.7.tgz", "integrity": "sha512-meKuifc33Pccx0O6PdIzYMq3Og8zvP4TIi/a+Bw3AEMZMxOD0+RHGQvpglEe6Zdy3wZ8nqn/j95h8LUZLk/6Hg==", + "inBundle": true, "license": "MIT" }, "node_modules/@earendil-works/pi-coding-agent": { "version": "0.83.0", "resolved": "https://registry.npmjs.org/@earendil-works/pi-coding-agent/-/pi-coding-agent-0.83.0.tgz", "integrity": "sha512-uYhF+FsZxogoSX/AxBcUdiY+ZklubwaXyAoEGA2eQwsHcyEAhUYIKh/WLXe/a8+k8eTCmxb+ZN2Zo9mzQtzbWw==", + "inBundle": true, "license": "MIT", "dependencies": { "@earendil-works/pi-agent-core": "^0.83.0", @@ -618,12 +669,14 @@ "version": "1.3.7", "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.3.7.tgz", "integrity": "sha512-meKuifc33Pccx0O6PdIzYMq3Og8zvP4TIi/a+Bw3AEMZMxOD0+RHGQvpglEe6Zdy3wZ8nqn/j95h8LUZLk/6Hg==", + "inBundle": true, "license": "MIT" }, "node_modules/@earendil-works/pi-tui": { "version": "0.83.0", "resolved": "https://registry.npmjs.org/@earendil-works/pi-tui/-/pi-tui-0.83.0.tgz", "integrity": "sha512-IoYrb0rORjELmEpNtoCA/U8je3KopMkRAVJRdSzvXRvgb+Huo1gNh8Q5CSZvNOiYtDxJdj2tYZZHZ4B3+IN3hA==", + "inBundle": true, "license": "MIT", "dependencies": { "get-east-asian-width": "1.6.0", @@ -637,6 +690,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": { @@ -650,6 +704,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": { @@ -660,6 +715,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": { @@ -678,6 +734,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": { @@ -691,6 +748,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": { @@ -701,6 +759,7 @@ "version": "0.4.4", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-git-footer-status/-/pi-extension-git-footer-status-0.4.4.tgz", "integrity": "sha512-s+SaV+Q+Zw3abC3/rtOFo3BSu5teBs0YT7WDzcF5v9DE82SYWxs33OdA3JkDRKxk2iEZ5y6pyhDg+xsWmI4luw==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -716,6 +775,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": { @@ -734,6 +794,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": { @@ -752,6 +813,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": { @@ -763,6 +825,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": { @@ -776,6 +839,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": { @@ -786,6 +850,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": { @@ -799,6 +864,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": { @@ -813,6 +879,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": { @@ -823,6 +890,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": { @@ -833,6 +901,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/@firstpick/pi-extension-workflows/-/pi-extension-workflows-0.1.8.tgz", "integrity": "sha512-gCJHGU2o2V5IWWb5+zkrKtcxkZATp9sX3Y/bH707ShhzXdVhEhn2x3C9XnLFHKj3j5DyRktugPPM9KtgB3Occg==", + "inBundle": true, "license": "MIT", "optional": true, "dependencies": { @@ -849,6 +918,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": { @@ -875,6 +945,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 }, @@ -882,6 +953,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 }, @@ -889,6 +961,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": "*" @@ -899,6 +972,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", @@ -939,6 +1013,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 }, @@ -946,6 +1021,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": { @@ -956,6 +1032,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": { @@ -966,6 +1043,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": { @@ -976,6 +1054,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": { @@ -986,6 +1065,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": { @@ -1011,6 +1091,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1024,6 +1105,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": [ @@ -1040,6 +1122,7 @@ "cpu": [ "x64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1056,6 +1139,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "libc": [ "glibc" ], @@ -1075,6 +1159,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "libc": [ "musl" ], @@ -1094,6 +1179,7 @@ "cpu": [ "riscv64" ], + "inBundle": true, "libc": [ "glibc" ], @@ -1113,6 +1199,7 @@ "cpu": [ "x64" ], + "inBundle": true, "libc": [ "glibc" ], @@ -1132,6 +1219,7 @@ "cpu": [ "x64" ], + "inBundle": true, "libc": [ "musl" ], @@ -1151,6 +1239,7 @@ "cpu": [ "arm64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1167,6 +1256,7 @@ "cpu": [ "x64" ], + "inBundle": true, "license": "MIT", "optional": true, "os": [ @@ -1189,6 +1279,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", @@ -1209,6 +1300,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" @@ -1218,6 +1310,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" @@ -1227,30 +1320,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" @@ -1260,42 +1358,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.31.1", "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.31.1.tgz", "integrity": "sha512-CyogUINxvi7C7LDsh8Syo6hVJOT9ckz4rG8dRZfTJ8r91HkMY59PnNooaj7WcHyxEkxPfBAmbgztZU+xTo76lg==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/types": "^4.16.1", @@ -1309,6 +1414,7 @@ "version": "4.4.16", "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.4.16.tgz", "integrity": "sha512-QfuLWAkLzptffFW980AFeHZFdqds2B64rpEd3uJ6lgs3xVn9QegGMUgUcj+4d7dRrAsya3r58ZKpku97WcFb4w==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.31.1", @@ -1323,6 +1429,7 @@ "version": "5.6.13", "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.6.13.tgz", "integrity": "sha512-4fW86pEUOMbrD5nkbyl/tTvPHHWJFbuB2odl6ps9lWfHoXf9HWh3Q/Smh59qH1g7+c/BSZghX6bbUk4gsiMs8A==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.31.1", @@ -1337,6 +1444,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" @@ -1349,6 +1457,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", @@ -1363,6 +1472,7 @@ "version": "5.6.12", "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.6.12.tgz", "integrity": "sha512-I6KLtq3H0qqSuV9vLglfi8puHqzygzWHOnI4z/Rdoo+q50vvo18vBRdPAvvEtcaKROz7Zn6qnPa14kRfPH6PcQ==", + "inBundle": true, "license": "Apache-2.0", "dependencies": { "@smithy/core": "^3.31.1", @@ -1377,6 +1487,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" @@ -1389,6 +1500,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", @@ -1402,6 +1514,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", @@ -1674,6 +1787,7 @@ "version": "26.1.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", + "inBundle": true, "license": "MIT", "dependencies": { "undici-types": "~8.3.0" @@ -1683,6 +1797,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": { @@ -1706,6 +1821,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": { @@ -1719,6 +1835,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" @@ -1728,6 +1845,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" @@ -1751,12 +1869,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": "*" @@ -1766,12 +1886,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.9", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "inBundle": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" @@ -1784,12 +1906,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" @@ -1820,6 +1944,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", @@ -2333,6 +2458,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" @@ -2348,6 +2474,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" @@ -2374,6 +2501,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" @@ -2392,6 +2520,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" @@ -2412,6 +2541,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": { @@ -2428,6 +2558,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "inBundle": true, "license": "MIT", "dependencies": { "node-domexception": "^1.0.0", @@ -2441,6 +2572,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" @@ -2453,6 +2585,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", @@ -2467,6 +2600,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", @@ -2481,6 +2615,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" @@ -2493,6 +2628,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", @@ -2510,6 +2646,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", @@ -2527,6 +2664,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" @@ -2536,6 +2674,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": { @@ -2548,6 +2687,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": "*" @@ -2557,6 +2697,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" @@ -2569,6 +2710,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", @@ -2582,6 +2724,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", @@ -2607,6 +2750,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" @@ -2635,12 +2779,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" @@ -2650,6 +2796,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" @@ -2659,6 +2806,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", @@ -2672,6 +2820,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", @@ -2683,6 +2832,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", @@ -2735,12 +2885,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" @@ -2750,6 +2902,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" @@ -2803,6 +2956,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" @@ -2818,6 +2972,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" @@ -2827,6 +2982,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": { @@ -2851,6 +3007,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "inBundle": true, "license": "MIT", "engines": { "node": ">=10.5.0" @@ -2860,6 +3017,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", @@ -2889,6 +3047,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" @@ -2910,6 +3069,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", @@ -2929,6 +3089,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": { @@ -2941,6 +3102,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" @@ -2950,6 +3112,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", @@ -2982,6 +3145,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", @@ -2993,6 +3157,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" @@ -3003,6 +3168,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", @@ -3026,6 +3192,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" @@ -3035,6 +3202,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": { @@ -3052,6 +3220,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": { @@ -3062,6 +3231,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" @@ -3109,6 +3279,7 @@ "url": "https://feross.org/support" } ], + "inBundle": true, "license": "MIT" }, "node_modules/safer-buffer": { @@ -3121,6 +3292,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" @@ -3133,6 +3305,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" @@ -3145,6 +3318,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" @@ -3154,6 +3328,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": { @@ -3175,6 +3350,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": { @@ -3190,18 +3366,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" @@ -3211,6 +3390,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": { @@ -3230,6 +3410,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" @@ -3239,6 +3420,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" @@ -3254,6 +3436,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" @@ -3275,6 +3458,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" @@ -3290,6 +3474,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" @@ -3299,6 +3484,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 8abbe5ae..55da9047 100644 --- a/pi-package-webui/package.json +++ b/pi-package-webui/package.json @@ -80,6 +80,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 8c123623..4f181965 100644 --- a/pi-package-webui/tests/mobile-static.test.mjs +++ b/pi-package-webui/tests/mobile-static.test.mjs @@ -1979,8 +1979,13 @@ for (const [name, range] of Object.entries(companionDependencies)) { assert.equal(lock.packages?.[""]?.optionalDependencies?.[name], range, `package-lock root should optionally depend on ${name}`); assert.equal(lock.packages?.[""]?.dependencies?.[name], undefined, `package-lock root should not promote optional companion ${name} to a required dependency`); 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");