diff --git a/README.md b/README.md index c3227481..43c94670 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ You can customize the `web-codegen-scorer eval` script with the following flags: - Example: `web-codegen-scorer eval --model=gemini-2.5-flash --autorater-model=gemini-2.5-flash --env=` - `--runner=`: Specifies the runner to use to execute the eval. Supported runners are - `genkit` (default), `ai-sdk`, `gemini-cli`, `claude-code` or `codex`. + `ai-sdk` (default), `gemini-cli`, `claude-code` or `codex`. - `--local`: Runs the script in local mode for the initial code generation request. Instead of calling the LLM, it will attempt to read the initial code from a corresponding file in the diff --git a/docs/model-setup.md b/docs/model-setup.md index 5ce305c6..c5274497 100644 --- a/docs/model-setup.md +++ b/docs/model-setup.md @@ -3,9 +3,8 @@ If you want to test out a model that isn't yet available in the runner, you can add support for it by following these steps: -1. Ensure that the provider of the model is supported by [Genkit](https://genkit.dev/). -2. Find the provider for the model in `runner/codegen/genkit/providers`. If the provider hasn't been - implemented yet, do so by creating a new `GenkitModelProvider` and adding it to the - `MODEL_PROVIDERS` in `runner/genkit/models.ts`. -3. Add your model to the `GenkitModelProvider` configs. +1. Ensure that the provider of the model is supported by [AI SDK](https://ai-sdk.dev/). +2. Find the provider for the model in `runner/codegen/ai-sdk`. If the provider doesn't exist, +implement it by following the pattern from the existing providers. +3. Add your model to the `SUPPORTED_MODELS` array. 4. Done! 🎉 You can now run your model by passing `--model=`. diff --git a/package.json b/package.json index ad0c1cb8..a238a46b 100644 --- a/package.json +++ b/package.json @@ -53,13 +53,12 @@ "dependencies": { "@ai-sdk/anthropic": "3.0.12", "@ai-sdk/google": "3.0.7", + "@ai-sdk/mcp": "1.0.10", "@ai-sdk/openai": "3.0.9", "@ai-sdk/provider": "3.0.2", + "@ai-sdk/xai": "^3.0.26", "@anthropic-ai/sdk": "^0.68.0", "@axe-core/puppeteer": "^4.11.0", - "@genkit-ai/compat-oai": "1.23.0", - "@genkit-ai/googleai": "1.22.0", - "@genkit-ai/mcp": "1.22.0", "@google/genai": "1.29.1", "@inquirer/prompts": "^8.2.0", "@safety-web/runner": "0.4.0-alpha.14", @@ -73,8 +72,6 @@ "chalk": "^5.6.2", "cli-progress": "^3.12.0", "file-type": "^21.3.0", - "genkit": "^1.27.0", - "genkitx-anthropic": "0.25.0", "handlebars": "^4.7.8", "lighthouse": "^13.0.1", "limiter": "^3.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9556bd8e..fcfdf3f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,27 +14,24 @@ importers: '@ai-sdk/google': specifier: 3.0.7 version: 3.0.7(zod@3.25.76) + '@ai-sdk/mcp': + specifier: 1.0.10 + version: 1.0.10(zod@3.25.76) '@ai-sdk/openai': specifier: 3.0.9 version: 3.0.9(zod@3.25.76) '@ai-sdk/provider': specifier: 3.0.2 version: 3.0.2 + '@ai-sdk/xai': + specifier: ^3.0.26 + version: 3.0.26(zod@3.25.76) '@anthropic-ai/sdk': specifier: ^0.68.0 version: 0.68.0(zod@3.25.76) '@axe-core/puppeteer': specifier: ^4.11.0 version: 4.11.0(puppeteer@24.35.0(typescript@5.9.3)) - '@genkit-ai/compat-oai': - specifier: 1.23.0 - version: 1.23.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))(ws@8.19.0)(zod@3.25.76) - '@genkit-ai/googleai': - specifier: 1.22.0 - version: 1.22.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) - '@genkit-ai/mcp': - specifier: 1.22.0 - version: 1.22.0(@modelcontextprotocol/sdk@1.25.2(hono@4.11.4)(zod@3.25.76))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) '@google/genai': specifier: 1.29.1 version: 1.29.1(@modelcontextprotocol/sdk@1.25.2(hono@4.11.4)(zod@3.25.76)) @@ -74,12 +71,6 @@ importers: file-type: specifier: ^21.3.0 version: 21.3.0 - genkit: - specifier: ^1.27.0 - version: 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)) - genkitx-anthropic: - specifier: 0.25.0 - version: 0.25.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) handlebars: specifier: ^4.7.8 version: 4.7.8 @@ -274,6 +265,18 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/mcp@1.0.10': + resolution: {integrity: sha512-8/+l5oO/8jGXLD5Ddns6pDVO9AW5GEPB9jZ+vWkSKoBjHJlfdyHRXvonqLrJPitzPAoAixwqoRKCWNcctIZm9w==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai-compatible@2.0.13': + resolution: {integrity: sha512-DShpuHZ9wiy3QtxJ4/Uq5csLxgNgeA3w58isYhZ34pSod2cBlRmJl3EyQzxZ1HD8e6sQDa9fvc0cwF5/EugBMw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/openai@3.0.9': resolution: {integrity: sha512-azgo1gmAFwkCDHKWlv9goKBe7SOG5c8zxIX94SEf8748t+ZL0sjPH2RNXk7G6POaZ4A6Os4zhkUnx9KwSk9Bjw==} engines: {node: '>=18'} @@ -286,10 +289,26 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@4.0.8': + resolution: {integrity: sha512-ns9gN7MmpI8vTRandzgz+KK/zNMLzhrriiKECMt4euLtQFSBgNfydtagPOX4j4pS1/3KvHF6RivhT3gNQgBZsg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider@3.0.2': resolution: {integrity: sha512-HrEmNt/BH/hkQ7zpi2o6N3k1ZR1QTb7z85WYhYygiTxOQuaml4CMtHCWRbric5WPU+RNsYI7r1EpyVQMKO1pYw==} engines: {node: '>=18'} + '@ai-sdk/provider@3.0.4': + resolution: {integrity: sha512-5KXyBOSEX+l67elrEa+wqo/LSsSTtrPj9Uoh3zMbe/ceQX4ucHI3b9nUEfNkGF3Ry1svv90widAt+aiKdIJasQ==} + engines: {node: '>=18'} + + '@ai-sdk/xai@3.0.26': + resolution: {integrity: sha512-mwY6BjlO8fR6+j13k1XjsvdKa2VEa8DuA6gEW6Ihd7K7UB2Dqcw7+zrRhKIFyyQekjc8CFGtrA/W7khgd/aOCQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@alcalzone/ansi-tokenize@0.2.3': resolution: {integrity: sha512-jsElTJ0sQ4wHRz+C45tfect76BwbTbgkgKByOzpCN9xG61N5V6u/glvg1CsNJhq2xJIFpKHSwG3D2wPPuEYOrQ==} engines: {node: '>=18'} @@ -520,9 +539,6 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - '@anthropic-ai/sdk@0.39.0': - resolution: {integrity: sha512-eMyDIPRZbt1CCLErRCi3exlAvNkBtRe+kW5vvJyef93PmNr/clstYgHhtvmkxN82nlKgzyGPCyGxrm0JQ1ZIdg==} - '@anthropic-ai/sdk@0.68.0': resolution: {integrity: sha512-SMYAmbbiprG8k1EjEPMTwaTqssDT7Ae+jxcR5kWXiqTlbwMR2AthXtscEVWOHkRfyAV5+y3PFYTJRNa3OJWIEw==} hasBin: true @@ -1043,41 +1059,6 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fastify/busboy@3.2.0': - resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} - - '@firebase/app-check-interop-types@0.3.3': - resolution: {integrity: sha512-gAlxfPLT2j8bTI/qfe3ahl2I2YcBQ8cFIBdhAQA4I2f3TndcO+22YizyGYuttLHPQEpWkhmpFW60VCFEPg4g5A==} - - '@firebase/app-types@0.9.3': - resolution: {integrity: sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==} - - '@firebase/auth-interop-types@0.2.4': - resolution: {integrity: sha512-JPgcXKCuO+CWqGDnigBtvo09HeBs5u/Ktc2GaFj2m01hLarbxthLNm7Fk8iOP1aqAtXV+fnnGj7U28xmk7IwVA==} - - '@firebase/component@0.7.0': - resolution: {integrity: sha512-wR9En2A+WESUHexjmRHkqtaVH94WLNKt6rmeqZhSLBybg4Wyf0Umk04SZsS6sBq4102ZsDBFwoqMqJYj2IoDSg==} - engines: {node: '>=20.0.0'} - - '@firebase/database-compat@2.1.0': - resolution: {integrity: sha512-8nYc43RqxScsePVd1qe1xxvWNf0OBnbwHxmXJ7MHSuuTVYFO3eLyLW3PiCKJ9fHnmIz4p4LbieXwz+qtr9PZDg==} - engines: {node: '>=20.0.0'} - - '@firebase/database-types@1.0.16': - resolution: {integrity: sha512-xkQLQfU5De7+SPhEGAXFBnDryUWhhlFXelEg2YeZOQMCdoe7dL64DDAd77SQsR+6uoXIZY5MB4y/inCs4GTfcw==} - - '@firebase/database@1.1.0': - resolution: {integrity: sha512-gM6MJFae3pTyNLoc9VcJNuaUDej0ctdjn3cVtILo3D5lpp0dmUHHLFN/pUKe7ImyeB1KAvRlEYxvIHNF04Filg==} - engines: {node: '>=20.0.0'} - - '@firebase/logger@0.5.0': - resolution: {integrity: sha512-cGskaAvkrnh42b3BA3doDWeBmuHFO/Mx5A83rbRDYakPjO9bJtRL3dX7javzc2Rr/JHZf4HlterTW2lUkfeN4g==} - engines: {node: '>=20.0.0'} - - '@firebase/util@1.13.0': - resolution: {integrity: sha512-0AZUyYUfpMNcztR5l09izHwXkZpghLgCUaAGjtMwXnCg3bj4ml5VgiwqOMOxJ+Nw4qN/zJAaOQBcJ7KGkWStqQ==} - engines: {node: '>=20.0.0'} - '@formatjs/ecma402-abstract@2.3.6': resolution: {integrity: sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==} @@ -1093,75 +1074,14 @@ packages: '@formatjs/intl-localematcher@0.6.2': resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} - '@genkit-ai/ai@1.27.0': - resolution: {integrity: sha512-Vogp21a0pBgL7UsdHj1Jm79PjrQdLNRK5dZT05Xvr3f7GwCNMv0k6Olxp+qrgwLi6DbRsVPi7c+wcldekMlLFQ==} - - '@genkit-ai/compat-oai@1.23.0': - resolution: {integrity: sha512-zD4472v3p4K228SpxDkuJPdkzs9u+JETVoxFDGj3dxGA9ffvQV3JIq7db6ImSqb0U+pXJniohqJCyJKTndmTvw==} - peerDependencies: - genkit: ^1.23.0 - - '@genkit-ai/core@1.27.0': - resolution: {integrity: sha512-2dcr/yKixcxNj0U9pFpx9qNOTJcRdEjEz76qd5+o6Ac31foRBMb3J9Bvrfr+SaaPI4kiMnFUxN1X+w5yNjryQg==} - - '@genkit-ai/firebase@1.27.0': - resolution: {integrity: sha512-/ChX1A/m9hIrfJLR8oP81+kg+sw9Qa4QMAUAF1UXZhCdiIzBhxDWRlkW4Hp5sotg+cMXlMY1JJKmweK6X0HWDg==} - peerDependencies: - '@google-cloud/firestore': ^7.11.0 - firebase: '>=11.5.0' - firebase-admin: '>=12.2' - genkit: ^1.27.0 - peerDependenciesMeta: - firebase: - optional: true - - '@genkit-ai/google-cloud@1.27.0': - resolution: {integrity: sha512-t+vyZDd8Xojp1Se/+oPUoij3H2Hz2iWX/Gxegwfptkh/UemvHp3L7I0hsDe0du8zTBGMHZnhwnVnomgo4QFw+g==} - peerDependencies: - genkit: ^1.27.0 - - '@genkit-ai/googleai@1.22.0': - resolution: {integrity: sha512-6GTfrsv2acRWlXcvi8jqH044tG/eslMQCH1wxpA//wzTnsnht5f4SJ3isKU3gcmyQtoYWiaUN8/F7OYqkIYHcw==} - peerDependencies: - genkit: ^1.22.0 - - '@genkit-ai/mcp@1.22.0': - resolution: {integrity: sha512-SMq3Ct/pqZvHH+n0W9F7tJXVJwdcivn9RTfTX4gt8h1oTMxrhwEtYt+gnpFHlQ9Hm5FlfPSImIMsBx4sObFp7A==} - peerDependencies: - '@modelcontextprotocol/sdk': ^1.13.0 - genkit: ^1.22.0 - '@google-cloud/common@5.0.2': resolution: {integrity: sha512-V7bmBKYQyu0eVG2BFejuUjlBt+zrya6vtsKdY+JxMM/dNntPF41vZ9+LhOshEUH01zOHEqBSvI7Dad7ZS6aUeA==} engines: {node: '>=14.0.0'} - '@google-cloud/firestore@7.11.6': - resolution: {integrity: sha512-EW/O8ktzwLfyWBOsNuhRoMi8lrC3clHM5LVFhGvO1HCsLozCOOXRAlHrYBoE6HL42Sc8yYMuCb2XqcnJ4OOEpw==} - engines: {node: '>=14.0.0'} - - '@google-cloud/logging-winston@6.0.1': - resolution: {integrity: sha512-tgA/qe/aGZITMrJ/5Tuykv234pLb/Qo6iDZ8SDkjbsiIy69mLQmbphrUd/IqnE17BSDfrwDUckvWdghiy8b+Qg==} - engines: {node: '>=14.0.0'} - peerDependencies: - winston: '>=3.2.1' - '@google-cloud/logging@11.2.1': resolution: {integrity: sha512-2h9HBJG3OAsvzXmb81qXmaTPfXYU7KJTQUxunoOKFGnY293YQ/eCkW1Y5mHLocwpEqeqQYT/Qvl6Tk+Q7PfStw==} engines: {node: '>=14.0.0'} - '@google-cloud/modelarmor@0.4.1': - resolution: {integrity: sha512-CT9TpQF443aatjhRRvazrYNOvUot26HnFP3hhgmV89QYygNPB6owWvGFFOTsKK4zSvTDfkeeb+E6diVXxn9t4g==} - engines: {node: '>=14.0.0'} - - '@google-cloud/opentelemetry-cloud-monitoring-exporter@0.19.0': - resolution: {integrity: sha512-5SOPXwC6RET4ZvXxw5D97dp8fWpqWEunHrzrUUGXhG4UAeedQe1KvYV8CK+fnaAbN2l2ha6QDYspT6z40TVY0g==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/core': ^1.0.0 - '@opentelemetry/resources': ^1.0.0 - '@opentelemetry/sdk-metrics': ^1.0.0 - '@google-cloud/opentelemetry-cloud-monitoring-exporter@0.21.0': resolution: {integrity: sha512-+lAew44pWt6rA4l8dQ1gGhH7Uo95wZKfq/GBf9aEyuNDDLQ2XppGEEReu6ujesSqTtZ8ueQFt73+7SReSHbwqg==} engines: {node: '>=18'} @@ -1171,15 +1091,6 @@ packages: '@opentelemetry/resources': ^2.0.0 '@opentelemetry/sdk-metrics': ^2.0.0 - '@google-cloud/opentelemetry-cloud-trace-exporter@2.4.1': - resolution: {integrity: sha512-Dq2IyAyA9PCjbjLOn86i2byjkYPC59b5ic8k/L4q5bBWH0Jro8lzMs8C0G5pJfqh2druj8HF+oAIAlSdWQ+Z9Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/core': ^1.0.0 - '@opentelemetry/resources': ^1.0.0 - '@opentelemetry/sdk-trace-base': ^1.0.0 - '@google-cloud/opentelemetry-cloud-trace-exporter@3.0.0': resolution: {integrity: sha512-mUfLJBFo+ESbO0dAGboErx2VyZ7rbrHcQvTP99yH/J72dGaPbH2IzS+04TFbTbEd1VW5R9uK3xq2CqawQaG+1Q==} engines: {node: '>=18'} @@ -1189,12 +1100,6 @@ packages: '@opentelemetry/resources': ^2.0.0 '@opentelemetry/sdk-trace-base': ^2.0.0 - '@google-cloud/opentelemetry-resource-util@2.4.0': - resolution: {integrity: sha512-/7ujlMoKtDtrbQlJihCjQnm31n2s2RTlvJqcSbt2jV3OkCzPAdo3u31Q13HNugqtIRUSk7bUoLx6AzhURkhW4w==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/resources': ^1.0.0 - '@google-cloud/opentelemetry-resource-util@3.0.0': resolution: {integrity: sha512-CGR/lNzIfTKlZoZFfS6CkVzx+nsC9gzy6S8VcyaLegfEJbiPjxbMLP7csyhJTvZe/iRRcQJxSk0q8gfrGqD3/Q==} engines: {node: '>=18'} @@ -1218,10 +1123,6 @@ packages: resolution: {integrity: sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g==} engines: {node: '>=14'} - '@google-cloud/storage@7.18.0': - resolution: {integrity: sha512-r3ZwDMiz4nwW6R922Z1pwpePxyRwE5GdevYX63hRmAQUkUQJcBH/79EnQPDv5cOv1mFBgevdNWQfi3tie3dHrQ==} - engines: {node: '>=14'} - '@google/gemini-cli-core@0.13.0': resolution: {integrity: sha512-uBEnrMlNZV0yzUizwEGYmeb2zI1/2DcDxgZYKWtlMDb00cGKjLrSDj0YTr9Upi9LScN50wYcI2XjEFHjSaA64g==} engines: {node: '>=20'} @@ -1249,10 +1150,6 @@ packages: '@modelcontextprotocol/sdk': optional: true - '@google/generative-ai@0.24.1': - resolution: {integrity: sha512-MqO+MLfM6kjxcKoy0p1wRzG3b4ZZXtPI+z2IE26UogS2Cm/XHO+7gGRBh6gcJsOiIVoH93UwKvW4HdgiOZCy9Q==} - engines: {node: '>=18.0.0'} - '@grpc/grpc-js@1.14.3': resolution: {integrity: sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==} engines: {node: '>=12.10.0'} @@ -2058,10 +1955,6 @@ packages: resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.52.1': - resolution: {integrity: sha512-qnSqB2DQ9TPP96dl8cDubDvrUyWc0/sK81xHTK8eSUspzDM3bsewX903qclQFvVhgStjRWdC5bLb3kQqMkfV5A==} - engines: {node: '>=14'} - '@opentelemetry/api-logs@0.57.2': resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} engines: {node: '>=14'} @@ -2070,18 +1963,6 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@opentelemetry/auto-instrumentations-node@0.49.2': - resolution: {integrity: sha512-xtETEPmAby/3MMmedv8Z/873sdLTWg+Vq98rtm4wbwvAiXBB/ao8qRyzRlvR2MR6puEr+vIB/CXeyJnzNA3cyw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.4.1 - - '@opentelemetry/context-async-hooks@1.25.1': - resolution: {integrity: sha512-UW/ge9zjvAEmRWVapOP0qyCvPulWU6cQxGxDbWEFfGOj1VBBZAuOqTo3X6yWmDTD3Xe15ysCZChHncr2xFMIfQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/context-async-hooks@1.30.1': resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} engines: {node: '>=14'} @@ -2094,12 +1975,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@1.25.1': - resolution: {integrity: sha512-GeT/l6rBYWVQ4XArluLVB6WWQ8flHbdb6r2FCHC3smtdOAbrJBIv35tpV/yp9bmYUJf+xmZpu9DRTIeJVhFbEQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@1.30.1': resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} engines: {node: '>=14'} @@ -2118,13 +1993,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-jaeger@1.30.1': - resolution: {integrity: sha512-7Ki+x7cZ/PEQxp3UyB+CWkWBqLk22yRGQ4AWIGwZlEs6rpCOdWwIFOyQDO9DdeyWtTPTvO3An/7chPZcRHOgzQ==} - engines: {node: '>=14'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-logs-otlp-grpc@0.203.0': resolution: {integrity: sha512-g/2Y2noc/l96zmM+g0LdeuyYKINyBwN6FJySoU15LHPLcMN/1a0wNk2SegwKcxrRdE7Xsm7fkIR5n6XFe3QpPw==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2173,186 +2041,66 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-grpc@0.52.1': - resolution: {integrity: sha512-pVkSH20crBwMTqB3nIN4jpQKUEoB0Z94drIHpYyEqs7UBr+I0cpYyOR3bqjA/UasQUMROb3GX8ZX4/9cVRqGBQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-trace-otlp-http@0.203.0': resolution: {integrity: sha512-ZDiaswNYo0yq/cy1bBLJFe691izEJ6IgNmkjm4C6kE9ub/OMQqDXORx2D2j8fzTBTxONyzusbaZlqtfmyqURPw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-http@0.52.1': - resolution: {integrity: sha512-05HcNizx0BxcFKKnS5rwOV+2GevLTVIRA0tRgWYyw4yCgR53Ic/xk83toYKts7kbzcI+dswInUg/4s8oyA+tqg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-trace-otlp-proto@0.203.0': resolution: {integrity: sha512-1xwNTJ86L0aJmWRwENCJlH4LULMG2sOXWIVw+Szta4fkqKVY50Eo4HoVKKq6U9QEytrWCr8+zjw0q/ZOeXpcAQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/exporter-trace-otlp-proto@0.52.1': - resolution: {integrity: sha512-pt6uX0noTQReHXNeEslQv7x311/F1gJzMnp1HD2qgypLRPbXDeMzzeTngRTUaUbP6hqWNtPxuLr4DEoZG+TcEQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/exporter-zipkin@1.25.1': - resolution: {integrity: sha512-RmOwSvkimg7ETwJbUOPTMhJm9A9bG1U8s7Zo3ajDh4zM7eYcycQ0dM7FbLD6NXWbI2yj7UY4q8BKinKYBQksyw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/exporter-zipkin@2.0.1': resolution: {integrity: sha512-a9eeyHIipfdxzCfc2XPrE+/TI3wmrZUDFtG2RRXHSbZZULAny7SyybSvaDvS77a7iib5MPiAvluwVvbGTsHxsw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/instrumentation-amqplib@0.41.0': - resolution: {integrity: sha512-00Oi6N20BxJVcqETjgNzCmVKN+I5bJH/61IlHiIWd00snj1FdgiIKlpE4hYVacTB2sjIBB3nTbHskttdZEE2eg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-amqplib@0.46.1': resolution: {integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-aws-lambda@0.43.0': - resolution: {integrity: sha512-pSxcWlsE/pCWQRIw92sV2C+LmKXelYkjkA7C5s39iPUi4pZ2lA1nIiw+1R/y2pDEhUHcaKkNyljQr3cx9ZpVlQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-aws-sdk@0.43.1': - resolution: {integrity: sha512-qLT2cCniJ5W+6PFzKbksnoIQuq9pS83nmgaExfUwXVvlwi0ILc50dea0tWBHZMkdIDa/zZdcuFrJ7+fUcSnRow==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-bunyan@0.40.0': - resolution: {integrity: sha512-aZ4cXaGWwj79ZXSYrgFVsrDlE4mmf2wfvP9bViwRc0j75A6eN6GaHYHqufFGMTCqASQn5pIjjP+Bx+PWTGiofw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-cassandra-driver@0.40.0': - resolution: {integrity: sha512-JxbM39JU7HxE9MTKKwi6y5Z3mokjZB2BjwfqYi4B3Y29YO3I42Z7eopG6qq06yWZc+nQli386UDQe0d9xKmw0A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-connect@0.38.0': - resolution: {integrity: sha512-2/nRnx3pjYEmdPIaBwtgtSviTKHWnDZN3R+TkRUnhIVrvBKVcq+I5B2rtd6mr6Fe9cHlZ9Ojcuh7pkNh/xdWWg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.43.1': resolution: {integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-cucumber@0.8.0': - resolution: {integrity: sha512-ieTm4RBIlZt2brPwtX5aEZYtYnkyqhAVXJI9RIohiBVMe5DxiwCwt+2Exep/nDVqGPX8zRBZUl4AEw423OxJig==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/instrumentation-dataloader@0.11.0': - resolution: {integrity: sha512-27urJmwkH4KDaMJtEv1uy2S7Apk4XbN4AgWMdfMJbi7DnOduJmeuA+DpJCwXB72tEWXo89z5T3hUVJIDiSNmNw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.16.1': resolution: {integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dns@0.38.0': - resolution: {integrity: sha512-Um07I0TQXDWa+ZbEAKDFUxFH40dLtejtExDOMLNJ1CL8VmOmA71qx93Qi/QG4tGkiI1XWqr7gF/oiMCJ4m8buQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-express@0.41.1': - resolution: {integrity: sha512-uRx0V3LPGzjn2bxAnV8eUsDT82vT7NTwI0ezEuPMBOTOsnPpGhWdhcdNdhH80sM4TrWrOfXm9HGEdfWE3TRIww==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.47.1': resolution: {integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fastify@0.38.0': - resolution: {integrity: sha512-HBVLpTSYpkQZ87/Df3N0gAw7VzYZV3n28THIBrJWfuqw3Or7UqdhnjeuMIPQ04BKk3aZc0cWn2naSQObbh5vXw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-fs@0.14.0': - resolution: {integrity: sha512-pVc8P5AgliC1DphyyBUgsxXlm2XaPH4BpYvt7rAZDMIqUpRk8gs19SioABtKqqxvFzg5jPtgJfJsdxq0Y+maLw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.19.1': resolution: {integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.38.1': - resolution: {integrity: sha512-WvssuKCuavu/hlq661u82UWkc248cyI/sT+c2dEIj6yCk0BUkErY1D+9XOO+PmHdJNE+76i2NdcvQX5rJrOe/w==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.43.1': resolution: {integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.42.0': - resolution: {integrity: sha512-N8SOwoKL9KQSX7z3gOaw5UaTeVQcfDO1c21csVHnmnmGUoqsXbArK2B8VuwPWcv6/BC/i3io+xTo7QGRZ/z28Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.47.1': resolution: {integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-grpc@0.52.1': - resolution: {integrity: sha512-EdSDiDSAO+XRXk/ZN128qQpBo1I51+Uay/LUPcPQhSRGf7fBPIEUBeOLQiItguGsug5MGOYjql2w/1wCQF3fdQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-hapi@0.40.0': - resolution: {integrity: sha512-8U/w7Ifumtd2bSN1OLaSwAAFhb9FyqWUki3lMMB0ds+1+HdSxYBe9aspEJEgvxAqOkrQnVniAPTEGf1pGM7SOw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.45.2': resolution: {integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==} engines: {node: '>=14'} @@ -2365,364 +2113,142 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.52.1': - resolution: {integrity: sha512-dG/aevWhaP+7OLv4BQQSEKMJv8GyeOp3Wxl31NHqE8xo9/fYMfEljiZphUHIfyg4gnZ9swMyWjfOQs5GUQe54Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.57.2': resolution: {integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.42.0': - resolution: {integrity: sha512-P11H168EKvBB9TUSasNDOGJCSkpT44XgoM6d3gRIWAa9ghLpYhl0uRkS8//MqPzcJVHr3h3RmfXIpiYLjyIZTw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.47.1': resolution: {integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.2.0': - resolution: {integrity: sha512-uKKmhEFd0zR280tJovuiBG7cfnNZT4kvVTvqtHPxQP7nOmRbJstCYHFH13YzjVcKjkmoArmxiSulmZmF7SLIlg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.7.1': resolution: {integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.39.0': - resolution: {integrity: sha512-lRwTqIKQecPWDkH1KEcAUcFhCaNssbKSpxf4sxRTAROCwrCEnYkjOuqJHV+q1/CApjMTaKu0Er4LBv/6bDpoxA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.44.1': resolution: {integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-koa@0.42.0': - resolution: {integrity: sha512-H1BEmnMhho8o8HuNRq5zEI4+SIHDIglNB7BPKohZyWG4fWNuR7yM4GTlR01Syq21vODAS7z5omblScJD/eZdKw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-koa@0.47.1': resolution: {integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-lru-memoizer@0.39.0': - resolution: {integrity: sha512-eU1Wx1RRTR/2wYXFzH9gcpB8EPmhYlNDIUHzUXjyUE0CAXEJhBLkYNlzdaVCoQDw2neDqS+Woshiia6+emWK9A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-lru-memoizer@0.44.1': resolution: {integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-memcached@0.38.0': - resolution: {integrity: sha512-tPmyqQEZNyrvg6G+iItdlguQEcGzfE+bJkpQifmBXmWBnoS5oU3UxqtyYuXGL2zI9qQM5yMBHH4nRXWALzy7WA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongodb@0.46.0': - resolution: {integrity: sha512-VF/MicZ5UOBiXrqBslzwxhN7TVqzu1/LN/QDpkskqM0Zm0aZ4CVRbUygL8d7lrjLn15x5kGIe8VsSphMfPJzlA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.52.0': resolution: {integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.41.0': - resolution: {integrity: sha512-ivJg4QnnabFxxoI7K8D+in7hfikjte38sYzJB9v1641xJk9Esa7jM3hmbPB7lxwcgWJLVEDvfPwobt1if0tXxA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.46.1': resolution: {integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.40.0': - resolution: {integrity: sha512-0xfS1xcqUmY7WE1uWjlmI67Xg3QsSUlNT+AcXHeA4BDUPwZtWqF4ezIwLgpVZfHOnkAEheqGfNSWd1PIu3Wnfg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.45.2': resolution: {integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.40.0': - resolution: {integrity: sha512-d7ja8yizsOCNMYIJt5PH/fKZXjb/mS48zLROO4BzZTtDfhNCl2UM/9VIomP2qkGIFVouSJrGr/T00EzY7bPtKA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.45.1': resolution: {integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-nestjs-core@0.39.0': - resolution: {integrity: sha512-mewVhEXdikyvIZoMIUry8eb8l3HUjuQjSjVbmLVTt4NQi35tkpnHQrG9bTRBrl3403LoWZ2njMPJyg4l6HfKvA==} + '@opentelemetry/instrumentation-pg@0.51.1': + resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-net@0.38.0': - resolution: {integrity: sha512-stjow1PijcmUquSmRD/fSihm/H61DbjPlJuJhWUe7P22LFPjFhsrSeiB5vGj3vn+QGceNAs+kioUTzMGPbNxtg==} + '@opentelemetry/instrumentation-redis-4@0.46.1': + resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.43.0': - resolution: {integrity: sha512-og23KLyoxdnAeFs1UWqzSonuCkePUzCX30keSYigIzJe/6WSYA8rnEI5lobcxPEzg+GcU06J7jzokuEHbjVJNw==} + '@opentelemetry/instrumentation-tedious@0.18.1': + resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.51.1': - resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} + '@opentelemetry/instrumentation-undici@0.10.1': + resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation-pino@0.41.0': - resolution: {integrity: sha512-Kpv0fJRk/8iMzMk5Ue5BsUJfHkBJ2wQoIi/qduU1a1Wjx9GLj6J2G17PHjPK5mnZjPNzkFOXFADZMfgDioliQw==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation@0.203.0': + resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis-4@0.41.1': - resolution: {integrity: sha512-UqJAbxraBk7s7pQTlFi5ND4sAUs4r/Ai7gsAVZTQDbHl2kSsOp7gpHcpIuN5dpcI2xnuhM2tkH4SmEhbrv2S6Q==} + '@opentelemetry/instrumentation@0.57.2': + resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis-4@0.46.1': - resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} - engines: {node: '>=14'} + '@opentelemetry/otlp-exporter-base@0.203.0': + resolution: {integrity: sha512-Wbxf7k+87KyvxFr5D7uOiSq/vHXWommvdnNE7vECO3tAhsA2GfOlpWINCMWUEPdHZ7tCXxw6Epp3vgx3jU7llQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.41.0': - resolution: {integrity: sha512-RJ1pwI3btykp67ts+5qZbaFSAAzacucwBet5/5EsKYtWBpHbWwV/qbGN/kIBzXg5WEZBhXLrR/RUq0EpEUpL3A==} - engines: {node: '>=14'} + '@opentelemetry/otlp-grpc-exporter-base@0.203.0': + resolution: {integrity: sha512-te0Ze1ueJF+N/UOFl5jElJW4U0pZXQ8QklgSfJ2linHN0JJsuaHG8IabEUi2iqxY8ZBDlSiz1Trfv5JcjWWWwQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-restify@0.40.0': - resolution: {integrity: sha512-sm/rH/GysY/KOEvZqYBZSLYFeXlBkHCgqPDgWc07tz+bHCN6mPs9P3otGOSTe7o3KAIM8Nc6ncCO59vL+jb2cA==} - engines: {node: '>=14'} + '@opentelemetry/otlp-transformer@0.203.0': + resolution: {integrity: sha512-Y8I6GgoCna0qDQ2W6GCRtaF24SnvqvA8OfeTi7fqigD23u8Jpb4R5KFv/pRvrlGagcCLICMIyh9wiejp4TXu/A==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-router@0.39.0': - resolution: {integrity: sha512-LaXnVmD69WPC4hNeLzKexCCS19hRLrUw3xicneAMkzJSzNJvPyk7G6I7lz7VjQh1cooObPBt9gNyd3hhTCUrag==} - engines: {node: '>=14'} + '@opentelemetry/propagator-b3@2.0.1': + resolution: {integrity: sha512-Hc09CaQ8Tf5AGLmf449H726uRoBNGPBL4bjr7AnnUpzWMvhdn61F78z9qb6IqB737TffBsokGAK1XykFEZ1igw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/instrumentation-socket.io@0.41.0': - resolution: {integrity: sha512-7fzDe9/FpO6NFizC/wnzXXX7bF9oRchsD//wFqy5g5hVEgXZCQ70IhxjrKdBvgjyIejR9T9zTvfQ6PfVKfkCAw==} - engines: {node: '>=14'} + '@opentelemetry/propagator-jaeger@2.0.1': + resolution: {integrity: sha512-7PMdPBmGVH2eQNb/AtSJizQNgeNTfh6jQFqys6lfhd6P4r+m/nTh3gKPPpaCXVdRQ+z93vfKk+4UGty390283w==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-tedious@0.13.0': - resolution: {integrity: sha512-Pob0+0R62AqXH50pjazTeGBy/1+SK4CYpFUBV5t7xpbpeuQezkkgVGvLca84QqjBqQizcXedjpUJLgHQDixPQg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-tedious@0.18.1': - resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-undici@0.10.1': - resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.7.0 - - '@opentelemetry/instrumentation-undici@0.5.0': - resolution: {integrity: sha512-aNTeSrFAVcM9qco5DfZ9DNXu6hpMRe8Kt8nCDHfMWDB3pwgGVUE76jTdohc+H/7eLRqh4L7jqs5NSQoHw7S6ww==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.7.0 - - '@opentelemetry/instrumentation-winston@0.39.0': - resolution: {integrity: sha512-v/1xziLJ9CyB3YDjBSBzbB70Qd0JwWTo36EqWK5m3AR0CzsyMQQmf3ZIZM6sgx7hXMcRQ0pnEYhg6nhrUQPm9A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.203.0': - resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.52.1': - resolution: {integrity: sha512-uXJbYU/5/MBHjMp1FqrILLRuiJCs3Ofk0MeRDk8g1S1gD47U8X3JnSwcMO1rtRo1x1a7zKaQHaoYu49p/4eSKw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.57.2': - resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-exporter-base@0.203.0': - resolution: {integrity: sha512-Wbxf7k+87KyvxFr5D7uOiSq/vHXWommvdnNE7vECO3tAhsA2GfOlpWINCMWUEPdHZ7tCXxw6Epp3vgx3jU7llQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-exporter-base@0.52.1': - resolution: {integrity: sha512-z175NXOtX5ihdlshtYBe5RpGeBoTXVCKPPLiQlD6FHvpM4Ch+p2B0yWKYSrBfLH24H9zjJiBdTrtD+hLlfnXEQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/otlp-grpc-exporter-base@0.203.0': - resolution: {integrity: sha512-te0Ze1ueJF+N/UOFl5jElJW4U0pZXQ8QklgSfJ2linHN0JJsuaHG8IabEUi2iqxY8ZBDlSiz1Trfv5JcjWWWwQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-grpc-exporter-base@0.52.1': - resolution: {integrity: sha512-zo/YrSDmKMjG+vPeA9aBBrsQM9Q/f2zo6N04WMB3yNldJRsgpRBeLLwvAt/Ba7dpehDLOEFBd1i2JCoaFtpCoQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/otlp-transformer@0.203.0': - resolution: {integrity: sha512-Y8I6GgoCna0qDQ2W6GCRtaF24SnvqvA8OfeTi7fqigD23u8Jpb4R5KFv/pRvrlGagcCLICMIyh9wiejp4TXu/A==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-transformer@0.52.1': - resolution: {integrity: sha512-I88uCZSZZtVa0XniRqQWKbjAUm73I8tpEy/uJYPPYw5d7BRdVk0RfTBQw8kSUl01oVWEuqxLDa802222MYyWHg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/propagation-utils@0.30.16': - resolution: {integrity: sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/propagator-aws-xray@1.26.2': - resolution: {integrity: sha512-k43wxTjKYvwfce9L4eT8fFYy/ATmCfPHZPZsyT/6ABimf2KE1HafoOsIcxLOtmNSZt6dCvBIYCrXaOWta20xJg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/propagator-b3@1.25.1': - resolution: {integrity: sha512-p6HFscpjrv7//kE+7L+3Vn00VEDUJB0n6ZrjkTYHrJ58QZ8B3ajSJhRbCcY6guQ3PDjTbxWklyvIN2ojVbIb1A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/propagator-b3@2.0.1': - resolution: {integrity: sha512-Hc09CaQ8Tf5AGLmf449H726uRoBNGPBL4bjr7AnnUpzWMvhdn61F78z9qb6IqB737TffBsokGAK1XykFEZ1igw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/propagator-jaeger@1.25.1': - resolution: {integrity: sha512-nBprRf0+jlgxks78G/xq72PipVK+4or9Ypntw0gVZYNTCSK8rg5SeaGV19tV920CMqBD/9UIOiFr23Li/Q8tiA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/propagator-jaeger@2.0.1': - resolution: {integrity: sha512-7PMdPBmGVH2eQNb/AtSJizQNgeNTfh6jQFqys6lfhd6P4r+m/nTh3gKPPpaCXVdRQ+z93vfKk+4UGty390283w==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/redis-common@0.36.2': resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} engines: {node: '>=14'} - '@opentelemetry/resource-detector-alibaba-cloud@0.29.7': - resolution: {integrity: sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-aws@1.12.0': - resolution: {integrity: sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-azure@0.2.12': - resolution: {integrity: sha512-iIarQu6MiCjEEp8dOzmBvCSlRITPFTinFB2oNKAjU6xhx8d7eUcjNOKhBGQTvuCriZrxrEvDaEEY9NfrPQ6uYQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-container@0.4.4': - resolution: {integrity: sha512-ZEN2mq7lIjQWJ8NTt1umtr6oT/Kb89856BOmESLSvgSHbIwOFYs7cSfSRH5bfiVw6dXTQAVbZA/wLgCHKrebJA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-gcp@0.29.13': - resolution: {integrity: sha512-vdotx+l3Q+89PeyXMgKEGnZ/CwzwMtuMi/ddgD9/5tKZ08DfDGB2Npz9m2oXPHRCjc4Ro6ifMqFlRyzIvgOjhg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resource-detector-gcp@0.40.3': resolution: {integrity: sha512-C796YjBA5P1JQldovApYfFA/8bQwFfpxjUbOtGhn1YZkVTLoNQN+kvBwgALfTPWzug6fWsd0xhn9dzeiUcndag==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/resources@1.25.1': - resolution: {integrity: sha512-pkZT+iFYIZsVn6+GzM0kSX+u3MSLCY9md+lIJOoKl/P+gJFfxJte/60Usdp8Ce4rOs8GduUpSPNe1ddGyDT1sQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/resources@1.30.1': resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} engines: {node: '>=14'} @@ -2747,18 +2273,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' - '@opentelemetry/sdk-logs@0.52.1': - resolution: {integrity: sha512-MBYh+WcPPsN8YpRHRmK1Hsca9pVlyyKd4BxOC4SsgHACnl/bPp4Cri9hWhVm5+2tiQ9Zf4qSc1Jshw9tOLGWQA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.10.0' - - '@opentelemetry/sdk-metrics@1.25.1': - resolution: {integrity: sha512-9Mb7q5ioFL4E4dDrc4wC/A3NTHDat44v4I3p2pLPSxRvqUbDIQyMVr9uK+EU69+HWhlET1VaSrRzwdckWqY15Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-metrics@2.0.1': resolution: {integrity: sha512-wf8OaJoSnujMAHWR3g+/hGvNcsC16rf9s1So4JlMiFaFHiE4HpIA3oUh+uWZQ7CNuK8gVW/pQSkgoa5HkkOl0g==} engines: {node: ^18.19.0 || >=20.6.0} @@ -2771,18 +2285,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-node@0.52.1': - resolution: {integrity: sha512-uEG+gtEr6eKd8CVWeKMhH2olcCHM9dEK68pe0qE0be32BcCRsvYURhHaD1Srngh1SQcnQzZ4TP324euxqtBOJA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace-base@1.25.1': - resolution: {integrity: sha512-C8k4hnEbc5FamuZQ92nTOp8X/diCY56XUTnMiv9UTuJitCzaNNHAVsdm5+HLCdI8SLQsLWIrG38tddMxLVoftw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-trace-base@1.30.1': resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} engines: {node: '>=14'} @@ -2795,22 +2297,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-node@1.25.1': - resolution: {integrity: sha512-nMcjFIKxnFqoez4gUmihdBrbpsEnAX/Xj16sGvZm+guceYE0NE00vLhpDVK6f3q8Q4VFI5xG8JjlXKMB/SkTTQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/sdk-trace-node@2.0.1': resolution: {integrity: sha512-UhdbPF19pMpBtCWYP5lHbTogLWx9N0EBxtdagvkn5YtsAnCBZzL7SjktG+ZmupRgifsHMjwUaCCaVmqGfSADmA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.25.1': - resolution: {integrity: sha512-ZDjMJJQRlyk8A1KZFCc+bCbsyrn1wTwdNt56F7twdfUfnHUZUq77/WfONCj8p72NZOyP7pNTdUWSTYC3GTbuuQ==} - engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.28.0': resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} @@ -3446,15 +2938,9 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@types/aws-lambda@8.10.122': - resolution: {integrity: sha512-vBkIh9AY22kVOCEKo5CJlyCgmSWvasC+SWUxL/x/vOwRobMpI/HG1xp/Ae3AqmSiZeLUbOhW0FCD3ZjqqUxmXw==} - '@types/body-parser@1.19.6': resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - '@types/bunyan@1.8.9': - resolution: {integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==} - '@types/caseless@0.12.5': resolution: {integrity: sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==} @@ -3467,9 +2953,6 @@ packages: '@types/configstore@6.0.2': resolution: {integrity: sha512-OS//b51j9uyR3zvwD04Kfs5kHpve2qalQ18JhY/ho3voGYUTPLEG90/ocfKPI48hyHH8T04f7KEEbK6Ue60oZQ==} - '@types/connect@3.4.36': - resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} - '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -3512,45 +2995,21 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/jsonwebtoken@9.0.10': - resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} - '@types/long@4.0.2': resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/memcached@2.2.10': - resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} - '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - - '@types/mysql@2.15.22': - resolution: {integrity: sha512-wK1pzsJVVAjYCSZWQoWHziQZbNggXFDUEIGf54g4ZM/ERuP86uGdWeKZWMYlqTPMZfHJJvLPyogXGvCOg87yLQ==} - '@types/mysql@2.15.26': resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/node-fetch@2.6.13': - resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} - - '@types/node@18.19.130': - resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} - - '@types/node@20.19.30': - resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==} - - '@types/node@22.19.7': - resolution: {integrity: sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==} - '@types/node@24.10.9': resolution: {integrity: sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==} @@ -3560,9 +3019,6 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/pg-pool@2.0.4': - resolution: {integrity: sha512-qZAvkv1K3QbmHHFYSNRYPkRjOWRLBYrL4B9c+wG0GSVGBw0NtJwPcgx/DSddeDJvRGMHCEQ4VMEVfuJ/0gZ3XQ==} - '@types/pg-pool@2.0.6': resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} @@ -3739,10 +3195,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - agentkeepalive@4.6.0: - resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} - engines: {node: '>= 8.0.0'} - ai@6.0.31: resolution: {integrity: sha512-aAn62jsDueAK7oiY4jeqJcA4zFctDqVHGyEaUDaWxEXzz4kbMdoByfYlYZhO1V3nhkeVoI8qNyFfiZusAubQLQ==} engines: {node: '>=18'} @@ -3770,17 +3222,10 @@ packages: ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - ansi-color@0.2.2: - resolution: {integrity: sha512-qPx7iZZDHITYrrfzaUFXQpIcF2xYifcQHQflP1pFz8yY3lfU6GgCHb0+hJD7nimYKO7f2iaYYwBpZ+GaNcAhcA==} - ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - ansi-escapes@7.1.1: - resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} - engines: {node: '>=18'} - ansi-escapes@7.2.0: resolution: {integrity: sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==} engines: {node: '>=18'} @@ -3830,12 +3275,6 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - async-mutex@0.5.0: - resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} - - async-retry@1.3.3: - resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -3936,10 +3375,6 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - body-parser@1.20.4: - resolution: {integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - body-parser@2.2.0: resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} engines: {node: '>=18'} @@ -3983,10 +3418,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - bufrw@1.4.0: - resolution: {integrity: sha512-sWm8iPbqvL9+5SiYxXH73UOkyEbGQg7kyHQmReF89WJHQJw2eV4P/yZ0E+b71cczJ4pPobVhXxgQcmfSTgGHxQ==} - engines: {node: '>= 0.10.x'} - bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} @@ -4230,9 +3661,6 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - cookie-signature@1.0.7: - resolution: {integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==} - cookie-signature@1.2.2: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} @@ -4443,9 +3871,6 @@ packages: resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} - dotprompt@1.1.2: - resolution: {integrity: sha512-24EU+eORQbPywBicIP44BiqykzEXFwZq1ZQKO5TEr9KrrENyDA7I1NzqhtmmEdQVfAXka0DEbSLPN5nerCqJ8A==} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -4532,9 +3957,6 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - error@7.0.2: - resolution: {integrity: sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw==} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -4677,10 +4099,6 @@ packages: resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} engines: {node: '>= 0.10.0'} - express@4.22.1: - resolution: {integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==} - engines: {node: '>= 0.10.0'} - express@5.1.0: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} engines: {node: '>= 18'} @@ -4697,10 +4115,6 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true - farmhash-modern@1.1.0: - resolution: {integrity: sha512-6ypT4XfgqJk/F3Yuv4SX26I3doUjt0GTG4a+JgWxXQpxXzTBq8fPUeGHfcYMMDPHJHm3yPOSjaeBwBGAHWXCdA==} - engines: {node: '>=18.0.0'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4720,10 +4134,6 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-parser@4.5.3: - resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} - hasBin: true - fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} @@ -4731,10 +4141,6 @@ packages: fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} - fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} @@ -4781,10 +4187,6 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} - finalhandler@1.3.2: - resolution: {integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==} - engines: {node: '>= 0.8'} - finalhandler@2.1.0: resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} engines: {node: '>= 0.8'} @@ -4801,10 +4203,6 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - firebase-admin@13.5.0: - resolution: {integrity: sha512-QZOpv1DJRJpH8NcWiL1xXE10tw3L/bdPFlgjcWrqU3ufyOJDYfxB1MMtxiVTwxK16NlybQbEM6ciSich2uWEIQ==} - engines: {node: '>=18'} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -4831,9 +4229,6 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - form-data-encoder@1.7.2: - resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} - form-data-encoder@4.1.0: resolution: {integrity: sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw==} engines: {node: '>= 18'} @@ -4842,14 +4237,6 @@ packages: resolution: {integrity: sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==} engines: {node: '>= 0.12'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} - engines: {node: '>= 6'} - - formdata-node@4.4.1: - resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} - engines: {node: '>= 12.20'} - formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -4892,9 +4279,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - fzf@0.5.2: resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==} @@ -4914,14 +4298,6 @@ packages: resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} engines: {node: '>=18'} - genkit@1.27.0: - resolution: {integrity: sha512-54OAzw9+dlOs2H4bWnktMwKVA1wwY9XmudKBAz2uBdWhep5r0xHy1qNE6tUVnSgn+LGGaR/0xfYRSs8uqNPFVw==} - - genkitx-anthropic@0.25.0: - resolution: {integrity: sha512-TiI5fA5iXpD2RYqV0+RsS3Y927niL7gSjcNVflNScK74i0mTDMhaHUXaPGEnLTGK5OtS5lWfXnj/Mkqo6n6J3g==} - peerDependencies: - genkit: ^1.15.0 - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4938,10 +4314,6 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} - get-port@5.1.1: - resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} - engines: {node: '>=8'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -5025,10 +4397,6 @@ packages: resolution: {integrity: sha512-V6eky/xz2mcKfAd1Ioxyd6nmA61gao3n01C+YeuIwu3vzM9EDR6wcVzMSIbLMDXWeoi9SHYctXuKYC5uJUT3eQ==} engines: {node: '>=14'} - google-gax@5.0.6: - resolution: {integrity: sha512-1kGbqVQBZPAAu4+/R1XxPQKP0ydbNYoLAr4l0ZO2bMV0kLyLW4I1gAk++qBLWt7DPORTzmWRMsCZe86gDjShJA==} - engines: {node: '>=18'} - google-logging-utils@0.0.2: resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} engines: {node: '>=14'} @@ -5106,11 +4474,6 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hexer@1.5.0: - resolution: {integrity: sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==} - engines: {node: '>= 0.10.x'} - hasBin: true - highlight.js@11.11.1: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} @@ -5168,9 +4531,6 @@ packages: resolution: {integrity: sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==} engines: {node: '>=6.0.0'} - http-parser-js@0.5.10: - resolution: {integrity: sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==} - http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} @@ -5199,9 +4559,6 @@ packages: resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} engines: {node: '>=18.18.0'} - humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -5449,19 +4806,12 @@ packages: resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} - jaeger-client@3.19.0: - resolution: {integrity: sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw==} - engines: {node: '>=10'} - jasmine-core@4.6.1: resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} jasmine-core@5.12.0: resolution: {integrity: sha512-QqO4pX33GEML5JoGQU6BM5NHKPgEsg+TXp3jCIDek9MbfEp2JUYEFBo9EF1+hegWy/bCHS1m5nP0BOp18G6rVA==} - jose@4.15.9: - resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} - jose@6.1.3: resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} @@ -5534,20 +4884,12 @@ packages: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - jsonwebtoken@9.0.3: - resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} - engines: {node: '>=12', npm: '>=6'} - jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} jwa@2.0.1: resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} - jwks-rsa@3.2.1: - resolution: {integrity: sha512-r7QdN9TdqI6aFDFZt+GpAqj5yRtMUv23rL2I01i7B8P2/g8F0ioEN6VeSObKgTLs4GmmNJwP9J7Fyp/AYDBGRg==} - engines: {node: '>=14'} - jws@4.0.1: resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==} @@ -5628,9 +4970,6 @@ packages: engines: {node: '>=22.19'} hasBin: true - limiter@1.1.5: - resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} - limiter@3.0.0: resolution: {integrity: sha512-hev7DuXojsTFl2YwyzUJMDnZ/qBDd3yZQLSH3aD4tdL1cqfc3TMnoecEJtWFaQFdErZsKoFMBTxF/FBSkgDbEg==} @@ -5655,36 +4994,9 @@ packages: lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - - lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - - lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - - lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - - lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - - lodash.mapvalues@4.6.0: - resolution: {integrity: sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==} - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} @@ -5707,10 +5019,6 @@ packages: resolution: {integrity: sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==} engines: {node: '>= 12.0.0'} - long@2.4.0: - resolution: {integrity: sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ==} - engines: {node: '>=0.6'} - long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} @@ -5742,17 +5050,10 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - lru-cache@7.18.3: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - lru-memoizer@2.3.0: - resolution: {integrity: sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug==} - magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} @@ -5873,11 +5174,6 @@ packages: engines: {node: '>=4.0.0'} hasBin: true - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - mime@4.0.7: resolution: {integrity: sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==} engines: {node: '>=16'} @@ -6037,10 +5333,6 @@ packages: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-forge@1.3.3: - resolution: {integrity: sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==} - engines: {node: '>= 6.13.0'} - node-gyp-build-optional-packages@5.2.2: resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} hasBin: true @@ -6054,9 +5346,6 @@ packages: engines: {node: ^18.17.0 || >=20.5.0} hasBin: true - node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-pty@1.1.0: resolution: {integrity: sha512-20JqtutY6JPXTUnL0ij1uad7Qe1baT46lyolh2sSENDd4sTzKZ4nmAFkeAARDKwmlLjPx6XKRlwRUxwjOy+lUg==} @@ -6166,22 +5455,6 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - openai@4.104.0: - resolution: {integrity: sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==} - hasBin: true - peerDependencies: - ws: ^8.18.0 - zod: ^3.23.8 - peerDependenciesMeta: - ws: - optional: true - zod: - optional: true - - opentracing@0.14.7: - resolution: {integrity: sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q==} - engines: {node: '>=0.10'} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -6281,9 +5554,6 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - partial-json@0.1.7: - resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==} - patch-console@2.0.0: resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6439,10 +5709,6 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process@0.10.1: - resolution: {integrity: sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA==} - engines: {node: '>= 0.6.0'} - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -6468,10 +5734,6 @@ packages: resolution: {integrity: sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ==} engines: {node: '>=14.0.0'} - proto3-json-serializer@3.0.4: - resolution: {integrity: sha512-E1sbAYg3aEbXrq0n1ojJkRHQJGE1kaE/O6GLA94y8rnJBfgvOPTOd1b9hOceQK1FFZI9qMh1vBERCyO2ifubcw==} - engines: {node: '>=18'} - protobufjs@7.5.4: resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} engines: {node: '>=12.0.0'} @@ -6544,10 +5806,6 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} - raw-body@2.5.3: - resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} - engines: {node: '>= 0.8'} - raw-body@3.0.1: resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} engines: {node: '>= 0.10'} @@ -6667,18 +5925,10 @@ packages: resolution: {integrity: sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==} engines: {node: '>=14'} - retry-request@8.0.2: - resolution: {integrity: sha512-JzFPAfklk1kjR1w76f0QOIhoDkNkSqW8wYKT08n9yysTmZfB+RQ2QoXoTAeOi1HD9ZipTyTAZg3c4pM/jeqgSw==} - engines: {node: '>=18'} - retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6774,10 +6024,6 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} - send@0.19.2: - resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==} - engines: {node: '>= 0.8.0'} - send@1.2.0: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} @@ -6790,10 +6036,6 @@ packages: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} - serve-static@1.16.3: - resolution: {integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==} - engines: {node: '>= 0.8.0'} - serve-static@2.2.0: resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} engines: {node: '>= 18'} @@ -6975,9 +6217,6 @@ packages: strict-csp@1.1.2: resolution: {integrity: sha512-UoK1QlQos+uB3hk3Wt/07/X4Mz/yV4bHc39v1c/MHOutlfKDjUuMpjre9cDNT19PBfcP2whOJDqKye6X0SOzpQ==} - string-template@0.2.1: - resolution: {integrity: sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -7023,9 +6262,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strnum@1.1.2: - resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==} - strtok3@10.3.4: resolution: {integrity: sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg==} engines: {node: '>=18'} @@ -7095,8 +6331,8 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - tar@7.5.1: - resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} + tar@7.5.2: + resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} engines: {node: '>=18'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me @@ -7105,10 +6341,6 @@ packages: engines: {node: '>=18'} deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me - teeny-request@10.1.0: - resolution: {integrity: sha512-3ZnLvgWF29jikg1sAQ1g0o+lr5JX6sVgYvfUJazn7ZjJroDBUTWp44/+cFVX0bULjv4vci+rBD+oGVAkWqhUbw==} - engines: {node: '>=18'} - teeny-request@9.0.0: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} @@ -7125,11 +6357,6 @@ packages: third-party-web@0.29.0: resolution: {integrity: sha512-nBDSJw5B7Sl1YfsATG2XkW5qgUPODbJhXw++BKygi9w6O/NKS98/uY/nR/DxDq2axEjL6halHW1v+jhm/j1DBQ==} - thriftrw@3.11.4: - resolution: {integrity: sha512-UcuBd3eanB3T10nXWRRMwfwoaC6VMk7qe3/5YIWP2Jtw+EbHqJ0p1/K3x8ixiR5dozKSSfcg1W+0e33G1Di3XA==} - engines: {node: '>= 0.10.x'} - hasBin: true - tiktoken@1.0.22: resolution: {integrity: sha512-PKvy1rVF1RibfF3JlXBSP0Jrcw2uq3yXdgcEXtKTYn3QJ/cBRBHDnrJ5jHky+MENZ6DIPwNUGWpkVx+7joCpNA==} @@ -7275,12 +6502,6 @@ packages: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -7344,9 +6565,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - uri-templates@0.2.0: - resolution: {integrity: sha512-EWkjYEN0L6KOfEoOH6Wj4ghQqU7eBZMJqRHQnxQAq+dSEzRPClkWjf8557HkWQXF6BrAUoLSAyy9i3RVTliaNg==} - url-template@2.0.8: resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} @@ -7357,16 +6575,8 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - hasBin: true - - uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} - hasBin: true - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true uuid@9.0.1: @@ -7445,10 +6655,6 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - web-streams-polyfill@4.0.0-beta.3: - resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} - engines: {node: '>= 14'} - web-tree-sitter@0.25.10: resolution: {integrity: sha512-Y09sF44/13XvgVKgO2cNDw5rGk6s26MgoZPXLESvMXeefBf7i6/73eFurre0IsTW6E14Y0ArIzhUMmjoc7xyzA==} peerDependencies: @@ -7463,14 +6669,6 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} - - websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} @@ -7594,9 +6792,6 @@ packages: resolution: {integrity: sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==} engines: {node: '>= 6'} - xorshift@1.2.0: - resolution: {integrity: sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g==} - xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -7713,6 +6908,19 @@ snapshots: '@ai-sdk/provider-utils': 4.0.5(zod@3.25.76) zod: 3.25.76 + '@ai-sdk/mcp@1.0.10(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 3.0.4 + '@ai-sdk/provider-utils': 4.0.8(zod@3.25.76) + pkce-challenge: 5.0.0 + zod: 3.25.76 + + '@ai-sdk/openai-compatible@2.0.13(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 3.0.4 + '@ai-sdk/provider-utils': 4.0.8(zod@3.25.76) + zod: 3.25.76 + '@ai-sdk/openai@3.0.9(zod@3.25.76)': dependencies: '@ai-sdk/provider': 3.0.2 @@ -7726,10 +6934,28 @@ snapshots: eventsource-parser: 3.0.6 zod: 3.25.76 + '@ai-sdk/provider-utils@4.0.8(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 3.0.4 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.0.6 + zod: 3.25.76 + '@ai-sdk/provider@3.0.2': dependencies: json-schema: 0.4.0 + '@ai-sdk/provider@3.0.4': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/xai@3.0.26(zod@3.25.76)': + dependencies: + '@ai-sdk/openai-compatible': 2.0.13(zod@3.25.76) + '@ai-sdk/provider': 3.0.4 + '@ai-sdk/provider-utils': 4.0.8(zod@3.25.76) + zod: 3.25.76 + '@alcalzone/ansi-tokenize@0.2.3': dependencies: ansi-styles: 6.2.3 @@ -8025,18 +7251,6 @@ snapshots: '@img/sharp-linuxmusl-x64': 0.33.5 '@img/sharp-win32-x64': 0.33.5 - '@anthropic-ai/sdk@0.39.0(encoding@0.1.13)': - dependencies: - '@types/node': 18.19.130 - '@types/node-fetch': 2.6.13 - abort-controller: 3.0.0 - agentkeepalive: 4.6.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - '@anthropic-ai/sdk@0.68.0(zod@3.25.76)': dependencies: json-schema-to-ts: 3.1.1 @@ -8439,61 +7653,6 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@fastify/busboy@3.2.0': - optional: true - - '@firebase/app-check-interop-types@0.3.3': - optional: true - - '@firebase/app-types@0.9.3': - optional: true - - '@firebase/auth-interop-types@0.2.4': - optional: true - - '@firebase/component@0.7.0': - dependencies: - '@firebase/util': 1.13.0 - tslib: 2.8.1 - optional: true - - '@firebase/database-compat@2.1.0': - dependencies: - '@firebase/component': 0.7.0 - '@firebase/database': 1.1.0 - '@firebase/database-types': 1.0.16 - '@firebase/logger': 0.5.0 - '@firebase/util': 1.13.0 - tslib: 2.8.1 - optional: true - - '@firebase/database-types@1.0.16': - dependencies: - '@firebase/app-types': 0.9.3 - '@firebase/util': 1.13.0 - optional: true - - '@firebase/database@1.1.0': - dependencies: - '@firebase/app-check-interop-types': 0.3.3 - '@firebase/auth-interop-types': 0.2.4 - '@firebase/component': 0.7.0 - '@firebase/logger': 0.5.0 - '@firebase/util': 1.13.0 - faye-websocket: 0.11.4 - tslib: 2.8.1 - optional: true - - '@firebase/logger@0.5.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@firebase/util@1.13.0': - dependencies: - tslib: 2.8.1 - optional: true - '@formatjs/ecma402-abstract@2.3.6': dependencies: '@formatjs/fast-memoize': 2.2.7 @@ -8520,118 +7679,6 @@ snapshots: dependencies: tslib: 2.8.1 - '@genkit-ai/ai@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))': - dependencies: - '@genkit-ai/core': 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) - '@opentelemetry/api': 1.9.0 - '@types/node': 20.19.30 - colorette: 2.0.20 - dotprompt: 1.1.2 - json5: 2.2.3 - node-fetch: 3.3.2 - partial-json: 0.1.7 - uri-templates: 0.2.0 - uuid: 10.0.0 - transitivePeerDependencies: - - '@google-cloud/firestore' - - encoding - - firebase - - firebase-admin - - genkit - - supports-color - - '@genkit-ai/compat-oai@1.23.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))(ws@8.19.0)(zod@3.25.76)': - dependencies: - genkit: 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)) - openai: 4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76) - transitivePeerDependencies: - - encoding - - ws - - zod - - '@genkit-ai/core@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-jaeger': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - '@types/json-schema': 7.0.15 - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) - async-mutex: 0.5.0 - body-parser: 1.20.4 - cors: 2.8.5 - dotprompt: 1.1.2 - express: 4.22.1 - get-port: 5.1.1 - json-schema: 0.4.0 - zod: 3.25.76 - zod-to-json-schema: 3.25.1(zod@3.25.76) - optionalDependencies: - '@genkit-ai/firebase': 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) - transitivePeerDependencies: - - '@google-cloud/firestore' - - encoding - - firebase - - firebase-admin - - genkit - - supports-color - - '@genkit-ai/firebase@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))': - dependencies: - '@genkit-ai/google-cloud': 1.27.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) - '@google-cloud/firestore': 7.11.6(encoding@0.1.13) - firebase-admin: 13.5.0(encoding@0.1.13) - genkit: 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)) - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@genkit-ai/google-cloud@1.27.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))': - dependencies: - '@google-cloud/logging-winston': 6.0.1(encoding@0.1.13)(winston@3.19.0) - '@google-cloud/modelarmor': 0.4.1 - '@google-cloud/opentelemetry-cloud-monitoring-exporter': 0.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13) - '@google-cloud/opentelemetry-cloud-trace-exporter': 2.4.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13) - '@google-cloud/opentelemetry-resource-util': 2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13) - '@opentelemetry/api': 1.9.0 - '@opentelemetry/auto-instrumentations-node': 0.49.2(@opentelemetry/api@1.9.0)(encoding@0.1.13) - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pino': 0.41.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-winston': 0.39.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - genkit: 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)) - google-auth-library: 9.15.1(encoding@0.1.13) - node-fetch: 3.3.2 - winston: 3.19.0 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@genkit-ai/googleai@1.22.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))': - dependencies: - '@google/generative-ai': 0.24.1 - genkit: 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)) - google-auth-library: 9.15.1(encoding@0.1.13) - node-fetch: 3.3.2 - transitivePeerDependencies: - - encoding - - supports-color - - '@genkit-ai/mcp@1.22.0(@modelcontextprotocol/sdk@1.25.2(hono@4.11.4)(zod@3.25.76))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)))': - dependencies: - '@modelcontextprotocol/sdk': 1.25.2(hono@4.11.4)(zod@3.25.76) - genkit: 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)) - '@google-cloud/common@5.0.2(encoding@0.1.13)': dependencies: '@google-cloud/projectify': 4.0.0 @@ -8647,30 +7694,6 @@ snapshots: - encoding - supports-color - '@google-cloud/firestore@7.11.6(encoding@0.1.13)': - dependencies: - '@opentelemetry/api': 1.9.0 - fast-deep-equal: 3.1.3 - functional-red-black-tree: 1.0.1 - google-gax: 4.6.1(encoding@0.1.13) - protobufjs: 7.5.4 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@google-cloud/logging-winston@6.0.1(encoding@0.1.13)(winston@3.19.0)': - dependencies: - '@google-cloud/logging': 11.2.1(encoding@0.1.13) - google-auth-library: 9.15.1(encoding@0.1.13) - lodash.mapvalues: 4.6.0 - winston: 3.19.0 - winston-transport: 4.9.0 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - '@google-cloud/logging@11.2.1(encoding@0.1.13)': dependencies: '@google-cloud/common': 5.0.2(encoding@0.1.13) @@ -8693,28 +7716,6 @@ snapshots: - encoding - supports-color - '@google-cloud/modelarmor@0.4.1': - dependencies: - google-gax: 5.0.6 - transitivePeerDependencies: - - supports-color - optional: true - - '@google-cloud/opentelemetry-cloud-monitoring-exporter@0.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)': - dependencies: - '@google-cloud/opentelemetry-resource-util': 2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13) - '@google-cloud/precise-date': 4.0.0 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.0) - google-auth-library: 9.15.1(encoding@0.1.13) - googleapis: 137.1.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - supports-color - optional: true - '@google-cloud/opentelemetry-cloud-monitoring-exporter@0.21.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)': dependencies: '@google-cloud/opentelemetry-resource-util': 3.0.0(@opentelemetry/core@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.4.0(@opentelemetry/api@1.9.0))(encoding@0.1.13) @@ -8729,21 +7730,6 @@ snapshots: - encoding - supports-color - '@google-cloud/opentelemetry-cloud-trace-exporter@2.4.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)': - dependencies: - '@google-cloud/opentelemetry-resource-util': 2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13) - '@grpc/grpc-js': 1.14.3 - '@grpc/proto-loader': 0.7.15 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - google-auth-library: 9.15.1(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - supports-color - optional: true - '@google-cloud/opentelemetry-cloud-trace-exporter@3.0.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)': dependencies: '@google-cloud/opentelemetry-resource-util': 3.0.0(@opentelemetry/core@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.4.0(@opentelemetry/api@1.9.0))(encoding@0.1.13) @@ -8758,16 +7744,6 @@ snapshots: - encoding - supports-color - '@google-cloud/opentelemetry-resource-util@2.4.0(@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)': - dependencies: - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - gcp-metadata: 6.1.1(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - supports-color - optional: true - '@google-cloud/opentelemetry-resource-util@3.0.0(@opentelemetry/core@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.4.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)': dependencies: '@opentelemetry/core': 2.4.0(@opentelemetry/api@1.9.0) @@ -8789,28 +7765,6 @@ snapshots: '@google-cloud/promisify@4.0.0': {} - '@google-cloud/storage@7.18.0(encoding@0.1.13)': - dependencies: - '@google-cloud/paginator': 5.0.2 - '@google-cloud/projectify': 4.0.0 - '@google-cloud/promisify': 4.0.0 - abort-controller: 3.0.0 - async-retry: 1.3.3 - duplexify: 4.1.3 - fast-xml-parser: 4.5.3 - gaxios: 6.7.1(encoding@0.1.13) - google-auth-library: 9.15.1(encoding@0.1.13) - html-entities: 2.6.0 - mime: 3.0.0 - p-limit: 3.1.0 - retry-request: 7.0.2(encoding@0.1.13) - teeny-request: 9.0.0(encoding@0.1.13) - uuid: 8.3.2 - transitivePeerDependencies: - - encoding - - supports-color - optional: true - '@google/gemini-cli-core@0.13.0(@opentelemetry/core@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.4.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(hono@4.11.4)': dependencies: '@google-cloud/logging': 11.2.1(encoding@0.1.13) @@ -8959,8 +7913,6 @@ snapshots: - supports-color - utf-8-validate - '@google/generative-ai@0.24.1': {} - '@grpc/grpc-js@1.14.3': dependencies: '@grpc/proto-loader': 0.8.0 @@ -9709,75 +8661,12 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.52.1': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.57.2': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/api@1.9.0': {} - '@opentelemetry/auto-instrumentations-node@0.49.2(@opentelemetry/api@1.9.0)(encoding@0.1.13)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.41.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-lambda': 0.43.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-sdk': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-bunyan': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cassandra-driver': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.38.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cucumber': 0.8.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.11.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dns': 0.38.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.41.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fastify': 0.38.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.14.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.38.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.42.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-grpc': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.42.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.39.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.42.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.39.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-memcached': 0.38.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.41.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-nestjs-core': 0.39.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-net': 0.38.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.43.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pino': 0.41.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.41.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis-4': 0.41.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-restify': 0.40.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-router': 0.39.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-socket.io': 0.41.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.13.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-winston': 0.39.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-alibaba-cloud': 0.29.7(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-aws': 1.12.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-azure': 0.2.12(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-container': 0.4.4(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-gcp': 0.29.13(@opentelemetry/api@1.9.0)(encoding@0.1.13) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - encoding - - supports-color - optional: true - - '@opentelemetry/context-async-hooks@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -9786,11 +8675,6 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.25.1 - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -9806,14 +8690,6 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/exporter-jaeger@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - jaeger-client: 3.19.0 - '@opentelemetry/exporter-logs-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.14.3 @@ -9893,16 +8769,6 @@ snapshots: '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.14.3 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -9912,15 +8778,6 @@ snapshots: '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -9930,23 +8787,6 @@ snapshots: '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/exporter-zipkin@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.25.1 - '@opentelemetry/exporter-zipkin@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -9955,215 +8795,62 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/instrumentation-amqplib@0.41.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - optional: true - '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 + '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-aws-lambda@0.43.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-aws-xray': 1.26.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@types/aws-lambda': 8.10.122 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - optional: true - '@opentelemetry/instrumentation-aws-sdk@0.43.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagation-utils': 0.30.16(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - optional: true - '@opentelemetry/instrumentation-bunyan@0.40.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.52.1 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@types/bunyan': 1.8.9 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - optional: true - '@opentelemetry/instrumentation-cassandra-driver@0.40.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - optional: true - '@opentelemetry/instrumentation-connect@0.38.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@types/connect': 3.4.36 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - optional: true - - '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@types/connect': 3.4.38 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-cucumber@0.8.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-dataloader@0.11.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-dns@0.38.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - semver: 7.7.3 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-express@0.41.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fastify@0.38.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-fs@0.14.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-generic-pool@0.38.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-graphql@0.42.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-grpc@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.25.1 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-hapi@0.40.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)': dependencies: @@ -10184,17 +8871,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.25.1 - semver: 7.7.3 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10206,16 +8882,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.42.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10225,15 +8891,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.2.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10242,15 +8899,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.39.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10259,16 +8907,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.42.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10278,14 +8916,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.39.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10293,26 +8923,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-memcached@0.38.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@types/memcached': 2.2.10 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-mongodb@0.46.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10321,16 +8931,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.41.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10340,16 +8940,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.40.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10359,16 +8949,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.40.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@types/mysql': 2.15.22 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10378,36 +8958,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-nestjs-core@0.39.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-net@0.38.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-pg@0.43.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - '@types/pg': 8.6.1 - '@types/pg-pool': 2.0.4 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10420,26 +8970,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pino@0.41.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.52.1 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-redis-4@0.41.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10449,54 +8979,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis@0.41.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-restify@0.40.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-router@0.39.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-socket.io@0.41.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-tedious@0.13.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@types/tedious': 4.0.14 - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10514,24 +8996,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.5.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - - '@opentelemetry/instrumentation-winston@0.39.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.52.1 - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - optional: true - '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10541,18 +9005,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.52.1 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2 - semver: 7.7.3 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10571,12 +9023,6 @@ snapshots: '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.14.3 @@ -10585,14 +9031,6 @@ snapshots: '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@grpc/grpc-js': 1.14.3 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10604,42 +9042,11 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) protobufjs: 7.5.4 - '@opentelemetry/otlp-transformer@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.52.1 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - protobufjs: 7.5.4 - - '@opentelemetry/propagation-utils@0.30.16(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - optional: true - - '@opentelemetry/propagator-aws-xray@1.26.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - optional: true - - '@opentelemetry/propagator-b3@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10647,50 +9054,6 @@ snapshots: '@opentelemetry/redis-common@0.36.2': {} - '@opentelemetry/resource-detector-alibaba-cloud@0.29.7(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - optional: true - - '@opentelemetry/resource-detector-aws@1.12.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - optional: true - - '@opentelemetry/resource-detector-azure@0.2.12(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - optional: true - - '@opentelemetry/resource-detector-container@0.4.4(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - optional: true - - '@opentelemetry/resource-detector-gcp@0.29.13(@opentelemetry/api@1.9.0)(encoding@0.1.13)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - gcp-metadata: 6.1.1(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - supports-color - optional: true - '@opentelemetry/resource-detector-gcp@0.40.3(@opentelemetry/api@1.9.0)(encoding@0.1.13)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10701,12 +9064,6 @@ snapshots: - encoding - supports-color - '@opentelemetry/resources@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.25.1 - '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10732,20 +9089,6 @@ snapshots: '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.52.1 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-metrics@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - lodash.merge: 4.6.2 - '@opentelemetry/sdk-metrics@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10780,32 +9123,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/sdk-node@0.52.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.52.1 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-zipkin': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.52.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.25.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/sdk-trace-base@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.25.1 - '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10820,16 +9137,6 @@ snapshots: '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.39.0 - '@opentelemetry/sdk-trace-node@1.25.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger': 1.25.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.25.1(@opentelemetry/api@1.9.0) - semver: 7.7.3 - '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -10837,8 +9144,6 @@ snapshots: '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions@1.25.1': {} - '@opentelemetry/semantic-conventions@1.28.0': {} '@opentelemetry/semantic-conventions@1.39.0': {} @@ -11411,19 +9716,11 @@ snapshots: tslib: 2.8.1 optional: true - '@types/aws-lambda@8.10.122': - optional: true - '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 '@types/node': 25.0.9 - '@types/bunyan@1.8.9': - dependencies: - '@types/node': 24.10.9 - optional: true - '@types/caseless@0.12.5': {} '@types/cheerio@0.22.35': @@ -11436,11 +9733,6 @@ snapshots: '@types/configstore@6.0.2': {} - '@types/connect@3.4.36': - dependencies: - '@types/node': 24.10.9 - optional: true - '@types/connect@3.4.38': dependencies: '@types/node': 25.0.9 @@ -11490,57 +9782,20 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/jsonwebtoken@9.0.10': - dependencies: - '@types/ms': 2.1.0 - '@types/node': 24.10.9 - optional: true - '@types/long@4.0.2': {} '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 - '@types/memcached@2.2.10': - dependencies: - '@types/node': 24.10.9 - optional: true - '@types/mime@1.3.5': {} '@types/minimatch@5.1.2': {} - '@types/ms@2.1.0': - optional: true - - '@types/mysql@2.15.22': - dependencies: - '@types/node': 24.10.9 - optional: true - '@types/mysql@2.15.26': dependencies: '@types/node': 24.10.9 - '@types/node-fetch@2.6.13': - dependencies: - '@types/node': 24.10.9 - form-data: 4.0.5 - - '@types/node@18.19.130': - dependencies: - undici-types: 5.26.5 - - '@types/node@20.19.30': - dependencies: - undici-types: 6.21.0 - - '@types/node@22.19.7': - dependencies: - undici-types: 6.21.0 - optional: true - '@types/node@24.10.9': dependencies: undici-types: 7.16.0 @@ -11551,11 +9806,6 @@ snapshots: '@types/normalize-package-data@2.4.4': {} - '@types/pg-pool@2.0.4': - dependencies: - '@types/pg': 8.6.1 - optional: true - '@types/pg-pool@2.0.6': dependencies: '@types/pg': 8.6.1 @@ -11766,10 +10016,6 @@ snapshots: agent-base@7.1.4: {} - agentkeepalive@4.6.0: - dependencies: - humanize-ms: 1.2.1 - ai@6.0.31(zod@3.25.76): dependencies: '@ai-sdk/gateway': 3.0.13(zod@3.25.76) @@ -11817,14 +10063,8 @@ snapshots: dependencies: string-width: 4.2.3 - ansi-color@0.2.2: {} - ansi-colors@4.1.3: {} - ansi-escapes@7.1.1: - dependencies: - environment: 1.1.0 - ansi-escapes@7.2.0: dependencies: environment: 1.1.0 @@ -11860,15 +10100,6 @@ snapshots: astral-regex@2.0.0: {} - async-mutex@0.5.0: - dependencies: - tslib: 2.8.1 - - async-retry@1.3.3: - dependencies: - retry: 0.13.1 - optional: true - async@3.2.6: {} asynckit@0.4.0: {} @@ -11955,28 +10186,11 @@ snapshots: debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - - body-parser@1.20.4: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.1 + http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.14.1 - raw-body: 2.5.3 + qs: 6.13.0 + raw-body: 2.5.2 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: @@ -12061,13 +10275,6 @@ snapshots: buffer-from@1.1.2: {} - bufrw@1.4.0: - dependencies: - ansi-color: 0.2.2 - error: 7.0.2 - hexer: 1.5.0 - xtend: 4.0.2 - bundle-name@4.1.0: dependencies: run-applescript: 7.1.0 @@ -12088,7 +10295,7 @@ snapshots: minipass-pipeline: 1.2.4 p-map: 7.0.3 ssri: 12.0.0 - tar: 7.5.1 + tar: 7.5.2 unique-filename: 4.0.0 cacache@20.0.1: @@ -12350,8 +10557,6 @@ snapshots: cookie-signature@1.0.6: {} - cookie-signature@1.0.7: {} - cookie-signature@1.2.2: {} cookie@0.7.1: {} @@ -12521,11 +10726,6 @@ snapshots: dotenv@17.2.3: {} - dotprompt@1.1.2: - dependencies: - handlebars: 4.7.8 - yaml: 2.8.2 - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -12619,11 +10819,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - error@7.0.2: - dependencies: - string-template: 0.2.1 - xtend: 4.0.2 - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -12868,42 +11063,6 @@ snapshots: transitivePeerDependencies: - supports-color - express@4.22.1: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.4 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.0.7 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.2 - fresh: 0.5.2 - http-errors: 2.0.1 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.14.1 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.2 - serve-static: 1.16.3 - setprototypeof: 1.2.0 - statuses: 2.0.2 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - express@5.1.0: dependencies: accepts: 2.0.0 @@ -12981,9 +11140,6 @@ snapshots: transitivePeerDependencies: - supports-color - farmhash-modern@1.1.0: - optional: true - fast-deep-equal@3.1.3: {} fast-fifo@1.3.2: {} @@ -13002,22 +11158,12 @@ snapshots: fast-uri@3.1.0: {} - fast-xml-parser@4.5.3: - dependencies: - strnum: 1.1.2 - optional: true - fastest-levenshtein@1.0.16: {} fastq@1.20.1: dependencies: reusify: 1.1.0 - faye-websocket@0.11.4: - dependencies: - websocket-driver: 0.7.4 - optional: true - fd-slicer@1.1.0: dependencies: pend: 1.2.0 @@ -13082,18 +11228,6 @@ snapshots: transitivePeerDependencies: - supports-color - finalhandler@1.3.2: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - finalhandler@2.1.0: dependencies: debug: 4.4.3 @@ -13123,27 +11257,6 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - firebase-admin@13.5.0(encoding@0.1.13): - dependencies: - '@fastify/busboy': 3.2.0 - '@firebase/database-compat': 2.1.0 - '@firebase/database-types': 1.0.16 - '@types/node': 22.19.7 - farmhash-modern: 1.1.0 - fast-deep-equal: 3.1.3 - google-auth-library: 9.15.1(encoding@0.1.13) - jsonwebtoken: 9.0.3 - jwks-rsa: 3.2.1 - node-forge: 1.3.3 - uuid: 11.1.0 - optionalDependencies: - '@google-cloud/firestore': 7.11.6(encoding@0.1.13) - '@google-cloud/storage': 7.18.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - - supports-color - optional: true - flat-cache@4.0.1: dependencies: flatted: 3.3.3 @@ -13166,8 +11279,6 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data-encoder@1.7.2: {} - form-data-encoder@4.1.0: {} form-data@2.5.5: @@ -13179,19 +11290,6 @@ snapshots: mime-types: 2.1.35 safe-buffer: 5.2.1 - form-data@4.0.5: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 - mime-types: 2.1.35 - - formdata-node@4.4.1: - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 4.0.0-beta.3 - formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -13227,9 +11325,6 @@ snapshots: function-bind@1.1.2: {} - functional-red-black-tree@1.0.1: - optional: true - fzf@0.5.2: {} gaxios@6.7.1(encoding@0.1.13): @@ -13269,25 +11364,6 @@ snapshots: transitivePeerDependencies: - supports-color - genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)): - dependencies: - '@genkit-ai/ai': 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) - '@genkit-ai/core': 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))) - uuid: 10.0.0 - transitivePeerDependencies: - - '@google-cloud/firestore' - - encoding - - firebase - - firebase-admin - - supports-color - - genkitx-anthropic@0.25.0(encoding@0.1.13)(genkit@1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13))): - dependencies: - '@anthropic-ai/sdk': 0.39.0(encoding@0.1.13) - genkit: 1.27.0(@google-cloud/firestore@7.11.6(encoding@0.1.13))(encoding@0.1.13)(firebase-admin@13.5.0(encoding@0.1.13)) - transitivePeerDependencies: - - encoding - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -13307,8 +11383,6 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 - get-port@5.1.1: {} - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -13455,23 +11529,6 @@ snapshots: - encoding - supports-color - google-gax@5.0.6: - dependencies: - '@grpc/grpc-js': 1.14.3 - '@grpc/proto-loader': 0.8.0 - duplexify: 4.1.3 - google-auth-library: 10.5.0 - google-logging-utils: 1.1.3 - node-fetch: 3.3.2 - object-hash: 3.0.0 - proto3-json-serializer: 3.0.4 - protobufjs: 7.5.4 - retry-request: 8.0.2 - rimraf: 5.0.10 - transitivePeerDependencies: - - supports-color - optional: true - google-logging-utils@0.0.2: {} google-logging-utils@1.1.3: {} @@ -13582,13 +11639,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hexer@1.5.0: - dependencies: - ansi-color: 0.2.2 - minimist: 1.2.8 - process: 0.10.1 - xtend: 4.0.2 - highlight.js@11.11.1: {} hono@4.11.4: {} @@ -13653,9 +11703,6 @@ snapshots: http-link-header@1.1.3: {} - http-parser-js@0.5.10: - optional: true - http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 @@ -13700,10 +11747,6 @@ snapshots: human-signals@8.0.1: {} - humanize-ms@1.2.1: - dependencies: - ms: 2.1.3 - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -13920,21 +11963,10 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 - jaeger-client@3.19.0: - dependencies: - node-int64: 0.4.0 - opentracing: 0.14.7 - thriftrw: 3.11.4 - uuid: 8.3.2 - xorshift: 1.2.0 - jasmine-core@4.6.1: {} jasmine-core@5.12.0: {} - jose@4.15.9: - optional: true - jose@6.1.3: {} jpeg-js@0.4.4: {} @@ -13990,20 +12022,6 @@ snapshots: jsonparse@1.3.1: {} - jsonwebtoken@9.0.3: - dependencies: - jws: 4.0.1 - lodash.includes: 4.3.0 - lodash.isboolean: 3.0.3 - lodash.isinteger: 4.0.4 - lodash.isnumber: 3.0.3 - lodash.isplainobject: 4.0.6 - lodash.isstring: 4.0.1 - lodash.once: 4.1.1 - ms: 2.1.3 - semver: 7.7.3 - optional: true - jszip@3.10.1: dependencies: lie: 3.3.0 @@ -14017,17 +12035,6 @@ snapshots: ecdsa-sig-formatter: 1.0.11 safe-buffer: 5.2.1 - jwks-rsa@3.2.1: - dependencies: - '@types/jsonwebtoken': 9.0.10 - debug: 4.4.3 - jose: 4.15.9 - limiter: 1.1.5 - lru-memoizer: 2.3.0 - transitivePeerDependencies: - - supports-color - optional: true - jws@4.0.1: dependencies: jwa: 2.0.1 @@ -14170,9 +12177,6 @@ snapshots: - supports-color - utf-8-validate - limiter@1.1.5: - optional: true - limiter@3.0.0: {} lines-and-columns@1.2.4: {} @@ -14211,35 +12215,8 @@ snapshots: lodash.camelcase@4.3.0: {} - lodash.clonedeep@4.5.0: - optional: true - - lodash.includes@4.3.0: - optional: true - - lodash.isboolean@3.0.3: - optional: true - - lodash.isinteger@4.0.4: - optional: true - - lodash.isnumber@3.0.3: - optional: true - - lodash.isplainobject@4.0.6: - optional: true - - lodash.isstring@4.0.1: - optional: true - - lodash.mapvalues@4.6.0: - optional: true - lodash.merge@4.6.2: {} - lodash.once@4.1.1: - optional: true - lodash.truncate@4.4.2: {} lodash@4.17.21: {} @@ -14251,7 +12228,7 @@ snapshots: log-update@6.1.0: dependencies: - ansi-escapes: 7.1.1 + ansi-escapes: 7.2.0 cli-cursor: 5.0.0 slice-ansi: 7.1.2 strip-ansi: 7.1.2 @@ -14276,8 +12253,6 @@ snapshots: safe-stable-stringify: 2.5.0 triple-beam: 1.4.1 - long@2.4.0: {} - long@5.3.2: {} lookup-closest-locale@6.2.0: {} @@ -14304,19 +12279,8 @@ snapshots: dependencies: yallist: 3.1.1 - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - optional: true - lru-cache@7.18.3: {} - lru-memoizer@2.3.0: - dependencies: - lodash.clonedeep: 4.5.0 - lru-cache: 6.0.0 - optional: true - magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -14439,9 +12403,6 @@ snapshots: mime@2.6.0: {} - mime@3.0.0: - optional: true - mime@4.0.7: {} mimic-fn@2.1.0: {} @@ -14579,9 +12540,6 @@ snapshots: fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - node-forge@1.3.3: - optional: true - node-gyp-build-optional-packages@5.2.2: dependencies: detect-libc: 2.1.2 @@ -14598,14 +12556,12 @@ snapshots: nopt: 8.1.0 proc-log: 5.0.0 semver: 7.7.3 - tar: 7.5.1 + tar: 7.5.2 tinyglobby: 0.2.15 which: 5.0.0 transitivePeerDependencies: - supports-color - node-int64@0.4.0: {} - node-pty@1.1.0: dependencies: node-addon-api: 7.1.1 @@ -14641,7 +12597,7 @@ snapshots: dependencies: hosted-git-info: 9.0.2 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 validate-npm-package-name: 6.0.2 npm-packlist@10.0.2: @@ -14731,23 +12687,6 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@4.104.0(encoding@0.1.13)(ws@8.19.0)(zod@3.25.76): - dependencies: - '@types/node': 18.19.130 - '@types/node-fetch': 2.6.13 - abort-controller: 3.0.0 - agentkeepalive: 4.6.0 - form-data-encoder: 1.7.2 - formdata-node: 4.4.1 - node-fetch: 2.7.0(encoding@0.1.13) - optionalDependencies: - ws: 8.19.0 - zod: 3.25.76 - transitivePeerDependencies: - - encoding - - opentracing@0.14.7: {} - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -14836,7 +12775,7 @@ snapshots: promise-retry: 2.0.1 sigstore: 4.0.0 ssri: 12.0.0 - tar: 7.5.1 + tar: 7.5.2 transitivePeerDependencies: - supports-color @@ -14895,8 +12834,6 @@ snapshots: parseurl@1.3.3: {} - partial-json@0.1.7: {} - patch-console@2.0.0: {} path-exists@4.0.0: {} @@ -15009,8 +12946,6 @@ snapshots: process-nextick-args@2.0.1: {} - process@0.10.1: {} - progress@2.0.3: {} promise-retry@2.0.1: @@ -15037,11 +12972,6 @@ snapshots: dependencies: protobufjs: 7.5.4 - proto3-json-serializer@3.0.4: - dependencies: - protobufjs: 7.5.4 - optional: true - protobufjs@7.5.4: dependencies: '@protobufjs/aspromise': 1.1.2 @@ -15157,13 +13087,6 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - raw-body@2.5.3: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - raw-body@3.0.1: dependencies: bytes: 3.1.2 @@ -15305,19 +13228,8 @@ snapshots: - encoding - supports-color - retry-request@8.0.2: - dependencies: - extend: 3.0.2 - teeny-request: 10.1.0 - transitivePeerDependencies: - - supports-color - optional: true - retry@0.12.0: {} - retry@0.13.1: - optional: true - reusify@1.1.0: {} rfdc@1.4.1: {} @@ -15461,24 +13373,6 @@ snapshots: transitivePeerDependencies: - supports-color - send@0.19.2: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.1 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - send@1.2.0: dependencies: debug: 4.4.3 @@ -15520,15 +13414,6 @@ snapshots: transitivePeerDependencies: - supports-color - serve-static@1.16.3: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.2 - transitivePeerDependencies: - - supports-color - serve-static@2.2.0: dependencies: encodeurl: 2.0.0 @@ -15767,8 +13652,6 @@ snapshots: '@types/cheerio': 0.22.35 cheerio: 1.1.2 - string-template@0.2.1: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -15819,9 +13702,6 @@ snapshots: strip-json-comments@3.1.1: {} - strnum@1.1.2: - optional: true - strtok3@10.3.4: dependencies: '@tokenizer/token': 0.3.0 @@ -15947,7 +13827,7 @@ snapshots: - bare-abort-controller - react-native-b4a - tar@7.5.1: + tar@7.5.2: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -15963,16 +13843,6 @@ snapshots: minizlib: 3.1.0 yallist: 5.0.0 - teeny-request@10.1.0: - dependencies: - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - node-fetch: 3.3.2 - stream-events: 1.0.5 - transitivePeerDependencies: - - supports-color - optional: true - teeny-request@9.0.0(encoding@0.1.13): dependencies: http-proxy-agent: 5.0.0 @@ -15996,12 +13866,6 @@ snapshots: third-party-web@0.29.0: {} - thriftrw@3.11.4: - dependencies: - bufrw: 1.4.0 - error: 7.0.2 - long: 2.4.0 - tiktoken@1.0.22: {} tinycolor2@1.6.0: {} @@ -16124,10 +13988,6 @@ snapshots: uint8array-extras@1.5.0: {} - undici-types@5.26.5: {} - - undici-types@6.21.0: {} - undici-types@7.16.0: {} undici@7.18.2: {} @@ -16185,19 +14045,12 @@ snapshots: dependencies: punycode: 2.3.1 - uri-templates@0.2.0: {} - url-template@2.0.8: {} util-deprecate@1.0.2: {} utils-merge@1.0.1: {} - uuid@10.0.0: {} - - uuid@11.1.0: - optional: true - uuid@8.3.2: {} uuid@9.0.1: {} @@ -16248,24 +14101,12 @@ snapshots: web-streams-polyfill@3.3.3: {} - web-streams-polyfill@4.0.0-beta.3: {} - web-tree-sitter@0.25.10: {} webdriver-bidi-protocol@0.3.10: {} webidl-conversions@3.0.1: {} - websocket-driver@0.7.4: - dependencies: - http-parser-js: 0.5.10 - safe-buffer: 5.2.1 - websocket-extensions: 0.1.4 - optional: true - - websocket-extensions@0.1.4: - optional: true - whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 @@ -16368,8 +14209,6 @@ snapshots: xhr2@0.2.1: {} - xorshift@1.2.0: {} - xtend@4.0.2: {} y18n@5.0.8: {} @@ -16380,7 +14219,8 @@ snapshots: yallist@5.0.0: {} - yaml@2.8.2: {} + yaml@2.8.2: + optional: true yargs-parser@20.2.9: {} diff --git a/report-app/angular.json b/report-app/angular.json index 4358c5e7..e90ccb5e 100644 --- a/report-app/angular.json +++ b/report-app/angular.json @@ -20,13 +20,8 @@ "@firebase/app", "@firebase/firestore", "tiktoken", - "genkit", - "@genkit-ai/compat-oai", - "@genkit-ai/googleai", - "@genkit-ai/mcp", "@google/genai", "@google/generative-ai", - "genkitx-anthropic", "node-fetch" ], "allowedCommonJsDependencies": [ diff --git a/report-app/public/ai-sdk.png b/report-app/public/ai-sdk.png new file mode 100644 index 00000000..239baac7 Binary files /dev/null and b/report-app/public/ai-sdk.png differ diff --git a/report-app/report-server.ts b/report-app/report-server.ts index 7525507a..d9b94506 100644 --- a/report-app/report-server.ts +++ b/report-app/report-server.ts @@ -14,14 +14,13 @@ import { AiChatRequest, AIConfigState, AssessmentResultFromReportServer, - IndividualAssessmentState, RunInfo, RunInfoFromReportServer, } from '../runner/shared-interfaces'; // This will result in a lot of loading and would slow down the serving, // so it's loaded lazily below. -import {type GenkitRunner} from '../runner/codegen/genkit/genkit-runner'; +import {type AiSdkRunner} from '../runner/codegen/ai-sdk/ai-sdk-runner'; const app = express(); const reportsLoader = await getReportLoader(); @@ -89,11 +88,11 @@ app.get('/api/reports/:id', async (req, res) => { res.json(result ?? []); }); -let llm: Promise | null = null; +let llm: Promise | null = null; -/** Lazily initializes and returns the genkit runner. */ -async function getOrCreateGenkitLlmRunner() { - const llm = new (await import('../runner/codegen/genkit/genkit-runner')).GenkitRunner(); +/** Lazily initializes and returns the LLM runner. */ +async function getOrCreateRunner() { + const llm = new (await import('../runner/codegen/ai-sdk/ai-sdk-runner')).AiSdkRunner(); // Gracefully shut down the runner on exit. process.on('SIGINT', () => llm!.dispose()); process.on('SIGTERM', () => llm!.dispose()); @@ -116,7 +115,7 @@ app.post('/api/reports/:id/chat', async (req, res) => { const abortController = new AbortController(); const summary = await chatWithReportAI( - await (llm ?? getOrCreateGenkitLlmRunner()), + await (llm ?? getOrCreateRunner()), prompt, abortController.signal, allAssessments, @@ -138,9 +137,9 @@ app.post('/api/reports/:id/chat', async (req, res) => { app.get('/api/ai-config-state', async (req, res) => { try { - const llm = await getOrCreateGenkitLlmRunner(); + const llm = await getOrCreateRunner(); return res.json({ - configuredModels: llm.getSupportedModelsWithAPIKey(), + configuredModels: llm.getSupportedModels(), } satisfies AIConfigState); } catch (e) { console.error('Could not instantiate LLM instance. Error:', e); diff --git a/report-app/src/app/shared/provider-label.ts b/report-app/src/app/shared/provider-label.ts index 2367150a..68e04c7e 100644 --- a/report-app/src/app/shared/provider-label.ts +++ b/report-app/src/app/shared/provider-label.ts @@ -9,6 +9,7 @@ const exactMatches: Record = { 'gemini-cli': 'gemini.webp', genkit: 'genkit.png', codex: 'open-ai.png', + 'ai-sdk': 'ai-sdk.png', }; @Component({ diff --git a/runner/codegen/ai-sdk/ai-sdk-model-options.ts b/runner/codegen/ai-sdk/ai-sdk-model-options.ts index 09264130..65320553 100644 --- a/runner/codegen/ai-sdk/ai-sdk-model-options.ts +++ b/runner/codegen/ai-sdk/ai-sdk-model-options.ts @@ -1,5 +1,6 @@ import {AnthropicProviderOptions} from '@ai-sdk/anthropic'; import {GoogleGenerativeAIProviderOptions} from '@ai-sdk/google'; +import {XaiProviderOptions} from '@ai-sdk/xai'; import {OpenAIResponsesProviderOptions} from '@ai-sdk/openai'; import {LanguageModelV3, SharedV3ProviderOptions} from '@ai-sdk/provider'; @@ -9,6 +10,7 @@ export type AiSdkModelOptions = { | {anthropic: AnthropicProviderOptions} | {google: GoogleGenerativeAIProviderOptions} | {openai: OpenAIResponsesProviderOptions} + | {xai: XaiProviderOptions} // This supports extensions of `AISdkRunner` for custom model providers. | SharedV3ProviderOptions; }; diff --git a/runner/codegen/ai-sdk/ai-sdk-runner.ts b/runner/codegen/ai-sdk/ai-sdk-runner.ts index 0ab07af7..76cc694f 100644 --- a/runner/codegen/ai-sdk/ai-sdk-runner.ts +++ b/runner/codegen/ai-sdk/ai-sdk-runner.ts @@ -1,15 +1,14 @@ -import {AnthropicProviderOptions} from '@ai-sdk/anthropic'; -import {GoogleGenerativeAIProviderOptions} from '@ai-sdk/google'; -import {OpenAIResponsesProviderOptions} from '@ai-sdk/openai'; import { FilePart, generateText, - LanguageModel, ModelMessage, Output, SystemModelMessage, TextPart, + ToolSet, } from 'ai'; +import {createMCPClient, MCPClient} from '@ai-sdk/mcp'; +import {Experimental_StdioMCPTransport as StdioClientTransport} from '@ai-sdk/mcp/mcp-stdio'; import z from 'zod'; import {combineAbortSignals} from '../../utils/abort-signal.js'; import {callWithTimeout} from '../../utils/timeout.js'; @@ -21,14 +20,22 @@ import { LocalLlmGenerateFilesResponse, LocalLlmGenerateTextRequestOptions, LocalLlmGenerateTextResponse, + McpServerDetails, + McpServerOptions, PromptDataMessage, } from '../llm-runner.js'; import {ANTHROPIC_MODELS, getAiSdkModelOptionsForAnthropic} from './anthropic.js'; import {getAiSdkModelOptionsForGoogle, GOOGLE_MODELS} from './google.js'; import {getAiSdkModelOptionsForOpenAI, OPENAI_MODELS} from './openai.js'; import {AiSdkModelOptions} from './ai-sdk-model-options.js'; +import {getAiSdkModelOptionsForXai, XAI_MODELS} from './xai.js'; -const SUPPORTED_MODELS = [...GOOGLE_MODELS, ...ANTHROPIC_MODELS, ...OPENAI_MODELS] as const; +const SUPPORTED_MODELS = [ + ...GOOGLE_MODELS, + ...ANTHROPIC_MODELS, + ...OPENAI_MODELS, + ...XAI_MODELS, +] as const; // Increased to a very high value as we rely on an actual timeout // that aborts stuck LLM requests. WCS is targeting stability here; @@ -36,9 +43,10 @@ const SUPPORTED_MODELS = [...GOOGLE_MODELS, ...ANTHROPIC_MODELS, ...OPENAI_MODEL const DEFAULT_MAX_RETRIES = 100000; export class AiSdkRunner implements LlmRunner { - displayName = 'AI SDK'; - id = 'ai-sdk'; - hasBuiltInRepairLoop = true; + readonly displayName = 'AI SDK'; + readonly id = 'ai-sdk'; + readonly hasBuiltInRepairLoop = true; + private mcpClients: MCPClient[] | null = null; async generateText( options: LocalLlmGenerateTextRequestOptions, @@ -49,6 +57,7 @@ export class AiSdkRunner implements LlmRunner { abortSignal: abortSignal, messages: this.convertRequestToMessagesList(options), maxRetries: DEFAULT_MAX_RETRIES, + tools: await this.getTools(), }), ); @@ -75,6 +84,7 @@ export class AiSdkRunner implements LlmRunner { output: Output.object>({schema: options.schema}), abortSignal: abortSignal, maxRetries: DEFAULT_MAX_RETRIES, + tools: await this.getTools(), }), ); @@ -120,7 +130,42 @@ export class AiSdkRunner implements LlmRunner { return [...SUPPORTED_MODELS]; } - async dispose(): Promise {} + async dispose(): Promise { + if (this.mcpClients) { + for (const client of this.mcpClients) { + try { + await client.close(); + } catch (error) { + console.error(`Failed to close MCP client`, error); + } + } + } + } + + async startMcpServerHost( + _hostName: string, + servers: McpServerOptions[], + ): Promise { + const details: McpServerDetails = {resources: [], tools: []}; + + for (const server of servers) { + const client = await createMCPClient({ + transport: new StdioClientTransport({ + command: server.command, + args: server.args, + env: server.env, + }), + }); + + const [resources, tools] = await Promise.all([client.listResources(), client.tools()]); + resources.resources.forEach(r => details.resources.push(r.name)); + details.tools.push(...Object.keys(tools)); + this.mcpClients ??= []; + this.mcpClients.push(client); + } + + return details; + } private async _wrapRequestWithTimeoutAndRateLimiting( request: LocalLlmGenerateTextRequestOptions | LocalLlmConstrainedOutputGenerateRequestOptions, @@ -145,7 +190,8 @@ export class AiSdkRunner implements LlmRunner { const result = (await getAiSdkModelOptionsForGoogle(request.model)) ?? (await getAiSdkModelOptionsForAnthropic(request.model)) ?? - (await getAiSdkModelOptionsForOpenAI(request.model)); + (await getAiSdkModelOptionsForOpenAI(request.model)) ?? + (await getAiSdkModelOptionsForXai(request.model)); if (result === null) { throw new Error(`Unexpected unsupported model: ${request.model}`); } @@ -198,4 +244,18 @@ export class AiSdkRunner implements LlmRunner { } return result; } + + private async getTools(): Promise { + let tools: ToolSet | undefined; + + if (this.mcpClients) { + for (const client of this.mcpClients) { + const clientTools = (await client.tools()) as ToolSet; + tools ??= {}; + Object.keys(clientTools).forEach(name => (tools![name] = clientTools[name])); + } + } + + return tools; + } } diff --git a/runner/codegen/ai-sdk/anthropic.ts b/runner/codegen/ai-sdk/anthropic.ts index 48b05bd7..3f58ef35 100644 --- a/runner/codegen/ai-sdk/anthropic.ts +++ b/runner/codegen/ai-sdk/anthropic.ts @@ -1,4 +1,4 @@ -import {anthropic, AnthropicProviderOptions} from '@ai-sdk/anthropic'; +import {createAnthropic, AnthropicProviderOptions} from '@ai-sdk/anthropic'; import {wrapLanguageModel} from 'ai'; import {anthropicThinkingWithStructuredResponseMiddleware} from './anthropic_thinking_patch.js'; import {AiSdkModelOptions} from './ai-sdk-model-options.js'; @@ -19,6 +19,7 @@ export async function getAiSdkModelOptionsForAnthropic( rawModelName: string, ): Promise { const modelName = rawModelName as (typeof ANTHROPIC_MODELS)[number]; + const provideModel = createAnthropic({apiKey: process.env['ANTHROPIC_API_KEY']}); switch (modelName) { case 'claude-opus-4.1-no-thinking': @@ -36,13 +37,13 @@ export async function getAiSdkModelOptionsForAnthropic( : modelName.endsWith('-32k') ? 32_000 : 16_000; - let apiModelName: Parameters[0] = 'claude-sonnet-4-5'; + let apiModelName = 'claude-sonnet-4-5'; if (modelName.includes('opus-4.1')) { apiModelName = 'claude-opus-4-1'; } else if (modelName.includes('opus-4.5')) { apiModelName = 'claude-opus-4-5'; } - const model = anthropic(apiModelName); + const model = provideModel(apiModelName); return { model: thinkingEnabled ? wrapLanguageModel({ diff --git a/runner/codegen/ai-sdk/google.ts b/runner/codegen/ai-sdk/google.ts index 79d73cd2..4683653d 100644 --- a/runner/codegen/ai-sdk/google.ts +++ b/runner/codegen/ai-sdk/google.ts @@ -1,4 +1,4 @@ -import {google, GoogleGenerativeAIProviderOptions} from '@ai-sdk/google'; +import {createGoogleGenerativeAI, GoogleGenerativeAIProviderOptions} from '@ai-sdk/google'; import {AiSdkModelOptions} from './ai-sdk-model-options.js'; export const GOOGLE_MODELS = [ @@ -15,6 +15,7 @@ export async function getAiSdkModelOptionsForGoogle( rawModelName: string, ): Promise { const modelName = rawModelName as (typeof GOOGLE_MODELS)[number]; + const provideModel = createGoogleGenerativeAI({apiKey: process.env['GEMINI_API_KEY']}); switch (modelName) { case 'gemini-2.5-flash-lite': @@ -22,7 +23,7 @@ export async function getAiSdkModelOptionsForGoogle( case 'gemini-2.5-pro': case 'gemini-3-pro-preview': return { - model: google(modelName), + model: provideModel(modelName), providerOptions: { google: { thinkingConfig: { @@ -33,7 +34,7 @@ export async function getAiSdkModelOptionsForGoogle( }; case 'gemini-2.5-flash-no-thinking': { return { - model: google('gemini-2.5-flash'), + model: provideModel('gemini-2.5-flash'), providerOptions: { google: { thinkingConfig: { @@ -55,7 +56,7 @@ export async function getAiSdkModelOptionsForGoogle( } return { - model: google('gemini-2.5-flash'), + model: provideModel('gemini-2.5-flash'), providerOptions: { google: { thinkingConfig: { diff --git a/runner/codegen/ai-sdk/openai.ts b/runner/codegen/ai-sdk/openai.ts index e1e273fa..b0427f71 100644 --- a/runner/codegen/ai-sdk/openai.ts +++ b/runner/codegen/ai-sdk/openai.ts @@ -1,4 +1,4 @@ -import {openai, OpenAIResponsesProviderOptions} from '@ai-sdk/openai'; +import {createOpenAI, OpenAIResponsesProviderOptions} from '@ai-sdk/openai'; import {AiSdkModelOptions} from './ai-sdk-model-options.js'; export const OPENAI_MODELS = [ @@ -11,6 +11,7 @@ export const OPENAI_MODELS = [ export async function getAiSdkModelOptionsForOpenAI( rawModelName: string, ): Promise { + const provideModel = createOpenAI({apiKey: process.env['OPENAI_API_KEY']}); const modelName = rawModelName as (typeof OPENAI_MODELS)[number]; switch (modelName) { @@ -27,7 +28,7 @@ export async function getAiSdkModelOptionsForOpenAI( reasoningEffort = 'low'; } return { - model: openai('gpt-5.1'), + model: provideModel('gpt-5.1'), providerOptions: { openai: { reasoningEffort, diff --git a/runner/codegen/ai-sdk/xai.ts b/runner/codegen/ai-sdk/xai.ts new file mode 100644 index 00000000..0e0ee80e --- /dev/null +++ b/runner/codegen/ai-sdk/xai.ts @@ -0,0 +1,28 @@ +import {createXai, XaiProviderOptions} from '@ai-sdk/xai'; +import {AiSdkModelOptions} from './ai-sdk-model-options.js'; + +export const XAI_MODELS = ['grok-4', 'grok-code-fast-1'] as const; + +export async function getAiSdkModelOptionsForXai( + rawModelName: string, +): Promise { + const provideModel = createXai({apiKey: process.env['XAI_API_KEY']}); + const modelName = rawModelName as (typeof XAI_MODELS)[number]; + + switch (modelName) { + case 'grok-4': + case 'grok-code-fast-1': + const reasoningEffort = modelName === 'grok-4' ? 'high' : 'low'; + + return { + model: provideModel(modelName), + providerOptions: { + xai: { + reasoningEffort, + } satisfies XaiProviderOptions, + }, + }; + default: + return null; + } +} diff --git a/runner/codegen/genkit/genkit-logger.ts b/runner/codegen/genkit/genkit-logger.ts deleted file mode 100644 index e4e15072..00000000 --- a/runner/codegen/genkit/genkit-logger.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {logger} from 'genkit/logging'; - -const defaultLogger = logger.defaultLogger; - -/** Custom logger for Genkit. */ -export class GenkitLogger { - private pendingLogs: unknown[] = []; - private isCapturingLogs = false; - level = defaultLogger.level; - - info(...args: unknown[]): void { - this.maybeCapture(args); - defaultLogger.info(...args); - } - - debug(...args: unknown[]): void { - this.maybeCapture(args); - defaultLogger.debug(...args); - } - - error(...args: unknown[]): void { - this.maybeCapture(args); - defaultLogger.error(...args); - } - - warn(...args: unknown[]): void { - this.maybeCapture(args); - defaultLogger.warn(...args); - } - - shouldLog(targetLevel: string): boolean { - return this.level === targetLevel; - } - - startCapturingLogs(): void { - if (this.isCapturingLogs) { - throw new Error('Logger is already capturing logs'); - } - - this.isCapturingLogs = true; - } - - flushCapturedLogs(): unknown[] { - if (!this.isCapturingLogs) { - throw new Error('Logger is not capturing logs'); - } - - const logs = this.pendingLogs; - this.pendingLogs = []; - this.isCapturingLogs = false; - return logs; - } - - private maybeCapture(logs: unknown[]): void { - if (this.isCapturingLogs) { - this.pendingLogs.push(...logs); - } - } -} diff --git a/runner/codegen/genkit/genkit-runner.ts b/runner/codegen/genkit/genkit-runner.ts deleted file mode 100644 index 7cafa044..00000000 --- a/runner/codegen/genkit/genkit-runner.ts +++ /dev/null @@ -1,359 +0,0 @@ -import { - Action, - DynamicResourceAction, - GenerateResponse, - genkit, - ModelReference, - ToolAction, -} from 'genkit'; -import {GenkitMcpHost, McpServerConfig, createMcpHost} from '@genkit-ai/mcp'; -import {GenkitPlugin, GenkitPluginV2} from 'genkit/plugin'; -import {z} from 'zod'; -import { - McpServerOptions, - LocalLlmConstrainedOutputGenerateRequestOptions, - LocalLlmConstrainedOutputGenerateResponse, - LlmRunner, - LocalLlmGenerateFilesResponse, - LocalLlmGenerateTextResponse, - LocalLlmGenerateTextRequestOptions, - LocalLlmGenerateFilesRequestOptions, - McpServerDetails, -} from '../llm-runner.js'; -import {setTimeout} from 'node:timers/promises'; -import {callWithTimeout} from '../../utils/timeout.js'; -import {logger} from 'genkit/logging'; -import {GenkitLogger} from './genkit-logger.js'; -import {MODEL_PROVIDERS} from './models.js'; -import {UserFacingError} from '../../utils/errors.js'; -import {GenkitModelProvider, PromptDataForCounting} from './model-provider.js'; -import {ToolLogEntry, Usage} from '../../shared-interfaces.js'; -import {combineAbortSignals} from '../../utils/abort-signal.js'; -import {toToolDefinition} from 'genkit/tool'; - -const globalLogger = new GenkitLogger(); -logger.init(globalLogger); - -/** - * Gets the name of a Genkit action. - */ -function getActionName(action: Action): string { - return toToolDefinition(action).name; -} - -/** Runner that uses the Genkit API under the hood. */ -export class GenkitRunner implements LlmRunner { - readonly id = 'genkit'; - readonly displayName = 'Genkit'; - readonly hasBuiltInRepairLoop = false; - private readonly genkitInstance = this.getGenkitInstance(); - private mcpHost: GenkitMcpHost | null = null; - private toolLogs: ToolLogEntry[] = []; - - async generateConstrained( - options: LocalLlmConstrainedOutputGenerateRequestOptions, - ): Promise> { - const {provider, model} = this.resolveModel(options.model); - const result = await this._genkitRequest(provider, model, options); - - return { - output: result.output, - usage: { - inputTokens: result.usage.inputTokens ?? 0, - outputTokens: result.usage.outputTokens ?? 0, - thinkingTokens: result.usage.thoughtsTokens ?? 0, - totalTokens: result.usage.totalTokens ?? 0, - }, - reasoning: result.reasoning, - }; - } - - async generateFiles( - options: LocalLlmGenerateFilesRequestOptions, - ): Promise { - const requestOptions: LocalLlmConstrainedOutputGenerateRequestOptions = { - ...options, - prompt: options.context.executablePrompt, - systemPrompt: options.context.systemInstructions, - schema: z.object({ - outputFiles: z.array( - z.object({ - filePath: z.string().describe('Name of the file that is being changed'), - code: z.string().describe('New code of the file'), - }), - ), - }), - }; - - const {provider, model} = this.resolveModel(options.model); - const result = await this._genkitRequest(provider, model, requestOptions); - const files = result.output.outputFiles || []; - - if ( - process.env['WCS_SKIP_GENKIT_OUTPUT_VALIDATION'] !== '1' && - !provider.validateGeneratedFiles(files) - ) { - throw new Error(`Invalid files generated by model "${options.model}"`); - } - - return { - files, - usage: { - inputTokens: result.usage.inputTokens ?? 0, - outputTokens: result.usage.outputTokens ?? 0, - thinkingTokens: result.usage.thoughtsTokens ?? 0, - totalTokens: result.usage.totalTokens ?? 0, - }, - reasoning: result.reasoning, - toolLogs: this.flushToolLogs(), - }; - } - - flushToolLogs(): ToolLogEntry[] { - return this.toolLogs.splice(0); - } - - async generateText( - options: LocalLlmGenerateTextRequestOptions, - ): Promise { - const {provider, model} = this.resolveModel(options.model); - const result = await this._genkitRequest(provider, model, options); - - return { - text: result.text, - usage: { - inputTokens: result.usage.inputTokens ?? 0, - outputTokens: result.usage.outputTokens ?? 0, - thinkingTokens: result.usage.thoughtsTokens ?? 0, - totalTokens: result.usage.totalTokens ?? 0, - }, - reasoning: result.reasoning, - toolLogs: this.flushToolLogs(), - }; - } - - getSupportedModels(): string[] { - return MODEL_PROVIDERS.flatMap(p => p.getSupportedModels()); - } - - getSupportedModelsWithAPIKey(): string[] { - return MODEL_PROVIDERS.filter(p => p.getApiKey() !== null).flatMap(p => p.getSupportedModels()); - } - - private async _genkitRequest( - provider: GenkitModelProvider, - model: ModelReference, - options: LocalLlmGenerateTextRequestOptions | LocalLlmConstrainedOutputGenerateRequestOptions, - ) { - return await rateLimitLLMRequest( - provider, - model, - {messages: options.messages || [], prompt: options.prompt}, - () => { - const schema = (options as Partial).schema; - const performRequest = async (abortSignal: AbortSignal) => { - let tools: ToolAction[] | undefined; - let resources: DynamicResourceAction[] | undefined; - - if (!options.skipMcp && this.mcpHost) { - [tools, resources] = await Promise.all([ - this.mcpHost.getActiveTools(this.genkitInstance), - this.mcpHost.getActiveResources(this.genkitInstance), - ]); - } - - const response = await this.genkitInstance.generate({ - prompt: options.prompt, - system: options.systemPrompt, - model, - output: schema - ? { - // Note that the schema needs to be cast to `any`, because allowing its type to - // be inferred ends up causing `TS2589: Type instantiation is excessively deep and possibly infinite.`, - // most likely due to how the Genkit type inferrence is set up. This doesn't affect - // the return type since it was already `ZodTypeAny` which coerces to `any`. - schema: schema as any, - constrained: true, - } - : undefined, - config: provider.getModelSpecificConfig( - { - includeThoughts: options.thinkingConfig?.includeThoughts ?? false, - }, - options.model, - ), - messages: options.messages, - tools, - resources, - abortSignal, - }); - - this._logToolUsage(response); - - return response; - }; - - return options.timeout - ? callWithTimeout( - options.timeout.description, - timeoutAbortSignal => - performRequest(combineAbortSignals(timeoutAbortSignal, options.abortSignal)), - options.timeout.durationInMins, - ) - : performRequest(options.abortSignal); - }, - ); - } - - private _logToolUsage(response: GenerateResponse) { - const toolRequests = new Map(); - const toolResponses = new Map(); - - if (response.request?.messages) { - for (const message of response.request.messages) { - if (!message.content) { - continue; - } - for (const contentPart of message.content) { - if (contentPart.toolRequest) { - toolRequests.set(contentPart.toolRequest.ref || '0', contentPart.toolRequest); - } else if (contentPart.toolResponse) { - toolResponses.set(contentPart.toolResponse.ref || '0', contentPart.toolResponse); - } - } - } - } - - for (const [ref, toolRequest] of toolRequests.entries()) { - const toolResponse = toolResponses.get(ref); - if (toolResponse) { - this.toolLogs.push({ - request: toolRequest, - response: toolResponse, - }); - } - } - } - - async startMcpServerHost( - hostName: string, - servers: McpServerOptions[], - ): Promise { - if (this.mcpHost !== null) { - throw new Error('MCP host is already started'); - } - - const mcpServers = servers.reduce( - (result, current) => { - const {name, ...config} = current; - result[name] = config; - - return result; - }, - {} as Record, - ); - - globalLogger.startCapturingLogs(); - this.mcpHost = createMcpHost({name: hostName, mcpServers}); - const tools = await this.mcpHost.getActiveTools(this.genkitInstance); - const resources = await this.mcpHost.getActiveResources(this.genkitInstance); - return { - tools: tools.map(getActionName), - resources: resources.map(getActionName), - }; - } - - flushMcpServerLogs(): string[] { - return globalLogger - .flushCapturedLogs() - .filter((log): log is string => typeof log === 'string' && log.includes('[MCP')); - } - - async dispose() { - try { - await this.mcpHost?.close(); - } catch (error) { - console.error(`Failed to close MCP host`, error); - } - } - - private resolveModel(name: string) { - for (const provider of MODEL_PROVIDERS) { - const model = provider.createModel(name); - - if (model) { - return {provider: provider as GenkitModelProvider, model}; - } - } - - throw new UserFacingError( - `Unrecognized model '${name}'. The configured models are:\n` + - this.getSupportedModels() - .map(m => `- ${m}`) - .join('\n'), - ); - } - - /** Gets a Genkit instance configured with the currently-available providers. */ - private getGenkitInstance() { - const plugins: (GenkitPlugin | GenkitPluginV2)[] = []; - const environmentVars: string[] = []; - - for (const provider of MODEL_PROVIDERS) { - const plugin = provider.getPlugin(); - environmentVars.push(provider.apiKeyVariableName); - - if (plugin) { - plugins.push(plugin); - } - } - - if (plugins.length === 0) { - throw new UserFacingError( - `No LLM providers have been configured. You must set at least one of the ` + - `following environment variables:\n` + - environmentVars.map(e => `- ${e}`).join('\n'), - ); - } - - return genkit({plugins}); - } -} - -/** - * Invokes the LLM request function with respect to potential model rate limits. - */ -async function rateLimitLLMRequest( - provider: GenkitModelProvider, - model: ModelReference, - prompt: string | PromptDataForCounting, - requestFn: () => Promise, - retryCount = 0, -): Promise { - if (typeof prompt === 'string') { - prompt = {messages: [], prompt}; - } - - provider.rateLimit(prompt, model); - - try { - return await requestFn(); - } catch (e: unknown) { - if (typeof e === 'object') { - // If we know it's a rate-limitation error, re-queue but with a linear backoff. - if ( - e?.constructor?.name === 'RateLimitError' || // From `openai` - e?.constructor?.name === 'GoogleGenerativeAIFetchError' // From `Gemini`. - ) { - if (retryCount === 10) { - throw e; - } - // Exponential backoff with randomness to avoid retrying at the same times with other requests. - const backoffSeconds = (25 + 10 * 1.35 ** retryCount++) * (0.8 + Math.random() * 0.4); - await setTimeout(1000 * backoffSeconds); - return rateLimitLLMRequest(provider, model, prompt, requestFn, retryCount); - } - } - throw e; - } -} diff --git a/runner/codegen/genkit/model-provider.ts b/runner/codegen/genkit/model-provider.ts deleted file mode 100644 index f16f48fb..00000000 --- a/runner/codegen/genkit/model-provider.ts +++ /dev/null @@ -1,69 +0,0 @@ -import {ModelReference} from 'genkit'; -import {GenkitPlugin, GenkitPluginV2} from 'genkit/plugin'; -import {RateLimiter} from 'limiter'; -import {PromptDataMessage} from '../llm-runner.js'; -import {LlmResponseFile} from '../../shared-interfaces.js'; - -export interface RateLimitConfig { - requestPerMinute: RateLimiter; - tokensPerMinute: RateLimiter; - countTokens(prompt: PromptDataForCounting): Promise; -} - -export interface PromptDataForCounting { - prompt: string; - messages: PromptDataMessage[]; -} - -/** Abstraction around an LLM provider. */ -export abstract class GenkitModelProvider { - abstract readonly apiKeyVariableName: string; - protected abstract readonly models: Record ModelReference>; - protected abstract readonly rateLimitConfig: Record; - - /** Creates a model instance, if the the provider supports the model. */ - createModel(name: string): ModelReference | null { - return this.supportsModel(name) ? this.models[name]() : null; - } - - /** Returns whether the provider supports a specific model. */ - supportsModel(name: string): boolean { - return this.models.hasOwnProperty(name); - } - - /** Gets the names of all models supported by the provider. */ - getSupportedModels(): string[] { - return Object.keys(this.models); - } - - /** Gets the API key associated with this provider. */ - getApiKey(): string | null { - return process.env[this.apiKeyVariableName] || null; - } - - /** Gets a Genkit plugin that can be used to query the provider. */ - getPlugin(): GenkitPlugin | GenkitPluginV2 | null { - const key = this.getApiKey(); - return key ? this.pluginFactory(key) : null; - } - - /** - * Checks whether files generated by the LLM are valid. - * If not, the Genkit runner will throw an error. - */ - abstract validateGeneratedFiles(files: LlmResponseFile[]): boolean; - - protected abstract pluginFactory(apiKey: string): GenkitPlugin | GenkitPluginV2; - - abstract getModelSpecificConfig(opts: {includeThoughts?: boolean}, modelName: string): object; - - async rateLimit(prompt: PromptDataForCounting, model: ModelReference): Promise { - const config = this.rateLimitConfig[model.name]; - - if (config) { - await config.requestPerMinute.removeTokens(1); - const tokenCount = (await config.countTokens(prompt)) ?? 0; - await config.tokensPerMinute.removeTokens(tokenCount); - } - } -} diff --git a/runner/codegen/genkit/models.ts b/runner/codegen/genkit/models.ts deleted file mode 100644 index beb9da57..00000000 --- a/runner/codegen/genkit/models.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {GeminiModelProvider} from './providers/gemini.js'; -import {ClaudeModelProvider} from './providers/claude.js'; -import {OpenAiModelProvider} from './providers/open-ai.js'; -import {GrokModelProvider} from './providers/grok.js'; - -export const MODEL_PROVIDERS = [ - new GeminiModelProvider(), - new ClaudeModelProvider(), - new OpenAiModelProvider(), - new GrokModelProvider(), -]; diff --git a/runner/codegen/genkit/providers/claude.ts b/runner/codegen/genkit/providers/claude.ts deleted file mode 100644 index 42d6d422..00000000 --- a/runner/codegen/genkit/providers/claude.ts +++ /dev/null @@ -1,83 +0,0 @@ -import {Anthropic} from '@anthropic-ai/sdk'; -import {GenkitPlugin} from 'genkit/plugin'; -import {GenkitModelProvider, PromptDataForCounting, RateLimitConfig} from '../model-provider.js'; -import {anthropic} from 'genkitx-anthropic'; -import {claude35Haiku, claude4Sonnet} from 'genkitx-anthropic'; -import {lazy} from '../../../utils/lazy-creation.js'; -import {RateLimiter} from 'limiter'; - -export class ClaudeModelProvider extends GenkitModelProvider { - readonly apiKeyVariableName = 'ANTHROPIC_API_KEY'; - - protected readonly models = { - 'claude-4.0-sonnet': () => claude4Sonnet, - 'claude-3.5-haiku': () => claude35Haiku, - }; - - protected rateLimitConfig: Record = { - // See: https://docs.anthropic.com/en/api/rate-limits#tier-2 - 'anthropic/claude-4-sonnet': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 1000, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 40_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: prompt => this.countClaudeTokens(prompt), - }, - }; - - getModelSpecificConfig(): object { - // TODO: Add thinking output for Claude. - return {}; - } - - validateGeneratedFiles(): boolean { - return true; - } - - private anthropicApi = lazy(() => { - return new Anthropic({apiKey: this.getApiKey() || undefined}); - }); - - protected pluginFactory(apiKey: string): GenkitPlugin { - return anthropic({apiKey}); - } - - private async countClaudeTokens(prompt: PromptDataForCounting): Promise { - const sonnetPrompt: string | Anthropic.Messages.MessageParam[] = []; - for (const part of prompt.messages) { - for (const c of part.content) { - sonnetPrompt.push({ - role: part.role === 'user' ? 'user' : 'assistant', - content: - 'media' in c - ? [ - { - source: { - media_type: 'image/png', - data: c.media.base64PngImage, - type: 'base64', - }, - type: 'image', - }, - ] - : c.text, - }); - } - } - const messages: Anthropic.Messages.MessageParam[] = [ - ...sonnetPrompt, - {content: prompt.prompt, role: 'user'}, - ]; - - return ( - await this.anthropicApi().messages.countTokens({ - model: 'claude-sonnet-4-0', - messages, - }) - ).input_tokens; - } -} diff --git a/runner/codegen/genkit/providers/gemini.ts b/runner/codegen/genkit/providers/gemini.ts deleted file mode 100644 index b72fa50d..00000000 --- a/runner/codegen/genkit/providers/gemini.ts +++ /dev/null @@ -1,125 +0,0 @@ -import {GenkitPlugin} from 'genkit/plugin'; -import {googleAI} from '@genkit-ai/googleai'; -import {GenkitModelProvider, PromptDataForCounting, RateLimitConfig} from '../model-provider.js'; -import {lazy} from '../../../utils/lazy-creation.js'; -import {GoogleGenAI, Part} from '@google/genai'; -import {RateLimiter} from 'limiter'; -import {LlmResponseFile} from '../../../shared-interfaces.js'; - -export class GeminiModelProvider extends GenkitModelProvider { - readonly apiKeyVariableName = 'GEMINI_API_KEY'; - - private geminiAPI = lazy(() => new GoogleGenAI({apiKey: this.getApiKey() || undefined})); - - protected models = { - 'gemini-3-pro-preview': () => googleAI.model('gemini-3-pro-preview'), - 'gemini-2.5-pro': () => googleAI.model('gemini-2.5-pro'), - 'gemini-2.5-flash': () => googleAI.model('gemini-2.5-flash'), - 'gemini-2.5-flash-lite': () => googleAI.model('gemini-2.5-flash-lite'), - }; - - protected rateLimitConfig: Record = { - 'googleai/gemini-3-pro-preview': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 150, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 2_000_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: prompt => this.countGeminiTokens(prompt, 'gemini-3-pro-preview'), - }, - // See: https://ai.google.dev/gemini-api/docs/rate-limits#tier-1 - // 150 per minute requests is Gemini Pro's limit right now. - 'googleai/gemini-2.5-pro': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 150, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 2_000_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: prompt => this.countGeminiTokens(prompt, 'gemini-2.5-pro'), - }, - // See: https://ai.google.dev/gemini-api/docs/rate-limits#tier-1 - // 1000 per minute requests is Gemini Flash's limit right now. - 'googleai/gemini-2.5-flash': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 1000, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 1_000_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: prompt => this.countGeminiTokens(prompt, 'gemini-2.5-flash'), - }, - 'googleai/gemini-2.5-flash-lite': { - // See: https://ai.google.dev/gemini-api/docs/rate-limits#tier-1 - // 1000 per minute requests is Gemini Flash Lite's limit right now. - requestPerMinute: new RateLimiter({ - tokensPerInterval: 4000, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 4_000_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: prompt => this.countGeminiTokens(prompt, 'gemini-2.5-flash-lite'), - }, - }; - - protected pluginFactory(apiKey: string): GenkitPlugin { - return googleAI({apiKey}); - } - - getModelSpecificConfig(opts: {includeThoughts?: boolean}): object { - return {thinkingConfig: {includeThoughts: opts.includeThoughts}}; - } - - validateGeneratedFiles(files: LlmResponseFile[]): boolean { - // Gemini responses occasionally get truncated on `class=`. - // Consider these cases as invalid so they don't influence the results. - // TODO: Consider re-enabling this. - // return files.length === 0 || !files.some(file => file.code.trim().endsWith('class=')); - return true; - } - - private async countGeminiTokens( - prompt: PromptDataForCounting, - modelName: string, - ): Promise { - const contents = [ - ...prompt.messages.map(m => ({ - role: m.role, - parts: m.content.map(c => { - return 'text' in c - ? ({text: c.text} satisfies Part) - : ({ - inlineData: { - data: c.media.base64PngImage, - mimeType: 'image/png', - }, - } satisfies Part); - }), - })), - {role: 'user', parts: [{text: prompt.prompt}]}, - ]; - - try { - // Note: This is a separate API and doesn't contribute to our model requests/limits! - return ( - ( - await this.geminiAPI().models.countTokens({ - model: modelName, - contents, - }) - ).totalTokens ?? null - ); - } catch (e: unknown) { - return null; - } - } -} diff --git a/runner/codegen/genkit/providers/grok.ts b/runner/codegen/genkit/providers/grok.ts deleted file mode 100644 index f457edd5..00000000 --- a/runner/codegen/genkit/providers/grok.ts +++ /dev/null @@ -1,110 +0,0 @@ -import {xAI} from '@genkit-ai/compat-oai/xai'; -import {GenkitPlugin, GenkitPluginV2} from 'genkit/plugin'; -import {RateLimiter} from 'limiter'; -import fetch from 'node-fetch'; -import {GenkitModelProvider, PromptDataForCounting, RateLimitConfig} from '../model-provider.js'; - -export class GrokModelProvider extends GenkitModelProvider { - readonly apiKeyVariableName = 'XAI_API_KEY'; - - protected readonly models = { - 'grok-4': () => xAI.model('grok-4'), - 'grok-code-fast-1': () => xAI.model('grok-code-fast-1'), - }; - - private async countTokensWithXaiApi(prompt: PromptDataForCounting): Promise { - const apiKey = this.getApiKey(); - if (!apiKey) { - return null; - } - - try { - // Use xAI's tokenize API for accurate token counting - const messages = this.genkitPromptToXaiFormat(prompt); - const text = messages.map(m => `${m.role}: ${m.content}`).join('\n'); - - const response = await fetch('https://api.x.ai/v1/tokenize', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - Authorization: `Bearer ${apiKey}`, - }, - body: JSON.stringify({text}), - }); - - if (response.ok) { - const data = (await response.json()) as {tokens: unknown[]}; - return data.tokens?.length || 0; - } - return null; - } catch (error) { - console.warn('Failed to count tokens using xAI API', error); - return null; - } - } - - private async countTokensForModel( - _modelName: string, - prompt: PromptDataForCounting, - ): Promise { - const xaiTokenCount = await this.countTokensWithXaiApi(prompt); - if (xaiTokenCount !== null) { - return xaiTokenCount; - } - return 0; - } - - protected rateLimitConfig: Record = { - // XAI Grok rate limits https://docs.x.ai/docs/models - 'xai/grok-4': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 480, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 2_000_000 * 0.75, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side - }), - countTokens: prompt => this.countTokensForModel('grok-4', prompt), - }, - 'xai/grok-code-fast-1': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 480, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 2_000_000 * 0.75, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side - }), - countTokens: prompt => this.countTokensForModel('grok-code-fast-1', prompt), - }, - }; - - protected pluginFactory(apiKey: string): GenkitPlugin | GenkitPluginV2 { - return xAI({apiKey}); - } - - getModelSpecificConfig(): object { - // Grok doesn't require special configuration at this time - return {}; - } - - validateGeneratedFiles(): boolean { - return true; - } - - private genkitPromptToXaiFormat( - prompt: PromptDataForCounting, - ): Array<{role: string; content: string}> { - const xaiPrompt: Array<{role: string; content: string}> = []; - for (const part of prompt.messages) { - for (const c of part.content) { - xaiPrompt.push({ - role: part.role, - content: 'media' in c ? c.media.url : c.text, - }); - } - } - return [...xaiPrompt, {role: 'user', content: prompt.prompt}]; - } -} diff --git a/runner/codegen/genkit/providers/open-ai.ts b/runner/codegen/genkit/providers/open-ai.ts deleted file mode 100644 index f30158ce..00000000 --- a/runner/codegen/genkit/providers/open-ai.ts +++ /dev/null @@ -1,111 +0,0 @@ -import {GenkitPluginV2} from 'genkit/plugin'; -import {openAI} from '@genkit-ai/compat-oai/openai'; -import {RateLimiter} from 'limiter'; -import {GenkitModelProvider, PromptDataForCounting, RateLimitConfig} from '../model-provider.js'; -import {encoding_for_model} from 'tiktoken'; - -export class OpenAiModelProvider extends GenkitModelProvider { - readonly apiKeyVariableName = 'OPENAI_API_KEY'; - - protected readonly models = { - 'openai-o3': () => openAI.model('o3'), - 'openai-o4-mini': () => openAI.model('o4-mini'), - 'openai-gpt-5': () => openAI.model('gpt-5'), - 'openai-gpt-5.1': () => openAI.model('gpt-5.1'), - }; - - private countTokensForModel( - modelName: Parameters[0], - prompt: PromptDataForCounting, - ): number { - const encoding = encoding_for_model(modelName); - try { - const messages = this.genkitPromptToOpenAi(prompt); - const text = messages.map(m => `${m.role}: ${m.content}`).join('\n'); - const tokens = encoding.encode(text); - return tokens.length; - } finally { - encoding.free(); - } - } - - protected rateLimitConfig: Record = { - // See: https://platform.openai.com/docs/models/o3 - 'openai/o3': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 500, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 30_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: async prompt => this.countTokensForModel('gpt-4o', prompt), - }, - // See https://platform.openai.com/docs/models/o4-mini - 'openai/o4-mini': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 1000, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 100_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: async prompt => this.countTokensForModel('gpt-4o-mini', prompt), - }, - // See: https://platform.openai.com/docs/models/gpt-5 - 'openai/gpt-5': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 500, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 500_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - countTokens: async prompt => this.countTokensForModel('gpt-5', prompt), - }, - // See: https://platform.openai.com/docs/models/gpt-5.1 - 'openai/gpt-5.1': { - requestPerMinute: new RateLimiter({ - tokensPerInterval: 500, - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - tokensPerMinute: new RateLimiter({ - tokensPerInterval: 500_000 * 0.75, // *0.75 to be more resilient to token count deviations - interval: 1000 * 60 * 1.5, // Refresh tokens after 1.5 minutes to be on the safe side. - }), - // TODO: Consider selecting GPT5.1 if available; but it's GPT5 counting should work too. - countTokens: async prompt => this.countTokensForModel('gpt-5', prompt), - }, - }; - - protected pluginFactory(apiKey: string): GenkitPluginV2 { - return openAI({apiKey, maxRetries: 0}); - } - - getModelSpecificConfig(): object { - // TODO: Add thinking output for OpenAI - return {}; - } - - validateGeneratedFiles(): boolean { - return true; - } - - private genkitPromptToOpenAi( - prompt: PromptDataForCounting, - ): Array<{role: string; content: string}> { - const openAiPrompt: Array<{role: string; content: string}> = []; - for (const part of prompt.messages) { - for (const c of part.content) { - openAiPrompt.push({ - role: part.role, - content: 'media' in c ? c.media.url : c.text, - }); - } - } - return [...openAiPrompt, {role: 'user', content: prompt.prompt}]; - } -} diff --git a/runner/codegen/noop-unimplemented-runner.ts b/runner/codegen/noop-unimplemented-runner.ts index 613015bb..fec46915 100644 --- a/runner/codegen/noop-unimplemented-runner.ts +++ b/runner/codegen/noop-unimplemented-runner.ts @@ -8,10 +8,6 @@ import { /** * Noop runner that is useful for creating a `LocalExecutor` * that doesn't leverage a runner specified to WCS. - * - * E.g. a custom executor that uses pre-scraped LLM output will override - * corresponding generation methods in the `Executor` but doesn't want - * the Genkit LLM runner to be instantiated just to expect a `GEMINI_API_KEY`. */ export class NoopUnimplementedRunner implements LlmRunner { displayName = 'noop-unimplemented'; diff --git a/runner/codegen/runner-creation.ts b/runner/codegen/runner-creation.ts index 3a7e4c12..481aab18 100644 --- a/runner/codegen/runner-creation.ts +++ b/runner/codegen/runner-creation.ts @@ -1,13 +1,11 @@ import {UserFacingError} from '../utils/errors.js'; import type {GeminiCliRunner} from './gemini-cli-runner.js'; import type {ClaudeCodeRunner} from './claude-code-runner.js'; -import type {GenkitRunner} from './genkit/genkit-runner.js'; import type {CodexRunner} from './codex-runner.js'; import type {NoopUnimplementedRunner} from './noop-unimplemented-runner.js'; import {AiSdkRunner} from './ai-sdk/ai-sdk-runner.js'; interface AvailableRunners { - genkit: GenkitRunner; 'ai-sdk': AiSdkRunner; 'gemini-cli': GeminiCliRunner; 'claude-code': ClaudeCodeRunner; @@ -20,15 +18,7 @@ export type RunnerName = keyof AvailableRunners; /** Creates an `LlmRunner` based on a name. */ export async function getRunnerByName(name: T): Promise { - // Note that we lazily import and resolve the runners here, because their imports - // might have side effects. E.g. Genkit installs a listener on the process exiting - // in order to kill pending instances and log "Closing all Genkit instances". - // We don't want to trigger those side effects unless we actually need them. switch (name) { - case 'genkit': - return import('./genkit/genkit-runner.js').then( - m => new m.GenkitRunner() as AvailableRunners[T], - ); case 'ai-sdk': return import('./ai-sdk/ai-sdk-runner.js').then( m => new m.AiSdkRunner() as AvailableRunners[T], diff --git a/runner/configuration/environment-config.ts b/runner/configuration/environment-config.ts index fd9bf2f9..f255a2b1 100644 --- a/runner/configuration/environment-config.ts +++ b/runner/configuration/environment-config.ts @@ -15,7 +15,7 @@ import { ReportContextFilter, } from '../shared-interfaces.js'; import type {Environment} from './environment.js'; -import type {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; +import type {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; export const environmentConfigSchema = z.object({ /** Display name for the environment. */ @@ -155,7 +155,7 @@ export interface PromptAugmentationContext { /** Environment running the evaluation. */ environment: Environment; /** Runner that the user can use for augmentation. */ - runner: GenkitRunner; + runner: AiSdkRunner; } /** Asserts that the specified data is a valid environment config. */ @@ -169,8 +169,6 @@ export function assertIsEnvironmentConfig(value: unknown): asserts value is Envi .safeParse(value); if (!validationResult.success) { - // TODO: we can use `z.prettifyError` once we update to zod v4, - // but last time the update caused some issues with Genkit. const message = fromError(validationResult.error, { messageBuilder: createMessageBuilder({ prefix: 'Environment parsing failed:', diff --git a/runner/configuration/environment.ts b/runner/configuration/environment.ts index f7f39c13..0b967f2a 100644 --- a/runner/configuration/environment.ts +++ b/runner/configuration/environment.ts @@ -20,7 +20,7 @@ import {EvalPromptWithMetadata, MultiStepPrompt} from './prompts.js'; import {renderPromptTemplate} from './prompt-templating.js'; import {getSha256Hash} from '../utils/hashing.js'; import {DEFAULT_SUMMARY_MODEL} from './constants.js'; -import type {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; +import type {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; import {getRunnerByName} from '../codegen/runner-creation.js'; interface CategoryConfig { @@ -82,7 +82,7 @@ export class Environment { | null; /** Runner that user can use to access an LLM to augment prompts. */ - private augmentationRunner: GenkitRunner | null = null; + private augmentationRunner: AiSdkRunner | null = null; /** User-provided callback for augmenting the LLM-generated files. */ private readonly augmentFileCallback: ((file: LlmResponseFile) => string) | null; @@ -302,7 +302,7 @@ export class Environment { }).then(text => (promptDef.prompt = text)), ); }; - this.augmentationRunner ??= await getRunnerByName('genkit'); + this.augmentationRunner ??= await getRunnerByName('ai-sdk'); for (const rootPrompt of prompts) { if (rootPrompt.kind === 'multi-step') { diff --git a/runner/eval-cli.ts b/runner/eval-cli.ts index 9011c309..d06e8510 100644 --- a/runner/eval-cli.ts +++ b/runner/eval-cli.ts @@ -63,8 +63,8 @@ function builder(argv: Argv): Argv { // Option is a noop right now when using a remote environment. .option('runner', { type: 'string', - default: 'genkit' as const, - choices: ['genkit', 'ai-sdk', 'gemini-cli', 'claude-code', 'codex'] as RunnerName[], + default: 'ai-sdk' as const, + choices: ['ai-sdk', 'gemini-cli', 'claude-code', 'codex'] as RunnerName[], description: 'Runner to use to execute the eval', }) .option('local', { diff --git a/runner/index.ts b/runner/index.ts index 67026064..20caf85d 100644 --- a/runner/index.ts +++ b/runner/index.ts @@ -37,7 +37,6 @@ export { type McpServerOptions, type PromptDataMessage, } from './codegen/llm-runner.js'; -export {GenkitRunner} from './codegen/genkit/genkit-runner.js'; export {GeminiCliRunner} from './codegen/gemini-cli-runner.js'; export {getRunnerByName, type RunnerName} from './codegen/runner-creation.js'; export {getEnvironmentByPath} from './configuration/environment-resolution.js'; diff --git a/runner/init-cli.ts b/runner/init-cli.ts index c5a622ca..8824e911 100644 --- a/runner/init-cli.ts +++ b/runner/init-cli.ts @@ -1,12 +1,10 @@ import {Argv, CommandModule, Options} from 'yargs'; -import {input, confirm} from '@inquirer/prompts'; -import chalk from 'chalk'; +import {input} from '@inquirer/prompts'; import {join, relative, dirname} from 'path'; import {cp} from 'fs/promises'; import {formatTitleCard} from './reporting/format.js'; import {generateId} from './utils/id-generation.js'; import {safeWriteFile, toProcessAbsolutePath} from './file-system-utils.js'; -import {MODEL_PROVIDERS} from './codegen/genkit/models.js'; export const InitModule = { builder, @@ -55,22 +53,6 @@ async function getAnswers(): Promise { // Add some spaces at the end to align to the text of the line above. const newLineSeparator = '\n '; - const apiKeyVariables = MODEL_PROVIDERS.map(p => p.apiKeyVariableName); - - if (!apiKeyVariables.some(name => process.env[name])) { - const hasConfirmed = await confirm({ - message: chalk.red( - `Could not detect an API key in any of the following environment variables: ${apiKeyVariables.join(', ')}` + - newLineSeparator + - 'You may not be able to run the evals. Do you want to continue generating an environment anyway?', - ), - }); - - if (!hasConfirmed) { - return null; - } - } - const displayName = await input({ message: 'What will be the name of your environment?', required: true, diff --git a/runner/orchestration/generate-eval-task.ts b/runner/orchestration/generate-eval-task.ts index e3519cbb..9229a50c 100644 --- a/runner/orchestration/generate-eval-task.ts +++ b/runner/orchestration/generate-eval-task.ts @@ -1,5 +1,4 @@ import PQueue from 'p-queue'; -import {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; import {Environment} from '../configuration/environment.js'; import { AssessmentConfig, @@ -18,6 +17,7 @@ import {attemptBuildAndTest} from './build-serve-test-loop.js'; import {rateGeneratedCode} from '../ratings/rate-code.js'; import {DEFAULT_AUTORATER_MODEL_NAME} from '../configuration/constants.js'; import assert from 'node:assert'; +import {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; /** * Creates and executes a task to generate or load code for a given prompt, @@ -32,8 +32,8 @@ export async function startEvaluationTask( config: AssessmentConfig, evalID: EvalID, env: Environment, - autoraterLlm: GenkitRunner | null, - cujGenerationLlm: GenkitRunner | null, + autoraterLlm: AiSdkRunner | null, + cujGenerationLlm: AiSdkRunner | null, rootPromptDef: PromptDefinition | MultiStepPromptDefinition, abortSignal: AbortSignal, workerConcurrencyQueue: PQueue, diff --git a/runner/orchestration/generate-summary.ts b/runner/orchestration/generate-summary.ts index 38da6c5c..7501281a 100644 --- a/runner/orchestration/generate-summary.ts +++ b/runner/orchestration/generate-summary.ts @@ -1,4 +1,4 @@ -import {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; +import {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; import {Environment} from '../configuration/environment.js'; import {redX} from '../reporting/format.js'; import {chatWithReportAI} from '../reporting/report-ai-chat.js'; @@ -10,7 +10,7 @@ import {AssessmentResult, CompletionStats, RunSummary} from '../shared-interface * and also some extra metadata about the run. */ export async function prepareSummary( - generateAiSummaryLlm: GenkitRunner | null, + generateAiSummaryLlm: AiSdkRunner | null, abortSignal: AbortSignal, evalRunModel: string, env: Environment, diff --git a/runner/orchestration/generate.ts b/runner/orchestration/generate.ts index 6a2c01ca..a6278a02 100644 --- a/runner/orchestration/generate.ts +++ b/runner/orchestration/generate.ts @@ -94,12 +94,12 @@ export async function generateCodeAndAssess(options: AssessmentConfig): Promise< // Only construct LLMs when necessary. This is helpful in cases where WCS is invoked // as a auto-rater that doesn't have access to other LLMs. - const autoraterLlm = hasLlmBasedRatings ? await getRunnerByName('genkit') : null; + const autoraterLlm = hasLlmBasedRatings ? await getRunnerByName('ai-sdk') : null; const cujGenerationLlm = options.enableUserJourneyTesting - ? (autoraterLlm ?? (await getRunnerByName('genkit'))) + ? (autoraterLlm ?? (await getRunnerByName('ai-sdk'))) : null; const generateAiSummaryLlm = !options.skipAiSummary - ? (autoraterLlm ?? cujGenerationLlm ?? (await getRunnerByName('genkit'))) + ? (autoraterLlm ?? cujGenerationLlm ?? (await getRunnerByName('ai-sdk'))) : null; extraCleanupFns.push(async () => { diff --git a/runner/orchestration/user-journeys.ts b/runner/orchestration/user-journeys.ts index 80c3917b..c8e0dc8b 100644 --- a/runner/orchestration/user-journeys.ts +++ b/runner/orchestration/user-journeys.ts @@ -1,7 +1,7 @@ import {z} from 'zod'; import {LlmResponseFile, Usage} from '../shared-interfaces.js'; -import {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; import {UserFacingError} from '../utils/errors.js'; +import {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; // NOTE: When changing this, also change `browser-agent`'s prompt! const USER_JOURNEY_SCHEMA = z.object({ @@ -25,7 +25,7 @@ export interface UserJourneysResult { } export async function generateUserJourneysForApp( - llm: GenkitRunner, + llm: AiSdkRunner, appName: string, appPrompt: string, appFiles: LlmResponseFile[], diff --git a/runner/ratings/autoraters/code-rater.ts b/runner/ratings/autoraters/code-rater.ts index d5c429c4..72deff06 100644 --- a/runner/ratings/autoraters/code-rater.ts +++ b/runner/ratings/autoraters/code-rater.ts @@ -10,9 +10,9 @@ import { MAX_RATING, MIN_RATING, } from './auto-rate-shared.js'; -import {GenkitRunner} from '../../codegen/genkit/genkit-runner.js'; import defaultCodeRaterPrompt from './code-rating-prompt.js'; import {RatingsResult} from '../rating-types.js'; +import {AiSdkRunner} from '../../codegen/ai-sdk/ai-sdk-runner.js'; /** Framework-specific hints for the rating prompt. */ const FW_HINTS: Record = { @@ -39,7 +39,7 @@ const CACHED_RATING_PROMPTS: Record = {}; * @param ratingsResult Context containing results from previous ratings. */ export async function autoRateCode( - llm: GenkitRunner, + llm: AiSdkRunner, abortSignal: AbortSignal, model: string, environment: Environment, diff --git a/runner/ratings/autoraters/rate-files.ts b/runner/ratings/autoraters/rate-files.ts index e11724e7..f3dc1649 100644 --- a/runner/ratings/autoraters/rate-files.ts +++ b/runner/ratings/autoraters/rate-files.ts @@ -1,15 +1,10 @@ import {greenCheckmark} from '../../reporting/format.js'; -import { - AutoraterRunInfo, - IndividualAssessment, - LlmResponseFile, - SkippedIndividualAssessment, -} from '../../shared-interfaces.js'; +import {AutoraterRunInfo, LlmResponseFile} from '../../shared-interfaces.js'; import {autoRateCode} from './code-rater.js'; import {autoRateAppearance} from './visuals-rater.js'; import {Environment} from '../../configuration/environment.js'; -import {GenkitRunner} from '../../codegen/genkit/genkit-runner.js'; import {RatingsResult} from '../rating-types.js'; +import {AiSdkRunner} from '../../codegen/ai-sdk/ai-sdk-runner.js'; /** * Automatically rates the code inside of a file. @@ -22,7 +17,7 @@ import {RatingsResult} from '../rating-types.js'; * @param ratingsResult Context containing results from previous ratings. */ export async function autoRateFiles( - llm: GenkitRunner, + llm: AiSdkRunner, abortSignal: AbortSignal, model: string, environment: Environment, diff --git a/runner/ratings/autoraters/visuals-rater.ts b/runner/ratings/autoraters/visuals-rater.ts index 140cd113..4dc5a764 100644 --- a/runner/ratings/autoraters/visuals-rater.ts +++ b/runner/ratings/autoraters/visuals-rater.ts @@ -7,11 +7,11 @@ import { MAX_RATING, MIN_RATING, } from './auto-rate-shared.js'; -import {GenkitRunner} from '../../codegen/genkit/genkit-runner.js'; import defaultVisualRaterPrompt from './visual-rating-prompt.js'; import {Environment} from '../../configuration/environment.js'; import {screenshotUrlToPngBuffer} from '../../utils/screenshots.js'; import {Usage} from '../../shared-interfaces.js'; +import {AiSdkRunner} from '../../codegen/ai-sdk/ai-sdk-runner.js'; /** * Automatically rate the appearance of a screenshot using an LLM. @@ -24,7 +24,7 @@ import {Usage} from '../../shared-interfaces.js'; * @param label Label for the rating, used for logging. */ export async function autoRateAppearance( - llm: GenkitRunner, + llm: AiSdkRunner, abortSignal: AbortSignal, model: string, environment: Environment, diff --git a/runner/ratings/rate-code.ts b/runner/ratings/rate-code.ts index 14d772cb..09014326 100644 --- a/runner/ratings/rate-code.ts +++ b/runner/ratings/rate-code.ts @@ -24,11 +24,11 @@ import { } from './rating-types.js'; import {extractEmbeddedCodeFromTypeScript} from './embedded-languages.js'; import {Environment} from '../configuration/environment.js'; -import {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; import {ProgressLogger} from '../progress/progress-logger.js'; import {UserFacingError} from '../utils/errors.js'; import {ServeTestingResult} from '../workers/serve-testing/worker-types.js'; import assert from 'assert'; +import {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; interface FileOrEmbeddedSyntheticFile { /** @@ -45,7 +45,7 @@ interface FileOrEmbeddedSyntheticFile { type CategorizedFiles = Record; export async function rateGeneratedCode( - autoraterLlm: GenkitRunner | null, + autoraterLlm: AiSdkRunner | null, environment: Environment, currentPromptDef: PromptDefinition, fullPromptText: string, @@ -280,7 +280,7 @@ async function runLlmBasedRating( rating: LLMBasedRating, fullPromptText: string, currentPromptDef: PromptDefinition, - llm: GenkitRunner, + llm: AiSdkRunner, outputFiles: LlmResponseFile[], buildResult: BuildResult, serveTestingResult: ServeTestingResult | null, diff --git a/runner/ratings/rating-types.ts b/runner/ratings/rating-types.ts index 71e64260..76190c58 100644 --- a/runner/ratings/rating-types.ts +++ b/runner/ratings/rating-types.ts @@ -9,8 +9,8 @@ import type { Usage, } from '../shared-interfaces.js'; import {Environment} from '../configuration/environment.js'; -import {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; import {ServeTestingResult} from '../workers/serve-testing/worker-types.js'; +import {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; /** Possible types of ratings. */ export enum RatingKind { @@ -181,7 +181,7 @@ export interface LLMBasedRatingContext { environment: Environment; fullPromptText: string; currentPromptDef: PromptDefinition; - llm: GenkitRunner; + llm: AiSdkRunner; model: string; outputFiles: LlmResponseFile[]; buildResult: BuildResult; diff --git a/runner/reporting/report-ai-chat.ts b/runner/reporting/report-ai-chat.ts index 8c102180..83766899 100644 --- a/runner/reporting/report-ai-chat.ts +++ b/runner/reporting/report-ai-chat.ts @@ -1,5 +1,4 @@ import {marked} from 'marked'; -import {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; import { AiChatMessage, AssessmentResult, @@ -12,6 +11,7 @@ import { } from '../shared-interfaces.js'; import {BuildResultStatus} from '../workers/builder/builder-types.js'; import {BUCKET_CONFIG} from '../ratings/stats.js'; +import {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; const defaultAiChatPrompt = `Strictly follow the instructions here. - You are an expert in LLM-based code generation evaluation and quality assessments. @@ -27,7 +27,7 @@ const defaultAiChatPrompt = `Strictly follow the instructions here. * Decide based on the question, whether you need to generate a larger response, or just a chat reply.`; export async function chatWithReportAI( - llm: GenkitRunner, + llm: AiSdkRunner, message: string, abortSignal: AbortSignal, allAssessments: AssessmentResultFromReportServer[] | AssessmentResult[], diff --git a/runner/reporting/report-ai-summary.ts b/runner/reporting/report-ai-summary.ts index b6918fce..7b9c5681 100644 --- a/runner/reporting/report-ai-summary.ts +++ b/runner/reporting/report-ai-summary.ts @@ -1,10 +1,10 @@ -import {GenkitRunner} from '../codegen/genkit/genkit-runner.js'; +import {AiSdkRunner} from '../codegen/ai-sdk/ai-sdk-runner.js'; import {DEFAULT_SUMMARY_MODEL} from '../configuration/constants.js'; import {AssessmentResult, ReportContextFilter, RatingContextFilter} from '../shared-interfaces.js'; import {chatWithReportAI} from './report-ai-chat.js'; export async function summarizeReportWithAI( - llm: GenkitRunner, + llm: AiSdkRunner, abortSignal: AbortSignal, assessments: AssessmentResult[], ) { diff --git a/runner/run-cli.ts b/runner/run-cli.ts index 3b27e790..2a2c6085 100644 --- a/runner/run-cli.ts +++ b/runner/run-cli.ts @@ -133,7 +133,7 @@ async function resolveConfig(options: Options) { const environment = await getEnvironmentByPath( BUILT_IN_ENVIRONMENTS.get(options.environment) || options.environment, - 'genkit', + 'ai-sdk', ); const environmentDir = resolve(options.reportsDirectory ?? LLM_OUTPUT_DIR, environment.id);