From 60f4adbc3c599d7a3d4b22d24d683efc95deb0fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:52:41 +0000 Subject: [PATCH 1/2] build(deps): bump the aisdk group across 1 directory with 6 updates --- updated-dependencies: - dependency-name: "@ai-sdk/google" dependency-version: 4.0.2 dependency-type: direct:production update-type: version-update:semver-major dependency-group: aisdk - dependency-name: "@ai-sdk/google-vertex" dependency-version: 5.0.2 dependency-type: direct:production update-type: version-update:semver-major dependency-group: aisdk - dependency-name: "@ai-sdk/openai" dependency-version: 4.0.2 dependency-type: direct:production update-type: version-update:semver-major dependency-group: aisdk - dependency-name: "@ai-sdk/openai-compatible" dependency-version: 3.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: aisdk - dependency-name: "@openrouter/ai-sdk-provider" dependency-version: 2.10.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aisdk - dependency-name: ai dependency-version: 7.0.4 dependency-type: direct:production update-type: version-update:semver-major dependency-group: aisdk ... Signed-off-by: dependabot[bot] --- package.json | 12 +- packages/cli/package.json | 10 +- packages/core/package.json | 12 +- packages/extension/package.json | 6 +- pnpm-lock.yaml | 877 ++++++++++++++------------------ 5 files changed, 407 insertions(+), 510 deletions(-) diff --git a/package.json b/package.json index 532b329c..6747a7ad 100644 --- a/package.json +++ b/package.json @@ -51,13 +51,13 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "@ai-sdk/google": "^3.0.83", - "@ai-sdk/google-vertex": "^4.0.148", - "@ai-sdk/openai": "^3.0.74", - "@ai-sdk/openai-compatible": "^2.0.51", + "@ai-sdk/google": "^4.0.2", + "@ai-sdk/google-vertex": "^5.0.2", + "@ai-sdk/openai": "^4.0.2", + "@ai-sdk/openai-compatible": "^3.0.1", "@ghostery/adblocker-playwright": "^2.18.0", - "@openrouter/ai-sdk-provider": "^2.9.1", - "ai": "^6.0.208", + "@openrouter/ai-sdk-provider": "^2.10.0", + "ai": "^7.0.4", "chalk": "^5.6.2", "commander": "^15.0.0", "cross-fetch": "^4.1.0", diff --git a/packages/cli/package.json b/packages/cli/package.json index a15794c1..cd133855 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -19,11 +19,11 @@ "web-ext": "^10.4.0" }, "devDependencies": { - "@ai-sdk/google": "^3.0.83", - "@ai-sdk/google-vertex": "^4.0.148", - "@ai-sdk/openai": "^3.0.74", - "@ai-sdk/openai-compatible": "^2.0.51", - "@openrouter/ai-sdk-provider": "^2.9.1", + "@ai-sdk/google": "^4.0.2", + "@ai-sdk/google-vertex": "^5.0.2", + "@ai-sdk/openai": "^4.0.2", + "@ai-sdk/openai-compatible": "^3.0.1", + "@openrouter/ai-sdk-provider": "^2.10.0", "@types/node": "^26.0.0", "ollama-ai-provider-v2": "^3.6.0", "tsx": "^4.22.4", diff --git a/packages/core/package.json b/packages/core/package.json index feabf474..98fcc641 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -30,14 +30,14 @@ "check:schemas": "pnpm run generate:schemas && git diff --exit-code schemas/" }, "dependencies": { - "@ai-sdk/google": "^3.0.83", - "@ai-sdk/google-vertex": "^4.0.148", - "@ai-sdk/openai": "^3.0.74", - "@ai-sdk/openai-compatible": "^2.0.51", + "@ai-sdk/google": "^4.0.2", + "@ai-sdk/google-vertex": "^5.0.2", + "@ai-sdk/openai": "^4.0.2", + "@ai-sdk/openai-compatible": "^3.0.1", "@ghostery/adblocker-playwright": "^2.18.0", - "@openrouter/ai-sdk-provider": "^2.9.1", + "@openrouter/ai-sdk-provider": "^2.10.0", "@tabstack/sdk": "^2.3.0", - "ai": "^6.0.208", + "ai": "^7.0.4", "chalk": "^5.6.2", "commander": "^15.0.0", "cross-fetch": "^4.1.0", diff --git a/packages/extension/package.json b/packages/extension/package.json index 1b18df5c..5536e45d 100644 --- a/packages/extension/package.json +++ b/packages/extension/package.json @@ -21,9 +21,9 @@ "test:e2e:headless": "HEADLESS=true playwright test" }, "dependencies": { - "@ai-sdk/google": "^3.0.83", - "@ai-sdk/openai": "^3.0.74", - "@openrouter/ai-sdk-provider": "^2.9.1", + "@ai-sdk/google": "^4.0.2", + "@ai-sdk/openai": "^4.0.2", + "@openrouter/ai-sdk-provider": "^2.10.0", "@radix-ui/react-dropdown-menu": "^2.1.18", "@radix-ui/react-label": "^2.1.10", "@radix-ui/react-scroll-area": "^1.2.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2b49355c..8853a1ad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,26 +13,26 @@ importers: .: dependencies: '@ai-sdk/google': - specifier: ^3.0.83 - version: 3.0.83(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@ai-sdk/google-vertex': - specifier: ^4.0.148 - version: 4.0.148(zod@4.3.6) + specifier: ^5.0.2 + version: 5.0.2(zod@4.3.6) '@ai-sdk/openai': - specifier: ^3.0.74 - version: 3.0.74(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@ai-sdk/openai-compatible': - specifier: ^2.0.51 - version: 2.0.51(zod@4.3.6) + specifier: ^3.0.1 + version: 3.0.1(zod@4.3.6) '@ghostery/adblocker-playwright': specifier: ^2.18.0 version: 2.18.0(playwright@1.61.1) '@openrouter/ai-sdk-provider': - specifier: ^2.9.1 - version: 2.9.1(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + specifier: ^2.10.0 + version: 2.10.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) ai: - specifier: ^6.0.208 - version: 6.0.208(zod@4.3.6) + specifier: ^7.0.4 + version: 7.0.4(zod@4.3.6) chalk: specifier: ^5.6.2 version: 5.6.2 @@ -53,7 +53,7 @@ importers: version: 5.1.16 ollama-ai-provider-v2: specifier: ^3.6.0 - version: 3.6.0(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + version: 3.6.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) playwright: specifier: 1.61.1 version: 1.61.1 @@ -72,10 +72,10 @@ importers: version: 0.28.1 prettier: specifier: ^3.9.3 - version: 3.9.3 + version: 3.9.5 tsup: specifier: ^8.3.5 - version: 8.5.1(jiti@2.7.0)(postcss@8.5.19)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0) + version: 8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0) tsx: specifier: ^4.22.4 version: 4.22.4 @@ -102,26 +102,26 @@ importers: version: 10.4.0(jiti@2.7.0) devDependencies: '@ai-sdk/google': - specifier: ^3.0.83 - version: 3.0.83(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@ai-sdk/google-vertex': - specifier: ^4.0.148 - version: 4.0.148(zod@4.3.6) + specifier: ^5.0.2 + version: 5.0.2(zod@4.3.6) '@ai-sdk/openai': - specifier: ^3.0.74 - version: 3.0.74(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@ai-sdk/openai-compatible': - specifier: ^2.0.51 - version: 2.0.51(zod@4.3.6) + specifier: ^3.0.1 + version: 3.0.1(zod@4.3.6) '@openrouter/ai-sdk-provider': - specifier: ^2.9.1 - version: 2.9.1(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + specifier: ^2.10.0 + version: 2.10.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) '@types/node': specifier: ^26.0.0 version: 26.1.0 ollama-ai-provider-v2: specifier: ^3.6.0 - version: 3.6.0(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + version: 3.6.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) tsx: specifier: ^4.22.4 version: 4.22.4 @@ -130,34 +130,34 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) packages/core: dependencies: '@ai-sdk/google': - specifier: ^3.0.83 - version: 3.0.83(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@ai-sdk/google-vertex': - specifier: ^4.0.148 - version: 4.0.148(zod@4.3.6) + specifier: ^5.0.2 + version: 5.0.2(zod@4.3.6) '@ai-sdk/openai': - specifier: ^3.0.74 - version: 3.0.74(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@ai-sdk/openai-compatible': - specifier: ^2.0.51 - version: 2.0.51(zod@4.3.6) + specifier: ^3.0.1 + version: 3.0.1(zod@4.3.6) '@ghostery/adblocker-playwright': specifier: ^2.18.0 version: 2.18.0(playwright@1.61.1) '@openrouter/ai-sdk-provider': - specifier: ^2.9.1 - version: 2.9.1(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + specifier: ^2.10.0 + version: 2.10.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) '@tabstack/sdk': specifier: ^2.3.0 version: 2.6.1 ai: - specifier: ^6.0.208 - version: 6.0.208(zod@4.3.6) + specifier: ^7.0.4 + version: 7.0.4(zod@4.3.6) chalk: specifier: ^5.6.2 version: 5.6.2 @@ -178,7 +178,7 @@ importers: version: 5.1.16 ollama-ai-provider-v2: specifier: ^3.6.0 - version: 3.6.0(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + version: 3.6.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) playwright: specifier: 1.61.1 version: 1.61.1 @@ -227,19 +227,19 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) packages/extension: dependencies: '@ai-sdk/google': - specifier: ^3.0.83 - version: 3.0.83(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@ai-sdk/openai': - specifier: ^3.0.74 - version: 3.0.74(zod@4.3.6) + specifier: ^4.0.2 + version: 4.0.2(zod@4.3.6) '@openrouter/ai-sdk-provider': - specifier: ^2.9.1 - version: 2.9.1(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + specifier: ^2.10.0 + version: 2.10.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) '@radix-ui/react-dropdown-menu': specifier: ^2.1.18 version: 2.1.18(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -257,13 +257,13 @@ importers: version: 1.3.0(@types/react@19.2.17)(react@19.2.7) '@tailwindcss/vite': specifier: ^4.3.2 - version: 4.3.2(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.3.2(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) '@types/webextension-polyfill': specifier: ^0.12.5 version: 0.12.5 '@wxt-dev/webextension-polyfill': specifier: ^1.0.0 - version: 1.0.0(webextension-polyfill@0.12.0)(wxt@0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0)) + version: 1.0.0(webextension-polyfill@0.12.0)(wxt@0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0)) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -278,7 +278,7 @@ importers: version: 4.0.0(react@19.2.7) ollama-ai-provider-v2: specifier: ^3.6.0 - version: 3.6.0(ai@6.0.208(zod@4.3.6))(zod@4.3.6) + version: 3.6.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6) pilo-core: specifier: workspace:* version: link:../core @@ -336,7 +336,7 @@ importers: version: 5.0.6 '@wxt-dev/module-react': specifier: ^1.2.2 - version: 1.2.2(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))(wxt@0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0)) + version: 1.2.2(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))(wxt@0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0)) happy-dom: specifier: ^20.10.6 version: 20.10.6 @@ -348,10 +348,10 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) wxt: specifier: 0.20.27 - version: 0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0) + version: 0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0) packages/server: dependencies: @@ -403,7 +403,7 @@ importers: version: 6.0.3 vitest: specifier: ^4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) packages: @@ -413,45 +413,39 @@ packages: '@adobe/css-tools@4.4.4': resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} - '@ai-sdk/anthropic@3.0.85': - resolution: {integrity: sha512-fNeDB644l5wbRNQU0FnI+F7UTtOenMnPtACfMPUJaS2zJfuBlseEa1TMg+otHkETZgaJB+6Na51NQEv0+m7czw==} - engines: {node: '>=18'} + '@ai-sdk/anthropic@4.0.1': + resolution: {integrity: sha512-q9PMy0r3LGzSTu6FtYhFj6EesVpSpsEoPLsRKFnaK4YJd7SdUJlYIUJ4EXd5LTWzeXxk4r02z3gymo24c9jyQA==} + engines: {node: '>=22'} peerDependencies: zod: 4.3.6 - '@ai-sdk/gateway@3.0.133': - resolution: {integrity: sha512-Ebs+7iS9zUgJu5B0RlxM2JmDWzq79Cpd6YdiqcCzB5qFdpfQJPUDiXutqlQP89F2XGjOdDeidulBTXUdXWzOxw==} - engines: {node: '>=18'} + '@ai-sdk/gateway@4.0.4': + resolution: {integrity: sha512-xO0e9duft/uZlnDaIeBZmzTMjfdEz1kkDzWnhQNkJZZljsKWVi6IREZW9nAa+Dx6jYJssyxSUggaFYBAV1WZpw==} + engines: {node: '>=22'} peerDependencies: zod: 4.3.6 - '@ai-sdk/google-vertex@4.0.148': - resolution: {integrity: sha512-H8hRzNyK5Ok3f/ktfSKb9sFWnWQiObc/dcN6GoGaTDsp01AyFZDPoTdLSPPEZCCUYutclUdhYG6OjO7j5P+NvQ==} - engines: {node: '>=18'} + '@ai-sdk/google-vertex@5.0.2': + resolution: {integrity: sha512-H1y2Uj+KRu+P/t740YtmjQyPi1d+6/cBvhiFzihvhtw2OLDftUpbXcspeQ5UeRaIsN5pFdZjW4KLSACKf/OZsg==} + engines: {node: '>=22'} peerDependencies: zod: 4.3.6 - '@ai-sdk/google@3.0.83': - resolution: {integrity: sha512-Pz7aCX0dy+5x+r4K/37HbLZNaPtPL4q2NduzJW64VffLv5sI9Nb478wAd7PlH2r2asiypJsz/Jerf9draTciUA==} - engines: {node: '>=18'} + '@ai-sdk/google@4.0.2': + resolution: {integrity: sha512-pabPdHf73DHhFFAYyKzT9ctrRtMTCB3H94aObgNd+I1sHJGf61msra5X2qaFUpW+YniQPHeNQ+RW3wgGOIfS2g==} + engines: {node: '>=22'} peerDependencies: zod: 4.3.6 - '@ai-sdk/openai-compatible@2.0.51': - resolution: {integrity: sha512-A6qfyaVs4lxmRxRux6U3ViOa8mMbsSd0OaHghpei2MpiBT6791J4zFH5MN7kaW1tLfQ246rSC2DVTMOavsycjQ==} - engines: {node: '>=18'} + '@ai-sdk/openai-compatible@3.0.1': + resolution: {integrity: sha512-nUbQoGzdFZspb1cr6GUy+nR8Uvdi4/lCwTkdE9qKe+Qr2OVPsIKRIpyC9ewJ2uqUfl+1JlkWhPfR5l8bokNs4Q==} + engines: {node: '>=22'} peerDependencies: zod: 4.3.6 - '@ai-sdk/openai@3.0.74': - resolution: {integrity: sha512-LPDBWd2WCv0GQs29K2pHcNrGx24hm4D8QEP386HwUAUPr1URho6bNVXHNmIv0FxaW+xDkLpNMTen+mFCUBp2LA==} - engines: {node: '>=18'} - peerDependencies: - zod: 4.3.6 - - '@ai-sdk/provider-utils@4.0.30': - resolution: {integrity: sha512-VO7I+vPffqI5sMnPoUq5DCSqKIgQIk/naJWRdQVpz2ma2zoprC/lqiJiUEl2s6DfvTD76TbhD3q39ROjlA6rGw==} - engines: {node: '>=18'} + '@ai-sdk/openai@4.0.2': + resolution: {integrity: sha512-/oxY+VpWgTrmqCOho1AD/jF5ZaHizkAEsrEVBhIHEzxSHpbJI0Ws8VSpfJPPBeTF7Ebz6eaNGOvKm2RzN5EcdQ==} + engines: {node: '>=22'} peerDependencies: zod: 4.3.6 @@ -461,14 +455,20 @@ packages: peerDependencies: zod: 4.3.6 - '@ai-sdk/provider@3.0.10': - resolution: {integrity: sha512-Q3BZ27qfpYqnCYGvE3vt+Qi6LGOF9R5Nmzn+9JoM1lCRsD9mYaIhfJLkSunN48nfGXJ6n+XNV0J/XVpqGQl7Dw==} - engines: {node: '>=18'} + '@ai-sdk/provider-utils@5.0.1': + resolution: {integrity: sha512-p9Ra+dN4jjHrssXvklNf4nFvWbj1KePMfUOs7nue0NuoIMbYFBULhX4Vu0+6DWLnw3+UsLL9+RCKLtzzU43Qpg==} + engines: {node: '>=22'} + peerDependencies: + zod: 4.3.6 '@ai-sdk/provider@3.0.12': resolution: {integrity: sha512-sj9DWTJ2Ze0WR9qsiOPqoqzNx3OxL6iMxHImbhvoe9qOspekbzxNDMiJ4TIGfYHYh9w4OmBjz3prvqhzTi96+Q==} engines: {node: '>=18'} + '@ai-sdk/provider@4.0.0': + resolution: {integrity: sha512-fr9Gs89prDWiuox/T+kCA+i2cJkHpxU5S+tr4megjTzRC27ZsvFhwjU/+XrqqMbvBUlfmXxTOYWy8ng45dsjIg==} + engines: {node: '>=22'} + '@aklinker1/rollup-plugin-visualizer@5.12.0': resolution: {integrity: sha512-X24LvEGw6UFmy0lpGJDmXsMyBD58XmX1bbwsaMLhNoM+UMQfQ3b2RtC+nz4b/NoRK5r6QJSKJHBNVeUdwqybaQ==} engines: {node: '>=14'} @@ -584,14 +584,14 @@ packages: engines: {node: '>= 0.10.4'} hasBin: true - '@emnapi/core@1.11.1': - resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/core@1.10.0': + resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/runtime@1.11.1': - resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.10.0': + resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/wasi-threads@1.2.2': - resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} '@esbuild/aix-ppc64@0.27.7': resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} @@ -1204,14 +1204,14 @@ packages: '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} - '@napi-rs/wasm-runtime@1.1.6': - resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@openrouter/ai-sdk-provider@2.9.1': - resolution: {integrity: sha512-okgq07Vdkro4CB5INbfhwa0e6VR1HS7sidNcfHN/MeXLJvX1JmQCff/vem6tcxwT9r1avyFrXSlfv9B28D/Pag==} + '@openrouter/ai-sdk-provider@2.10.0': + resolution: {integrity: sha512-FMsAEjLUt5pWuRE2LDC/LCvVrFjLlrEzUITH5+5SZtfq7KZ2wrOHjQVxzz92sju8S9ltpzW87CLW8/b0oBXVCw==} engines: {node: '>=18'} peerDependencies: ai: ^6.0.0 @@ -1385,8 +1385,8 @@ packages: resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} engines: {node: '>=14'} - '@oxc-project/types@0.139.0': - resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} + '@oxc-project/types@0.132.0': + resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} '@pinojs/redact@0.4.0': resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} @@ -1426,14 +1426,17 @@ packages: '@protobufjs/float@1.0.2': resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + '@protobufjs/inquire@1.1.2': + resolution: {integrity: sha512-pa0vFRuws4wkvaXKK1uXZMAwAX4/t8ANaJo45iw/oQHNQ9q5xUzwgFmVJGXiga2BeN+zpX7Vf9vmsiIa2J+MUw==} + '@protobufjs/path@1.1.2': resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} '@protobufjs/pool@1.1.0': resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - '@protobufjs/utf8@1.1.2': - resolution: {integrity: sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==} + '@protobufjs/utf8@1.1.1': + resolution: {integrity: sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==} '@radix-ui/number@1.1.2': resolution: {integrity: sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==} @@ -1783,91 +1786,91 @@ packages: '@remusao/trie@2.1.0': resolution: {integrity: sha512-Er3Q8q0/2OcCJPQYJOPLmCuqO0wu7cav3SPtpjlxSbjFi1x+A1pZkkLD6c9q2rGEkGW/tkrRzfrhNMt8VQjzXg==} - '@rolldown/binding-android-arm64@1.1.5': - resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} + '@rolldown/binding-android-arm64@1.0.2': + resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.1.5': - resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} + '@rolldown/binding-darwin-arm64@1.0.2': + resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.1.5': - resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} + '@rolldown/binding-darwin-x64@1.0.2': + resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.1.5': - resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} + '@rolldown/binding-freebsd-x64@1.0.2': + resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': - resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.1.5': - resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} + '@rolldown/binding-linux-arm64-gnu@1.0.2': + resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-arm64-musl@1.1.5': - resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} + '@rolldown/binding-linux-arm64-musl@1.0.2': + resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - '@rolldown/binding-linux-ppc64-gnu@1.1.5': - resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} + '@rolldown/binding-linux-ppc64-gnu@1.0.2': + resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] - '@rolldown/binding-linux-s390x-gnu@1.1.5': - resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} + '@rolldown/binding-linux-s390x-gnu@1.0.2': + resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] - '@rolldown/binding-linux-x64-gnu@1.1.5': - resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} + '@rolldown/binding-linux-x64-gnu@1.0.2': + resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-linux-x64-musl@1.1.5': - resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} + '@rolldown/binding-linux-x64-musl@1.0.2': + resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - '@rolldown/binding-openharmony-arm64@1.1.5': - resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} + '@rolldown/binding-openharmony-arm64@1.0.2': + resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.1.5': - resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} + '@rolldown/binding-wasm32-wasi@1.0.2': + resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.1.5': - resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} + '@rolldown/binding-win32-arm64-msvc@1.0.2': + resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.1.5': - resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} + '@rolldown/binding-win32-x64-msvc@1.0.2': + resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -2140,8 +2143,8 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tybys/wasm-util@0.10.3': - resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} + '@tybys/wasm-util@0.10.2': + resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -2179,9 +2182,6 @@ packages: '@types/node@26.1.0': resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==} - '@types/node@26.1.1': - resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} - '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: @@ -2196,6 +2196,9 @@ packages: '@types/turndown@5.0.6': resolution: {integrity: sha512-ru00MoyeeouE5BX4gRL+6m/BsDfbRayOskWqUvh7CLGW+UXxHQItqALa38kKnOiZPqJrtzJUgAC2+F0rL1S4Pg==} + '@types/webextension-polyfill@0.10.7': + resolution: {integrity: sha512-10ql7A0qzBmFB+F+qAke/nP1PIonS0TXZAOMVOxEUsm+lGSW6uwVcISFNa0I4Oyj0884TZVWGGMIWeXOVSNFHw==} + '@types/webextension-polyfill@0.12.5': resolution: {integrity: sha512-uKSAv6LgcVdINmxXMKBuVIcg/2m5JZugoZO8x20g7j2bXJkPIl/lVGQcDlbV+aXAiTyXT2RA5U5mI4IGCDMQeg==} @@ -2260,17 +2263,20 @@ packages: '@vitest/utils@4.1.9': resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==} - '@webext-core/fake-browser@1.5.2': - resolution: {integrity: sha512-nkDQwOJ23X5Q7cEtN6LRuBtVFf1KVOFi5GoQAro0lzqdh59F5E+K350j1isbnqYbzsXRh1NJtboudIcHfZtvOQ==} + '@webext-core/fake-browser@1.5.0': + resolution: {integrity: sha512-dq5LWtr3XjB9B9LSgEZo4JUEmwBGAxa5CHbn7CvCC2jf4SOG0iBD20QSD3dpvcHBXTIHCVbB4bsDVFzlXMnYww==} '@webext-core/isolated-element@1.1.5': resolution: {integrity: sha512-4m6oP8Vzm/68YO1QmkUOZqqUcmyBtA53tji2g00/nYXE3E3IceYgeub7eIqvXDV2Z7xU6cm6qO1IMt4XFVwtvQ==} - '@webext-core/match-patterns@1.1.0': - resolution: {integrity: sha512-vebVVbcOyva4jyvljIzRJwjFi/OKMLr96LIIxiPeXfA38gE4Z3+H6Y9DwRmn7pWErJGNNHU6XOhOb5ZwicGs7Q==} + '@webext-core/match-patterns@1.0.3': + resolution: {integrity: sha512-NY39ACqCxdKBmHgw361M9pfJma8e4AZo20w9AY+5ZjIj1W2dvXC8J31G5fjfOGbulW9w4WKpT8fPooi0mLkn9A==} - '@wxt-dev/browser@0.1.43': - resolution: {integrity: sha512-RMB0zgfe7uuiTp18s9taLeKXoOCLBV418797dnEggiMWmM1JDJekiLtlvrNc6QeZg+amDBy2/KKYuQB2kh/K9A==} + '@workflow/serde@4.1.0': + resolution: {integrity: sha512-pav4F2BoirECWR7Nf1TKt+2eETcBj7jj4cBefQ8VXQCA6NPkaKeLfj/zMgi+3zYV5ZIBT4GuUiphsj0/b9hPQQ==} + + '@wxt-dev/browser@0.1.42': + resolution: {integrity: sha512-BSb0H09i4+0WlqFnN7LnZW0M6uCPH9KndciGx7mwOFKRVjNCorqwPk3hiVB58yQ+cyJNpDvYWL6IoPBxvP8qEA==} '@wxt-dev/browser@0.2.2': resolution: {integrity: sha512-QqLOdEE1UQxieRuMbv9rwczD+xUv45fy+i5gw1eo+/vlPtGX+/rBd6tlIfLFCU3xAN/UTH57bxqOeU2IZg7dEg==} @@ -2290,11 +2296,21 @@ packages: webextension-polyfill: '*' wxt: '>=0.20.0' + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + acorn@8.17.0: resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} engines: {node: '>=0.4.0'} @@ -2327,9 +2343,9 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ai@6.0.208: - resolution: {integrity: sha512-STz+AaZqJ4ZjH7UkpXkbHx+bjgIDOsE8fIUoZjkZ2whoZcfVmG9K/TqEKouJZ03SuZuD7lagntlU3zBhAEkRpQ==} - engines: {node: '>=18'} + ai@7.0.4: + resolution: {integrity: sha512-mZub080RWRxpWg8OY56KVnI3AoMVniccSWG+dwVb3nH81+GiNMDYBIdP41RLUivLpmU49pB7ssD7tvfIUaSaCA==} + engines: {node: '>=22'} peerDependencies: zod: 4.3.6 @@ -2433,16 +2449,12 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boolbase@2.0.0: - resolution: {integrity: sha512-DkVaaQHymRhpYEYo9x1oo7Q7B0Y6KJUsjm3c9eTyFDby4MHLBTwZ6ZDWBel5zrYxj1WsZgC5oLpiz+93MluXeA==} - engines: {node: '>=20.19.0'} - boxen@8.0.1: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} - brace-expansion@1.1.16: - resolution: {integrity: sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==} + brace-expansion@1.1.15: + resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} brace-expansion@5.0.6: resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} @@ -2654,10 +2666,6 @@ packages: css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} - css-select@7.0.0: - resolution: {integrity: sha512-snmjEVXy+1LnwXdxhYvTMj1d9tOh4HxkA1YmoayVBeeyR2C14Pum7fcxJIm4SswYspVy866eYNwlH6xC3/VH5g==} - engines: {node: '>=20.19.0'} - css-tree@3.2.1: resolution: {integrity: sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -2666,10 +2674,6 @@ packages: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} - css-what@8.0.0: - resolution: {integrity: sha512-DH0Bqq3DNp5tdOReuNyAA+Ev4Y2GS5FMbZpeTLP6C4CDi0h5nL0BmUPChXw3o/qbHLDWHl49sbNqQVY7bMSDdw==} - engines: {node: '>=20.19.0'} - css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -2771,32 +2775,16 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dom-serializer@3.1.1: - resolution: {integrity: sha512-4MEa38/QexBob6gFNwu+EGdWvhJ1OKuNwdYY3Y3NyeWDQfnGeDYQUDfIRzWu5B5gsv03so2Uxd28YC6zrsx3Lw==} - engines: {node: '>=20.19.0'} - domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - domelementtype@3.0.0: - resolution: {integrity: sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==} - engines: {node: '>=20.19.0'} - domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domhandler@6.0.1: - resolution: {integrity: sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==} - engines: {node: '>=20.19.0'} - domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - domutils@4.0.2: - resolution: {integrity: sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==} - engines: {node: '>=20.19.0'} - dot-prop@9.0.0: resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} engines: {node: '>=18'} @@ -2855,9 +2843,6 @@ packages: es-module-lexer@2.2.0: resolution: {integrity: sha512-3lGxdTXCLfe1MYfTz1y2ksAAUM4NAOP6rPEjxGJVKO7TZ5+tvHCaQWGpC4Y3IXvW3ece0Cz1cIP4FWBxOnGCTQ==} - es-module-lexer@2.3.1: - resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} - es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -2961,8 +2946,8 @@ packages: resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} - exsolve@1.1.0: - resolution: {integrity: sha512-D+42+T12DdIlJM3uepa55qGiL3sYdLBOxIl2ifQCzCHz4c7eiolaHsi3BIqEr7JxBzxv2pYZQX9kw16ziMcEmw==} + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -3012,8 +2997,8 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - filesize@11.0.22: - resolution: {integrity: sha512-RlCVs9CY+oSsRnNZn95J9vDXjNjOwddKyTFjOYtA4yxYVIxBnwiVVGJX+TFhsmu3uUf81JDGyijtYL9xgawlTw==} + filesize@11.0.17: + resolution: {integrity: sha512-oHLTvMLw6imZUl1se/RBQrFlyy50nXce4sU7yGR6Qc0JgCwqnfiFsAnEwotdGmfKLD7SArGUk2/5STU0k8LOBQ==} engines: {node: '>= 10.8.0'} find-up@5.0.0: @@ -3073,8 +3058,8 @@ packages: resolution: {integrity: sha512-EstfdRQu04tM+SXR3pBmc0+GYKZj9FMHAvA8XAbKPzTvUeHP0v1/F3aQ10bG7EluR6phvFqsvn5Z7SvYJsEgNw==} hasBin: true - gaxios@7.1.6: - resolution: {integrity: sha512-aIQ0QL8Or8vsUhHyXGA6AohOFRrAAiHhrvsAG6myzcSlfhxSXtnwXA/pRuQTilFgjhLe30swK5rg1d7E1f8Izw==} + gaxios@7.2.0: + resolution: {integrity: sha512-CUVb4wcYe+771XevyH6HtGmXFAGGKkIC3kswAP8Z1JCe0j80JMaTPZH930DWFrvo0atjh18Arc0pEyUCWa5bfg==} engines: {node: '>=18'} gcp-metadata@8.1.2: @@ -3096,8 +3081,8 @@ packages: get-port-please@3.2.0: resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} - giget@3.3.0: - resolution: {integrity: sha512-gzi2D96p+AMfDcmJHGDj3KJ9NRiwvlFAU5yfa3ROwWZmFUjX4P43x3BcyRaOMMLto1vUo7C+86+MFhYTl6Ryiw==} + giget@3.2.0: + resolution: {integrity: sha512-GvHTWcykIR/fP8cj8dMpuMMkvaeJfPvYnhq0oW+chSeIr+ldX21ifU2Ms6KBoyKZQZmVaUAAhQ2EZ68KJF8a7A==} hasBin: true glob-parent@6.0.2: @@ -3198,8 +3183,8 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-in-the-middle@3.3.1: - resolution: {integrity: sha512-0rymlHSFLwZ0ixx8DaQkoIyZojJPY2a0K2nEYslhKJ6jIYO/m0IcCb7iQsFPmS7WmKwISZiIrv5Icstrw/CmqA==} + import-in-the-middle@3.0.1: + resolution: {integrity: sha512-pYkiyXVL2Mf3pozdlDGV6NAObxQx13Ae8knZk1UJRJ6uRW/ZRmTGHlQYtrsSl7ubuE5F8CD1z+s1n4RHNuTtuA==} engines: {node: '>=18'} import-meta-resolve@4.2.0: @@ -3530,8 +3515,8 @@ packages: resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - linkedom@0.18.13: - resolution: {integrity: sha512-ES/o9qotMpzpN2MHs+Iq/JcVoOj8Fa5wiQYrTdFpvAnwXL0g66XHHUc9WUMk6nAlBtGsFQ24ne+SYnvnaQ2FSw==} + linkedom@0.18.12: + resolution: {integrity: sha512-jalJsOwIKuQJSeTvsgzPe9iJzyfVaEJiEXl+25EkKevsULHvMJzpNqwvj1jOESWdmgKDiXObyjOYwlUqG7wo1Q==} engines: {node: '>=16'} peerDependencies: canvas: '>= 2' @@ -3544,8 +3529,8 @@ packages: engines: {node: '>=16'} hasBin: true - listr2@10.2.2: - resolution: {integrity: sha512-JtNtbZj8q5BnDMR7trpwvwk3RIrANtIVzEUm8w7amp6xelLgyuq+4WZoTH913XaQAoH/cNdYhaNzBPA2U3xbDw==} + listr2@10.2.1: + resolution: {integrity: sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q==} engines: {node: '>=22.13.0'} load-tsconfig@0.2.5: @@ -3686,8 +3671,8 @@ packages: resolution: {integrity: sha512-yTW+2okrElHiH4fsiz/+/zc0EDo9BDDoC3iKk8dpv1GeRc9nUWzUZHx6TofMWErchhUQR8hY9/Eu1Uja9x1nqA==} engines: {node: '>=20.17'} - nanoid@3.3.16: - resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -3737,12 +3722,8 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nth-check@3.0.1: - resolution: {integrity: sha512-GX0gsdbGVCgnRgbeGaubfjpBXyYRWOOCVeYh08bSQvDZqxz5ndXs1OTfAt/h36G1xvI94YIspsI0sVFqAV9+RQ==} - engines: {node: '>=20.19.0'} - - nypm@0.6.8: - resolution: {integrity: sha512-Q9K4Diu6l5u6xJQogeFSs/zKtyMSgFKFtRQV+tHP4kL7KPm2grpBU0dFIwFaXwNxN0MtfKWc43VpCugAa+LPsw==} + nypm@0.6.6: + resolution: {integrity: sha512-vRyr0r4cbBapw07Xw8xrj9Teq3o7MUD35rSaTcanDbW+aK2XHDgJFiU6ZTj2GBw7Q12ysdsyFss+Vdz4hQ0Y6Q==} engines: {node: '>=18'} hasBin: true @@ -3862,10 +3843,6 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - picomatch@4.0.5: - resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} - engines: {node: '>=12'} - pino-abstract-transport@2.0.0: resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} @@ -3921,8 +3898,8 @@ packages: yaml: optional: true - postcss@8.5.19: - resolution: {integrity: sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} powershell-utils@0.1.0: @@ -3933,8 +3910,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.9.3: - resolution: {integrity: sha512-HWmu+K+zvHNpaMfSnYeqdqrDbR16cuIXaPx8WoHaviQkDJh1/0BNtOZmHVQI5jc3wXv0H1yXc9wjvFdXh+n3hQ==} + prettier@3.9.5: + resolution: {integrity: sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg==} engines: {node: '>=14'} hasBin: true @@ -3959,8 +3936,8 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - protobufjs@7.6.5: - resolution: {integrity: sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw==} + protobufjs@7.6.2: + resolution: {integrity: sha512-N9EiLovGEQOJSPF26Ij7qUGvahfEnq0eeYZ02aigIedkmz1qZSwjnP9SBITHJuF/6MYbIW4HDN8zdYjsjqJKXQ==} engines: {node: '>=12.0.0'} publish-browser-extension@4.0.5: @@ -4088,8 +4065,8 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rolldown@1.1.5: - resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} + rolldown@1.0.2: + resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -4221,8 +4198,8 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string-width@8.2.2: - resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==} + string-width@8.2.1: + resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} engines: {node: '>=20'} string_decoder@1.1.1: @@ -4477,42 +4454,13 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unplugin-utils@0.3.2: - resolution: {integrity: sha512-xVToRh2CTmLk2HnEG7ac4rl1MJTT3RFkpS8B++/SnB0kXvuaavD+n3m/vrzyWQOdJNSZQACnbz01pnppbwV5BA==} + unplugin-utils@0.3.1: + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} engines: {node: '>=20.19.0'} - unplugin@3.3.0: - resolution: {integrity: sha512-qa66K+crbfyE6JK10GjvbJeRrOsuC/JpbnHctfyp/i4oBTxWOzJfRZyDiOk1PtErMFRu8JhsU/wPvOdBNWe5Rg==} + unplugin@3.0.0: + resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - '@farmfe/core': '*' - '@rspack/core': '*' - bun-types-no-globals: '*' - esbuild: '*' - rolldown: '*' - rollup: '*' - unloader: '*' - vite: '*' - webpack: '*' - peerDependenciesMeta: - '@farmfe/core': - optional: true - '@rspack/core': - optional: true - bun-types-no-globals: - optional: true - esbuild: - optional: true - rolldown: - optional: true - rollup: - optional: true - unloader: - optional: true - vite: - optional: true - webpack: - optional: true upath@3.0.7: resolution: {integrity: sha512-VjBBquch25nUGMuVBpOb2Cj3gc8Kb7lJBqbsXR/0anZ/5uJsL14Kpth9JKfnBsckxCfgIp6hPvcvvmZ97R9X7g==} @@ -4558,13 +4506,13 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - vite@8.1.4: - resolution: {integrity: sha512-bTT9PsdWO+MQMNG9ZXIP/qM9wGh37DFxTV/sPq9cFpHr3w4jkgef032PkAL9jAqhk3Nz8NQw3O8n6/xFkqO4QQ==} + vite@8.0.14: + resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.3.0 + '@vitejs/devtools': ^0.1.18 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -4866,68 +4814,69 @@ snapshots: '@adobe/css-tools@4.4.4': {} - '@ai-sdk/anthropic@3.0.85(zod@4.3.6)': + '@ai-sdk/anthropic@4.0.1(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.3.6) + '@ai-sdk/provider': 4.0.0 + '@ai-sdk/provider-utils': 5.0.1(zod@4.3.6) zod: 4.3.6 - '@ai-sdk/gateway@3.0.133(zod@4.3.6)': + '@ai-sdk/gateway@4.0.4(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.3.6) + '@ai-sdk/provider': 4.0.0 + '@ai-sdk/provider-utils': 5.0.1(zod@4.3.6) '@vercel/oidc': 3.2.0 zod: 4.3.6 - '@ai-sdk/google-vertex@4.0.148(zod@4.3.6)': + '@ai-sdk/google-vertex@5.0.2(zod@4.3.6)': dependencies: - '@ai-sdk/anthropic': 3.0.85(zod@4.3.6) - '@ai-sdk/google': 3.0.83(zod@4.3.6) - '@ai-sdk/openai-compatible': 2.0.51(zod@4.3.6) - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.3.6) + '@ai-sdk/anthropic': 4.0.1(zod@4.3.6) + '@ai-sdk/google': 4.0.2(zod@4.3.6) + '@ai-sdk/openai-compatible': 3.0.1(zod@4.3.6) + '@ai-sdk/provider': 4.0.0 + '@ai-sdk/provider-utils': 5.0.1(zod@4.3.6) google-auth-library: 10.9.0 zod: 4.3.6 transitivePeerDependencies: - supports-color - '@ai-sdk/google@3.0.83(zod@4.3.6)': + '@ai-sdk/google@4.0.2(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.3.6) + '@ai-sdk/provider': 4.0.0 + '@ai-sdk/provider-utils': 5.0.1(zod@4.3.6) zod: 4.3.6 - '@ai-sdk/openai-compatible@2.0.51(zod@4.3.6)': + '@ai-sdk/openai-compatible@3.0.1(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.3.6) + '@ai-sdk/provider': 4.0.0 + '@ai-sdk/provider-utils': 5.0.1(zod@4.3.6) zod: 4.3.6 - '@ai-sdk/openai@3.0.74(zod@4.3.6)': + '@ai-sdk/openai@4.0.2(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.3.6) + '@ai-sdk/provider': 4.0.0 + '@ai-sdk/provider-utils': 5.0.1(zod@4.3.6) zod: 4.3.6 - '@ai-sdk/provider-utils@4.0.30(zod@4.3.6)': + '@ai-sdk/provider-utils@4.0.33(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.10 + '@ai-sdk/provider': 3.0.12 '@standard-schema/spec': 1.1.0 eventsource-parser: 3.1.0 zod: 4.3.6 - '@ai-sdk/provider-utils@4.0.33(zod@4.3.6)': + '@ai-sdk/provider-utils@5.0.1(zod@4.3.6)': dependencies: - '@ai-sdk/provider': 3.0.12 + '@ai-sdk/provider': 4.0.0 '@standard-schema/spec': 1.1.0 + '@workflow/serde': 4.1.0 eventsource-parser: 3.1.0 zod: 4.3.6 - '@ai-sdk/provider@3.0.10': + '@ai-sdk/provider@3.0.12': dependencies: json-schema: 0.4.0 - '@ai-sdk/provider@3.0.12': + '@ai-sdk/provider@4.0.0': dependencies: json-schema: 0.4.0 @@ -5031,18 +4980,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@emnapi/core@1.11.1': + '@emnapi/core@1.10.0': dependencies: - '@emnapi/wasi-threads': 1.2.2 + '@emnapi/wasi-threads': 1.2.1 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.1': + '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.2.2': + '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true @@ -5312,7 +5261,7 @@ snapshots: dependencies: lodash.camelcase: 4.3.0 long: 5.3.2 - protobufjs: 7.6.5 + protobufjs: 7.6.2 yargs: 17.7.3 '@hono/node-server@2.0.6(hono@4.12.25)': @@ -5493,16 +5442,16 @@ snapshots: '@mixmark-io/domino@2.2.0': {} - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.3 + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@tybys/wasm-util': 0.10.2 optional: true - '@openrouter/ai-sdk-provider@2.9.1(ai@6.0.208(zod@4.3.6))(zod@4.3.6)': + '@openrouter/ai-sdk-provider@2.10.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6)': dependencies: - ai: 6.0.208(zod@4.3.6) + ai: 7.0.4(zod@4.3.6) zod: 4.3.6 '@opentelemetry/api-logs@0.219.0': @@ -5636,7 +5585,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/api-logs': 0.219.0 - import-in-the-middle: 3.3.1 + import-in-the-middle: 3.0.1 require-in-the-middle: 8.0.1 transitivePeerDependencies: - supports-color @@ -5743,7 +5692,7 @@ snapshots: '@opentelemetry/semantic-conventions@1.41.1': {} - '@oxc-project/types@0.139.0': {} + '@oxc-project/types@0.132.0': {} '@pinojs/redact@0.4.0': {} @@ -5777,11 +5726,13 @@ snapshots: '@protobufjs/float@1.0.2': {} + '@protobufjs/inquire@1.1.2': {} + '@protobufjs/path@1.1.2': {} '@protobufjs/pool@1.1.0': {} - '@protobufjs/utf8@1.1.2': {} + '@protobufjs/utf8@1.1.1': {} '@radix-ui/number@1.1.2': {} @@ -6112,53 +6063,53 @@ snapshots: '@remusao/trie@2.1.0': {} - '@rolldown/binding-android-arm64@1.1.5': + '@rolldown/binding-android-arm64@1.0.2': optional: true - '@rolldown/binding-darwin-arm64@1.1.5': + '@rolldown/binding-darwin-arm64@1.0.2': optional: true - '@rolldown/binding-darwin-x64@1.1.5': + '@rolldown/binding-darwin-x64@1.0.2': optional: true - '@rolldown/binding-freebsd-x64@1.1.5': + '@rolldown/binding-freebsd-x64@1.0.2': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.5': + '@rolldown/binding-linux-arm64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.5': + '@rolldown/binding-linux-arm64-musl@1.0.2': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.5': + '@rolldown/binding-linux-ppc64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-s390x-gnu@1.1.5': + '@rolldown/binding-linux-s390x-gnu@1.0.2': optional: true - '@rolldown/binding-linux-x64-gnu@1.1.5': + '@rolldown/binding-linux-x64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-x64-musl@1.1.5': + '@rolldown/binding-linux-x64-musl@1.0.2': optional: true - '@rolldown/binding-openharmony-arm64@1.1.5': + '@rolldown/binding-openharmony-arm64@1.0.2': optional: true - '@rolldown/binding-wasm32-wasi@1.1.5': + '@rolldown/binding-wasm32-wasi@1.0.2': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@emnapi/core': 1.10.0 + '@emnapi/runtime': 1.10.0 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.1.5': + '@rolldown/binding-win32-arm64-msvc@1.0.2': optional: true - '@rolldown/binding-win32-x64-msvc@1.1.5': + '@rolldown/binding-win32-x64-msvc@1.0.2': optional: true '@rolldown/pluginutils@1.0.0-rc.7': {} @@ -6316,12 +6267,12 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.2 '@tailwindcss/oxide-win32-x64-msvc': 4.3.2 - '@tailwindcss/vite@4.3.2(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tailwindcss/vite@4.3.2(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.2 '@tailwindcss/oxide': 4.3.2 tailwindcss: 4.3.2 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) '@testing-library/dom@10.4.1': dependencies: @@ -6357,7 +6308,7 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 - '@tybys/wasm-util@0.10.3': + '@tybys/wasm-util@0.10.2': dependencies: tslib: 2.8.1 optional: true @@ -6398,10 +6349,6 @@ snapshots: dependencies: undici-types: 8.3.0 - '@types/node@26.1.1': - dependencies: - undici-types: 8.3.0 - '@types/react-dom@19.2.3(@types/react@19.2.17)': dependencies: '@types/react': 19.2.17 @@ -6414,6 +6361,8 @@ snapshots: '@types/turndown@5.0.6': {} + '@types/webextension-polyfill@0.10.7': {} + '@types/webextension-polyfill@0.12.5': {} '@types/whatwg-mimetype@3.0.2': {} @@ -6424,10 +6373,10 @@ snapshots: '@vercel/oidc@3.2.0': {} - '@vitejs/plugin-react@6.0.1(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitejs/plugin-react@6.0.1(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.7 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) '@vitest/coverage-v8@4.1.9(vitest@4.1.9)': dependencies: @@ -6441,7 +6390,7 @@ snapshots: obug: 2.1.3 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + vitest: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) '@vitest/expect@4.1.9': dependencies: @@ -6452,21 +6401,21 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitest/mocker@4.1.9(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) - '@vitest/mocker@4.1.9(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': + '@vitest/mocker@4.1.9(vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) '@vitest/pretty-format@4.1.9': dependencies: @@ -6492,18 +6441,20 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.1.0 - '@webext-core/fake-browser@1.5.2': + '@webext-core/fake-browser@1.5.0': dependencies: - '@types/webextension-polyfill': 0.12.5 + '@types/webextension-polyfill': 0.10.7 lodash.merge: 4.6.2 '@webext-core/isolated-element@1.1.5': dependencies: is-potential-custom-element-name: 1.0.1 - '@webext-core/match-patterns@1.1.0': {} + '@webext-core/match-patterns@1.0.3': {} - '@wxt-dev/browser@0.1.43': + '@workflow/serde@4.1.0': {} + + '@wxt-dev/browser@0.1.42': dependencies: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 @@ -6513,30 +6464,36 @@ snapshots: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 - '@wxt-dev/module-react@1.2.2(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))(wxt@0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0))': + '@wxt-dev/module-react@1.2.2(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))(wxt@0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0))': dependencies: - '@vitejs/plugin-react': 6.0.1(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) - wxt: 0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0) + '@vitejs/plugin-react': 6.0.1(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + wxt: 0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0) transitivePeerDependencies: - '@rolldown/plugin-babel' - babel-plugin-react-compiler '@wxt-dev/storage@1.2.8': dependencies: - '@wxt-dev/browser': 0.1.43 + '@wxt-dev/browser': 0.1.42 async-mutex: 0.5.0 dequal: 2.0.3 - '@wxt-dev/webextension-polyfill@1.0.0(webextension-polyfill@0.12.0)(wxt@0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0))': + '@wxt-dev/webextension-polyfill@1.0.0(webextension-polyfill@0.12.0)(wxt@0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0))': dependencies: webextension-polyfill: 0.12.0 - wxt: 0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0) + wxt: 0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0) + + acorn-import-attributes@1.9.5(acorn@8.17.0): + dependencies: + acorn: 8.17.0 acorn-jsx@5.3.2(acorn@8.17.0): dependencies: acorn: 8.17.0 + acorn@8.16.0: {} + acorn@8.17.0: {} addons-linter@10.7.0(jiti@2.7.0): @@ -6586,12 +6543,11 @@ snapshots: agent-base@7.1.4: {} - ai@6.0.208(zod@4.3.6): + ai@7.0.4(zod@4.3.6): dependencies: - '@ai-sdk/gateway': 3.0.133(zod@4.3.6) - '@ai-sdk/provider': 3.0.10 - '@ai-sdk/provider-utils': 4.0.30(zod@4.3.6) - '@opentelemetry/api': 1.9.1 + '@ai-sdk/gateway': 4.0.4(zod@4.3.6) + '@ai-sdk/provider': 4.0.0 + '@ai-sdk/provider-utils': 5.0.1(zod@4.3.6) zod: 4.3.6 ajv@6.15.0: @@ -6683,8 +6639,6 @@ snapshots: boolbase@1.0.0: {} - boolbase@2.0.0: {} - boxen@8.0.1: dependencies: ansi-align: 3.0.1 @@ -6696,7 +6650,7 @@ snapshots: widest-line: 5.0.0 wrap-ansi: 9.0.2 - brace-expansion@1.1.16: + brace-expansion@1.1.15: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 @@ -6730,8 +6684,8 @@ snapshots: confbox: 0.2.4 defu: 6.1.7 dotenv: 17.4.2 - exsolve: 1.1.0 - giget: 3.3.0 + exsolve: 1.0.8 + giget: 3.2.0 jiti: 2.7.0 ohash: 2.0.11 pathe: 2.0.3 @@ -6819,7 +6773,7 @@ snapshots: cli-truncate@5.2.0: dependencies: slice-ansi: 8.0.0 - string-width: 8.2.2 + string-width: 8.2.1 cli-width@4.1.0: {} @@ -6913,14 +6867,6 @@ snapshots: domutils: 3.2.2 nth-check: 2.1.1 - css-select@7.0.0: - dependencies: - boolbase: 2.0.0 - css-what: 8.0.0 - domhandler: 6.0.1 - domutils: 4.0.2 - nth-check: 3.0.1 - css-tree@3.2.1: dependencies: mdn-data: 2.27.1 @@ -6928,8 +6874,6 @@ snapshots: css-what@6.2.2: {} - css-what@8.0.0: {} - css.escape@1.5.1: {} cssom@0.5.0: {} @@ -7000,36 +6944,18 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 - dom-serializer@3.1.1: - dependencies: - domelementtype: 3.0.0 - domhandler: 6.0.1 - entities: 8.0.0 - domelementtype@2.3.0: {} - domelementtype@3.0.0: {} - domhandler@5.0.3: dependencies: domelementtype: 2.3.0 - domhandler@6.0.1: - dependencies: - domelementtype: 3.0.0 - domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - domutils@4.0.2: - dependencies: - dom-serializer: 3.1.1 - domelementtype: 3.0.0 - domhandler: 6.0.1 - dot-prop@9.0.0: dependencies: type-fest: 4.41.0 @@ -7076,8 +7002,6 @@ snapshots: es-module-lexer@2.2.0: {} - es-module-lexer@2.3.1: {} - es6-error@4.1.1: {} esbuild@0.27.7: @@ -7238,7 +7162,7 @@ snapshots: expect-type@1.4.0: {} - exsolve@1.1.0: {} + exsolve@1.0.8: {} extend@3.0.2: {} @@ -7268,10 +7192,6 @@ snapshots: optionalDependencies: picomatch: 4.0.4 - fdir@6.5.0(picomatch@4.0.5): - optionalDependencies: - picomatch: 4.0.5 - fetch-blob@3.2.0: dependencies: node-domexception: 1.0.0 @@ -7281,7 +7201,7 @@ snapshots: dependencies: flat-cache: 4.0.1 - filesize@11.0.22: {} + filesize@11.0.17: {} find-up@5.0.0: dependencies: @@ -7347,7 +7267,7 @@ snapshots: which: 4.0.0 winreg: 0.0.12 - gaxios@7.1.6: + gaxios@7.2.0: dependencies: extend: 3.0.2 https-proxy-agent: 7.0.6 @@ -7357,7 +7277,7 @@ snapshots: gcp-metadata@8.1.2: dependencies: - gaxios: 7.1.6 + gaxios: 7.2.0 google-logging-utils: 1.1.3 json-bigint: 1.0.0 transitivePeerDependencies: @@ -7371,7 +7291,7 @@ snapshots: get-port-please@3.2.0: {} - giget@3.3.0: {} + giget@3.2.0: {} glob-parent@6.0.2: dependencies: @@ -7395,7 +7315,7 @@ snapshots: dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 7.1.6 + gaxios: 7.2.0 gcp-metadata: 8.1.2 google-logging-utils: 1.1.3 jws: 4.0.1 @@ -7476,10 +7396,11 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@3.3.1: + import-in-the-middle@3.0.1: dependencies: + acorn: 8.17.0 + acorn-import-attributes: 1.9.5(acorn@8.17.0) cjs-module-lexer: 2.2.0 - es-module-lexer: 2.3.1 module-details-from-path: 1.0.4 import-meta-resolve@4.2.0: {} @@ -7764,9 +7685,9 @@ snapshots: lines-and-columns@2.0.4: {} - linkedom@0.18.13: + linkedom@0.18.12: dependencies: - css-select: 7.0.0 + css-select: 5.2.2 cssom: 0.5.0 html-escaper: 3.0.3 htmlparser2: 10.1.0 @@ -7776,7 +7697,7 @@ snapshots: dependencies: commander: 10.0.1 - listr2@10.2.2: + listr2@10.2.1: dependencies: cli-truncate: 5.2.0 eventemitter3: 5.0.4 @@ -7872,7 +7793,7 @@ snapshots: minimatch@3.1.5: dependencies: - brace-expansion: 1.1.16 + brace-expansion: 1.1.15 minimist@1.2.8: {} @@ -7880,7 +7801,7 @@ snapshots: mlly@1.8.2: dependencies: - acorn: 8.17.0 + acorn: 8.16.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.4 @@ -7906,7 +7827,7 @@ snapshots: nano-spawn@2.1.0: {} - nanoid@3.3.16: {} + nanoid@3.3.15: {} nanoid@5.1.16: {} @@ -7947,11 +7868,7 @@ snapshots: dependencies: boolbase: 1.0.0 - nth-check@3.0.1: - dependencies: - boolbase: 2.0.0 - - nypm@0.6.8: + nypm@0.6.6: dependencies: citty: 0.2.2 pathe: 2.0.3 @@ -7969,11 +7886,11 @@ snapshots: ohash@2.0.11: {} - ollama-ai-provider-v2@3.6.0(ai@6.0.208(zod@4.3.6))(zod@4.3.6): + ollama-ai-provider-v2@3.6.0(ai@7.0.4(zod@4.3.6))(zod@4.3.6): dependencies: '@ai-sdk/provider': 3.0.12 '@ai-sdk/provider-utils': 4.0.33(zod@4.3.6) - ai: 6.0.208(zod@4.3.6) + ai: 7.0.4(zod@4.3.6) zod: 4.3.6 on-exit-leak-free@2.1.2: {} @@ -8081,8 +7998,6 @@ snapshots: picomatch@4.0.4: {} - picomatch@4.0.5: {} - pino-abstract-transport@2.0.0: dependencies: split2: 4.2.0 @@ -8132,7 +8047,7 @@ snapshots: pkg-types@2.3.1: dependencies: confbox: 0.2.4 - exsolve: 1.1.0 + exsolve: 1.0.8 pathe: 2.0.3 playwright-core@1.61.1: {} @@ -8143,18 +8058,18 @@ snapshots: optionalDependencies: fsevents: 2.3.2 - postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.19)(tsx@4.22.4)(yaml@2.9.0): + postcss-load-config@6.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(yaml@2.9.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.7.0 - postcss: 8.5.19 + postcss: 8.5.15 tsx: 4.22.4 yaml: 2.9.0 - postcss@8.5.19: + postcss@8.5.15: dependencies: - nanoid: 3.3.16 + nanoid: 3.3.15 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -8162,7 +8077,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.9.3: {} + prettier@3.9.5: {} pretty-format@27.5.1: dependencies: @@ -8185,7 +8100,7 @@ snapshots: proto-list@1.2.4: {} - protobufjs@7.6.5: + protobufjs@7.6.2: dependencies: '@protobufjs/aspromise': 1.1.2 '@protobufjs/base64': 1.1.2 @@ -8193,10 +8108,11 @@ snapshots: '@protobufjs/eventemitter': 1.1.1 '@protobufjs/fetch': 1.1.1 '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.2 '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.2 - '@types/node': 26.1.1 + '@protobufjs/utf8': 1.1.1 + '@types/node': 26.1.0 long: 5.3.2 publish-browser-extension@4.0.5: @@ -8207,7 +8123,7 @@ snapshots: form-data-encoder: 4.1.0 formdata-node: 6.0.3 jsonwebtoken: 9.0.3 - listr2: 10.2.2 + listr2: 10.2.1 ofetch: 1.5.1 zod: 4.3.6 @@ -8322,26 +8238,26 @@ snapshots: rfdc@1.4.1: {} - rolldown@1.1.5: + rolldown@1.0.2: dependencies: - '@oxc-project/types': 0.139.0 + '@oxc-project/types': 0.132.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.5 - '@rolldown/binding-darwin-arm64': 1.1.5 - '@rolldown/binding-darwin-x64': 1.1.5 - '@rolldown/binding-freebsd-x64': 1.1.5 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.5 - '@rolldown/binding-linux-arm64-gnu': 1.1.5 - '@rolldown/binding-linux-arm64-musl': 1.1.5 - '@rolldown/binding-linux-ppc64-gnu': 1.1.5 - '@rolldown/binding-linux-s390x-gnu': 1.1.5 - '@rolldown/binding-linux-x64-gnu': 1.1.5 - '@rolldown/binding-linux-x64-musl': 1.1.5 - '@rolldown/binding-openharmony-arm64': 1.1.5 - '@rolldown/binding-wasm32-wasi': 1.1.5 - '@rolldown/binding-win32-arm64-msvc': 1.1.5 - '@rolldown/binding-win32-x64-msvc': 1.1.5 + '@rolldown/binding-android-arm64': 1.0.2 + '@rolldown/binding-darwin-arm64': 1.0.2 + '@rolldown/binding-darwin-x64': 1.0.2 + '@rolldown/binding-freebsd-x64': 1.0.2 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 + '@rolldown/binding-linux-arm64-gnu': 1.0.2 + '@rolldown/binding-linux-arm64-musl': 1.0.2 + '@rolldown/binding-linux-ppc64-gnu': 1.0.2 + '@rolldown/binding-linux-s390x-gnu': 1.0.2 + '@rolldown/binding-linux-x64-gnu': 1.0.2 + '@rolldown/binding-linux-x64-musl': 1.0.2 + '@rolldown/binding-openharmony-arm64': 1.0.2 + '@rolldown/binding-wasm32-wasi': 1.0.2 + '@rolldown/binding-win32-arm64-msvc': 1.0.2 + '@rolldown/binding-win32-x64-msvc': 1.0.2 rollup@4.60.3: dependencies: @@ -8473,7 +8389,7 @@ snapshots: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 - string-width@8.2.2: + string-width@8.2.1: dependencies: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 @@ -8571,8 +8487,8 @@ snapshots: tinyglobby@0.2.16: dependencies: - fdir: 6.5.0(picomatch@4.0.5) - picomatch: 4.0.5 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 tinyglobby@0.2.17: dependencies: @@ -8628,7 +8544,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.7.0)(postcss@8.5.19)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0): + tsup@8.5.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(typescript@6.0.3)(yaml@2.9.0): dependencies: bundle-require: 5.1.0(esbuild@0.27.7) cac: 6.7.14 @@ -8639,7 +8555,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.19)(tsx@4.22.4)(yaml@2.9.0) + postcss-load-config: 6.0.1(jiti@2.7.0)(postcss@8.5.15)(tsx@4.22.4)(yaml@2.9.0) resolve-from: 5.0.0 rollup: 4.60.3 source-map: 0.7.6 @@ -8648,7 +8564,7 @@ snapshots: tinyglobby: 0.2.16 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.19 + postcss: 8.5.15 typescript: 6.0.3 transitivePeerDependencies: - jiti @@ -8694,7 +8610,7 @@ snapshots: undici@7.28.0: {} - unimport@6.3.0(esbuild@0.27.7)(rolldown@1.1.5)(rollup@4.60.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)): + unimport@6.3.0(rolldown@1.0.2): dependencies: acorn: 8.17.0 escape-string-regexp: 5.0.0 @@ -8703,42 +8619,28 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.2 pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.4 pkg-types: 2.3.1 scule: 1.3.0 strip-literal: 3.1.0 tinyglobby: 0.2.17 - unplugin: 3.3.0(esbuild@0.27.7)(rolldown@1.1.5)(rollup@4.60.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) - unplugin-utils: 0.3.2 + unplugin: 3.0.0 + unplugin-utils: 0.3.1 optionalDependencies: - rolldown: 1.1.5 - transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - - bun-types-no-globals - - esbuild - - rollup - - unloader - - vite - - webpack + rolldown: 1.0.2 universalify@2.0.1: {} - unplugin-utils@0.3.2: + unplugin-utils@0.3.1: dependencies: pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.4 - unplugin@3.3.0(esbuild@0.27.7)(rolldown@1.1.5)(rollup@4.60.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)): + unplugin@3.0.0: dependencies: '@jridgewell/remapping': 2.3.5 - picomatch: 4.0.5 + picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - optionalDependencies: - esbuild: 0.27.7 - rolldown: 1.1.5 - rollup: 4.60.3 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) upath@3.0.7: {} @@ -8778,13 +8680,13 @@ snapshots: uuid@8.3.2: {} - vite-node@6.0.0(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0): + vite-node@6.0.0(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0): dependencies: cac: 7.0.0 - es-module-lexer: 2.3.1 + es-module-lexer: 2.2.0 obug: 2.1.3 pathe: 2.0.3 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) transitivePeerDependencies: - '@types/node' - '@vitejs/devtools' @@ -8799,40 +8701,40 @@ snapshots: - tsx - yaml - vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0): + vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 - picomatch: 4.0.5 - postcss: 8.5.19 - rolldown: 1.1.5 + picomatch: 4.0.4 + postcss: 8.5.15 + rolldown: 1.0.2 tinyglobby: 0.2.17 optionalDependencies: '@types/node': 26.1.0 - esbuild: 0.28.1 + esbuild: 0.27.7 fsevents: 2.3.3 jiti: 2.7.0 tsx: 4.22.4 yaml: 2.9.0 - vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0): + vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 - picomatch: 4.0.5 - postcss: 8.5.19 - rolldown: 1.1.5 + picomatch: 4.0.4 + postcss: 8.5.15 + rolldown: 1.0.2 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.1.1 - esbuild: 0.27.7 + '@types/node': 26.1.0 + esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 tsx: 4.22.4 yaml: 2.9.0 - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + '@vitest/mocker': 4.1.9(vite@8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -8849,7 +8751,7 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.4(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -8860,10 +8762,10 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)): + vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@26.1.0)(@vitest/coverage-v8@4.1.9)(happy-dom@20.10.6)(jsdom@29.1.1)(vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) + '@vitest/mocker': 4.1.9(vite@8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.9 '@vitest/runner': 4.1.9 '@vitest/snapshot': 4.1.9 @@ -8880,11 +8782,11 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@types/node': 26.1.1 + '@types/node': 26.1.0 '@vitest/coverage-v8': 4.1.9(vitest@4.1.9) happy-dom: 20.10.6 jsdom: 29.1.1 @@ -9034,7 +8936,7 @@ snapshots: wrap-ansi@10.0.0: dependencies: ansi-styles: 6.2.3 - string-width: 8.2.2 + string-width: 8.2.1 strip-ansi: 7.2.0 wrap-ansi@7.0.0: @@ -9056,13 +8958,13 @@ snapshots: is-wsl: 3.1.1 powershell-utils: 0.1.0 - wxt@0.20.27(@types/node@26.1.1)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.1.5)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0): + wxt@0.20.27(@types/node@26.1.0)(eslint@9.39.4(jiti@2.7.0))(jiti@2.7.0)(rolldown@1.0.2)(rollup@4.60.3)(tsx@4.22.4)(yaml@2.9.0): dependencies: '@1natsu/wait-element': 4.2.0 '@aklinker1/rollup-plugin-visualizer': 5.12.0(rollup@4.60.3) - '@webext-core/fake-browser': 1.5.2 + '@webext-core/fake-browser': 1.5.0 '@webext-core/isolated-element': 1.1.5 - '@webext-core/match-patterns': 1.1.0 + '@webext-core/match-patterns': 1.0.3 '@wxt-dev/browser': 0.2.2 '@wxt-dev/storage': 1.2.8 async-mutex: 0.5.0 @@ -9074,40 +8976,37 @@ snapshots: defu: 6.1.7 dotenv-expand: 12.0.3 esbuild: 0.27.7 - filesize: 11.0.22 + filesize: 11.0.17 get-port-please: 3.2.0 - giget: 3.3.0 + giget: 3.2.0 hookable: 6.1.1 import-meta-resolve: 4.2.0 is-wsl: 3.1.1 json5: 2.2.3 jszip: 3.10.1 - linkedom: 0.18.13 + linkedom: 0.18.12 magicast: 0.5.3 nano-spawn: 2.1.0 nanospinner: 1.2.2 normalize-path: 3.0.0 - nypm: 0.6.8 + nypm: 0.6.6 ohash: 2.0.11 open: 11.0.0 perfect-debounce: 2.1.0 - picomatch: 4.0.5 + picomatch: 4.0.4 prompts: 2.4.2 publish-browser-extension: 4.0.5 scule: 1.3.0 tinyglobby: 0.2.17 - unimport: 6.3.0(esbuild@0.27.7)(rolldown@1.1.5)(rollup@4.60.3)(vite@8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0)) - vite: 8.1.4(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) - vite-node: 6.0.0(@types/node@26.1.1)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + unimport: 6.3.0(rolldown@1.0.2) + vite: 8.0.14(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) + vite-node: 6.0.0(@types/node@26.1.0)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0) web-ext-run: 0.2.4 optionalDependencies: eslint: 9.39.4(jiti@2.7.0) transitivePeerDependencies: - - '@farmfe/core' - - '@rspack/core' - '@types/node' - '@vitejs/devtools' - - bun-types-no-globals - canvas - jiti - less @@ -9121,8 +9020,6 @@ snapshots: - supports-color - terser - tsx - - unloader - - webpack - yaml xdg-basedir@5.1.0: {} From 9cc20a1dc124bf095977dcb65a890685f704fa0a Mon Sep 17 00:00:00 2001 From: Les Orchard Date: Mon, 13 Jul 2026 10:03:13 -0700 Subject: [PATCH 2/2] fix(core): adapt tool + stream types to AI SDK v7 AI SDK v7 (`ai` 7, `@ai-sdk/*` majors) changed several type surfaces: - The inferred return types of the `create*Tools` factories now reference internal AI-SDK types (Context, JSONObject, ToolResultOutput, ...) that can't be named in the emitted declarations (TS2883). Annotate the factories with the public `ToolSet` type (and an explicit object type for `createInteractiveTools`) to break the un-nameable inference chain. - `StreamTextResult` gained a `RUNTIME_CONTEXT` type parameter (now 3 args, TS2314). Update the `StreamTextResultGeneric` alias accordingly. - `ToolExecutionOptions` now requires a `context` field; supply it in the planningTools tests that invoke `tool.execute` directly. - Regenerate the committed webagent-event schema, which embeds AI-SDK ModelMessage/prompt-part shapes that changed in v7. Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/core/schemas/webagent-event.json | 1548 +++++++++++++++-- packages/core/src/tools/interactiveTools.ts | 7 +- packages/core/src/tools/planningTools.ts | 4 +- packages/core/src/tools/searchTools.ts | 4 +- packages/core/src/tools/tabstackTools.ts | 4 +- packages/core/src/tools/validationTools.ts | 4 +- packages/core/src/tools/webActionTools.ts | 4 +- packages/core/src/webAgent.ts | 2 +- .../core/test/tools/planningTools.test.ts | 8 + 9 files changed, 1421 insertions(+), 164 deletions(-) diff --git a/packages/core/schemas/webagent-event.json b/packages/core/schemas/webagent-event.json index dd93b345..33bab99a 100644 --- a/packages/core/schemas/webagent-event.json +++ b/packages/core/schemas/webagent-event.json @@ -80,11 +80,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -147,11 +147,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -185,7 +185,8 @@ }, { "additionalProperties": false, - "description": "Image content part of a prompt. It contains an image.", + "deprecated": true, + "description": "Deprecated. Use `FilePart` with `mediaType: 'image'` instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'data', data } }`. Image content part of a prompt. It contains an image.", "properties": { "image": { "anyOf": [ @@ -254,9 +255,17 @@ { "format": "uri", "type": "string" + }, + { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of provider names to provider-specific file identifiers.\n\nProvider references allow files to be identified across different providers without re-uploading, by storing each provider's own identifier for the same logical file.", + "properties": {}, + "type": "object" } ], - "description": "Image data. Can either be:\n\n- data: a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer\n- URL: a URL that points to the image" + "description": "Image data. Can either be:\n\n- data: a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer\n- URL: a URL that points to the image\n- ProviderReference: a provider reference from `uploadFile`" }, "mediaType": { "description": "Optional IANA media type of the image.", @@ -281,11 +290,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -319,6 +328,148 @@ "properties": { "data": { "anyOf": [ + { + "anyOf": [ + { + "additionalProperties": false, + "description": "File data variant containing raw bytes (`Uint8Array`, `ArrayBuffer`, or `Buffer`) or a base64-encoded string.\n\nThis is slightly more permissive than `SharedV4FileDataData`.", + "properties": { + "data": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "number" + }, + "properties": { + "BYTES_PER_ELEMENT": { + "type": "number" + }, + "buffer": { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + "byteLength": { + "type": "number" + }, + "byteOffset": { + "type": "number" + }, + "length": { + "type": "number" + } + }, + "required": [ + "BYTES_PER_ELEMENT", + "buffer", + "byteLength", + "byteOffset", + "length" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + { + "$ref": "#/definitions/global.Buffer" + } + ], + "description": "Data content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer." + }, + "type": { + "const": "data", + "type": "string" + } + }, + "required": [ + "type", + "data" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a URL that points to the file.", + "properties": { + "type": { + "const": "url", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a provider reference (`{ [provider]: id }`).", + "properties": { + "reference": { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of provider names to provider-specific file identifiers.\n\nProvider references allow files to be identified across different providers without re-uploading, by storing each provider's own identifier for the same logical file.\n\n```ts { \"openai\": \"file-abc123\", \"anthropic\": \"file-xyz789\" } ```\n\nThe `type?: never` constraint excludes any object that has a `type` property, so a `SharedV4ProviderReference` cannot be confused with a tagged file-data shape (e.g. `{ type: 'data', data }` or `{ type: 'reference', reference }`) when both appear in the same union.", + "properties": {}, + "type": "object" + }, + "type": { + "const": "reference", + "type": "string" + } + }, + "required": [ + "type", + "reference" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing inline text content (e.g. an inline text document).", + "properties": { + "text": { + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + } + ], + "description": "File data as a tagged discriminated union:\n\n- `{ type: 'data', data }`: raw bytes (`Uint8Array`, `ArrayBuffer`, or `Buffer`) or a base64-encoded string.\n- `{ type: 'url', url }`: a URL that points to the file.\n- `{ type: 'reference', reference }`: a provider reference (`{ [provider]: id }`).\n- `{ type: 'text', text }`: inline text content (e.g. an inline text document)." + }, { "anyOf": [ { @@ -384,16 +535,24 @@ { "format": "uri", "type": "string" + }, + { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of provider names to provider-specific file identifiers.\n\nProvider references allow files to be identified across different providers without re-uploading, by storing each provider's own identifier for the same logical file.", + "properties": {}, + "type": "object" } ], - "description": "File data. Can either be:\n\n- data: a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer\n- URL: a URL that points to the image" + "description": "File data. Either a tagged shape or a bare shorthand:\n\n- `{ type: 'data', data }` or bare `DataContent`: raw bytes (base64 string, Uint8Array, ArrayBuffer, Buffer)\n- `{ type: 'url', url }` or bare `URL`: a URL that points to the file\n- `{ type: 'reference', reference }` or bare `ProviderReference`: a provider reference from `uploadFile`\n- `{ type: 'text', text }`: inline text content (tagged only)" }, "filename": { "description": "Optional filename of the file.", "type": "string" }, "mediaType": { - "description": "IANA media type of the file.", + "description": "Either a full IANA media type (`type/subtype`, e.g. `image/png`) or just the top-level IANA segment (e.g. `image`, `audio`, `video`, `text`).\n\n`*`-subtype wildcards (e.g. `image/*`) are normalized as equivalent to the top-level segment alone (e.g. `image`). Providers can use the helpers in `@ai-sdk/provider-utils` (`isFullMediaType`, `getTopLevelMediaType`, `detectMediaType`) to resolve the field according to their API requirements.", "type": "string" }, "providerOptions": { @@ -415,11 +574,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -474,11 +633,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -541,11 +700,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -577,12 +736,213 @@ ], "type": "object" }, + { + "additionalProperties": false, + "description": "Custom content part of a prompt. It contains no standardized payload beyond provider-specific options.", + "properties": { + "kind": { + "description": "The kind of custom content, in the format `{provider}.{provider-type}`.", + "type": "string" + }, + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Additional provider-specific metadata. They are passed through to the provider from the AI SDK and enable provider-specific functionality that can be fully encapsulated in the provider.", + "type": "object" + }, + "type": { + "const": "custom", + "type": "string" + } + }, + "required": [ + "type", + "kind" + ], + "type": "object" + }, { "additionalProperties": false, "description": "File content part of a prompt. It contains a file.", "properties": { "data": { "anyOf": [ + { + "anyOf": [ + { + "additionalProperties": false, + "description": "File data variant containing raw bytes (`Uint8Array`, `ArrayBuffer`, or `Buffer`) or a base64-encoded string.\n\nThis is slightly more permissive than `SharedV4FileDataData`.", + "properties": { + "data": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "number" + }, + "properties": { + "BYTES_PER_ELEMENT": { + "type": "number" + }, + "buffer": { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + "byteLength": { + "type": "number" + }, + "byteOffset": { + "type": "number" + }, + "length": { + "type": "number" + } + }, + "required": [ + "BYTES_PER_ELEMENT", + "buffer", + "byteLength", + "byteOffset", + "length" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + { + "$ref": "#/definitions/global.Buffer" + } + ], + "description": "Data content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer." + }, + "type": { + "const": "data", + "type": "string" + } + }, + "required": [ + "type", + "data" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a URL that points to the file.", + "properties": { + "type": { + "const": "url", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a provider reference (`{ [provider]: id }`).", + "properties": { + "reference": { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of provider names to provider-specific file identifiers.\n\nProvider references allow files to be identified across different providers without re-uploading, by storing each provider's own identifier for the same logical file.\n\n```ts { \"openai\": \"file-abc123\", \"anthropic\": \"file-xyz789\" } ```\n\nThe `type?: never` constraint excludes any object that has a `type` property, so a `SharedV4ProviderReference` cannot be confused with a tagged file-data shape (e.g. `{ type: 'data', data }` or `{ type: 'reference', reference }`) when both appear in the same union.", + "properties": {}, + "type": "object" + }, + "type": { + "const": "reference", + "type": "string" + } + }, + "required": [ + "type", + "reference" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing inline text content (e.g. an inline text document).", + "properties": { + "text": { + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + } + ], + "description": "File data as a tagged discriminated union:\n\n- `{ type: 'data', data }`: raw bytes (`Uint8Array`, `ArrayBuffer`, or `Buffer`) or a base64-encoded string.\n- `{ type: 'url', url }`: a URL that points to the file.\n- `{ type: 'reference', reference }`: a provider reference (`{ [provider]: id }`).\n- `{ type: 'text', text }`: inline text content (e.g. an inline text document)." + }, { "anyOf": [ { @@ -648,16 +1008,24 @@ { "format": "uri", "type": "string" + }, + { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of provider names to provider-specific file identifiers.\n\nProvider references allow files to be identified across different providers without re-uploading, by storing each provider's own identifier for the same logical file.", + "properties": {}, + "type": "object" } ], - "description": "File data. Can either be:\n\n- data: a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer\n- URL: a URL that points to the image" + "description": "File data. Either a tagged shape or a bare shorthand:\n\n- `{ type: 'data', data }` or bare `DataContent`: raw bytes (base64 string, Uint8Array, ArrayBuffer, Buffer)\n- `{ type: 'url', url }` or bare `URL`: a URL that points to the file\n- `{ type: 'reference', reference }` or bare `ProviderReference`: a provider reference from `uploadFile`\n- `{ type: 'text', text }`: inline text content (tagged only)" }, "filename": { "description": "Optional filename of the file.", "type": "string" }, "mediaType": { - "description": "IANA media type of the file.", + "description": "Either a full IANA media type (`type/subtype`, e.g. `image/png`) or just the top-level IANA segment (e.g. `image`, `audio`, `video`, `text`).\n\n`*`-subtype wildcards (e.g. `image/*`) are normalized as equivalent to the top-level segment alone (e.g. `image`). Providers can use the helpers in `@ai-sdk/provider-utils` (`isFullMediaType`, `getTopLevelMediaType`, `detectMediaType`) to resolve the field according to their API requirements.", "type": "string" }, "providerOptions": { @@ -679,11 +1047,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -700,22 +1068,252 @@ "description": "Additional provider-specific metadata. They are passed through to the provider from the AI SDK and enable provider-specific functionality that can be fully encapsulated in the provider.", "type": "object" }, - "type": { - "const": "file", + "type": { + "const": "file", + "type": "string" + } + }, + "required": [ + "type", + "data", + "mediaType" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Reasoning content part of a prompt. It contains a reasoning.", + "properties": { + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Additional provider-specific metadata. They are passed through to the provider from the AI SDK and enable provider-specific functionality that can be fully encapsulated in the provider.", + "type": "object" + }, + "text": { + "description": "The reasoning text.", + "type": "string" + }, + "type": { + "const": "reasoning", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "Reasoning file content part of a prompt. It contains a file generated as part of reasoning.", + "properties": { + "data": { + "anyOf": [ + { + "additionalProperties": false, + "description": "File data variant containing raw bytes (`Uint8Array`, `ArrayBuffer`, or `Buffer`) or a base64-encoded string.\n\nThis is slightly more permissive than `SharedV4FileDataData`.", + "properties": { + "data": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "number" + }, + "properties": { + "BYTES_PER_ELEMENT": { + "type": "number" + }, + "buffer": { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + "byteLength": { + "type": "number" + }, + "byteOffset": { + "type": "number" + }, + "length": { + "type": "number" + } + }, + "required": [ + "BYTES_PER_ELEMENT", + "buffer", + "byteLength", + "byteOffset", + "length" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + { + "$ref": "#/definitions/global.Buffer" + } + ], + "description": "Data content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer." + }, + "type": { + "const": "data", + "type": "string" + } + }, + "required": [ + "type", + "data" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a URL that points to the file.", + "properties": { + "type": { + "const": "url", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "number" + }, + "properties": { + "BYTES_PER_ELEMENT": { + "type": "number" + }, + "buffer": { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + "byteLength": { + "type": "number" + }, + "byteOffset": { + "type": "number" + }, + "length": { + "type": "number" + } + }, + "required": [ + "BYTES_PER_ELEMENT", + "buffer", + "byteLength", + "byteOffset", + "length" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + { + "$ref": "#/definitions/global.Buffer" + } + ], + "description": "Data content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer." + }, + { + "format": "uri", + "type": "string" + } + ], + "description": "Reasoning file data.\n\nReasoning files originate from a model's reasoning output and are always raw bytes or a fetchable URL. Unlike `FilePart.data`, the `reference` and `text` shapes are not supported here: provider references describe files uploaded by the user (not produced as model output), and reasoning text is carried by `ReasoningPart` rather than as a file.\n\nEither a tagged shape or a bare shorthand:\n\n- `{ type: 'data', data }` or bare `DataContent`: raw bytes (base64 string, Uint8Array, ArrayBuffer, Buffer)\n- `{ type: 'url', url }` or bare `URL`: a URL that points to the file" + }, + "mediaType": { + "description": "IANA media type of the file.", "type": "string" - } - }, - "required": [ - "type", - "data", - "mediaType" - ], - "type": "object" - }, - { - "additionalProperties": false, - "description": "Reasoning content part of a prompt. It contains a reasoning.", - "properties": { + }, "providerOptions": { "additionalProperties": { "additionalProperties": { @@ -735,11 +1333,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -756,18 +1354,15 @@ "description": "Additional provider-specific metadata. They are passed through to the provider from the AI SDK and enable provider-specific functionality that can be fully encapsulated in the provider.", "type": "object" }, - "text": { - "description": "The reasoning text.", - "type": "string" - }, "type": { - "const": "reasoning", + "const": "reasoning-file", "type": "string" } }, "required": [ "type", - "text" + "data", + "mediaType" ], "type": "object" }, @@ -801,11 +1396,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -871,11 +1466,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -929,11 +1524,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -986,11 +1581,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1006,7 +1601,7 @@ }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1042,11 +1637,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1100,11 +1695,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1157,11 +1752,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1214,11 +1809,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1234,7 +1829,7 @@ }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1280,11 +1875,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1320,15 +1915,197 @@ "additionalProperties": false, "properties": { "data": { + "anyOf": [ + { + "additionalProperties": false, + "description": "File data variant containing raw bytes (`Uint8Array`, `ArrayBuffer`, or `Buffer`) or a base64-encoded string.\n\nThis is slightly more permissive than `SharedV4FileDataData`.", + "properties": { + "data": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "number" + }, + "properties": { + "BYTES_PER_ELEMENT": { + "type": "number" + }, + "buffer": { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + "byteLength": { + "type": "number" + }, + "byteOffset": { + "type": "number" + }, + "length": { + "type": "number" + } + }, + "required": [ + "BYTES_PER_ELEMENT", + "buffer", + "byteLength", + "byteOffset", + "length" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + { + "$ref": "#/definitions/global.Buffer" + } + ], + "description": "Data content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer." + }, + "type": { + "const": "data", + "type": "string" + } + }, + "required": [ + "type", + "data" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a URL that points to the file.", + "properties": { + "type": { + "const": "url", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a provider reference (`{ [provider]: id }`).", + "properties": { + "reference": { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of provider names to provider-specific file identifiers.\n\nProvider references allow files to be identified across different providers without re-uploading, by storing each provider's own identifier for the same logical file.\n\n```ts { \"openai\": \"file-abc123\", \"anthropic\": \"file-xyz789\" } ```\n\nThe `type?: never` constraint excludes any object that has a `type` property, so a `SharedV4ProviderReference` cannot be confused with a tagged file-data shape (e.g. `{ type: 'data', data }` or `{ type: 'reference', reference }`) when both appear in the same union.", + "properties": {}, + "type": "object" + }, + "type": { + "const": "reference", + "type": "string" + } + }, + "required": [ + "type", + "reference" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing inline text content (e.g. an inline text document).", + "properties": { + "text": { + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + } + ], + "description": "File data as a tagged discriminated union:\n\n- `{ type: 'data', data }`: raw bytes (base64 string, Uint8Array, ArrayBuffer, Buffer)\n- `{ type: 'url', url }`: a URL that points to the file\n- `{ type: 'reference', reference }`: a provider reference from `uploadFile`\n- `{ type: 'text', text }`: inline text content (e.g. an inline text document)" + }, + "filename": { + "description": "Optional filename of the file.", "type": "string" }, "mediaType": { + "description": "Either a full IANA media type (`type/subtype`, e.g. `image/png`) or just the top-level IANA segment (e.g. `image`, `audio`, `video`, `text`).\n\n`*`-subtype wildcards (e.g. `image/*`) are normalized as equivalent to the top-level segment alone (e.g. `image`). Providers can use the helpers in `@ai-sdk/provider-utils` (`isFullMediaType`, `getTopLevelMediaType`, `detectMediaType`) to resolve the field according to their API requirements.", "type": "string" }, + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Provider-specific options.", + "type": "object" + }, "type": { - "const": "media", - "deprecated": true, - "description": "Deprecated. Use image-data or file-data instead.", + "const": "file", "type": "string" } }, @@ -1373,11 +2150,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1396,6 +2173,8 @@ }, "type": { "const": "file-data", + "deprecated": true, + "description": "Deprecated. Use 'file' with mediaType + tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'data', data } }`.", "type": "string" } }, @@ -1409,6 +2188,10 @@ { "additionalProperties": false, "properties": { + "mediaType": { + "description": "IANA media type.", + "type": "string" + }, "providerOptions": { "additionalProperties": { "additionalProperties": { @@ -1428,11 +2211,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1451,6 +2234,8 @@ }, "type": { "const": "file-url", + "deprecated": true, + "description": "Deprecated. Use 'file' with mediaType and tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'url', url: new URL(url) } }`.", "type": "string" }, "url": { @@ -1500,11 +2285,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1523,6 +2308,8 @@ }, "type": { "const": "file-id", + "deprecated": true, + "description": "Deprecated. Use 'file' with tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'reference', reference } }`.", "type": "string" } }, @@ -1532,6 +2319,70 @@ ], "type": "object" }, + { + "additionalProperties": false, + "properties": { + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Provider-specific options.", + "type": "object" + }, + "providerReference": { + "additionalProperties": { + "type": "string" + }, + "description": "Provider-specific references for the file. The key is the provider name, e.g. 'openai' or 'anthropic'.", + "properties": {}, + "type": "object" + }, + "type": { + "const": "file-reference", + "deprecated": true, + "description": "Deprecated. Use 'file' with tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'reference', reference } }`.", + "type": "string" + } + }, + "required": [ + "type", + "providerReference" + ], + "type": "object" + }, { "additionalProperties": false, "properties": { @@ -1562,11 +2413,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1585,7 +2436,8 @@ }, "type": { "const": "image-data", - "description": "Images that are referenced using base64 encoded data.", + "deprecated": true, + "description": "Deprecated. Use 'file' with mediaType (e.g. 'image' or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'data', data } }`.", "type": "string" } }, @@ -1618,11 +2470,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1641,7 +2493,8 @@ }, "type": { "const": "image-url", - "description": "Images that are referenced using a URL.", + "deprecated": true, + "description": "Deprecated. Use 'file' with `mediaType: 'image'` (or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'url', url: new URL(url) } }`.", "type": "string" }, "url": { @@ -1658,20 +2511,76 @@ { "additionalProperties": false, "properties": { - "fileId": { - "anyOf": [ - { - "type": "string" - }, - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - ], - "description": "Image that is referenced using a provider file id.\n\nIf you use multiple providers, you need to specify the provider specific ids using the Record option. The key is the provider name, e.g. 'openai' or 'anthropic'." - }, + "fileId": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + ], + "description": "Image that is referenced using a provider file id.\n\nIf you use multiple providers, you need to specify the provider specific ids using the Record option. The key is the provider name, e.g. 'openai' or 'anthropic'." + }, + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Provider-specific options.", + "type": "object" + }, + "type": { + "const": "image-file-id", + "deprecated": true, + "description": "Deprecated. Use 'file' with `mediaType: 'image'` (or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'reference', reference } }`.", + "type": "string" + } + }, + "required": [ + "type", + "fileId" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { "providerOptions": { "additionalProperties": { "additionalProperties": { @@ -1691,11 +2600,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1712,15 +2621,24 @@ "description": "Provider-specific options.", "type": "object" }, + "providerReference": { + "additionalProperties": { + "type": "string" + }, + "description": "Provider-specific references for the image file. The key is the provider name, e.g. 'openai' or 'anthropic'.", + "properties": {}, + "type": "object" + }, "type": { - "const": "image-file-id", - "description": "Images that are referenced using a provider file id.", + "const": "image-file-reference", + "deprecated": true, + "description": "Deprecated. Use 'file' with `mediaType: 'image'` (or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'reference', reference } }`.", "type": "string" } }, "required": [ "type", - "fileId" + "providerReference" ], "type": "object" }, @@ -1746,11 +2664,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1811,11 +2729,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1861,6 +2779,11 @@ "description": "ID of the tool approval.", "type": "string" }, + "isAutomatic": { + "default": false, + "description": "Flag indicating whether the tool was automatically approved or denied.", + "type": "boolean" + }, "signature": { "description": "HMAC-SHA256 signature binding this approval to its tool call. Present only when `experimental_toolApprovalSecret` is configured.", "type": "string" @@ -1907,11 +2830,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -1975,11 +2898,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2033,11 +2956,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2090,11 +3013,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2110,7 +3033,7 @@ }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2146,11 +3069,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2204,11 +3127,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2261,11 +3184,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2318,11 +3241,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2338,7 +3261,7 @@ }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2384,11 +3307,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2424,15 +3347,197 @@ "additionalProperties": false, "properties": { "data": { + "anyOf": [ + { + "additionalProperties": false, + "description": "File data variant containing raw bytes (`Uint8Array`, `ArrayBuffer`, or `Buffer`) or a base64-encoded string.\n\nThis is slightly more permissive than `SharedV4FileDataData`.", + "properties": { + "data": { + "anyOf": [ + { + "type": "string" + }, + { + "additionalProperties": { + "type": "number" + }, + "properties": { + "BYTES_PER_ELEMENT": { + "type": "number" + }, + "buffer": { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + "byteLength": { + "type": "number" + }, + "byteOffset": { + "type": "number" + }, + "length": { + "type": "number" + } + }, + "required": [ + "BYTES_PER_ELEMENT", + "buffer", + "byteLength", + "byteOffset", + "length" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "byteLength": { + "type": "number" + } + }, + "required": [ + "byteLength" + ], + "type": "object" + }, + { + "$ref": "#/definitions/global.Buffer" + } + ], + "description": "Data content. Can either be a base64-encoded string, a Uint8Array, an ArrayBuffer, or a Buffer." + }, + "type": { + "const": "data", + "type": "string" + } + }, + "required": [ + "type", + "data" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a URL that points to the file.", + "properties": { + "type": { + "const": "url", + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + } + }, + "required": [ + "type", + "url" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing a provider reference (`{ [provider]: id }`).", + "properties": { + "reference": { + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of provider names to provider-specific file identifiers.\n\nProvider references allow files to be identified across different providers without re-uploading, by storing each provider's own identifier for the same logical file.\n\n```ts { \"openai\": \"file-abc123\", \"anthropic\": \"file-xyz789\" } ```\n\nThe `type?: never` constraint excludes any object that has a `type` property, so a `SharedV4ProviderReference` cannot be confused with a tagged file-data shape (e.g. `{ type: 'data', data }` or `{ type: 'reference', reference }`) when both appear in the same union.", + "properties": {}, + "type": "object" + }, + "type": { + "const": "reference", + "type": "string" + } + }, + "required": [ + "type", + "reference" + ], + "type": "object" + }, + { + "additionalProperties": false, + "description": "File data variant containing inline text content (e.g. an inline text document).", + "properties": { + "text": { + "type": "string" + }, + "type": { + "const": "text", + "type": "string" + } + }, + "required": [ + "type", + "text" + ], + "type": "object" + } + ], + "description": "File data as a tagged discriminated union:\n\n- `{ type: 'data', data }`: raw bytes (base64 string, Uint8Array, ArrayBuffer, Buffer)\n- `{ type: 'url', url }`: a URL that points to the file\n- `{ type: 'reference', reference }`: a provider reference from `uploadFile`\n- `{ type: 'text', text }`: inline text content (e.g. an inline text document)" + }, + "filename": { + "description": "Optional filename of the file.", "type": "string" }, "mediaType": { + "description": "Either a full IANA media type (`type/subtype`, e.g. `image/png`) or just the top-level IANA segment (e.g. `image`, `audio`, `video`, `text`).\n\n`*`-subtype wildcards (e.g. `image/*`) are normalized as equivalent to the top-level segment alone (e.g. `image`). Providers can use the helpers in `@ai-sdk/provider-utils` (`isFullMediaType`, `getTopLevelMediaType`, `detectMediaType`) to resolve the field according to their API requirements.", "type": "string" }, + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Provider-specific options.", + "type": "object" + }, "type": { - "const": "media", - "deprecated": true, - "description": "Deprecated. Use image-data or file-data instead.", + "const": "file", "type": "string" } }, @@ -2477,11 +3582,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2500,6 +3605,8 @@ }, "type": { "const": "file-data", + "deprecated": true, + "description": "Deprecated. Use 'file' with mediaType + tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'data', data } }`.", "type": "string" } }, @@ -2513,6 +3620,10 @@ { "additionalProperties": false, "properties": { + "mediaType": { + "description": "IANA media type.", + "type": "string" + }, "providerOptions": { "additionalProperties": { "additionalProperties": { @@ -2532,11 +3643,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2555,6 +3666,8 @@ }, "type": { "const": "file-url", + "deprecated": true, + "description": "Deprecated. Use 'file' with mediaType and tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'url', url: new URL(url) } }`.", "type": "string" }, "url": { @@ -2604,11 +3717,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2627,6 +3740,8 @@ }, "type": { "const": "file-id", + "deprecated": true, + "description": "Deprecated. Use 'file' with tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'reference', reference } }`.", "type": "string" } }, @@ -2636,6 +3751,70 @@ ], "type": "object" }, + { + "additionalProperties": false, + "properties": { + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Provider-specific options.", + "type": "object" + }, + "providerReference": { + "additionalProperties": { + "type": "string" + }, + "description": "Provider-specific references for the file. The key is the provider name, e.g. 'openai' or 'anthropic'.", + "properties": {}, + "type": "object" + }, + "type": { + "const": "file-reference", + "deprecated": true, + "description": "Deprecated. Use 'file' with tagged data instead:\n`{ type: 'file', mediaType, data: { type: 'reference', reference } }`.", + "type": "string" + } + }, + "required": [ + "type", + "providerReference" + ], + "type": "object" + }, { "additionalProperties": false, "properties": { @@ -2666,11 +3845,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2689,7 +3868,8 @@ }, "type": { "const": "image-data", - "description": "Images that are referenced using base64 encoded data.", + "deprecated": true, + "description": "Deprecated. Use 'file' with mediaType (e.g. 'image' or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'data', data } }`.", "type": "string" } }, @@ -2722,11 +3902,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2745,7 +3925,8 @@ }, "type": { "const": "image-url", - "description": "Images that are referenced using a URL.", + "deprecated": true, + "description": "Deprecated. Use 'file' with `mediaType: 'image'` (or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'url', url: new URL(url) } }`.", "type": "string" }, "url": { @@ -2795,11 +3976,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2818,7 +3999,8 @@ }, "type": { "const": "image-file-id", - "description": "Images that are referenced using a provider file id.", + "deprecated": true, + "description": "Deprecated. Use 'file' with `mediaType: 'image'` (or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'reference', reference } }`.", "type": "string" } }, @@ -2850,11 +4032,75 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" + }, + { + "items": { + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" + }, + "type": "array" + } + ], + "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." + }, + { + "not": {} + } + ] + }, + "type": "object" + }, + "description": "Provider-specific options.", + "type": "object" + }, + "providerReference": { + "additionalProperties": { + "type": "string" + }, + "description": "Provider-specific references for the image file. The key is the provider name, e.g. 'openai' or 'anthropic'.", + "properties": {}, + "type": "object" + }, + "type": { + "const": "image-file-reference", + "deprecated": true, + "description": "Deprecated. Use 'file' with `mediaType: 'image'` (or a specific\n`image/*` subtype) and tagged data instead:\n`{ type: 'file', mediaType: 'image', data: { type: 'reference', reference } }`.", + "type": "string" + } + }, + "required": [ + "type", + "providerReference" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "providerOptions": { + "additionalProperties": { + "additionalProperties": { + "anyOf": [ + { + "anyOf": [ + { + "type": "null" + }, + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -2915,11 +4161,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -3012,11 +4258,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } @@ -4855,7 +6101,7 @@ ], "description": "Union type of all event data types" }, - "alias-1707531587-156-411-1707531587-0-129727133205725": { + "alias-1623388915-2027-2282-1623388915-0-228060133205725": { "anyOf": [ { "type": "null" @@ -4870,18 +6116,18 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } ], "description": "A JSON value can be a string, number, boolean, object, array, or null. JSON values can be serialized and deserialized by the JSON.stringify and JSON.parse methods." }, - "alias-1707531587-411-476-1707531587-0-129727": { + "alias-1623388915-2282-2347-1623388915-0-228060": { "additionalProperties": { "anyOf": [ { @@ -4899,11 +6145,11 @@ "type": "boolean" }, { - "$ref": "#/definitions/alias-1707531587-411-476-1707531587-0-129727" + "$ref": "#/definitions/alias-1623388915-2282-2347-1623388915-0-228060" }, { "items": { - "$ref": "#/definitions/alias-1707531587-156-411-1707531587-0-129727133205725" + "$ref": "#/definitions/alias-1623388915-2027-2282-1623388915-0-228060133205725" }, "type": "array" } diff --git a/packages/core/src/tools/interactiveTools.ts b/packages/core/src/tools/interactiveTools.ts index 4869c679..3830b339 100644 --- a/packages/core/src/tools/interactiveTools.ts +++ b/packages/core/src/tools/interactiveTools.ts @@ -6,7 +6,7 @@ * Also manages approved refs to gate fill/select/check actions. */ -import { tool } from "ai"; +import { tool, type ToolSet } from "ai"; import { z } from "zod"; import { nanoid } from "nanoid"; import { type AriaBrowser, PageAction } from "../browser/ariaBrowser.js"; @@ -77,7 +77,10 @@ async function fillFieldsDirectly( return { filled, errors }; } -export function createInteractiveTools(context: InteractiveToolContext) { +export function createInteractiveTools(context: InteractiveToolContext): { + tools: ToolSet; + approvedRefs: ApprovedRefs; +} { const approvedRefs = new ApprovedRefs(); const tools = { diff --git a/packages/core/src/tools/planningTools.ts b/packages/core/src/tools/planningTools.ts index 9bcd96a5..fd47ae49 100644 --- a/packages/core/src/tools/planningTools.ts +++ b/packages/core/src/tools/planningTools.ts @@ -6,14 +6,14 @@ * When no starting URL is provided, the planner determines the best url. */ -import { tool } from "ai"; +import { tool, type ToolSet } from "ai"; import { z } from "zod"; import { TOOL_STRINGS } from "../prompts.js"; /** * Creates the planning tool: `create_plan` with optional `url`. */ -export function createPlanningTools() { +export function createPlanningTools(): ToolSet { return { create_plan: tool({ description: TOOL_STRINGS.planning.create_plan.description, diff --git a/packages/core/src/tools/searchTools.ts b/packages/core/src/tools/searchTools.ts index d292b121..ad2edb4b 100644 --- a/packages/core/src/tools/searchTools.ts +++ b/packages/core/src/tools/searchTools.ts @@ -5,7 +5,7 @@ * Returns markdown that the LLM parses like any other web page. */ -import { tool } from "ai"; +import { tool, type ToolSet } from "ai"; import { z } from "zod"; import type { SearchService } from "../search/searchService.js"; import { WebAgentEventEmitter, WebAgentEventType } from "../events.js"; @@ -17,7 +17,7 @@ interface SearchToolContext { eventEmitter: WebAgentEventEmitter; } -export function createSearchTools(context: SearchToolContext) { +export function createSearchTools(context: SearchToolContext): ToolSet { return { webSearch: tool({ description: TOOL_STRINGS.webActions.webSearch.description, diff --git a/packages/core/src/tools/tabstackTools.ts b/packages/core/src/tools/tabstackTools.ts index 3722ec5e..e30662cc 100644 --- a/packages/core/src/tools/tabstackTools.ts +++ b/packages/core/src/tools/tabstackTools.ts @@ -7,7 +7,7 @@ * data extraction. */ -import { tool } from "ai"; +import { tool, type ToolSet } from "ai"; import { z } from "zod"; import type Tabstack from "@tabstack/sdk"; import { WebAgentEventEmitter, WebAgentEventType } from "../events.js"; @@ -19,7 +19,7 @@ export interface TabstackToolContext { eventEmitter: WebAgentEventEmitter; } -export function createTabstackTools(context: TabstackToolContext) { +export function createTabstackTools(context: TabstackToolContext): ToolSet { return { tabstack_extract_markdown: tool({ description: TOOL_STRINGS.tabstack.tabstack_extract_markdown.description, diff --git a/packages/core/src/tools/validationTools.ts b/packages/core/src/tools/validationTools.ts index c31afb6e..d78c8c39 100644 --- a/packages/core/src/tools/validationTools.ts +++ b/packages/core/src/tools/validationTools.ts @@ -4,11 +4,11 @@ * Tools for validating task completion quality. */ -import { tool } from "ai"; +import { tool, type ToolSet } from "ai"; import { z } from "zod"; import { TOOL_STRINGS } from "../prompts.js"; -export function createValidationTools() { +export function createValidationTools(): ToolSet { return { validate_task: tool({ description: TOOL_STRINGS.validation.validate_task.description, diff --git a/packages/core/src/tools/webActionTools.ts b/packages/core/src/tools/webActionTools.ts index 3406fc0b..152e0cef 100644 --- a/packages/core/src/tools/webActionTools.ts +++ b/packages/core/src/tools/webActionTools.ts @@ -5,7 +5,7 @@ * Each tool includes description, inputSchema, and execute function. */ -import { tool } from "ai"; +import { tool, type ToolSet } from "ai"; import { z } from "zod"; import { AriaBrowser, @@ -297,7 +297,7 @@ async function performActionWithValidation( ); } -export function createWebActionTools(context: WebActionContext) { +export function createWebActionTools(context: WebActionContext): ToolSet { if (!context.agentFilledRefs || !context.operationalRefs) { throw new Error("Web action provenance tracking sets are required"); } diff --git a/packages/core/src/webAgent.ts b/packages/core/src/webAgent.ts index 2e281a62..1d7126ec 100644 --- a/packages/core/src/webAgent.ts +++ b/packages/core/src/webAgent.ts @@ -247,7 +247,7 @@ type StepOutcome = | { flow: "return"; value: { success: boolean; finalAnswer: string; error?: TaskError } } | { flow: "next"; needsPageSnapshot: boolean }; -type StreamTextResultGeneric = StreamTextResult; +type StreamTextResultGeneric = StreamTextResult; // HACK: cobble together a type from StreamTextResult with promises resolved type ProcessedAIResponse = AwaitedProperties< Pick< diff --git a/packages/core/test/tools/planningTools.test.ts b/packages/core/test/tools/planningTools.test.ts index b92c5bfb..944f4094 100644 --- a/packages/core/test/tools/planningTools.test.ts +++ b/packages/core/test/tools/planningTools.test.ts @@ -131,6 +131,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result).toEqual(input); @@ -151,6 +152,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result.successCriteria).toBe("Test successCriteria"); @@ -169,6 +171,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result).toEqual(input); @@ -197,6 +200,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result.plan).toBe(longPlan); @@ -214,6 +218,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result.url).toBe("https://example.com/search?q=test&filter=true&page=1"); @@ -231,6 +236,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result.successCriteria).toBe("Tâche en français"); @@ -295,6 +301,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result).toEqual(input); @@ -312,6 +319,7 @@ describe("Planning Tools", () => { const result = (await tools.create_plan.execute!(input, { toolCallId: "test", messages: [] as ModelMessage[], + context: undefined, })) as CreatePlanResult; expect(result).toEqual(input);