diff --git a/package.json b/package.json index 3df77c1..a8b9deb 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "build": "tsc && shx chmod +x dist/*.js", "prepare": "husky && pnpm build", "watch": "tsc --watch", - "smithery": "npx @smithery/cli dev src/index.ts", + "smithery": "smithery dev src/index.ts", "inspector": "npx @modelcontextprotocol/inspector build/index.js", "evals": "tsx evals/run-evals.ts run --config evals/mcp-eval-basic.config.json && tsx evals/run-evals.ts run --config evals/mcp-eval-minimal.config.json && tsx evals/run-evals.ts run --config evals/mcp-eval.config.json", "lint": "eslint . --ext .ts", @@ -50,14 +50,13 @@ "@mcp-ui/server": "^5.10.0", "@modelcontextprotocol/sdk": "^1.13.1", "commander": "^14.0.0", - "dotenv": "^16.4.6", - "sharp": "^0.33.0", "zod": "^3.25.67" }, "devDependencies": { + "@dotenvx/dotenvx": "^1.34.0", "@changesets/cli": "^2.29.6", "@eslint/js": "^9.29.0", - "@smithery/cli": "^1.2.15", + "@smithery/cli": "^3.1.2", "@types/node": "^24.10.1", "chalk": "^5.3.0", "eslint": "^9.29.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 942eeb1..7b83e5f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ importers: version: 2.6.0 "@browserbasehq/stagehand": specifier: ^3.0.3 - version: 3.0.3(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@16.6.1)(zod@3.25.76) + version: 3.0.3(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@17.2.3)(zod@3.25.76) "@mcp-ui/server": specifier: ^5.10.0 version: 5.10.0 @@ -22,12 +22,6 @@ importers: commander: specifier: ^14.0.0 version: 14.0.0 - dotenv: - specifier: ^16.4.6 - version: 16.6.1 - sharp: - specifier: ^0.33.0 - version: 0.33.5 zod: specifier: ^3.25.67 version: 3.25.76 @@ -35,12 +29,15 @@ importers: "@changesets/cli": specifier: ^2.29.6 version: 2.29.6(@types/node@24.10.1) + "@dotenvx/dotenvx": + specifier: ^1.34.0 + version: 1.51.4 "@eslint/js": specifier: ^9.29.0 version: 9.31.0 "@smithery/cli": - specifier: ^1.2.15 - version: 1.2.15(react@19.1.0)(ws@8.18.3(bufferutil@4.0.9))(zod@3.25.76) + specifier: ^3.1.2 + version: 3.1.2(@cfworker/json-schema@4.1.1)(@types/node@24.10.1)(bufferutil@4.0.9)(hono@4.11.3)(zod@3.25.76) "@types/node": specifier: ^24.10.1 version: 24.10.1 @@ -271,11 +268,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - "@anthropic-ai/sdk@0.32.1": + "@anthropic-ai/mcpb@1.2.0": resolution: { - integrity: sha512-U9JwTrDvdQ9iWuABVsMLj8nJVwAyQz6QXvgLsVhryhCEPkLsbcP/MXxm+jYcAwLoV8ESbaTTjnD4kuAFa+Hyjg==, + integrity: sha512-XYVCxQJsr4D4ZecEXVe9PvBpKj2T31KgEiT8K4thoi7krPFIQjXj4yOolAXP8hGSJHrW1Nf4odZES1kjLNDVkg==, } + hasBin: true "@anthropic-ai/sdk@0.39.0": resolution: @@ -421,6 +419,51 @@ packages: integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==, } + "@cloudflare/workerd-darwin-64@1.20260107.1": + resolution: + { + integrity: sha512-Srwe/IukVppkMU2qTndkFaKCmZBI7CnZoq4Y0U0gD/8158VGzMREHTqCii4IcCeHifwrtDqTWu8EcA1VBKI4mg==, + } + engines: { node: ">=16" } + cpu: [x64] + os: [darwin] + + "@cloudflare/workerd-darwin-arm64@1.20260107.1": + resolution: + { + integrity: sha512-aAYwU7zXW+UZFh/a4vHP5cs1ulTOcDRLzwU9547yKad06RlZ6ioRm7ovjdYvdqdmbI8mPd99v4LN9gMmecazQw==, + } + engines: { node: ">=16" } + cpu: [arm64] + os: [darwin] + + "@cloudflare/workerd-linux-64@1.20260107.1": + resolution: + { + integrity: sha512-Wh7xWtFOkk6WY3CXe3lSqZ1anMkFcwy+qOGIjtmvQ/3nCOaG34vKNwPIE9iwryPupqkSuDmEqkosI1UUnSTh1A==, + } + engines: { node: ">=16" } + cpu: [x64] + os: [linux] + + "@cloudflare/workerd-linux-arm64@1.20260107.1": + resolution: + { + integrity: sha512-NI0/5rdssdZZKYHxNG4umTmMzODByq86vSCEk8u4HQbGhRCQo7rV1eXn84ntSBdyWBzWdYGISCbeZMsgfIjSTg==, + } + engines: { node: ">=16" } + cpu: [arm64] + os: [linux] + + "@cloudflare/workerd-windows-64@1.20260107.1": + resolution: + { + integrity: sha512-gmBMqs606Gd/IhBEBPSL/hJAqy2L8IyPUjKtoqd/Ccy7GQxbSc0rYlRkxbQ9YzmqnuhrTVYvXuLscyWrpmAJkw==, + } + engines: { node: ">=16" } + cpu: [x64] + os: [win32] + "@composio/json-schema-to-zod@0.1.18": resolution: { @@ -429,11 +472,43 @@ packages: peerDependencies: zod: ">=3.25.76 <4 || >=4.1 <5" - "@emnapi/runtime@1.7.1": + "@cspotcode/source-map-support@0.8.1": + resolution: + { + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, + } + engines: { node: ">=12" } + + "@dotenvx/dotenvx@1.51.4": resolution: { - integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==, + integrity: sha512-AoziS8lRQ3ew/lY5J4JSlzYSN9Fo0oiyMBY37L3Bwq4mOQJT5GSrdZYLFPt6pH1LApDI3ZJceNyx+rHRACZSeQ==, } + hasBin: true + + "@ecies/ciphers@0.2.5": + resolution: + { + integrity: sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==, + } + engines: { bun: ">=1", deno: ">=2", node: ">=16" } + peerDependencies: + "@noble/ciphers": ^1.0.0 + + "@emnapi/runtime@1.8.1": + resolution: + { + integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==, + } + + "@esbuild/aix-ppc64@0.25.12": + resolution: + { + integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [aix] "@esbuild/aix-ppc64@0.25.6": resolution: @@ -444,6 +519,15 @@ packages: cpu: [ppc64] os: [aix] + "@esbuild/android-arm64@0.25.12": + resolution: + { + integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [android] + "@esbuild/android-arm64@0.25.6": resolution: { @@ -453,6 +537,15 @@ packages: cpu: [arm64] os: [android] + "@esbuild/android-arm@0.25.12": + resolution: + { + integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==, + } + engines: { node: ">=18" } + cpu: [arm] + os: [android] + "@esbuild/android-arm@0.25.6": resolution: { @@ -462,6 +555,15 @@ packages: cpu: [arm] os: [android] + "@esbuild/android-x64@0.25.12": + resolution: + { + integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [android] + "@esbuild/android-x64@0.25.6": resolution: { @@ -471,6 +573,15 @@ packages: cpu: [x64] os: [android] + "@esbuild/darwin-arm64@0.25.12": + resolution: + { + integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [darwin] + "@esbuild/darwin-arm64@0.25.6": resolution: { @@ -480,6 +591,15 @@ packages: cpu: [arm64] os: [darwin] + "@esbuild/darwin-x64@0.25.12": + resolution: + { + integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [darwin] + "@esbuild/darwin-x64@0.25.6": resolution: { @@ -489,6 +609,15 @@ packages: cpu: [x64] os: [darwin] + "@esbuild/freebsd-arm64@0.25.12": + resolution: + { + integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [freebsd] + "@esbuild/freebsd-arm64@0.25.6": resolution: { @@ -498,6 +627,15 @@ packages: cpu: [arm64] os: [freebsd] + "@esbuild/freebsd-x64@0.25.12": + resolution: + { + integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [freebsd] + "@esbuild/freebsd-x64@0.25.6": resolution: { @@ -507,6 +645,15 @@ packages: cpu: [x64] os: [freebsd] + "@esbuild/linux-arm64@0.25.12": + resolution: + { + integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [linux] + "@esbuild/linux-arm64@0.25.6": resolution: { @@ -516,6 +663,15 @@ packages: cpu: [arm64] os: [linux] + "@esbuild/linux-arm@0.25.12": + resolution: + { + integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==, + } + engines: { node: ">=18" } + cpu: [arm] + os: [linux] + "@esbuild/linux-arm@0.25.6": resolution: { @@ -525,6 +681,15 @@ packages: cpu: [arm] os: [linux] + "@esbuild/linux-ia32@0.25.12": + resolution: + { + integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [linux] + "@esbuild/linux-ia32@0.25.6": resolution: { @@ -534,6 +699,15 @@ packages: cpu: [ia32] os: [linux] + "@esbuild/linux-loong64@0.25.12": + resolution: + { + integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==, + } + engines: { node: ">=18" } + cpu: [loong64] + os: [linux] + "@esbuild/linux-loong64@0.25.6": resolution: { @@ -543,6 +717,15 @@ packages: cpu: [loong64] os: [linux] + "@esbuild/linux-mips64el@0.25.12": + resolution: + { + integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==, + } + engines: { node: ">=18" } + cpu: [mips64el] + os: [linux] + "@esbuild/linux-mips64el@0.25.6": resolution: { @@ -552,6 +735,15 @@ packages: cpu: [mips64el] os: [linux] + "@esbuild/linux-ppc64@0.25.12": + resolution: + { + integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==, + } + engines: { node: ">=18" } + cpu: [ppc64] + os: [linux] + "@esbuild/linux-ppc64@0.25.6": resolution: { @@ -561,6 +753,15 @@ packages: cpu: [ppc64] os: [linux] + "@esbuild/linux-riscv64@0.25.12": + resolution: + { + integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==, + } + engines: { node: ">=18" } + cpu: [riscv64] + os: [linux] + "@esbuild/linux-riscv64@0.25.6": resolution: { @@ -570,6 +771,15 @@ packages: cpu: [riscv64] os: [linux] + "@esbuild/linux-s390x@0.25.12": + resolution: + { + integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==, + } + engines: { node: ">=18" } + cpu: [s390x] + os: [linux] + "@esbuild/linux-s390x@0.25.6": resolution: { @@ -579,6 +789,15 @@ packages: cpu: [s390x] os: [linux] + "@esbuild/linux-x64@0.25.12": + resolution: + { + integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [linux] + "@esbuild/linux-x64@0.25.6": resolution: { @@ -588,6 +807,15 @@ packages: cpu: [x64] os: [linux] + "@esbuild/netbsd-arm64@0.25.12": + resolution: + { + integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [netbsd] + "@esbuild/netbsd-arm64@0.25.6": resolution: { @@ -597,6 +825,15 @@ packages: cpu: [arm64] os: [netbsd] + "@esbuild/netbsd-x64@0.25.12": + resolution: + { + integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [netbsd] + "@esbuild/netbsd-x64@0.25.6": resolution: { @@ -606,6 +843,15 @@ packages: cpu: [x64] os: [netbsd] + "@esbuild/openbsd-arm64@0.25.12": + resolution: + { + integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openbsd] + "@esbuild/openbsd-arm64@0.25.6": resolution: { @@ -615,6 +861,15 @@ packages: cpu: [arm64] os: [openbsd] + "@esbuild/openbsd-x64@0.25.12": + resolution: + { + integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [openbsd] + "@esbuild/openbsd-x64@0.25.6": resolution: { @@ -624,6 +879,15 @@ packages: cpu: [x64] os: [openbsd] + "@esbuild/openharmony-arm64@0.25.12": + resolution: + { + integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [openharmony] + "@esbuild/openharmony-arm64@0.25.6": resolution: { @@ -633,6 +897,15 @@ packages: cpu: [arm64] os: [openharmony] + "@esbuild/sunos-x64@0.25.12": + resolution: + { + integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [sunos] + "@esbuild/sunos-x64@0.25.6": resolution: { @@ -642,6 +915,15 @@ packages: cpu: [x64] os: [sunos] + "@esbuild/win32-arm64@0.25.12": + resolution: + { + integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==, + } + engines: { node: ">=18" } + cpu: [arm64] + os: [win32] + "@esbuild/win32-arm64@0.25.6": resolution: { @@ -651,6 +933,15 @@ packages: cpu: [arm64] os: [win32] + "@esbuild/win32-ia32@0.25.12": + resolution: + { + integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==, + } + engines: { node: ">=18" } + cpu: [ia32] + os: [win32] + "@esbuild/win32-ia32@0.25.6": resolution: { @@ -660,6 +951,15 @@ packages: cpu: [ia32] os: [win32] + "@esbuild/win32-x64@0.25.12": + resolution: + { + integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==, + } + engines: { node: ">=18" } + cpu: [x64] + os: [win32] + "@esbuild/win32-x64@0.25.6": resolution: { @@ -746,6 +1046,15 @@ packages: "@modelcontextprotocol/sdk": optional: true + "@hono/node-server@1.19.8": + resolution: + { + integrity: sha512-0/g2lIOPzX8f3vzW1ggQgvG5mjtFBDBHFAzI5SFAi2DzSqS9luJwqg9T6O/gKYLi+inS7eNxBeIFkkghIPvrMA==, + } + engines: { node: ">=18.14.1" } + peerDependencies: + hono: ^4 + "@humanfs/core@0.19.1": resolution: { @@ -943,6 +1252,41 @@ packages: cpu: [x64] os: [win32] + "@inquirer/checkbox@3.0.1": + resolution: + { + integrity: sha512-0hm2nrToWUdD6/UHnel/UKGdk1//ke5zGUpHIvk5ZWmaKezlGxZkOJXNSWsdxO/rEqTkbB3lNC2J6nBElV2aAQ==, + } + engines: { node: ">=18" } + + "@inquirer/confirm@4.0.1": + resolution: + { + integrity: sha512-46yL28o2NJ9doViqOy0VDcoTzng7rAb6yPQKU7VDLqkmbCaH4JqK4yk4XqlzNWy9PVC5pG1ZUXPBQv+VqnYs2w==, + } + engines: { node: ">=18" } + + "@inquirer/core@9.2.1": + resolution: + { + integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==, + } + engines: { node: ">=18" } + + "@inquirer/editor@3.0.1": + resolution: + { + integrity: sha512-VA96GPFaSOVudjKFraokEEmUQg/Lub6OXvbIEZU1SDCmBzRkHGhxoFAVaF30nyiB4m5cEbDgiI2QRacXZ2hw9Q==, + } + engines: { node: ">=18" } + + "@inquirer/expand@3.0.1": + resolution: + { + integrity: sha512-ToG8d6RIbnVpbdPdiN7BCxZGiHOTomOX94C2FaT5KOHupV40tKEDozp12res6cMIfRKrXLJyexAZhWVHgbALSQ==, + } + engines: { node: ">=18" } + "@inquirer/external-editor@1.0.1": resolution: { @@ -955,6 +1299,88 @@ packages: "@types/node": optional: true + "@inquirer/figures@1.0.15": + resolution: + { + integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==, + } + engines: { node: ">=18" } + + "@inquirer/input@3.0.1": + resolution: + { + integrity: sha512-BDuPBmpvi8eMCxqC5iacloWqv+5tQSJlUafYWUe31ow1BVXjW2a5qe3dh4X/Z25Wp22RwvcaLCc2siHobEOfzg==, + } + engines: { node: ">=18" } + + "@inquirer/number@2.0.1": + resolution: + { + integrity: sha512-QpR8jPhRjSmlr/mD2cw3IR8HRO7lSVOnqUvQa8scv1Lsr3xoAMMworcYW3J13z3ppjBFBD2ef1Ci6AE5Qn8goQ==, + } + engines: { node: ">=18" } + + "@inquirer/password@3.0.1": + resolution: + { + integrity: sha512-haoeEPUisD1NeE2IanLOiFr4wcTXGWrBOyAyPZi1FfLJuXOzNmxCJPgUrGYKVh+Y8hfGJenIfz5Wb/DkE9KkMQ==, + } + engines: { node: ">=18" } + + "@inquirer/prompts@6.0.1": + resolution: + { + integrity: sha512-yl43JD/86CIj3Mz5mvvLJqAOfIup7ncxfJ0Btnl0/v5TouVUyeEdcpknfgc+yMevS/48oH9WAkkw93m7otLb/A==, + } + engines: { node: ">=18" } + + "@inquirer/rawlist@3.0.1": + resolution: + { + integrity: sha512-VgRtFIwZInUzTiPLSfDXK5jLrnpkuSOh1ctfaoygKAdPqjcjKYmGh6sCY1pb0aGnCGsmhUxoqLDUAU0ud+lGXQ==, + } + engines: { node: ">=18" } + + "@inquirer/search@2.0.1": + resolution: + { + integrity: sha512-r5hBKZk3g5MkIzLVoSgE4evypGqtOannnB3PKTG9NRZxyFRKcfzrdxXXPcoJQsxJPzvdSU2Rn7pB7lw0GCmGAg==, + } + engines: { node: ">=18" } + + "@inquirer/select@3.0.1": + resolution: + { + integrity: sha512-lUDGUxPhdWMkN/fHy1Lk7pF3nK1fh/gqeyWXmctefhxLYxlDsc7vsPBEpxrfVGDsVdyYJsiJoD4bJ1b623cV1Q==, + } + engines: { node: ">=18" } + + "@inquirer/type@2.0.0": + resolution: + { + integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==, + } + engines: { node: ">=18" } + + "@jridgewell/resolve-uri@3.1.2": + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: ">=6.0.0" } + + "@jridgewell/sourcemap-codec@1.5.5": + resolution: + { + integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, + } + + "@jridgewell/trace-mapping@0.3.9": + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } + "@langchain/core@0.3.79": resolution: { @@ -1003,129 +1429,163 @@ packages: } engines: { node: ">=18" } - "@ngrok/ngrok-android-arm64@1.5.1": + "@modelcontextprotocol/sdk@1.25.2": + resolution: + { + integrity: sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==, + } + engines: { node: ">=18" } + peerDependencies: + "@cfworker/json-schema": ^4.1.1 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + "@cfworker/json-schema": + optional: true + + "@ngrok/ngrok-android-arm64@1.7.0": resolution: { - integrity: sha512-2Tokwi5GVWNLw3JEoM0Ieb/ypALniZu6fciUTgpuByutbKxOjvahD4fYOKwW3KMdV9bCb3XGGtWJCZXfRPPq1g==, + integrity: sha512-8tco3ID6noSaNy+CMS7ewqPoIkIM6XO5COCzsUp3Wv3XEbMSyn65RN6cflX2JdqLfUCHcMyD0ahr9IEiHwqmbQ==, } engines: { node: ">= 10" } cpu: [arm64] os: [android] - "@ngrok/ngrok-darwin-arm64@1.5.1": + "@ngrok/ngrok-darwin-arm64@1.7.0": resolution: { - integrity: sha512-HNOhrPDP+nJJY7Bh45DOeh6jmcGASWINGbUuseZM0C8psQMp7crPywjRh0inkRegUrb4K8y06sfmgt2fmsF6jQ==, + integrity: sha512-+dmJSOzSO+MNDVrPOca2yYDP1W3KfP4qOlAkarIeFRIfqonQwq3QCBmcR7HAlZocLsSqEwyG6KP4RRvAuT0WGQ==, } engines: { node: ">= 10" } cpu: [arm64] os: [darwin] - "@ngrok/ngrok-darwin-universal@1.5.1": + "@ngrok/ngrok-darwin-universal@1.7.0": resolution: { - integrity: sha512-EsMxYC/tY+ZqhjbeZtVq5MFIuD8SEPgAlHINEszsHd8ZRICc2U9Xl15CbDrew3pcfEg/ZVFrOH9CyC4aZ/V/cA==, + integrity: sha512-fDEfewyE2pWGFBhOSwQZObeHUkc65U1l+3HIgSOe094TMHsqmyJD0KTCgW9KSn0VP4OvDZbAISi1T3nvqgZYhQ==, } engines: { node: ">= 10" } os: [darwin] - "@ngrok/ngrok-darwin-x64@1.5.1": + "@ngrok/ngrok-darwin-x64@1.7.0": resolution: { - integrity: sha512-H/x1BsYpAoTMhOtv4oYvwY6WHqbY0MsJ1XFcJQgrpAIjgmYqlwsnsUMHvEdBB/KY9kXF9DPgKUdRMfJwUIpwGA==, + integrity: sha512-+fwMi5uHd9G8BS42MMa9ye6exI5lwTcjUO6Ut497Vu0qgLONdVRenRqnEePV+Q3KtQR7NjqkMnomVfkr9MBjtw==, } engines: { node: ">= 10" } cpu: [x64] os: [darwin] - "@ngrok/ngrok-freebsd-x64@1.5.1": + "@ngrok/ngrok-freebsd-x64@1.7.0": resolution: { - integrity: sha512-dY2W6HUv7e2xkpdfVj7fIk+5qmvrC7kVu6PJWJ8/rshW1FrU7qMcpnU53JvoQJRZzUf5k8xMNdx30zai/8mqYA==, + integrity: sha512-2OGgbrjy3yLRrqAz5N6hlUKIWIXSpR5RjQa2chtZMsSbszQ6c9dI+uVQfOKAeo05tHMUgrYAZ7FocC+ig0dzdQ==, } engines: { node: ">= 10" } cpu: [x64] os: [freebsd] - "@ngrok/ngrok-linux-arm-gnueabihf@1.5.1": + "@ngrok/ngrok-linux-arm-gnueabihf@1.7.0": resolution: { - integrity: sha512-JvbI/IIycw4Qq02ysyOBsSK5E0bZDgRqXSslHLTwuDAfw14lmrq2U0QkBeEOL8qwJ7wCwCH1PEOJacUyrqa9bg==, + integrity: sha512-SN9YIfEQiR9xN90QVNvdgvAemqMLoFVSeTWZs779145hQMhvF9Qd9rnWi6J+2uNNK10OczdV1oc/nq1es7u/3g==, } engines: { node: ">= 10" } cpu: [arm] os: [linux] - "@ngrok/ngrok-linux-arm64-gnu@1.5.1": + "@ngrok/ngrok-linux-arm64-gnu@1.7.0": resolution: { - integrity: sha512-yLFAlqTYYvH7QRg589HJarQGw1QrKQZcHiw0gm175eCqc+jpUG/Zcf8wohCTIJVLylMIzjDzVFSUsXC7UtMJdQ==, + integrity: sha512-KDMgzPKFU2kbpVSaA2RZBBia5IPdJEe063YlyVFnSMJmPYWCUnMwdybBsucXfV9u1Lw/ZjKTKotIlbTWGn3HGw==, } engines: { node: ">= 10" } cpu: [arm64] os: [linux] - "@ngrok/ngrok-linux-arm64-musl@1.5.1": + "@ngrok/ngrok-linux-arm64-musl@1.7.0": resolution: { - integrity: sha512-momB/ZjjrxaGYOZ3YPAw1kT4DAfWT1x3dAHL0YoSVfNCpc8Fw0189ZAcxGn0hUFqkGDmSARS9o8b7hYd1b41oA==, + integrity: sha512-e66vUdVrBlQ0lT9ZdamB4U604zt5Gualt8/WVcUGzbu8s5LajWd6g/mzZCUjK4UepjvMpfgmCp1/+rX7Rk8d5A==, } engines: { node: ">= 10" } cpu: [arm64] os: [linux] - "@ngrok/ngrok-linux-x64-gnu@1.5.1": + "@ngrok/ngrok-linux-x64-gnu@1.7.0": resolution: { - integrity: sha512-fmMaz0b1Ry2CDLLn0mV8b9nLxqm0taQ2jYyn+C9OrazYNMT4XYYDKRQSm4UEaNoakdnoH+f2FsrWi/712GFxAQ==, + integrity: sha512-M6gF0DyOEFqXLfWxObfL3bxYZ4+PnKBHuyLVaqNfFN9Y5utY2mdPOn5422Ppbk4XoIK5/YkuhRqPJl/9FivKEw==, } engines: { node: ">= 10" } cpu: [x64] os: [linux] - "@ngrok/ngrok-linux-x64-musl@1.5.1": + "@ngrok/ngrok-linux-x64-musl@1.7.0": resolution: { - integrity: sha512-6Ajl9wpJSlvukl4WrkIw+WxVwAr7WTGnE35Voec6CERWtKMsO/F+BOSu3pfAa6iwxGK//JBpsTT1IwLLw7b2xQ==, + integrity: sha512-4Ijm0dKeoyzZTMaYxR2EiNjtlK81ebflg/WYIO1XtleFrVy4UJEGnxtxEidYoT4BfCqi4uvXiK2Mx216xXKvog==, } engines: { node: ">= 10" } cpu: [x64] os: [linux] - "@ngrok/ngrok-win32-arm64-msvc@1.5.1": + "@ngrok/ngrok-win32-arm64-msvc@1.7.0": resolution: { - integrity: sha512-JUH2yZxDPQGmQNT1d2KIu64u2k/R6uG1kEIXjcbsoff37v9aI6nUlzldRWB/wFSYkpZ4W/EuovM4Epar+fQOxQ==, + integrity: sha512-u7qyWIJI2/YG1HTBnHwUR1+Z2tyGfAsUAItJK/+N1G0FeWJhIWQvSIFJHlaPy4oW1Dc8mSDBX9qvVsiQgLaRFg==, } engines: { node: ">= 10" } cpu: [arm64] os: [win32] - "@ngrok/ngrok-win32-ia32-msvc@1.5.1": + "@ngrok/ngrok-win32-ia32-msvc@1.7.0": resolution: { - integrity: sha512-zS1JsMTJHnY+lPJFUwKnB5fzPm4GZCKeeZLehHrXP0LpQaKN8Y/vywqDGhuC0WtymvWE88+oreMV/6hQdviLSA==, + integrity: sha512-/UdYUsLNv/Q8j9YJsyIfq/jLCoD8WP+NidouucTUzSoDtmOsXBBT3itLrmPiZTEdEgKiFYLuC1Zon8XQQvbVLA==, } engines: { node: ">= 10" } cpu: [ia32] os: [win32] - "@ngrok/ngrok-win32-x64-msvc@1.5.1": + "@ngrok/ngrok-win32-x64-msvc@1.7.0": resolution: { - integrity: sha512-HegRwV9Gchh4p7K7sC6SPpWmFRwDEgwPByrb8tkuWDyP+EWNgpt3GKp8OAIK2xdWWHnN5VIwMa9u3COE/e5S8w==, + integrity: sha512-UFJg/duEWzZlLkEs61Gz6/5nYhGaKI62I8dvUGdBR3NCtIMagehnFaFxmnXZldyHmCM8U0aCIFNpWRaKcrQkoA==, } engines: { node: ">= 10" } cpu: [x64] os: [win32] - "@ngrok/ngrok@1.5.1": + "@ngrok/ngrok@1.7.0": resolution: { - integrity: sha512-sfcgdpiAJHqmuO3e6QjQGbavIrR3E72do/NAsnGhm+7SGstLj1aM3Sd8mkfTORb2Hj7ATMuoBYuED5ylKuRQCg==, + integrity: sha512-P06o9TpxrJbiRbHQkiwy/rUrlXRupc+Z8KT4MiJfmcdWxvIdzjCaJOdnNkcOTs6DMyzIOefG5tvk/HLdtjqr0g==, } engines: { node: ">= 10" } + "@noble/ciphers@1.3.0": + resolution: + { + integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==, + } + engines: { node: ^14.21.3 || >=16 } + + "@noble/curves@1.9.7": + resolution: + { + integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==, + } + engines: { node: ^14.21.3 || >=16 } + + "@noble/hashes@1.8.0": + resolution: + { + integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==, + } + engines: { node: ^14.21.3 || >=16 } + "@nodelib/fs.scandir@2.1.5": resolution: { @@ -1154,6 +1614,24 @@ packages: } engines: { node: ">=8.0.0" } + "@poppinss/colors@4.1.6": + resolution: + { + integrity: sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==, + } + + "@poppinss/dumper@0.6.5": + resolution: + { + integrity: sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==, + } + + "@poppinss/exception@1.2.3": + resolution: + { + integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==, + } + "@puppeteer/browsers@2.3.0": resolution: { @@ -1162,26 +1640,33 @@ packages: engines: { node: ">=18" } hasBin: true - "@smithery/cli@1.2.15": + "@sindresorhus/is@7.2.0": resolution: { - integrity: sha512-RxGHzBqiWrrVR9cE5rVD/X0B19wH0WujaJRd43IdagCjAP3w0i7/kz+BSxoh41CvpsQsniGCF4YMOXsmZbu1Ig==, + integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==, + } + engines: { node: ">=18" } + + "@smithery/api@0.1.0-alpha.11": + resolution: + { + integrity: sha512-tCK2tWWgNOfhS+LBdroIGCW1RturFE4gYmc225HuiRfAWVvLg0ZlK7916Amh3epSMOf5kjy18xJ11YpalSqcSw==, } - engines: { node: ">=18.0.0" } - hasBin: true - "@smithery/registry@0.3.7": + "@smithery/cli@3.1.2": resolution: { - integrity: sha512-lfVsxsxF/RdQmaLTleAL2/K+blCGiEeJseFoHYWfqk8K/vZc8ypN4inVA4ABMW/cAS31VZS8inFMYeVTYgLZdQ==, + integrity: sha512-GkxTX2ZKtR9UjcAs2W1Ubm5N4D2AA8Fxl30LXG+GpI3wEJVhklige5R/0zzYYXaPYMn276ozYOSoTIO8wwf7uA==, } + engines: { node: ">=20.0.0" } + hasBin: true peerDependencies: - zod: ">= 3" + zod: ^3.20.0 || ^4 - "@smithery/sdk@1.5.4": + "@speed-highlight/core@1.2.14": resolution: { - integrity: sha512-ZXwdgsF2/0xaeRTurNaJ+YI4YsxaQsXDbHXRwy545LBUNqSYpDq+VG1fWGeEks5ODHiXxMeF1JrP9MhgH75BFg==, + integrity: sha512-G4ewlBNhUtlLvrJTb88d2mdy2KRijzs4UhnlrOSRT4bmjh/IqNElZa3zkrZ+TC47TwtlDWzVLFADljF1Ijp5hA==, } "@standard-schema/spec@1.0.0": @@ -1214,6 +1699,12 @@ packages: integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, } + "@types/mute-stream@0.0.4": + resolution: + { + integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==, + } + "@types/node-fetch@2.6.12": resolution: { @@ -1232,6 +1723,12 @@ packages: integrity: sha512-d0F6m9itIPaKnrvEMlzE48UjwZaAnFW7Jwibacw9MNdqadjKNpUm9tfJYDwmShJmgqcoqYUX3EMKO1+RWiuuNg==, } + "@types/node@22.19.5": + resolution: + { + integrity: sha512-HfF8+mYcHPcPypui3w3mvzuIErlNOh2OAG+BCeBZCEwyiD5ls2SiCwEyT47OELtf7M3nHxBdu0FsmzdKxkN52Q==, + } + "@types/node@24.10.1": resolution: { @@ -1250,6 +1747,12 @@ packages: integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==, } + "@types/wrap-ansi@3.0.0": + resolution: + { + integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==, + } + "@types/yauzl@2.10.3": resolution: { @@ -1374,6 +1877,21 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn-walk@8.3.2: + resolution: + { + integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==, + } + engines: { node: ">=0.4.0" } + + acorn@8.14.0: + resolution: + { + integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==, + } + engines: { node: ">=0.4.0" } + hasBin: true + acorn@8.15.0: resolution: { @@ -1418,12 +1936,29 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + ajv-formats@3.0.1: + resolution: + { + integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==, + } + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv@6.12.6: resolution: { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, } + ajv@8.17.1: + resolution: + { + integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, + } + ansi-colors@4.1.3: resolution: { @@ -1806,6 +2341,12 @@ packages: integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==, } + chownr@1.1.4: + resolution: + { + integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, + } + chrome-launcher@1.2.1: resolution: { @@ -1850,6 +2391,13 @@ packages: } engines: { node: ">=6" } + cli-spinners@3.3.0: + resolution: + { + integrity: sha512-/+40ljC3ONVnYIttjMWrlL51nItDAbBrq2upN8BPyvGU/2n5Oxw3tbNwORCaNuNqLJnxGqOfjUuhsv7l5Q4IsQ==, + } + engines: { node: ">=18.20" } + cli-truncate@4.0.0: resolution: { @@ -1857,12 +2405,19 @@ packages: } engines: { node: ">=18" } - cli-width@3.0.0: + cli-width@3.0.0: + resolution: + { + integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, + } + engines: { node: ">= 10" } + + cli-width@4.1.0: resolution: { - integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, + integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==, } - engines: { node: ">= 10" } + engines: { node: ">= 12" } cliui@8.0.1: resolution: @@ -1924,6 +2479,13 @@ packages: } engines: { node: ">=16" } + commander@13.1.0: + resolution: + { + integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==, + } + engines: { node: ">=18" } + commander@14.0.0: resolution: { @@ -1971,6 +2533,13 @@ packages: } engines: { node: ">= 0.6" } + cookie@1.1.1: + resolution: + { + integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==, + } + engines: { node: ">=18" } + cors@2.8.5: resolution: { @@ -1984,6 +2553,13 @@ packages: integrity: sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==, } + cross-spawn@6.0.6: + resolution: + { + integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==, + } + engines: { node: ">=4.8" } + cross-spawn@7.0.6: resolution: { @@ -2044,6 +2620,20 @@ packages: } engines: { node: ">=0.10.0" } + decompress-response@6.0.0: + resolution: + { + integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, + } + engines: { node: ">=10" } + + deep-extend@0.6.0: + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + } + engines: { node: ">=4.0.0" } + deep-is@0.1.4: resolution: { @@ -2151,10 +2741,10 @@ packages: } engines: { node: ">=0.10.0" } - dotenv@16.6.1: + dotenv@17.2.3: resolution: { - integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==, + integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==, } engines: { node: ">=12" } @@ -2171,6 +2761,13 @@ packages: integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, } + eciesjs@0.4.16: + resolution: + { + integrity: sha512-dS5cbA9rA2VR4Ybuvhg6jvdmp46ubLn3E+px8cG/35aEDNclrqoCjg6mt0HYZ/M+OoESS3jSkCrqk1kWAEhWAw==, + } + engines: { bun: ">=1", deno: ">=2", node: ">=16" } + ee-first@1.1.1: resolution: { @@ -2216,6 +2813,12 @@ packages: } engines: { node: ">=18" } + error-stack-parser-es@1.0.5: + resolution: + { + integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==, + } + es-abstract@1.24.0: resolution: { @@ -2272,6 +2875,14 @@ packages: } engines: { node: ">= 0.4" } + esbuild@0.25.12: + resolution: + { + integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==, + } + engines: { node: ">=18" } + hasBin: true + esbuild@0.25.6: resolution: { @@ -2454,6 +3065,20 @@ packages: } engines: { node: ">=18.0.0" } + execa@1.0.0: + resolution: + { + integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==, + } + engines: { node: ">=6" } + + execa@5.1.1: + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: ">=10" } + execa@8.0.1: resolution: { @@ -2461,6 +3086,20 @@ packages: } engines: { node: ">=16.17" } + exit-hook@2.2.1: + resolution: + { + integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==, + } + engines: { node: ">=6" } + + expand-template@2.0.3: + resolution: + { + integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, + } + engines: { node: ">=6" } + express-rate-limit@7.5.1: resolution: { @@ -2554,6 +3193,12 @@ packages: integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, } + fast-uri@3.1.0: + resolution: + { + integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==, + } + fastq@1.19.1: resolution: { @@ -2566,12 +3211,30 @@ packages: integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==, } + fdir@6.5.0: + resolution: + { + integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, + } + engines: { node: ">=12.0.0" } + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fetch-cookie@3.1.0: resolution: { integrity: sha512-s/XhhreJpqH0ftkGVcQt8JE9bqk+zRn4jF5mPJXWZeQMCI5odV9K+wEWYbnzFPHgQZlvPSMjS4n4yawWE8RINw==, } + fflate@0.8.2: + resolution: + { + integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==, + } + figures@3.2.0: resolution: { @@ -2627,6 +3290,13 @@ packages: integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, } + flora-colossus@2.0.0: + resolution: + { + integrity: sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==, + } + engines: { node: ">= 12" } + for-each@0.3.5: resolution: { @@ -2668,6 +3338,19 @@ packages: } engines: { node: ">= 0.8" } + fs-constants@1.0.0: + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } + + fs-extra@10.1.0: + resolution: + { + integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, + } + engines: { node: ">=12" } + fs-extra@7.0.1: resolution: { @@ -2723,6 +3406,13 @@ packages: integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, } + galactus@1.0.0: + resolution: + { + integrity: sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==, + } + engines: { node: ">= 12" } + gaxios@6.7.1: resolution: { @@ -2765,6 +3455,13 @@ packages: } engines: { node: ">= 0.4" } + get-stream@4.1.0: + resolution: + { + integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==, + } + engines: { node: ">=6" } + get-stream@5.2.0: resolution: { @@ -2772,6 +3469,13 @@ packages: } engines: { node: ">=8" } + get-stream@6.0.1: + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: ">=10" } + get-stream@8.0.1: resolution: { @@ -2799,6 +3503,12 @@ packages: } engines: { node: ">= 14" } + github-from-package@0.0.0: + resolution: + { + integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, + } + glob-parent@5.1.2: resolution: { @@ -2813,6 +3523,12 @@ packages: } engines: { node: ">=10.13.0" } + glob-to-regexp@0.4.1: + resolution: + { + integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, + } + glob@7.2.3: resolution: { @@ -2942,6 +3658,13 @@ packages: integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==, } + hono@4.11.3: + resolution: + { + integrity: sha512-PmQi306+M/ct/m5s66Hrg+adPnkD5jiO6IjA7WhWw0gSBSo1EcRegwuI1deZ+wd5pzCGynCcn2DprnE4/yEV4w==, + } + engines: { node: ">=16.9.0" } + http-errors@2.0.0: resolution: { @@ -2970,6 +3693,13 @@ packages: } hasBin: true + human-signals@2.1.0: + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: ">=10.17.0" } + human-signals@5.0.0: resolution: { @@ -3052,6 +3782,12 @@ packages: integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, } + ini@1.3.8: + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + } + inquirer-autocomplete-prompt@2.0.1: resolution: { @@ -3061,10 +3797,10 @@ packages: peerDependencies: inquirer: ^8.0.0 - inquirer@8.2.6: + inquirer@8.2.7: resolution: { - integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==, + integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==, } engines: { node: ">=12.0.0" } @@ -3284,6 +4020,13 @@ packages: } engines: { node: ">= 0.4" } + is-stream@1.1.0: + resolution: + { + integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, + } + engines: { node: ">=0.10.0" } + is-stream@2.0.1: resolution: { @@ -3394,6 +4137,13 @@ packages: integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, } + isexe@3.1.1: + resolution: + { + integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==, + } + engines: { node: ">=16" } + iterator.prototype@1.1.5: resolution: { @@ -3401,6 +4151,12 @@ packages: } engines: { node: ">= 0.4" } + jose@6.1.3: + resolution: + { + integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==, + } + joycon@3.1.1: resolution: { @@ -3452,6 +4208,18 @@ packages: integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, } + json-schema-traverse@1.0.0: + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } + + json-schema-typed@8.0.2: + resolution: + { + integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==, + } + json-schema@0.4.0: resolution: { @@ -3478,6 +4246,12 @@ packages: integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==, } + jsonfile@6.2.0: + resolution: + { + integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==, + } + jsx-ast-utils@3.3.5: resolution: { @@ -3497,12 +4271,25 @@ packages: integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==, } + keytar@7.9.0: + resolution: + { + integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==, + } + keyv@4.5.4: resolution: { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, } + kleur@4.1.5: + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, + } + engines: { node: ">=6" } + langsmith@0.3.77: resolution: { @@ -3728,6 +4515,21 @@ packages: } engines: { node: ">=18" } + mimic-response@3.1.0: + resolution: + { + integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, + } + engines: { node: ">=10" } + + miniflare@4.20260107.0: + resolution: + { + integrity: sha512-X93sXczqbBq9ixoM6jnesmdTqp+4baVC/aM/DuPpRS0LK0XtcqaO75qPzNEvDEzBAHxwMAWRIum/9hg32YB8iA==, + } + engines: { node: ">=18.0.0" } + hasBin: true + minimatch@3.1.2: resolution: { @@ -3753,6 +4555,12 @@ packages: integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==, } + mkdirp-classic@0.5.3: + resolution: + { + integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, + } + mri@1.2.0: resolution: { @@ -3779,6 +4587,13 @@ packages: integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, } + mute-stream@1.0.0: + resolution: + { + integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + nano-spawn@1.0.2: resolution: { @@ -3794,6 +4609,12 @@ packages: engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true + napi-build-utils@2.0.0: + resolution: + { + integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==, + } + natural-compare@1.4.0: resolution: { @@ -3814,6 +4635,25 @@ packages: } engines: { node: ">= 0.4.0" } + nice-try@1.0.5: + resolution: + { + integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==, + } + + node-abi@3.85.0: + resolution: + { + integrity: sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg==, + } + engines: { node: ">=10" } + + node-addon-api@4.3.0: + resolution: + { + integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==, + } + node-domexception@1.0.0: resolution: { @@ -3833,6 +4673,13 @@ packages: encoding: optional: true + node-forge@1.3.3: + resolution: + { + integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==, + } + engines: { node: ">= 6.13.0" } + node-gyp-build@4.8.4: resolution: { @@ -3840,6 +4687,20 @@ packages: } hasBin: true + npm-run-path@2.0.2: + resolution: + { + integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, + } + engines: { node: ">=4" } + + npm-run-path@4.0.1: + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: ">=8" } + npm-run-path@5.3.0: resolution: { @@ -3868,6 +4729,13 @@ packages: } engines: { node: ">= 0.4" } + object-treeify@1.1.33: + resolution: + { + integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==, + } + engines: { node: ">= 10" } + object.assign@4.1.7: resolution: { @@ -3896,12 +4764,6 @@ packages: } engines: { node: ">= 0.4" } - okay-error@1.0.3: - resolution: - { - integrity: sha512-1GZkj84Uw2STYhwcGhEkgvNXkremOEmTwSgufKm9CcprjwKFuF6md5f1CIvWJgtYlyfR6BbZYnjr6HCfhUuCpQ==, - } - ollama-ai-provider-v2@1.5.2: resolution: { @@ -4141,6 +5003,13 @@ packages: } engines: { node: ">=0.10.0" } + path-key@2.0.1: + resolution: + { + integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, + } + engines: { node: ">=4" } + path-key@3.1.1: resolution: { @@ -4194,6 +5063,13 @@ packages: } engines: { node: ">=8.6" } + picomatch@4.0.3: + resolution: + { + integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==, + } + engines: { node: ">=12" } + pidtree@0.6.0: resolution: { @@ -4265,6 +5141,14 @@ packages: } engines: { node: ">= 0.4" } + prebuild-install@7.1.3: + resolution: + { + integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==, + } + engines: { node: ">=10" } + hasBin: true + prelude-ls@1.2.1: resolution: { @@ -4288,6 +5172,13 @@ packages: engines: { node: ">=14" } hasBin: true + pretty-bytes@5.6.0: + resolution: + { + integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==, + } + engines: { node: ">=6" } + process-warning@5.0.0: resolution: { @@ -4386,6 +5277,13 @@ packages: } engines: { node: ">= 0.8" } + rc@1.2.8: + resolution: + { + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, + } + hasBin: true + react-is@16.13.1: resolution: { @@ -4448,6 +5346,13 @@ packages: } engines: { node: ">=0.10.0" } + require-from-string@2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: ">=0.10.0" } + resolve-from@4.0.0: resolution: { @@ -4583,11 +5488,18 @@ packages: integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, } - secure-json-parse@2.7.0: + secure-json-parse@2.7.0: + resolution: + { + integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==, + } + + semver@5.7.2: resolution: { - integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==, + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, } + hasBin: true semver@6.3.1: resolution: @@ -4658,6 +5570,13 @@ packages: } engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + shebang-command@1.2.0: + resolution: + { + integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, + } + engines: { node: ">=0.10.0" } + shebang-command@2.0.0: resolution: { @@ -4665,6 +5584,13 @@ packages: } engines: { node: ">=8" } + shebang-regex@1.0.0: + resolution: + { + integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, + } + engines: { node: ">=0.10.0" } + shebang-regex@3.0.0: resolution: { @@ -4680,6 +5606,14 @@ packages: engines: { node: ">=4" } hasBin: true + shelljs@0.9.2: + resolution: + { + integrity: sha512-S3I64fEiKgTZzKCC46zT/Ib9meqofLrQVbpSswtjFfAVDW+AZ54WTnAM/3/yENoxz/V1Cy6u3kiiEbQ4DNphvw==, + } + engines: { node: ">=18" } + hasBin: true + shx@0.3.4: resolution: { @@ -4688,6 +5622,14 @@ packages: engines: { node: ">=6" } hasBin: true + shx@0.4.0: + resolution: + { + integrity: sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==, + } + engines: { node: ">=18" } + hasBin: true + side-channel-list@1.0.0: resolution: { @@ -4729,6 +5671,18 @@ packages: } engines: { node: ">=14" } + simple-concat@1.0.1: + resolution: + { + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, + } + + simple-get@4.0.1: + resolution: + { + integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==, + } + simple-swizzle@0.2.4: resolution: { @@ -4843,6 +5797,13 @@ packages: } engines: { node: ">= 0.4" } + stoppable@1.1.0: + resolution: + { + integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==, + } + engines: { node: ">=4", npm: ">=6" } + streamx@2.23.0: resolution: { @@ -4931,6 +5892,20 @@ packages: } engines: { node: ">=4" } + strip-eof@1.0.0: + resolution: + { + integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==, + } + engines: { node: ">=0.10.0" } + + strip-final-newline@2.0.0: + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: ">=6" } + strip-final-newline@3.0.0: resolution: { @@ -4938,6 +5913,13 @@ packages: } engines: { node: ">=12" } + strip-json-comments@2.0.1: + resolution: + { + integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, + } + engines: { node: ">=0.10.0" } + strip-json-comments@3.1.1: resolution: { @@ -4945,6 +5927,13 @@ packages: } engines: { node: ">=8" } + supports-color@10.2.2: + resolution: + { + integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==, + } + engines: { node: ">=18" } + supports-color@7.2.0: resolution: { @@ -4967,12 +5956,25 @@ packages: peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + tar-fs@2.1.4: + resolution: + { + integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==, + } + tar-fs@3.1.1: resolution: { integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==, } + tar-stream@2.2.0: + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: ">=6" } + tar-stream@3.1.7: resolution: { @@ -5081,6 +6083,12 @@ packages: engines: { node: ">=18.0.0" } hasBin: true + tunnel-agent@0.6.0: + resolution: + { + integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, + } + type-check@0.4.0: resolution: { @@ -5167,12 +6175,25 @@ packages: integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, } + undici-types@6.21.0: + resolution: + { + integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==, + } + undici-types@7.16.0: resolution: { integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==, } + undici@7.14.0: + resolution: + { + integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==, + } + engines: { node: ">=20.18.1" } + universalify@0.1.2: resolution: { @@ -5180,6 +6201,13 @@ packages: } engines: { node: ">= 4.0.0" } + universalify@2.0.1: + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: ">= 10.0.0" } + unpipe@1.0.0: resolution: { @@ -5234,10 +6262,10 @@ packages: } hasBin: true - uuidv7@1.0.2: + uuidv7@1.1.0: resolution: { - integrity: sha512-8JQkH4ooXnm1JCIhqTMbtmdnYEn6oKukBxHn1Ic9878jMkL7daTI7anTExfY18VRCX7tcdn5quzvCb6EWrR8PA==, + integrity: sha512-2VNnOC0+XQlwogChUDzy6pe8GQEys9QFZBGOh54l6qVfwoCUwwRvk7rDTgaIsRgsF5GFa5oiNg8LqXE3jofBBg==, } hasBin: true @@ -5301,6 +6329,13 @@ packages: } engines: { node: ">= 0.4" } + which@1.3.1: + resolution: + { + integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, + } + hasBin: true + which@2.0.2: resolution: { @@ -5309,6 +6344,14 @@ packages: engines: { node: ">= 8" } hasBin: true + which@4.0.0: + resolution: + { + integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==, + } + engines: { node: ^16.13.0 || >=18.0.0 } + hasBin: true + word-wrap@1.2.5: resolution: { @@ -5316,6 +6359,14 @@ packages: } engines: { node: ">=0.10.0" } + workerd@1.20260107.1: + resolution: + { + integrity: sha512-4ylAQJDdJZdMAUl2SbJgTa77YHpa88l6qmhiuCLNactP933+rifs7I0w1DslhUIFgydArUX5dNLAZnZhT7Bh7g==, + } + engines: { node: ">=16" } + hasBin: true + wrap-ansi@6.2.0: resolution: { @@ -5343,6 +6394,21 @@ packages: integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, } + ws@8.18.0: + resolution: + { + integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==, + } + engines: { node: ">=10.0.0" } + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.18.3: resolution: { @@ -5400,6 +6466,25 @@ packages: } engines: { node: ">=10" } + yoctocolors-cjs@2.1.3: + resolution: + { + integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==, + } + engines: { node: ">=18" } + + youch-core@0.3.3: + resolution: + { + integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==, + } + + youch@4.1.0-beta.10: + resolution: + { + integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==, + } + zod-to-json-schema@3.24.6: resolution: { @@ -5408,6 +6493,14 @@ packages: peerDependencies: zod: ^3.24.1 + zod-to-json-schema@3.25.1: + resolution: + { + integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==, + } + peerDependencies: + zod: ^3.25 || ^4 + zod@3.23.8: resolution: { @@ -5568,17 +6661,19 @@ snapshots: zod: 3.25.76 optional: true - "@anthropic-ai/sdk@0.32.1": + "@anthropic-ai/mcpb@1.2.0": dependencies: - "@types/node": 18.19.119 - "@types/node-fetch": 2.6.12 - abort-controller: 3.0.0 - agentkeepalive: 4.6.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0 + "@inquirer/prompts": 6.0.1 + commander: 13.1.0 + fflate: 0.8.2 + galactus: 1.0.0 + ignore: 7.0.5 + node-forge: 1.3.3 + pretty-bytes: 5.6.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.1(zod@3.25.76) transitivePeerDependencies: - - encoding + - supports-color "@anthropic-ai/sdk@0.39.0": dependencies: @@ -5606,7 +6701,7 @@ snapshots: transitivePeerDependencies: - encoding - "@browserbasehq/stagehand@3.0.3(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@16.6.1)(zod@3.25.76)": + "@browserbasehq/stagehand@3.0.3(@opentelemetry/api@1.9.0)(bufferutil@4.0.9)(deepmerge@4.3.1)(dotenv@17.2.3)(zod@3.25.76)": dependencies: "@ai-sdk/provider": 2.0.0 "@anthropic-ai/sdk": 0.39.0 @@ -5617,7 +6712,7 @@ snapshots: ai: 5.0.86(zod@3.25.76) deepmerge: 4.3.1 devtools-protocol: 0.0.1464554 - dotenv: 16.6.1 + dotenv: 17.2.3 fetch-cookie: 3.1.0 openai: 4.104.0(ws@8.18.3(bufferutil@4.0.9))(zod@3.25.76) pino: 9.7.0 @@ -5802,90 +6897,203 @@ snapshots: human-id: 4.1.1 prettier: 2.8.8 + "@cloudflare/workerd-darwin-64@1.20260107.1": + optional: true + + "@cloudflare/workerd-darwin-arm64@1.20260107.1": + optional: true + + "@cloudflare/workerd-linux-64@1.20260107.1": + optional: true + + "@cloudflare/workerd-linux-arm64@1.20260107.1": + optional: true + + "@cloudflare/workerd-windows-64@1.20260107.1": + optional: true + "@composio/json-schema-to-zod@0.1.18(zod@3.25.76)": dependencies: zod: 3.25.76 - "@emnapi/runtime@1.7.1": + "@cspotcode/source-map-support@0.8.1": + dependencies: + "@jridgewell/trace-mapping": 0.3.9 + + "@dotenvx/dotenvx@1.51.4": + dependencies: + commander: 11.1.0 + dotenv: 17.2.3 + eciesjs: 0.4.16 + execa: 5.1.1 + fdir: 6.5.0(picomatch@4.0.3) + ignore: 5.3.2 + object-treeify: 1.1.33 + picomatch: 4.0.3 + which: 4.0.0 + + "@ecies/ciphers@0.2.5(@noble/ciphers@1.3.0)": + dependencies: + "@noble/ciphers": 1.3.0 + + "@emnapi/runtime@1.8.1": dependencies: tslib: 2.8.1 optional: true + "@esbuild/aix-ppc64@0.25.12": + optional: true + "@esbuild/aix-ppc64@0.25.6": optional: true + "@esbuild/android-arm64@0.25.12": + optional: true + "@esbuild/android-arm64@0.25.6": optional: true + "@esbuild/android-arm@0.25.12": + optional: true + "@esbuild/android-arm@0.25.6": optional: true + "@esbuild/android-x64@0.25.12": + optional: true + "@esbuild/android-x64@0.25.6": optional: true + "@esbuild/darwin-arm64@0.25.12": + optional: true + "@esbuild/darwin-arm64@0.25.6": optional: true + "@esbuild/darwin-x64@0.25.12": + optional: true + "@esbuild/darwin-x64@0.25.6": optional: true + "@esbuild/freebsd-arm64@0.25.12": + optional: true + "@esbuild/freebsd-arm64@0.25.6": optional: true + "@esbuild/freebsd-x64@0.25.12": + optional: true + "@esbuild/freebsd-x64@0.25.6": optional: true + "@esbuild/linux-arm64@0.25.12": + optional: true + "@esbuild/linux-arm64@0.25.6": optional: true + "@esbuild/linux-arm@0.25.12": + optional: true + "@esbuild/linux-arm@0.25.6": optional: true + "@esbuild/linux-ia32@0.25.12": + optional: true + "@esbuild/linux-ia32@0.25.6": optional: true + "@esbuild/linux-loong64@0.25.12": + optional: true + "@esbuild/linux-loong64@0.25.6": optional: true + "@esbuild/linux-mips64el@0.25.12": + optional: true + "@esbuild/linux-mips64el@0.25.6": optional: true + "@esbuild/linux-ppc64@0.25.12": + optional: true + "@esbuild/linux-ppc64@0.25.6": optional: true + "@esbuild/linux-riscv64@0.25.12": + optional: true + "@esbuild/linux-riscv64@0.25.6": optional: true + "@esbuild/linux-s390x@0.25.12": + optional: true + "@esbuild/linux-s390x@0.25.6": optional: true + "@esbuild/linux-x64@0.25.12": + optional: true + "@esbuild/linux-x64@0.25.6": optional: true + "@esbuild/netbsd-arm64@0.25.12": + optional: true + "@esbuild/netbsd-arm64@0.25.6": optional: true + "@esbuild/netbsd-x64@0.25.12": + optional: true + "@esbuild/netbsd-x64@0.25.6": optional: true + "@esbuild/openbsd-arm64@0.25.12": + optional: true + "@esbuild/openbsd-arm64@0.25.6": optional: true + "@esbuild/openbsd-x64@0.25.12": + optional: true + "@esbuild/openbsd-x64@0.25.6": optional: true + "@esbuild/openharmony-arm64@0.25.12": + optional: true + "@esbuild/openharmony-arm64@0.25.6": optional: true + "@esbuild/sunos-x64@0.25.12": + optional: true + "@esbuild/sunos-x64@0.25.6": optional: true + "@esbuild/win32-arm64@0.25.12": + optional: true + "@esbuild/win32-arm64@0.25.6": optional: true + "@esbuild/win32-ia32@0.25.12": + optional: true + "@esbuild/win32-ia32@0.25.6": optional: true + "@esbuild/win32-x64@0.25.12": + optional: true + "@esbuild/win32-x64@0.25.6": optional: true @@ -5945,6 +7153,10 @@ snapshots: - supports-color - utf-8-validate + "@hono/node-server@1.19.8(hono@4.11.3)": + dependencies: + hono: 4.11.3 + "@humanfs/core@0.19.1": {} "@humanfs/node@0.16.6": @@ -6024,7 +7236,7 @@ snapshots: "@img/sharp-wasm32@0.33.5": dependencies: - "@emnapi/runtime": 1.7.1 + "@emnapi/runtime": 1.8.1 optional: true "@img/sharp-win32-ia32@0.33.5": @@ -6033,12 +7245,117 @@ snapshots: "@img/sharp-win32-x64@0.33.5": optional: true + "@inquirer/checkbox@3.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/figures": 1.0.15 + "@inquirer/type": 2.0.0 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.3 + + "@inquirer/confirm@4.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/type": 2.0.0 + + "@inquirer/core@9.2.1": + dependencies: + "@inquirer/figures": 1.0.15 + "@inquirer/type": 2.0.0 + "@types/mute-stream": 0.0.4 + "@types/node": 22.19.5 + "@types/wrap-ansi": 3.0.0 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + + "@inquirer/editor@3.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/type": 2.0.0 + external-editor: 3.1.0 + + "@inquirer/expand@3.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/type": 2.0.0 + yoctocolors-cjs: 2.1.3 + "@inquirer/external-editor@1.0.1(@types/node@24.10.1)": dependencies: - chardet: 2.1.0 - iconv-lite: 0.6.3 - optionalDependencies: - "@types/node": 24.10.1 + chardet: 2.1.0 + iconv-lite: 0.6.3 + optionalDependencies: + "@types/node": 24.10.1 + + "@inquirer/figures@1.0.15": {} + + "@inquirer/input@3.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/type": 2.0.0 + + "@inquirer/number@2.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/type": 2.0.0 + + "@inquirer/password@3.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/type": 2.0.0 + ansi-escapes: 4.3.2 + + "@inquirer/prompts@6.0.1": + dependencies: + "@inquirer/checkbox": 3.0.1 + "@inquirer/confirm": 4.0.1 + "@inquirer/editor": 3.0.1 + "@inquirer/expand": 3.0.1 + "@inquirer/input": 3.0.1 + "@inquirer/number": 2.0.1 + "@inquirer/password": 3.0.1 + "@inquirer/rawlist": 3.0.1 + "@inquirer/search": 2.0.1 + "@inquirer/select": 3.0.1 + + "@inquirer/rawlist@3.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/type": 2.0.0 + yoctocolors-cjs: 2.1.3 + + "@inquirer/search@2.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/figures": 1.0.15 + "@inquirer/type": 2.0.0 + yoctocolors-cjs: 2.1.3 + + "@inquirer/select@3.0.1": + dependencies: + "@inquirer/core": 9.2.1 + "@inquirer/figures": 1.0.15 + "@inquirer/type": 2.0.0 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.3 + + "@inquirer/type@2.0.0": + dependencies: + mute-stream: 1.0.0 + + "@jridgewell/resolve-uri@3.1.2": {} + + "@jridgewell/sourcemap-codec@1.5.5": {} + + "@jridgewell/trace-mapping@0.3.9": + dependencies: + "@jridgewell/resolve-uri": 3.1.2 + "@jridgewell/sourcemap-codec": 1.5.5 "@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.18.3(bufferutil@4.0.9))(zod@3.25.76))": dependencies: @@ -6127,60 +7444,92 @@ snapshots: transitivePeerDependencies: - supports-color - "@ngrok/ngrok-android-arm64@1.5.1": + "@modelcontextprotocol/sdk@1.25.2(@cfworker/json-schema@4.1.1)(hono@4.11.3)(zod@3.25.76)": + dependencies: + "@hono/node-server": 1.19.8(hono@4.11.3) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + content-type: 1.0.5 + cors: 2.8.5 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.6 + express: 5.1.0 + express-rate-limit: 7.5.1(express@5.1.0) + jose: 6.1.3 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.0 + raw-body: 3.0.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.1(zod@3.25.76) + optionalDependencies: + "@cfworker/json-schema": 4.1.1 + transitivePeerDependencies: + - hono + - supports-color + + "@ngrok/ngrok-android-arm64@1.7.0": optional: true - "@ngrok/ngrok-darwin-arm64@1.5.1": + "@ngrok/ngrok-darwin-arm64@1.7.0": optional: true - "@ngrok/ngrok-darwin-universal@1.5.1": + "@ngrok/ngrok-darwin-universal@1.7.0": optional: true - "@ngrok/ngrok-darwin-x64@1.5.1": + "@ngrok/ngrok-darwin-x64@1.7.0": optional: true - "@ngrok/ngrok-freebsd-x64@1.5.1": + "@ngrok/ngrok-freebsd-x64@1.7.0": optional: true - "@ngrok/ngrok-linux-arm-gnueabihf@1.5.1": + "@ngrok/ngrok-linux-arm-gnueabihf@1.7.0": optional: true - "@ngrok/ngrok-linux-arm64-gnu@1.5.1": + "@ngrok/ngrok-linux-arm64-gnu@1.7.0": optional: true - "@ngrok/ngrok-linux-arm64-musl@1.5.1": + "@ngrok/ngrok-linux-arm64-musl@1.7.0": optional: true - "@ngrok/ngrok-linux-x64-gnu@1.5.1": + "@ngrok/ngrok-linux-x64-gnu@1.7.0": optional: true - "@ngrok/ngrok-linux-x64-musl@1.5.1": + "@ngrok/ngrok-linux-x64-musl@1.7.0": optional: true - "@ngrok/ngrok-win32-arm64-msvc@1.5.1": + "@ngrok/ngrok-win32-arm64-msvc@1.7.0": optional: true - "@ngrok/ngrok-win32-ia32-msvc@1.5.1": + "@ngrok/ngrok-win32-ia32-msvc@1.7.0": optional: true - "@ngrok/ngrok-win32-x64-msvc@1.5.1": + "@ngrok/ngrok-win32-x64-msvc@1.7.0": optional: true - "@ngrok/ngrok@1.5.1": + "@ngrok/ngrok@1.7.0": optionalDependencies: - "@ngrok/ngrok-android-arm64": 1.5.1 - "@ngrok/ngrok-darwin-arm64": 1.5.1 - "@ngrok/ngrok-darwin-universal": 1.5.1 - "@ngrok/ngrok-darwin-x64": 1.5.1 - "@ngrok/ngrok-freebsd-x64": 1.5.1 - "@ngrok/ngrok-linux-arm-gnueabihf": 1.5.1 - "@ngrok/ngrok-linux-arm64-gnu": 1.5.1 - "@ngrok/ngrok-linux-arm64-musl": 1.5.1 - "@ngrok/ngrok-linux-x64-gnu": 1.5.1 - "@ngrok/ngrok-linux-x64-musl": 1.5.1 - "@ngrok/ngrok-win32-arm64-msvc": 1.5.1 - "@ngrok/ngrok-win32-ia32-msvc": 1.5.1 - "@ngrok/ngrok-win32-x64-msvc": 1.5.1 + "@ngrok/ngrok-android-arm64": 1.7.0 + "@ngrok/ngrok-darwin-arm64": 1.7.0 + "@ngrok/ngrok-darwin-universal": 1.7.0 + "@ngrok/ngrok-darwin-x64": 1.7.0 + "@ngrok/ngrok-freebsd-x64": 1.7.0 + "@ngrok/ngrok-linux-arm-gnueabihf": 1.7.0 + "@ngrok/ngrok-linux-arm64-gnu": 1.7.0 + "@ngrok/ngrok-linux-arm64-musl": 1.7.0 + "@ngrok/ngrok-linux-x64-gnu": 1.7.0 + "@ngrok/ngrok-linux-x64-musl": 1.7.0 + "@ngrok/ngrok-win32-arm64-msvc": 1.7.0 + "@ngrok/ngrok-win32-ia32-msvc": 1.7.0 + "@ngrok/ngrok-win32-x64-msvc": 1.7.0 + + "@noble/ciphers@1.3.0": {} + + "@noble/curves@1.9.7": + dependencies: + "@noble/hashes": 1.8.0 + + "@noble/hashes@1.8.0": {} "@nodelib/fs.scandir@2.1.5": dependencies: @@ -6196,6 +7545,18 @@ snapshots: "@opentelemetry/api@1.9.0": {} + "@poppinss/colors@4.1.6": + dependencies: + kleur: 4.1.5 + + "@poppinss/dumper@0.6.5": + dependencies: + "@poppinss/colors": 4.1.6 + "@sindresorhus/is": 7.2.0 + supports-color: 10.2.2 + + "@poppinss/exception@1.2.3": {} + "@puppeteer/browsers@2.3.0": dependencies: debug: 4.4.1 @@ -6213,57 +7574,47 @@ snapshots: - supports-color optional: true - "@smithery/cli@1.2.15(react@19.1.0)(ws@8.18.3(bufferutil@4.0.9))(zod@3.25.76)": + "@sindresorhus/is@7.2.0": {} + + "@smithery/api@0.1.0-alpha.11": {} + + "@smithery/cli@3.1.2(@cfworker/json-schema@4.1.1)(@types/node@24.10.1)(bufferutil@4.0.9)(hono@4.11.3)(zod@3.25.76)": dependencies: - "@modelcontextprotocol/sdk": 1.15.1 - "@ngrok/ngrok": 1.5.1 - "@smithery/registry": 0.3.7(zod@3.25.76) - "@smithery/sdk": 1.5.4(react@19.1.0)(ws@8.18.3(bufferutil@4.0.9)) - "@types/uuid": 10.0.0 + "@anthropic-ai/mcpb": 1.2.0 + "@modelcontextprotocol/sdk": 1.25.2(@cfworker/json-schema@4.1.1)(hono@4.11.3)(zod@3.25.76) + "@ngrok/ngrok": 1.7.0 + "@smithery/api": 0.1.0-alpha.11 chalk: 4.1.2 + cli-spinners: 3.3.0 commander: 14.0.0 cors: 2.8.5 cross-fetch: 4.1.0 - esbuild: 0.25.6 + cross-spawn: 7.0.6 + esbuild: 0.25.12 express: 5.1.0 - inquirer: 8.2.6 - inquirer-autocomplete-prompt: 2.0.1(inquirer@8.2.6) - js-yaml: 4.1.0 + inquirer: 8.2.7(@types/node@24.10.1) + inquirer-autocomplete-prompt: 2.0.1(inquirer@8.2.7(@types/node@24.10.1)) lodash: 4.17.21 + miniflare: 4.20260107.0(bufferutil@4.0.9) ora: 8.2.0 + shx: 0.4.0 uuid: 11.1.0 - uuidv7: 1.0.2 + uuidv7: 1.1.0 + yaml: 2.8.0 + zod: 3.25.76 + zod-to-json-schema: 3.25.1(zod@3.25.76) optionalDependencies: - bufferutil: 4.0.9 + keytar: 7.9.0 transitivePeerDependencies: + - "@cfworker/json-schema" + - "@types/node" + - bufferutil - encoding - - react + - hono - supports-color - - ws - - zod - - "@smithery/registry@0.3.7(zod@3.25.76)": - dependencies: - zod: 3.25.76 + - utf-8-validate - "@smithery/sdk@1.5.4(react@19.1.0)(ws@8.18.3(bufferutil@4.0.9))": - dependencies: - "@anthropic-ai/sdk": 0.32.1 - "@modelcontextprotocol/sdk": 1.15.1 - ai: 4.3.19(react@19.1.0)(zod@3.25.76) - express: 5.1.0 - json-schema: 0.4.0 - lodash: 4.17.21 - okay-error: 1.0.3 - openai: 4.104.0(ws@8.18.3(bufferutil@4.0.9))(zod@3.25.76) - uuid: 11.1.0 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - encoding - - react - - supports-color - - ws + "@speed-highlight/core@1.2.14": {} "@standard-schema/spec@1.0.0": {} @@ -6276,6 +7627,10 @@ snapshots: "@types/json-schema@7.0.15": {} + "@types/mute-stream@0.0.4": + dependencies: + "@types/node": 24.10.1 + "@types/node-fetch@2.6.12": dependencies: "@types/node": 24.10.1 @@ -6287,6 +7642,10 @@ snapshots: dependencies: undici-types: 5.26.5 + "@types/node@22.19.5": + dependencies: + undici-types: 6.21.0 + "@types/node@24.10.1": dependencies: undici-types: 7.16.0 @@ -6295,6 +7654,8 @@ snapshots: "@types/uuid@10.0.0": {} + "@types/wrap-ansi@3.0.0": {} + "@types/yauzl@2.10.3": dependencies: "@types/node": 24.10.1 @@ -6408,6 +7769,10 @@ snapshots: dependencies: acorn: 8.15.0 + acorn-walk@8.3.2: {} + + acorn@8.14.0: {} + acorn@8.15.0: {} agent-base@7.1.4: {} @@ -6436,6 +7801,10 @@ snapshots: "@opentelemetry/api": 1.9.0 zod: 3.25.76 + ajv-formats@3.0.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -6443,6 +7812,13 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + ansi-colors@4.1.3: {} ansi-escapes@4.3.2: @@ -6681,6 +8057,9 @@ snapshots: chardet@2.1.0: {} + chownr@1.1.4: + optional: true + chrome-launcher@1.2.1: dependencies: "@types/node": 24.10.1 @@ -6711,6 +8090,8 @@ snapshots: cli-spinners@2.9.2: {} + cli-spinners@3.3.0: {} + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -6718,6 +8099,8 @@ snapshots: cli-width@3.0.0: {} + cli-width@4.1.0: {} + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -6751,6 +8134,8 @@ snapshots: commander@11.1.0: {} + commander@13.1.0: {} + commander@14.0.0: {} concat-map@0.0.1: {} @@ -6769,6 +8154,8 @@ snapshots: cookie@0.7.2: {} + cookie@1.1.1: {} + cors@2.8.5: dependencies: object-assign: 4.1.1 @@ -6780,6 +8167,14 @@ snapshots: transitivePeerDependencies: - encoding + cross-spawn@6.0.6: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -6815,6 +8210,14 @@ snapshots: decamelize@1.2.0: {} + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + optional: true + + deep-extend@0.6.0: + optional: true + deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -6867,7 +8270,7 @@ snapshots: dependencies: esutils: 2.0.3 - dotenv@16.6.1: {} + dotenv@17.2.3: {} dunder-proto@1.0.1: dependencies: @@ -6879,6 +8282,13 @@ snapshots: dependencies: safe-buffer: 5.2.1 + eciesjs@0.4.16: + dependencies: + "@ecies/ciphers": 0.2.5(@noble/ciphers@1.3.0) + "@noble/ciphers": 1.3.0 + "@noble/curves": 1.9.7 + "@noble/hashes": 1.8.0 + ee-first@1.1.1: {} emoji-regex@10.4.0: {} @@ -6898,6 +8308,8 @@ snapshots: environment@1.1.0: {} + error-stack-parser-es@1.0.5: {} + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -6999,6 +8411,35 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + esbuild@0.25.12: + optionalDependencies: + "@esbuild/aix-ppc64": 0.25.12 + "@esbuild/android-arm": 0.25.12 + "@esbuild/android-arm64": 0.25.12 + "@esbuild/android-x64": 0.25.12 + "@esbuild/darwin-arm64": 0.25.12 + "@esbuild/darwin-x64": 0.25.12 + "@esbuild/freebsd-arm64": 0.25.12 + "@esbuild/freebsd-x64": 0.25.12 + "@esbuild/linux-arm": 0.25.12 + "@esbuild/linux-arm64": 0.25.12 + "@esbuild/linux-ia32": 0.25.12 + "@esbuild/linux-loong64": 0.25.12 + "@esbuild/linux-mips64el": 0.25.12 + "@esbuild/linux-ppc64": 0.25.12 + "@esbuild/linux-riscv64": 0.25.12 + "@esbuild/linux-s390x": 0.25.12 + "@esbuild/linux-x64": 0.25.12 + "@esbuild/netbsd-arm64": 0.25.12 + "@esbuild/netbsd-x64": 0.25.12 + "@esbuild/openbsd-arm64": 0.25.12 + "@esbuild/openbsd-x64": 0.25.12 + "@esbuild/openharmony-arm64": 0.25.12 + "@esbuild/sunos-x64": 0.25.12 + "@esbuild/win32-arm64": 0.25.12 + "@esbuild/win32-ia32": 0.25.12 + "@esbuild/win32-x64": 0.25.12 + esbuild@0.25.6: optionalDependencies: "@esbuild/aix-ppc64": 0.25.6 @@ -7160,6 +8601,28 @@ snapshots: dependencies: eventsource-parser: 3.0.3 + execa@1.0.0: + dependencies: + cross-spawn: 6.0.6 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + execa@8.0.1: dependencies: cross-spawn: 7.0.6 @@ -7172,6 +8635,11 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + exit-hook@2.2.1: {} + + expand-template@2.0.3: + optional: true + express-rate-limit@7.5.1(express@5.1.0): dependencies: express: 5.1.0 @@ -7252,6 +8720,8 @@ snapshots: fast-safe-stringify@2.1.1: {} + fast-uri@3.1.0: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -7261,11 +8731,17 @@ snapshots: pend: 1.2.0 optional: true + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + fetch-cookie@3.1.0: dependencies: set-cookie-parser: 2.7.1 tough-cookie: 5.1.2 + fflate@0.8.2: {} + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -7306,6 +8782,13 @@ snapshots: flatted@3.3.3: {} + flora-colossus@2.0.0: + dependencies: + debug: 4.4.1 + fs-extra: 10.1.0 + transitivePeerDependencies: + - supports-color + for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -7329,6 +8812,15 @@ snapshots: fresh@2.0.0: {} + fs-constants@1.0.0: + optional: true + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -7362,6 +8854,14 @@ snapshots: functions-have-names@1.2.3: {} + galactus@1.0.0: + dependencies: + debug: 4.4.1 + flora-colossus: 2.0.0 + fs-extra: 10.1.0 + transitivePeerDependencies: + - supports-color + gaxios@6.7.1: dependencies: extend: 3.0.2 @@ -7405,11 +8905,17 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 + get-stream@4.1.0: + dependencies: + pump: 3.0.3 + get-stream@5.2.0: dependencies: pump: 3.0.3 optional: true + get-stream@6.0.1: {} + get-stream@8.0.1: {} get-symbol-description@1.1.0: @@ -7431,6 +8937,9 @@ snapshots: - supports-color optional: true + github-from-package@0.0.0: + optional: true + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -7439,6 +8948,8 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -7518,6 +9029,8 @@ snapshots: help-me@5.0.0: {} + hono@4.11.3: {} + http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -7543,6 +9056,8 @@ snapshots: human-id@4.1.1: {} + human-signals@2.1.0: {} + human-signals@5.0.0: {} humanize-ms@1.2.1: @@ -7579,22 +9094,25 @@ snapshots: inherits@2.0.4: {} - inquirer-autocomplete-prompt@2.0.1(inquirer@8.2.6): + ini@1.3.8: + optional: true + + inquirer-autocomplete-prompt@2.0.1(inquirer@8.2.7(@types/node@24.10.1)): dependencies: ansi-escapes: 4.3.2 figures: 3.2.0 - inquirer: 8.2.6 + inquirer: 8.2.7(@types/node@24.10.1) picocolors: 1.1.1 run-async: 2.4.1 rxjs: 7.8.2 - inquirer@8.2.6: + inquirer@8.2.7(@types/node@24.10.1): dependencies: + "@inquirer/external-editor": 1.0.1(@types/node@24.10.1) ansi-escapes: 4.3.2 chalk: 4.1.2 cli-cursor: 3.1.0 cli-width: 3.0.0 - external-editor: 3.1.0 figures: 3.2.0 lodash: 4.17.21 mute-stream: 0.0.8 @@ -7605,6 +9123,8 @@ snapshots: strip-ansi: 6.0.1 through: 2.3.8 wrap-ansi: 6.2.0 + transitivePeerDependencies: + - "@types/node" internal-slot@1.1.0: dependencies: @@ -7719,6 +9239,8 @@ snapshots: dependencies: call-bound: 1.0.4 + is-stream@1.1.0: {} + is-stream@2.0.1: {} is-stream@3.0.0: {} @@ -7770,6 +9292,8 @@ snapshots: isexe@2.0.0: {} + isexe@3.1.1: {} + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 @@ -7779,6 +9303,8 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 + jose@6.1.3: {} + joycon@3.1.1: {} js-tiktoken@1.0.21: @@ -7804,6 +9330,10 @@ snapshots: json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + + json-schema-typed@8.0.2: {} + json-schema@0.4.0: {} json-stable-stringify-without-jsonify@1.0.1: {} @@ -7818,6 +9348,12 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.9 @@ -7836,10 +9372,18 @@ snapshots: jwa: 2.0.1 safe-buffer: 5.2.1 + keytar@7.9.0: + dependencies: + node-addon-api: 4.3.0 + prebuild-install: 7.1.3 + optional: true + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + kleur@4.1.5: {} + langsmith@0.3.77(@opentelemetry/api@1.9.0)(openai@4.104.0(ws@8.18.3(bufferutil@4.0.9))(zod@3.25.76)): dependencies: "@types/uuid": 10.0.0 @@ -7982,6 +9526,27 @@ snapshots: mimic-function@5.0.1: {} + mimic-response@3.1.0: + optional: true + + miniflare@4.20260107.0(bufferutil@4.0.9): + dependencies: + "@cspotcode/source-map-support": 0.8.1 + acorn: 8.14.0 + acorn-walk: 8.3.2 + exit-hook: 2.2.1 + glob-to-regexp: 0.4.1 + sharp: 0.33.5 + stoppable: 1.1.0 + undici: 7.14.0 + workerd: 1.20260107.1 + ws: 8.18.0(bufferutil@4.0.9) + youch: 4.1.0-beta.10 + zod: 3.25.76 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -7995,6 +9560,9 @@ snapshots: mitt@3.0.1: optional: true + mkdirp-classic@0.5.3: + optional: true + mri@1.2.0: {} ms@2.1.3: {} @@ -8003,10 +9571,15 @@ snapshots: mute-stream@0.0.8: {} + mute-stream@1.0.0: {} + nano-spawn@1.0.2: {} nanoid@3.3.11: {} + napi-build-utils@2.0.0: + optional: true + natural-compare@1.4.0: {} negotiator@1.0.0: {} @@ -8014,15 +9587,35 @@ snapshots: netmask@2.0.2: optional: true + nice-try@1.0.5: {} + + node-abi@3.85.0: + dependencies: + semver: 7.7.2 + optional: true + + node-addon-api@4.3.0: + optional: true + node-domexception@1.0.0: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 + node-forge@1.3.3: {} + node-gyp-build@4.8.4: optional: true + npm-run-path@2.0.2: + dependencies: + path-key: 2.0.1 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -8033,6 +9626,8 @@ snapshots: object-keys@1.1.1: {} + object-treeify@1.1.33: {} + object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -8063,8 +9658,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - okay-error@1.0.3: {} - ollama-ai-provider-v2@1.5.2(zod@3.25.76): dependencies: "@ai-sdk/provider": 2.0.0 @@ -8229,6 +9822,8 @@ snapshots: path-is-absolute@1.0.1: {} + path-key@2.0.1: {} + path-key@3.1.1: {} path-key@4.0.0: {} @@ -8246,6 +9841,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.3: {} + pidtree@0.6.0: {} pify@4.0.1: {} @@ -8298,12 +9895,30 @@ snapshots: possible-typed-array-names@1.1.0: {} + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.1.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.85.0 + pump: 3.0.3 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.4 + tunnel-agent: 0.6.0 + optional: true + prelude-ls@1.2.1: {} prettier@2.8.8: {} prettier@3.6.2: {} + pretty-bytes@5.6.0: {} + process-warning@5.0.0: {} progress@2.0.3: @@ -8379,6 +9994,14 @@ snapshots: iconv-lite: 0.6.3 unpipe: 1.0.0 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + optional: true + react-is@16.13.1: {} react@19.1.0: {} @@ -8425,6 +10048,8 @@ snapshots: require-directory@2.1.1: optional: true + require-from-string@2.0.2: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -8506,6 +10131,8 @@ snapshots: secure-json-parse@2.7.0: {} + semver@5.7.2: {} + semver@6.3.1: {} semver@7.7.2: {} @@ -8587,10 +10214,16 @@ snapshots: "@img/sharp-win32-ia32": 0.33.5 "@img/sharp-win32-x64": 0.33.5 + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 + shebang-regex@1.0.0: {} + shebang-regex@3.0.0: {} shelljs@0.8.5: @@ -8599,11 +10232,23 @@ snapshots: interpret: 1.4.0 rechoir: 0.6.2 + shelljs@0.9.2: + dependencies: + execa: 1.0.0 + fast-glob: 3.3.3 + interpret: 1.4.0 + rechoir: 0.6.2 + shx@0.3.4: dependencies: minimist: 1.2.8 shelljs: 0.8.5 + shx@0.4.0: + dependencies: + minimist: 1.2.8 + shelljs: 0.9.2 + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -8636,6 +10281,16 @@ snapshots: signal-exit@4.1.0: {} + simple-concat@1.0.1: + optional: true + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + optional: true + simple-swizzle@0.2.4: dependencies: is-arrayish: 0.3.4 @@ -8699,6 +10354,8 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 + stoppable@1.1.0: {} + streamx@2.23.0: dependencies: events-universal: 1.0.1 @@ -8781,10 +10438,19 @@ snapshots: strip-bom@3.0.0: {} + strip-eof@1.0.0: {} + + strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} + strip-json-comments@2.0.1: + optional: true + strip-json-comments@3.1.1: {} + supports-color@10.2.2: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -8797,6 +10463,14 @@ snapshots: react: 19.1.0 use-sync-external-store: 1.5.0(react@19.1.0) + tar-fs@2.1.4: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.3 + tar-stream: 2.2.0 + optional: true + tar-fs@3.1.1: dependencies: pump: 3.0.3 @@ -8810,6 +10484,15 @@ snapshots: - react-native-b4a optional: true + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + tar-stream@3.1.7: dependencies: b4a: 1.7.3 @@ -8872,6 +10555,11 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + optional: true + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -8945,10 +10633,16 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.21.0: {} + undici-types@7.16.0: {} + undici@7.14.0: {} + universalify@0.1.2: {} + universalify@2.0.1: {} + unpipe@1.0.0: {} uri-js@4.4.1: @@ -8970,7 +10664,7 @@ snapshots: uuid@9.0.1: {} - uuidv7@1.0.2: {} + uuidv7@1.1.0: {} vary@1.1.2: {} @@ -9028,12 +10722,28 @@ snapshots: gopd: 1.2.0 has-tostringtag: 1.0.2 + which@1.3.1: + dependencies: + isexe: 2.0.0 + which@2.0.2: dependencies: isexe: 2.0.0 + which@4.0.0: + dependencies: + isexe: 3.1.1 + word-wrap@1.2.5: {} + workerd@1.20260107.1: + optionalDependencies: + "@cloudflare/workerd-darwin-64": 1.20260107.1 + "@cloudflare/workerd-darwin-arm64": 1.20260107.1 + "@cloudflare/workerd-linux-64": 1.20260107.1 + "@cloudflare/workerd-linux-arm64": 1.20260107.1 + "@cloudflare/workerd-windows-64": 1.20260107.1 + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 @@ -9055,6 +10765,10 @@ snapshots: wrappy@1.0.2: {} + ws@8.18.0(bufferutil@4.0.9): + optionalDependencies: + bufferutil: 4.0.9 + ws@8.18.3(bufferutil@4.0.9): optionalDependencies: bufferutil: 4.0.9 @@ -9086,10 +10800,29 @@ snapshots: yocto-queue@0.1.0: {} + yoctocolors-cjs@2.1.3: {} + + youch-core@0.3.3: + dependencies: + "@poppinss/exception": 1.2.3 + error-stack-parser-es: 1.0.5 + + youch@4.1.0-beta.10: + dependencies: + "@poppinss/colors": 4.1.6 + "@poppinss/dumper": 0.6.5 + "@speed-highlight/core": 1.2.14 + cookie: 1.1.1 + youch-core: 0.3.3 + zod-to-json-schema@3.24.6(zod@3.25.76): dependencies: zod: 3.25.76 + zod-to-json-schema@3.25.1(zod@3.25.76): + dependencies: + zod: 3.25.76 + zod@3.23.8: optional: true diff --git a/smithery.yaml b/smithery.yaml index 322550e..e56f636 100644 --- a/smithery.yaml +++ b/smithery.yaml @@ -1 +1,2 @@ runtime: "typescript" +name: "browserbase" diff --git a/src/index.ts b/src/index.ts index f77c6a4..b426f4f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,4 @@ -import * as dotenv from "dotenv"; -dotenv.config(); - -import { randomUUID } from "crypto"; +import { randomUUID } from "./utils/uuid.js"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { z } from "zod"; @@ -110,6 +107,9 @@ export const configSchema = z }, ); +// Smithery v3 expects a named export to signal stateful servers. +export const stateful = true; + // Default function for Smithery export default function ({ config }: { config: z.infer }) { if (!config.browserbaseApiKey) { diff --git a/src/program.ts b/src/program.ts index 430f6d5..f362de4 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1,7 +1,4 @@ import { program } from "commander"; -import * as fs from "fs"; -import * as path from "path"; -import { fileURLToPath } from "url"; import createServerFunction from "./index.js"; import { ServerList } from "./server.js"; @@ -9,25 +6,8 @@ import { startHttpTransport, startStdioTransport } from "./transport.js"; import { resolveConfig } from "./config.js"; -let __filename: string; -let __dirname: string; - -try { - // Try ES modules first - __filename = fileURLToPath(import.meta.url); - __dirname = path.dirname(__filename); -} catch { - // Fallback for CommonJS or when import.meta is not available - __filename = - (globalThis as { __filename: string }).__filename || - process.cwd() + "/dist/program.js"; - __dirname = path.dirname(__filename); -} - -// Load package.json using fs -const packageJSONPath = path.resolve(__dirname, "../package.json"); -const packageJSONBuffer = fs.readFileSync(packageJSONPath); -const packageJSON = JSON.parse(packageJSONBuffer.toString()); +// Import package.json directly using ESM JSON import (no fs needed) +import packageJSON from "../package.json" with { type: "json" }; program .version("Version " + packageJSON.version) diff --git a/src/sessionManager.ts b/src/sessionManager.ts index 602f869..0a8bb65 100644 --- a/src/sessionManager.ts +++ b/src/sessionManager.ts @@ -1,8 +1,8 @@ -import { Stagehand } from "@browserbasehq/stagehand"; +import type { Stagehand } from "@browserbasehq/stagehand"; import type { Config } from "../config.d.ts"; import { clearScreenshotsForSession } from "./mcp/resources.js"; import type { BrowserSession, CreateSessionParams } from "./types/types.js"; -import { randomUUID } from "crypto"; +import { randomUUID } from "./utils/uuid.js"; /** * Create a configured Stagehand instance @@ -14,6 +14,14 @@ export const createStagehandInstance = async ( params: CreateSessionParams = {}, sessionId: string, ): Promise => { + const isNodeRuntime = + typeof process !== "undefined" && Boolean(process.versions?.node); + if (!isNodeRuntime) { + throw new Error( + "Stagehand requires a Node.js runtime. This deployment does not provide Node built-ins.", + ); + } + const apiKey = params.apiKey || config.browserbaseApiKey; const projectId = params.projectId || config.browserbaseProjectId; @@ -24,10 +32,15 @@ export const createStagehandInstance = async ( const modelName = params.modelName || config.modelName || "gemini-2.0-flash"; const modelApiKey = config.modelApiKey || - process.env.GEMINI_API_KEY || - process.env.GOOGLE_API_KEY; + (typeof process !== "undefined" + ? process.env?.GEMINI_API_KEY + : undefined) || + (typeof process !== "undefined" ? process.env?.GOOGLE_API_KEY : undefined); + + const stagehandModule = await import("@browserbasehq/stagehand"); + const StagehandConstructor = stagehandModule.Stagehand; - const stagehand = new Stagehand({ + const stagehand = new StagehandConstructor({ env: "BROWSERBASE", apiKey, projectId, diff --git a/src/tools/screenshot.ts b/src/tools/screenshot.ts index facc895..8d74e7b 100644 --- a/src/tools/screenshot.ts +++ b/src/tools/screenshot.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import sharp from "sharp"; +import type { Page } from "@browserbasehq/stagehand"; import type { Tool, ToolSchema, ToolResult } from "./tool.js"; import type { Context } from "../context.js"; import type { ToolActionResult } from "../types/types.js"; @@ -11,6 +11,89 @@ import { registerScreenshot } from "../mcp/resources.js"; * This tool is used to take a screenshot of the current page. */ +/** + * Parse PNG dimensions from base64 data by reading the IHDR chunk. + * PNG format: 8-byte signature, then IHDR chunk with width/height as big-endian uint32. + * Uses pure V8 APIs (atob, Uint8Array, DataView) - no Node.js Buffer. + */ +function parsePngDimensions(base64Data: string): { + width: number; + height: number; +} { + // 32 base64 chars = 24 bytes, enough for PNG header + IHDR dimensions + const headerBase64 = base64Data.slice(0, 32); + const binaryString = atob(headerBase64); + const bytes = new Uint8Array(binaryString.length); + for (let i = 0; i < binaryString.length; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + + // Validate PNG signature + const pngSignature = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]; + for (let i = 0; i < 8; i++) { + if (bytes[i] !== pngSignature[i]) { + throw new Error("Invalid PNG signature"); + } + } + + // Width at bytes 16-19, height at 20-23 (big-endian) + const view = new DataView(bytes.buffer); + const width = view.getUint32(16, false); // false = big-endian + const height = view.getUint32(20, false); + + return { width, height }; +} + +/** + * Resize an image using OffscreenCanvas and createImageBitmap. + * This approach bypasses CSP restrictions because it works with raw binary data, + * not URLs. Uses GPU-accelerated rendering with high-quality smoothing. + */ +async function resizeImageInBrowser( + page: Page, + base64Data: string, + targetWidth: number, + targetHeight: number, +): Promise { + return await page.evaluate( + async ({ data, width, height }) => { + // Decode base64 to binary - works with raw data, no URL involved + const binaryString = atob(data); + const bytes = new Uint8Array(binaryString.length); + for (let i = 0; i < binaryString.length; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + const blob = new Blob([bytes], { type: "image/png" }); + + // createImageBitmap works with Blob data directly, bypassing CSP img-src + const bitmap = await createImageBitmap(blob); + + // OffscreenCanvas doesn't touch the DOM at all + const offscreen = new OffscreenCanvas(width, height); + const ctx = offscreen.getContext("2d"); + if (!ctx) { + throw new Error("Failed to get OffscreenCanvas context"); + } + + ctx.imageSmoothingEnabled = true; + ctx.imageSmoothingQuality = "high"; + ctx.drawImage(bitmap, 0, 0, width, height); + bitmap.close(); + + // Convert back to base64 + const resultBlob = await offscreen.convertToBlob({ type: "image/png" }); + const arrayBuffer = await resultBlob.arrayBuffer(); + const resultBytes = new Uint8Array(arrayBuffer); + let binary = ""; + for (let i = 0; i < resultBytes.length; i++) { + binary += String.fromCharCode(resultBytes[i]); + } + return btoa(binary); + }, + { data: base64Data, width: targetWidth, height: targetHeight }, + ); +} + const ScreenshotInputSchema = z.object({ name: z.string().optional().describe("The name of the screenshot"), }); @@ -55,38 +138,36 @@ async function handleScreenshot( // Scale down image if needed for Claude's vision API // Claude constraints: max 1568px on any edge AND max 1.15 megapixels // Reference: https://docs.anthropic.com/en/docs/build-with-claude/vision#evaluate-image-size - const imageBuffer = Buffer.from(data, "base64"); - const metadata = await sharp(imageBuffer).metadata(); + const { width, height } = parsePngDimensions(data); + const pixels = width * height; + + // Track final dimensions for output + let finalWidth = width; + let finalHeight = height; + + // Min of: width constraint, height constraint, and megapixel constraint + const shrink = Math.min( + 1568 / width, + 1568 / height, + Math.sqrt((1.15 * 1024 * 1024) / pixels), + ); - if (metadata.width && metadata.height) { - const pixels = metadata.width * metadata.height; + // Only resize if we need to shrink (shrink < 1) + if (shrink < 1) { + finalWidth = Math.floor(width * shrink); + finalHeight = Math.floor(height * shrink); - // Min of: width constraint, height constraint, and megapixel constraint - const shrink = Math.min( - 1568 / metadata.width, - 1568 / metadata.height, - Math.sqrt((1.15 * 1024 * 1024) / pixels), + process.stderr.write( + `[Screenshot] Scaling image from ${width}x${height} (${(pixels / (1024 * 1024)).toFixed(2)}MP) to ${finalWidth}x${finalHeight} (${((finalWidth * finalHeight) / (1024 * 1024)).toFixed(2)}MP) for Claude vision API\n`, ); - // Only resize if we need to shrink (shrink < 1) - if (shrink < 1) { - const newWidth = Math.floor(metadata.width * shrink); - const newHeight = Math.floor(metadata.height * shrink); - - process.stderr.write( - `[Screenshot] Scaling image from ${metadata.width}x${metadata.height} (${(pixels / (1024 * 1024)).toFixed(2)}MP) to ${newWidth}x${newHeight} (${((newWidth * newHeight) / (1024 * 1024)).toFixed(2)}MP) for Claude vision API\n`, - ); - - const resizedBuffer = await sharp(imageBuffer) - .resize(newWidth, newHeight, { - fit: "inside", - withoutEnlargement: true, - }) - .png() - .toBuffer(); - - screenshotBase64 = resizedBuffer.toString("base64"); - } + // Resize using browser canvas (no sharp dependency needed) + screenshotBase64 = await resizeImageInBrowser( + page, + data, + finalWidth, + finalHeight, + ); } const name = params.name ? `screenshot-${params.name}-${new Date() @@ -112,7 +193,7 @@ async function handleScreenshot( content: [ { type: "text", - text: `Screenshot taken with name: ${name}`, + text: `Screenshot taken with name: ${name} (${finalWidth}x${finalHeight})`, }, { type: "image", diff --git a/src/transport.ts b/src/transport.ts index 4885bf9..67ad521 100644 --- a/src/transport.ts +++ b/src/transport.ts @@ -1,6 +1,6 @@ import http from "node:http"; import assert from "node:assert"; -import crypto from "node:crypto"; +import { randomUUID } from "./utils/uuid.js"; import { ServerList } from "./server.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; @@ -48,7 +48,7 @@ async function handleStreamable( } if (req.method === "POST") { - const sessionId = crypto.randomUUID(); + const sessionId = randomUUID(); const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: () => sessionId, }); diff --git a/src/utils/uuid.ts b/src/utils/uuid.ts new file mode 100644 index 0000000..1084a6f --- /dev/null +++ b/src/utils/uuid.ts @@ -0,0 +1,63 @@ +const byteToHex: string[] = Array.from({ length: 256 }, (_, index) => + index.toString(16).padStart(2, "0"), +); + +function formatUuid(bytes: Uint8Array): string { + return ( + byteToHex[bytes[0]] + + byteToHex[bytes[1]] + + byteToHex[bytes[2]] + + byteToHex[bytes[3]] + + "-" + + byteToHex[bytes[4]] + + byteToHex[bytes[5]] + + "-" + + byteToHex[bytes[6]] + + byteToHex[bytes[7]] + + "-" + + byteToHex[bytes[8]] + + byteToHex[bytes[9]] + + "-" + + byteToHex[bytes[10]] + + byteToHex[bytes[11]] + + byteToHex[bytes[12]] + + byteToHex[bytes[13]] + + byteToHex[bytes[14]] + + byteToHex[bytes[15]] + ); +} + +export function randomUUID(): string { + if (typeof globalThis !== "undefined") { + const cryptoObj = globalThis.crypto; + if (cryptoObj?.randomUUID) { + return cryptoObj.randomUUID(); + } + if (cryptoObj?.getRandomValues) { + const bytes = new Uint8Array(16); + cryptoObj.getRandomValues(bytes); + bytes[6] = (bytes[6] & 0x0f) | 0x40; + bytes[8] = (bytes[8] & 0x3f) | 0x80; + return formatUuid(bytes); + } + } + + let timestamp = Date.now(); + let perf = + typeof performance !== "undefined" && typeof performance.now === "function" + ? performance.now() * 1000 + : 0; + + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (char) => { + let random = Math.random() * 16; + if (timestamp > 0) { + random = (timestamp + random) % 16; + timestamp = Math.floor(timestamp / 16); + } else { + random = (perf + random) % 16; + perf = Math.floor(perf / 16); + } + const value = char === "x" ? random : (random & 0x3) | 0x8; + return value.toString(16); + }); +}