diff --git a/.github/workflows/auto-approve-community.yml b/.github/workflows/auto-approve-community.yml
new file mode 100644
index 000000000..7e5cabb4a
--- /dev/null
+++ b/.github/workflows/auto-approve-community.yml
@@ -0,0 +1,193 @@
+name: Auto-approve community PRs
+
+on:
+ pull_request:
+ types: [opened, synchronize, reopened]
+
+permissions:
+ pull-requests: write
+ contents: read
+
+jobs:
+ auto-approve:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Fetch PR branch
+ run: |
+ git fetch origin ${{ github.event.pull_request.head.ref }}:${{ github.event.pull_request.head.ref }}
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: "22"
+
+ - name: Auto-approve based on CODEOWNERS
+ env:
+ PR_AUTHOR: ${{ github.event.pull_request.user.login }}
+ PR_NUMBER: ${{ github.event.pull_request.number }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ BASE_REF: ${{ github.event.pull_request.base.ref }}
+ HEAD_REF: ${{ github.event.pull_request.head.ref }}
+ run: |
+ node << 'EOF'
+ const { execSync } = require('child_process');
+ const fs = require('fs');
+ const path = require('path');
+
+ const prAuthor = process.env.PR_AUTHOR;
+ const prNumber = process.env.PR_NUMBER;
+
+ // Get changed files
+ const changedFiles = execSync(
+ `git diff --name-only origin/${process.env.BASE_REF}...origin/${process.env.HEAD_REF}`,
+ { encoding: 'utf-8' }
+ )
+ .trim()
+ .split('\n')
+ .filter(f => f.trim());
+
+ console.log(`Changed files (${changedFiles.length}):`);
+ changedFiles.forEach(f => console.log(` - ${f}`));
+
+ // Parse CODEOWNERS file
+ const codeownersPath = '.github/CODEOWNERS';
+ const codeownersContent = fs.readFileSync(codeownersPath, 'utf-8');
+ const lines = codeownersContent.split('\n');
+
+ // Map of path patterns to owners (excluding root * rule)
+ const codeownersRules = [];
+
+ for (const line of lines) {
+ const trimmed = line.trim();
+ // Skip empty lines and comments
+ if (!trimmed || trimmed.startsWith('#')) {
+ continue;
+ }
+
+ // Skip root * line
+ if (trimmed.startsWith('* ')) {
+ console.log('Skipping root * rule');
+ continue;
+ }
+
+ // Parse pattern and owners
+ const parts = trimmed.split(/\s+/);
+ if (parts.length < 2) {
+ continue;
+ }
+
+ const pattern = parts[0];
+ const owners = parts.slice(1).map(o => o.replace('@', ''));
+
+ codeownersRules.push({ pattern, owners });
+ }
+
+ console.log('\nCODEOWNERS rules (excluding root):');
+ codeownersRules.forEach(rule => {
+ console.log(` ${rule.pattern} -> ${rule.owners.join(', ')}`);
+ });
+
+ // Function to check if a file matches a CODEOWNERS pattern
+ // CODEOWNERS patterns match:
+ // - Exact file/directory path
+ // - pattern/ matches everything in that directory
+ // - pattern/** matches everything recursively in that directory
+ function matchesPattern(file, pattern) {
+ // Normalize paths (handle both / and \ separators)
+ const normalizePath = (p) => p.replace(/\\/g, '/');
+ const normalizedFile = normalizePath(file);
+ const normalizedPattern = normalizePath(pattern);
+
+ // Exact match
+ if (normalizedFile === normalizedPattern) {
+ return true;
+ }
+
+ // Pattern ends with /**: matches recursively in directory
+ if (normalizedPattern.endsWith('/**')) {
+ const dirPrefix = normalizedPattern.slice(0, -3);
+ return normalizedFile.startsWith(dirPrefix + '/');
+ }
+
+ // Pattern ends with /: matches everything in directory
+ if (normalizedPattern.endsWith('/')) {
+ const dirPrefix = normalizedPattern.slice(0, -1);
+ return normalizedFile.startsWith(dirPrefix + '/');
+ }
+
+ // Pattern is a directory prefix (matches subdirectories)
+ if (normalizedFile.startsWith(normalizedPattern + '/')) {
+ return true;
+ }
+
+ return false;
+ }
+
+ // Check each changed file
+ // CODEOWNERS rules are evaluated top-to-bottom, first match wins
+ const unapprovedFiles = [];
+
+ for (const file of changedFiles) {
+ let matched = false;
+ let owned = false;
+
+ // Find the first matching rule (CODEOWNERS uses first match semantics)
+ for (const rule of codeownersRules) {
+ if (matchesPattern(file, rule.pattern)) {
+ matched = true;
+ // First match wins in CODEOWNERS, so check ownership here
+ owned = rule.owners.includes(prAuthor);
+ break; // Stop at first match
+ }
+ }
+
+ // File must be matched by a non-root CODEOWNERS rule AND author must own it
+ if (!matched || !owned) {
+ unapprovedFiles.push(file);
+ }
+ }
+
+ // Decision
+ if (unapprovedFiles.length === 0) {
+ console.log(`\n✅ All changed files are owned by ${prAuthor} according to CODEOWNERS`);
+
+ // Check if already approved by this workflow
+ try {
+ const reviews = JSON.parse(
+ execSync(`gh pr view ${prNumber} --json reviews`, { encoding: 'utf-8' })
+ );
+
+ // Check if there's already an approval from GitHub Actions bot
+ // (look for approval with the auto-approve message)
+ const hasAutoApproval = reviews.reviews.some(
+ review => review.state === 'APPROVED' &&
+ review.body &&
+ review.body.includes('Auto-approved: PR author has CODEOWNERS access')
+ );
+
+ if (hasAutoApproval) {
+ console.log('PR already auto-approved by this workflow');
+ } else {
+ // Approve the PR using GitHub Actions bot account
+ execSync(
+ `gh pr review ${prNumber} --approve --body "Auto-approved: PR author ${prAuthor} has CODEOWNERS access to all changed files (excluding root rule)"`,
+ { stdio: 'inherit' }
+ );
+ console.log(`PR approved automatically for ${prAuthor}`);
+ }
+ } catch (error) {
+ console.error('Error checking/approving PR:', error.message);
+ // Don't fail the workflow if approval fails (might already be approved, etc.)
+ console.log('Continuing despite approval error...');
+ }
+ } else {
+ console.log(`\n❌ Not auto-approved: Some files are not owned by ${prAuthor}`);
+ console.log('Unauthorized files:');
+ unapprovedFiles.forEach(f => console.log(` - ${f}`));
+ }
+ EOF
diff --git a/.gitignore b/.gitignore
index fbffdac22..8edc74efb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,11 @@ node_modules
.vscode
**/mastra.db*
+
+.pnpm-store
+
+**/.poetry-cache
+**/.env.local
+integrations/claude-agent-sdk/**/.env.local
+**/pnpm-lock.yaml
+pnpm-lock.yaml
diff --git a/CLAUDE.md b/CLAUDE.md
index 6e771634e..765ff030c 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -19,6 +19,7 @@ pnpm dev
# Run linting
pnpm lint
+
# Run type checking
pnpm check-types
diff --git a/README.md b/README.md
index 0f4d72643..b014a781a 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,9 @@ Built for simplicity and flexibility, it enables seamless integration between AI
Join our Discord → Read the Docs → Go to the AG-UI Dojo → Follow us →
-
+
+
+
## 🚀 Getting Started
Create a new AG-UI application in seconds:
@@ -75,7 +77,7 @@ AG-UI is complementary to the other 2 top agentic protocols
- 🧑💻 Human-in-the-loop collaboration
-## 🛠 Supported Frameworks
+## 🛠 Supported Integrations
AG-UI was born from CopilotKit's initial partnership with LangGraph and CrewAI - and brings the incredibly popular agent-user-interactivity infrastructure to the wider agentic ecosystem.
@@ -89,15 +91,15 @@ AG-UI was born from CopilotKit's initial partnership with LangGraph and CrewAI -
| Framework | Status | AG-UI Resources |
| ---------- | ------- | ---------------- |
| [LangGraph](https://www.langchain.com/langgraph) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/langgraph/) 🎮 [Demos](https://dojo.ag-ui.com/langgraph-fastapi/feature/shared_state) |
-| [Google ADK](https://google.github.io/adk-docs/get-started/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/adk) 🎮 [Demos](https://dojo.ag-ui.com/adk-middleware) |
+| [Google ADK](https://google.github.io/adk-docs/get-started/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/adk) 🎮 [Demos](https://dojo.ag-ui.com/adk-middleware/feature/shared_state?openCopilot=true) |
| [CrewAI](https://crewai.com/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/crewai-flows) 🎮 [Demos](https://dojo.ag-ui.com/crewai/feature/shared_state) |
#### 🧩 1st Party
| Framework | Status | AG-UI Resources |
| ---------- | ------- | ---------------- |
-| [Mastra](https://mastra.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/mastra/) 🎮 [Demos](https://dojo.ag-ui.com/mastra) |
+| [Mastra](https://mastra.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/mastra/) 🎮 [Demos](https://dojo.ag-ui.com/mastra/feature/tool_based_generative_ui) |
| [Pydantic AI](https://github.com/pydantic/pydantic-ai) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/pydantic-ai/) 🎮 [Demos](https://dojo.ag-ui.com/pydantic-ai/feature/shared_state) |
-| [Agno](https://github.com/agno-agi/agno) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/agno/) 🎮 [Demos](https://dojo.ag-ui.com/agno) |
+| [Agno](https://github.com/agno-agi/agno) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/agno/) 🎮 [Demos](https://dojo.ag-ui.com/agno/feature/tool_based_generative_ui) |
| [LlamaIndex](https://github.com/run-llama/llama_index) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/llamaindex/) 🎮 [Demos](https://dojo.ag-ui.com/llamaindex/feature/shared_state) |
| [AG2](https://ag2.ai/) | ✅ Supported | ➡️ [Docs](https://docs.copilotkit.ai/ag2/) |
| [AWS Bedrock Agents](https://aws.amazon.com/bedrock/agents/) | 🛠️ In Progress | – |
@@ -112,7 +114,7 @@ AG-UI was born from CopilotKit's initial partnership with LangGraph and CrewAI -
| [Cloudflare Agents](https://developers.cloudflare.com/agents/) | 🛠️ In Progress | – |
-## Protocols
+## Agent Interaction Protocols
| Protocols | Status | AG-UI Resources | Integrations |
| ---------- | ------- | ---------------- | ------------- |
diff --git a/apps/dojo/e2e/pnpm-lock.yaml b/apps/dojo/e2e/pnpm-lock.yaml
deleted file mode 100644
index 25fa39ba2..000000000
--- a/apps/dojo/e2e/pnpm-lock.yaml
+++ /dev/null
@@ -1,1783 +0,0 @@
-lockfileVersion: '9.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-importers:
-
- .:
- dependencies:
- '@aws-sdk/client-s3':
- specifier: ^3.600.0
- version: 3.840.0
- json2md:
- specifier: ^2.0.1
- version: 2.0.3
- devDependencies:
- '@playwright/test':
- specifier: ^1.43.1
- version: 1.52.0
- '@slack/types':
- specifier: ^2.14.0
- version: 2.14.0
- '@types/node':
- specifier: ^22.15.28
- version: 22.15.28
- playwright-slack-report:
- specifier: ^1.1.93
- version: 1.1.93(@types/node@22.15.28)(typescript@5.8.3)
-
-packages:
-
- '@aws-crypto/crc32@5.2.0':
- resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
- engines: {node: '>=16.0.0'}
-
- '@aws-crypto/crc32c@5.2.0':
- resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==}
-
- '@aws-crypto/sha1-browser@5.2.0':
- resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==}
-
- '@aws-crypto/sha256-browser@5.2.0':
- resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
-
- '@aws-crypto/sha256-js@5.2.0':
- resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
- engines: {node: '>=16.0.0'}
-
- '@aws-crypto/supports-web-crypto@5.2.0':
- resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
-
- '@aws-crypto/util@5.2.0':
- resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
-
- '@aws-sdk/client-s3@3.840.0':
- resolution: {integrity: sha512-dRuo03EqGBbl9+PTogpwY9bYmGWIjn8nB82HN5Qj20otgjUvhLOdEkkip9mroYsrvqNoKbMedWdCudIcB/YY1w==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/client-sso@3.840.0':
- resolution: {integrity: sha512-3Zp+FWN2hhmKdpS0Ragi5V2ZPsZNScE3jlbgoJjzjI/roHZqO+e3/+XFN4TlM0DsPKYJNp+1TAjmhxN6rOnfYA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/core@3.840.0':
- resolution: {integrity: sha512-x3Zgb39tF1h2XpU+yA4OAAQlW6LVEfXNlSedSYJ7HGKXqA/E9h3rWQVpYfhXXVVsLdYXdNw5KBUkoAoruoZSZA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-env@3.840.0':
- resolution: {integrity: sha512-EzF6VcJK7XvQ/G15AVEfJzN2mNXU8fcVpXo4bRyr1S6t2q5zx6UPH/XjDbn18xyUmOq01t+r8gG+TmHEVo18fA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-http@3.840.0':
- resolution: {integrity: sha512-wbnUiPGLVea6mXbUh04fu+VJmGkQvmToPeTYdHE8eRZq3NRDi3t3WltT+jArLBKD/4NppRpMjf2ju4coMCz91g==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-ini@3.840.0':
- resolution: {integrity: sha512-7F290BsWydShHb+7InXd+IjJc3mlEIm9I0R57F/Pjl1xZB69MdkhVGCnuETWoBt4g53ktJd6NEjzm/iAhFXFmw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-node@3.840.0':
- resolution: {integrity: sha512-KufP8JnxA31wxklLm63evUPSFApGcH8X86z3mv9SRbpCm5ycgWIGVCTXpTOdgq6rPZrwT9pftzv2/b4mV/9clg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-process@3.840.0':
- resolution: {integrity: sha512-HkDQWHy8tCI4A0Ps2NVtuVYMv9cB4y/IuD/TdOsqeRIAT12h8jDb98BwQPNLAImAOwOWzZJ8Cu0xtSpX7CQhMw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-sso@3.840.0':
- resolution: {integrity: sha512-2qgdtdd6R0Z1y0KL8gzzwFUGmhBHSUx4zy85L2XV1CXhpRNwV71SVWJqLDVV5RVWVf9mg50Pm3AWrUC0xb0pcA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-web-identity@3.840.0':
- resolution: {integrity: sha512-dpEeVXG8uNZSmVXReE4WP0lwoioX2gstk4RnUgrdUE3YaPq8A+hJiVAyc3h+cjDeIqfbsQbZm9qFetKC2LF9dQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-bucket-endpoint@3.840.0':
- resolution: {integrity: sha512-+gkQNtPwcSMmlwBHFd4saVVS11In6ID1HczNzpM3MXKXRBfSlbZJbCt6wN//AZ8HMklZEik4tcEOG0qa9UY8SQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-expect-continue@3.840.0':
- resolution: {integrity: sha512-iJg2r6FKsKKvdiU4oCOuCf7Ro/YE0Q2BT/QyEZN3/Rt8Nr4SAZiQOlcBXOCpGvuIKOEAhvDOUnW3aDHL01PdVw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-flexible-checksums@3.840.0':
- resolution: {integrity: sha512-Kg/o2G6o72sdoRH0J+avdcf668gM1bp6O4VeEXpXwUj/urQnV5qiB2q1EYT110INHUKWOLXPND3sQAqh6sTqHw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-host-header@3.840.0':
- resolution: {integrity: sha512-ub+hXJAbAje94+Ya6c6eL7sYujoE8D4Bumu1NUI8TXjUhVVn0HzVWQjpRLshdLsUp1AW7XyeJaxyajRaJQ8+Xg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-location-constraint@3.840.0':
- resolution: {integrity: sha512-KVLD0u0YMF3aQkVF8bdyHAGWSUY6N1Du89htTLgqCcIhSxxAJ9qifrosVZ9jkAzqRW99hcufyt2LylcVU2yoKQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-logger@3.840.0':
- resolution: {integrity: sha512-lSV8FvjpdllpGaRspywss4CtXV8M7NNNH+2/j86vMH+YCOZ6fu2T/TyFd/tHwZ92vDfHctWkRbQxg0bagqwovA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-recursion-detection@3.840.0':
- resolution: {integrity: sha512-Gu7lGDyfddyhIkj1Z1JtrY5NHb5+x/CRiB87GjaSrKxkDaydtX2CU977JIABtt69l9wLbcGDIQ+W0uJ5xPof7g==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-sdk-s3@3.840.0':
- resolution: {integrity: sha512-rOUji7CayWN3O09zvvgLzDVQe0HiJdZkxoTS6vzOS3WbbdT7joGdVtAJHtn+x776QT3hHzbKU5gnfhel0o6gQA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-ssec@3.840.0':
- resolution: {integrity: sha512-CBZP9t1QbjDFGOrtnUEHL1oAvmnCUUm7p0aPNbIdSzNtH42TNKjPRN3TuEIJDGjkrqpL3MXyDSmNayDcw/XW7Q==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-user-agent@3.840.0':
- resolution: {integrity: sha512-hiiMf7BP5ZkAFAvWRcK67Mw/g55ar7OCrvrynC92hunx/xhMkrgSLM0EXIZ1oTn3uql9kH/qqGF0nqsK6K555A==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/nested-clients@3.840.0':
- resolution: {integrity: sha512-LXYYo9+n4hRqnRSIMXLBb+BLz+cEmjMtTudwK1BF6Bn2RfdDv29KuyeDRrPCS3TwKl7ZKmXUmE9n5UuHAPfBpA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/region-config-resolver@3.840.0':
- resolution: {integrity: sha512-Qjnxd/yDv9KpIMWr90ZDPtRj0v75AqGC92Lm9+oHXZ8p1MjG5JE2CW0HL8JRgK9iKzgKBL7pPQRXI8FkvEVfrA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/signature-v4-multi-region@3.840.0':
- resolution: {integrity: sha512-8AoVgHrkSfhvGPtwx23hIUO4MmMnux2pjnso1lrLZGqxfElM6jm2w4jTNLlNXk8uKHGyX89HaAIuT0lL6dJj9g==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/token-providers@3.840.0':
- resolution: {integrity: sha512-6BuTOLTXvmgwjK7ve7aTg9JaWFdM5UoMolLVPMyh3wTv9Ufalh8oklxYHUBIxsKkBGO2WiHXytveuxH6tAgTYg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/types@3.840.0':
- resolution: {integrity: sha512-xliuHaUFZxEx1NSXeLLZ9Dyu6+EJVQKEoD+yM+zqUo3YDZ7medKJWY6fIOKiPX/N7XbLdBYwajb15Q7IL8KkeA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-arn-parser@3.804.0':
- resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-endpoints@3.840.0':
- resolution: {integrity: sha512-eqE9ROdg/Kk0rj3poutyRCFauPDXIf/WSvCqFiRDDVi6QOnCv/M0g2XW8/jSvkJlOyaXkNCptapIp6BeeFFGYw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-locate-window@3.804.0':
- resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-user-agent-browser@3.840.0':
- resolution: {integrity: sha512-JdyZM3EhhL4PqwFpttZu1afDpPJCCc3eyZOLi+srpX11LsGj6sThf47TYQN75HT1CarZ7cCdQHGzP2uy3/xHfQ==}
-
- '@aws-sdk/util-user-agent-node@3.840.0':
- resolution: {integrity: sha512-Fy5JUEDQU1tPm2Yw/YqRYYc27W5+QD/J4mYvQvdWjUGZLB5q3eLFMGD35Uc28ZFoGMufPr4OCxK/bRfWROBRHQ==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- aws-crt: '>=1.0.0'
- peerDependenciesMeta:
- aws-crt:
- optional: true
-
- '@aws-sdk/xml-builder@3.821.0':
- resolution: {integrity: sha512-DIIotRnefVL6DiaHtO6/21DhJ4JZnnIwdNbpwiAhdt/AVbttcE4yw925gsjur0OGv5BTYXQXU3YnANBYnZjuQA==}
- engines: {node: '>=18.0.0'}
-
- '@cspotcode/source-map-support@0.8.1':
- resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
- engines: {node: '>=12'}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.0':
- resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
-
- '@jridgewell/trace-mapping@0.3.9':
- resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
-
- '@playwright/test@1.52.0':
- resolution: {integrity: sha512-uh6W7sb55hl7D6vsAeA+V2p5JnlAqzhqFyF0VcJkKZXkgnFcVG9PziERRHQfPLfNGx1C292a4JqbWzhR8L4R1g==}
- engines: {node: '>=18'}
- hasBin: true
-
- '@slack/logger@4.0.0':
- resolution: {integrity: sha512-Wz7QYfPAlG/DR+DfABddUZeNgoeY7d1J39OCR2jR+v7VBsB8ezulDK5szTnDDPDwLH5IWhLvXIHlCFZV7MSKgA==}
- engines: {node: '>= 18', npm: '>= 8.6.0'}
-
- '@slack/types@2.14.0':
- resolution: {integrity: sha512-n0EGm7ENQRxlXbgKSrQZL69grzg1gHLAVd+GlRVQJ1NSORo0FrApR7wql/gaKdu2n4TO83Sq/AmeUOqD60aXUA==}
- engines: {node: '>= 12.13.0', npm: '>= 6.12.0'}
-
- '@slack/web-api@7.9.2':
- resolution: {integrity: sha512-3HoDwV6+ZSTfV+DsbnUd82GlZY0a+DPXuHQHpxWTqgxjM3JWZyGiwR+ov3d2M16pWiMzA+l58UJ5lm1znGq0yA==}
- engines: {node: '>= 18', npm: '>= 8.6.0'}
-
- '@slack/webhook@7.0.5':
- resolution: {integrity: sha512-PmbZx89+SmH4zt78FUwe4If8hWX2MAIRmGXjmlF0A8PwyJb/H7CWaQYV6DDlZn1+7Zs6CEytKH0ejEE/idVSDw==}
- engines: {node: '>= 18', npm: '>= 8.6.0'}
-
- '@smithy/abort-controller@4.0.4':
- resolution: {integrity: sha512-gJnEjZMvigPDQWHrW3oPrFhQtkrgqBkyjj3pCIdF3A5M6vsZODG93KNlfJprv6bp4245bdT32fsHK4kkH3KYDA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/chunked-blob-reader-native@4.0.0':
- resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/chunked-blob-reader@5.0.0':
- resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/config-resolver@4.1.4':
- resolution: {integrity: sha512-prmU+rDddxHOH0oNcwemL+SwnzcG65sBF2yXRO7aeXIn/xTlq2pX7JLVbkBnVLowHLg4/OL4+jBmv9hVrVGS+w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/core@3.6.0':
- resolution: {integrity: sha512-Pgvfb+TQ4wUNLyHzvgCP4aYZMh16y7GcfF59oirRHcgGgkH1e/s9C0nv/v3WP+Quymyr5je71HeFQCwh+44XLg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/credential-provider-imds@4.0.6':
- resolution: {integrity: sha512-hKMWcANhUiNbCJouYkZ9V3+/Qf9pteR1dnwgdyzR09R4ODEYx8BbUysHwRSyex4rZ9zapddZhLFTnT4ZijR4pw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-codec@4.0.4':
- resolution: {integrity: sha512-7XoWfZqWb/QoR/rAU4VSi0mWnO2vu9/ltS6JZ5ZSZv0eovLVfDfu0/AX4ub33RsJTOth3TiFWSHS5YdztvFnig==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-browser@4.0.4':
- resolution: {integrity: sha512-3fb/9SYaYqbpy/z/H3yIi0bYKyAa89y6xPmIqwr2vQiUT2St+avRt8UKwsWt9fEdEasc5d/V+QjrviRaX1JRFA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-config-resolver@4.1.2':
- resolution: {integrity: sha512-JGtambizrWP50xHgbzZI04IWU7LdI0nh/wGbqH3sJesYToMi2j/DcoElqyOcqEIG/D4tNyxgRuaqBXWE3zOFhQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-node@4.0.4':
- resolution: {integrity: sha512-RD6UwNZ5zISpOWPuhVgRz60GkSIp0dy1fuZmj4RYmqLVRtejFqQ16WmfYDdoSoAjlp1LX+FnZo+/hkdmyyGZ1w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-universal@4.0.4':
- resolution: {integrity: sha512-UeJpOmLGhq1SLox79QWw/0n2PFX+oPRE1ZyRMxPIaFEfCqWaqpB7BU9C8kpPOGEhLF7AwEqfFbtwNxGy4ReENA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/fetch-http-handler@5.0.4':
- resolution: {integrity: sha512-AMtBR5pHppYMVD7z7G+OlHHAcgAN7v0kVKEpHuTO4Gb199Gowh0taYi9oDStFeUhetkeP55JLSVlTW1n9rFtUw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/hash-blob-browser@4.0.4':
- resolution: {integrity: sha512-WszRiACJiQV3QG6XMV44i5YWlkrlsM5Yxgz4jvsksuu7LDXA6wAtypfPajtNTadzpJy3KyJPoWehYpmZGKUFIQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/hash-node@4.0.4':
- resolution: {integrity: sha512-qnbTPUhCVnCgBp4z4BUJUhOEkVwxiEi1cyFM+Zj6o+aY8OFGxUQleKWq8ltgp3dujuhXojIvJWdoqpm6dVO3lQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/hash-stream-node@4.0.4':
- resolution: {integrity: sha512-wHo0d8GXyVmpmMh/qOR0R7Y46/G1y6OR8U+bSTB4ppEzRxd1xVAQ9xOE9hOc0bSjhz0ujCPAbfNLkLrpa6cevg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/invalid-dependency@4.0.4':
- resolution: {integrity: sha512-bNYMi7WKTJHu0gn26wg8OscncTt1t2b8KcsZxvOv56XA6cyXtOAAAaNP7+m45xfppXfOatXF3Sb1MNsLUgVLTw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/is-array-buffer@2.2.0':
- resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
- engines: {node: '>=14.0.0'}
-
- '@smithy/is-array-buffer@4.0.0':
- resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/md5-js@4.0.4':
- resolution: {integrity: sha512-uGLBVqcOwrLvGh/v/jw423yWHq/ofUGK1W31M2TNspLQbUV1Va0F5kTxtirkoHawODAZcjXTSGi7JwbnPcDPJg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-content-length@4.0.4':
- resolution: {integrity: sha512-F7gDyfI2BB1Kc+4M6rpuOLne5LOcEknH1n6UQB69qv+HucXBR1rkzXBnQTB2q46sFy1PM/zuSJOB532yc8bg3w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-endpoint@4.1.13':
- resolution: {integrity: sha512-xg3EHV/Q5ZdAO5b0UiIMj3RIOCobuS40pBBODguUDVdko6YK6QIzCVRrHTogVuEKglBWqWenRnZ71iZnLL3ZAQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-retry@4.1.14':
- resolution: {integrity: sha512-eoXaLlDGpKvdmvt+YBfRXE7HmIEtFF+DJCbTPwuLunP0YUnrydl+C4tS+vEM0+nyxXrX3PSUFqC+lP1+EHB1Tw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-serde@4.0.8':
- resolution: {integrity: sha512-iSSl7HJoJaGyMIoNn2B7czghOVwJ9nD7TMvLhMWeSB5vt0TnEYyRRqPJu/TqW76WScaNvYYB8nRoiBHR9S1Ddw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-stack@4.0.4':
- resolution: {integrity: sha512-kagK5ggDrBUCCzI93ft6DjteNSfY8Ulr83UtySog/h09lTIOAJ/xUSObutanlPT0nhoHAkpmW9V5K8oPyLh+QA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/node-config-provider@4.1.3':
- resolution: {integrity: sha512-HGHQr2s59qaU1lrVH6MbLlmOBxadtzTsoO4c+bF5asdgVik3I8o7JIOzoeqWc5MjVa+vD36/LWE0iXKpNqooRw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/node-http-handler@4.0.6':
- resolution: {integrity: sha512-NqbmSz7AW2rvw4kXhKGrYTiJVDHnMsFnX4i+/FzcZAfbOBauPYs2ekuECkSbtqaxETLLTu9Rl/ex6+I2BKErPA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/property-provider@4.0.4':
- resolution: {integrity: sha512-qHJ2sSgu4FqF4U/5UUp4DhXNmdTrgmoAai6oQiM+c5RZ/sbDwJ12qxB1M6FnP+Tn/ggkPZf9ccn4jqKSINaquw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/protocol-http@5.1.2':
- resolution: {integrity: sha512-rOG5cNLBXovxIrICSBm95dLqzfvxjEmuZx4KK3hWwPFHGdW3lxY0fZNXfv2zebfRO7sJZ5pKJYHScsqopeIWtQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/querystring-builder@4.0.4':
- resolution: {integrity: sha512-SwREZcDnEYoh9tLNgMbpop+UTGq44Hl9tdj3rf+yeLcfH7+J8OXEBaMc2kDxtyRHu8BhSg9ADEx0gFHvpJgU8w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/querystring-parser@4.0.4':
- resolution: {integrity: sha512-6yZf53i/qB8gRHH/l2ZwUG5xgkPgQF15/KxH0DdXMDHjesA9MeZje/853ifkSY0x4m5S+dfDZ+c4x439PF0M2w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/service-error-classification@4.0.6':
- resolution: {integrity: sha512-RRoTDL//7xi4tn5FrN2NzH17jbgmnKidUqd4KvquT0954/i6CXXkh1884jBiunq24g9cGtPBEXlU40W6EpNOOg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/shared-ini-file-loader@4.0.4':
- resolution: {integrity: sha512-63X0260LoFBjrHifPDs+nM9tV0VMkOTl4JRMYNuKh/f5PauSjowTfvF3LogfkWdcPoxsA9UjqEOgjeYIbhb7Nw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/signature-v4@5.1.2':
- resolution: {integrity: sha512-d3+U/VpX7a60seHziWnVZOHuEgJlclufjkS6zhXvxcJgkJq4UWdH5eOBLzHRMx6gXjsdT9h6lfpmLzbrdupHgQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/smithy-client@4.4.5':
- resolution: {integrity: sha512-+lynZjGuUFJaMdDYSTMnP/uPBBXXukVfrJlP+1U/Dp5SFTEI++w6NMga8DjOENxecOF71V9Z2DllaVDYRnGlkg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/types@4.3.1':
- resolution: {integrity: sha512-UqKOQBL2x6+HWl3P+3QqFD4ncKq0I8Nuz9QItGv5WuKuMHuuwlhvqcZCoXGfc+P1QmfJE7VieykoYYmrOoFJxA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/url-parser@4.0.4':
- resolution: {integrity: sha512-eMkc144MuN7B0TDA4U2fKs+BqczVbk3W+qIvcoCY6D1JY3hnAdCuhCZODC+GAeaxj0p6Jroz4+XMUn3PCxQQeQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-base64@4.0.0':
- resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-body-length-browser@4.0.0':
- resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-body-length-node@4.0.0':
- resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-buffer-from@2.2.0':
- resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
- engines: {node: '>=14.0.0'}
-
- '@smithy/util-buffer-from@4.0.0':
- resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-config-provider@4.0.0':
- resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-defaults-mode-browser@4.0.21':
- resolution: {integrity: sha512-wM0jhTytgXu3wzJoIqpbBAG5U6BwiubZ6QKzSbP7/VbmF1v96xlAbX2Am/mz0Zep0NLvLh84JT0tuZnk3wmYQA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-defaults-mode-node@4.0.21':
- resolution: {integrity: sha512-/F34zkoU0GzpUgLJydHY8Rxu9lBn8xQC/s/0M0U9lLBkYbA1htaAFjWYJzpzsbXPuri5D1H8gjp2jBum05qBrA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-endpoints@3.0.6':
- resolution: {integrity: sha512-YARl3tFL3WgPuLzljRUnrS2ngLiUtkwhQtj8PAL13XZSyUiNLQxwG3fBBq3QXFqGFUXepIN73pINp3y8c2nBmA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-hex-encoding@4.0.0':
- resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-middleware@4.0.4':
- resolution: {integrity: sha512-9MLKmkBmf4PRb0ONJikCbCwORACcil6gUWojwARCClT7RmLzF04hUR4WdRprIXal7XVyrddadYNfp2eF3nrvtQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-retry@4.0.6':
- resolution: {integrity: sha512-+YekoF2CaSMv6zKrA6iI/N9yva3Gzn4L6n35Luydweu5MMPYpiGZlWqehPHDHyNbnyaYlz/WJyYAZnC+loBDZg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-stream@4.2.2':
- resolution: {integrity: sha512-aI+GLi7MJoVxg24/3J1ipwLoYzgkB4kUfogZfnslcYlynj3xsQ0e7vk4TnTro9hhsS5PvX1mwmkRqqHQjwcU7w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-uri-escape@4.0.0':
- resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-utf8@2.3.0':
- resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
- engines: {node: '>=14.0.0'}
-
- '@smithy/util-utf8@4.0.0':
- resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-waiter@4.0.6':
- resolution: {integrity: sha512-slcr1wdRbX7NFphXZOxtxRNA7hXAAtJAXJDE/wdoMAos27SIquVCKiSqfB6/28YzQ8FCsB5NKkhdM5gMADbqxg==}
- engines: {node: '>=18.0.0'}
-
- '@tsconfig/node10@1.0.11':
- resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
-
- '@tsconfig/node12@1.0.11':
- resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
-
- '@tsconfig/node14@1.0.3':
- resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
-
- '@tsconfig/node16@1.0.4':
- resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
-
- '@types/node@22.15.28':
- resolution: {integrity: sha512-I0okKVDmyKR281I0UIFV7EWAWRnR0gkuSKob5wVcByyyhr7Px/slhkQapcYX4u00ekzNWaS1gznKZnuzxwo4pw==}
-
- '@types/retry@0.12.0':
- resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
-
- '@types/uuid@9.0.8':
- resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
-
- acorn-walk@8.3.4:
- resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
- engines: {node: '>=0.4.0'}
-
- acorn@8.14.1:
- resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- agent-base@7.1.3:
- resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
- engines: {node: '>= 14'}
-
- arg@4.1.3:
- resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
-
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
- axios@1.9.0:
- resolution: {integrity: sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==}
-
- bowser@2.11.0:
- resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==}
-
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
-
- commander@13.1.0:
- resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
- engines: {node: '>=18'}
-
- create-require@1.1.1:
- resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
-
- debug@4.4.1:
- resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
- diff@4.0.2:
- resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
- engines: {node: '>=0.3.1'}
-
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
- es-define-property@1.0.1:
- resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
- engines: {node: '>= 0.4'}
-
- es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- es-set-tostringtag@2.1.0:
- resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
- engines: {node: '>= 0.4'}
-
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
-
- eventemitter3@5.0.1:
- resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
-
- fast-xml-parser@4.4.1:
- resolution: {integrity: sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==}
- hasBin: true
-
- follow-redirects@1.15.9:
- resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
-
- form-data@4.0.2:
- resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
- engines: {node: '>= 6'}
-
- fsevents@2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- has-tostringtag@1.0.2:
- resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
- engines: {node: '>= 0.4'}
-
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
- https-proxy-agent@7.0.6:
- resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
- engines: {node: '>= 14'}
-
- indento@1.1.14:
- resolution: {integrity: sha512-K4cK97v4M/ucCAbe3LUpg994folYL0WnEiCFxHXAIowKLbBb/Ahiazkz3Ao5gRar4i9pDr3imcpq4suOu0FbNw==}
-
- is-electron@2.2.2:
- resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==}
-
- is-stream@2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
-
- json2md@2.0.3:
- resolution: {integrity: sha512-ZPzh6Djvqz8grJMxKllfCHo0p+p7BsbZ1J95KcCJgvvfdoy7myuKrrkUp80Kpy+wGauykC0dYljLqLY0kENaOw==}
-
- make-error@1.3.6:
- resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
-
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- p-finally@1.0.0:
- resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
- engines: {node: '>=4'}
-
- p-queue@6.6.2:
- resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
- engines: {node: '>=8'}
-
- p-retry@4.6.2:
- resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
- engines: {node: '>=8'}
-
- p-timeout@3.2.0:
- resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
- engines: {node: '>=8'}
-
- playwright-core@1.52.0:
- resolution: {integrity: sha512-l2osTgLXSMeuLZOML9qYODUQoPPnUsKsb5/P6LJ2e6uPKXUdPK5WYhN4z03G+YNbWmGDY4YENauNu4ZKczreHg==}
- engines: {node: '>=18'}
- hasBin: true
-
- playwright-slack-report@1.1.93:
- resolution: {integrity: sha512-KuCHFyFx7rWOJ5mnpISqtWuB6S8NOOtkkcyUEwxkKTvPVjp5QndB+6fX0w8fTggqZ79x/bM0XO/QU5POOtIGZg==}
- hasBin: true
-
- playwright@1.52.0:
- resolution: {integrity: sha512-JAwMNMBlxJ2oD1kce4KPtMkDeKGHQstdpFPcPH3maElAXon/QZeTvtsfXmTMRyO9TslfoYOXkSsvao2nE1ilTw==}
- engines: {node: '>=18'}
- hasBin: true
-
- proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
-
- retry@0.13.1:
- resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
- engines: {node: '>= 4'}
-
- strnum@1.1.2:
- resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==}
-
- ts-node@10.9.2:
- resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
- hasBin: true
- peerDependencies:
- '@swc/core': '>=1.2.50'
- '@swc/wasm': '>=1.2.50'
- '@types/node': '*'
- typescript: '>=2.7'
- peerDependenciesMeta:
- '@swc/core':
- optional: true
- '@swc/wasm':
- optional: true
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- typescript@5.8.3:
- resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- undici-types@6.21.0:
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
-
- uuid@9.0.1:
- resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
- hasBin: true
-
- v8-compile-cache-lib@3.0.1:
- resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
-
- yn@3.1.1:
- resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
- engines: {node: '>=6'}
-
- zod@3.25.42:
- resolution: {integrity: sha512-PcALTLskaucbeHc41tU/xfjfhcz8z0GdhhDcSgrCTmSazUuqnYqiXO63M0QUBVwpBlsLsNVn5qHSC5Dw3KZvaQ==}
-
-snapshots:
-
- '@aws-crypto/crc32@5.2.0':
- dependencies:
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.840.0
- tslib: 2.8.1
-
- '@aws-crypto/crc32c@5.2.0':
- dependencies:
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.840.0
- tslib: 2.8.1
-
- '@aws-crypto/sha1-browser@5.2.0':
- dependencies:
- '@aws-crypto/supports-web-crypto': 5.2.0
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-locate-window': 3.804.0
- '@smithy/util-utf8': 2.3.0
- tslib: 2.8.1
-
- '@aws-crypto/sha256-browser@5.2.0':
- dependencies:
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-crypto/supports-web-crypto': 5.2.0
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-locate-window': 3.804.0
- '@smithy/util-utf8': 2.3.0
- tslib: 2.8.1
-
- '@aws-crypto/sha256-js@5.2.0':
- dependencies:
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.840.0
- tslib: 2.8.1
-
- '@aws-crypto/supports-web-crypto@5.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@aws-crypto/util@5.2.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/util-utf8': 2.3.0
- tslib: 2.8.1
-
- '@aws-sdk/client-s3@3.840.0':
- dependencies:
- '@aws-crypto/sha1-browser': 5.2.0
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/credential-provider-node': 3.840.0
- '@aws-sdk/middleware-bucket-endpoint': 3.840.0
- '@aws-sdk/middleware-expect-continue': 3.840.0
- '@aws-sdk/middleware-flexible-checksums': 3.840.0
- '@aws-sdk/middleware-host-header': 3.840.0
- '@aws-sdk/middleware-location-constraint': 3.840.0
- '@aws-sdk/middleware-logger': 3.840.0
- '@aws-sdk/middleware-recursion-detection': 3.840.0
- '@aws-sdk/middleware-sdk-s3': 3.840.0
- '@aws-sdk/middleware-ssec': 3.840.0
- '@aws-sdk/middleware-user-agent': 3.840.0
- '@aws-sdk/region-config-resolver': 3.840.0
- '@aws-sdk/signature-v4-multi-region': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-endpoints': 3.840.0
- '@aws-sdk/util-user-agent-browser': 3.840.0
- '@aws-sdk/util-user-agent-node': 3.840.0
- '@aws-sdk/xml-builder': 3.821.0
- '@smithy/config-resolver': 4.1.4
- '@smithy/core': 3.6.0
- '@smithy/eventstream-serde-browser': 4.0.4
- '@smithy/eventstream-serde-config-resolver': 4.1.2
- '@smithy/eventstream-serde-node': 4.0.4
- '@smithy/fetch-http-handler': 5.0.4
- '@smithy/hash-blob-browser': 4.0.4
- '@smithy/hash-node': 4.0.4
- '@smithy/hash-stream-node': 4.0.4
- '@smithy/invalid-dependency': 4.0.4
- '@smithy/md5-js': 4.0.4
- '@smithy/middleware-content-length': 4.0.4
- '@smithy/middleware-endpoint': 4.1.13
- '@smithy/middleware-retry': 4.1.14
- '@smithy/middleware-serde': 4.0.8
- '@smithy/middleware-stack': 4.0.4
- '@smithy/node-config-provider': 4.1.3
- '@smithy/node-http-handler': 4.0.6
- '@smithy/protocol-http': 5.1.2
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- '@smithy/url-parser': 4.0.4
- '@smithy/util-base64': 4.0.0
- '@smithy/util-body-length-browser': 4.0.0
- '@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.21
- '@smithy/util-defaults-mode-node': 4.0.21
- '@smithy/util-endpoints': 3.0.6
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-retry': 4.0.6
- '@smithy/util-stream': 4.2.2
- '@smithy/util-utf8': 4.0.0
- '@smithy/util-waiter': 4.0.6
- '@types/uuid': 9.0.8
- tslib: 2.8.1
- uuid: 9.0.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/client-sso@3.840.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/middleware-host-header': 3.840.0
- '@aws-sdk/middleware-logger': 3.840.0
- '@aws-sdk/middleware-recursion-detection': 3.840.0
- '@aws-sdk/middleware-user-agent': 3.840.0
- '@aws-sdk/region-config-resolver': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-endpoints': 3.840.0
- '@aws-sdk/util-user-agent-browser': 3.840.0
- '@aws-sdk/util-user-agent-node': 3.840.0
- '@smithy/config-resolver': 4.1.4
- '@smithy/core': 3.6.0
- '@smithy/fetch-http-handler': 5.0.4
- '@smithy/hash-node': 4.0.4
- '@smithy/invalid-dependency': 4.0.4
- '@smithy/middleware-content-length': 4.0.4
- '@smithy/middleware-endpoint': 4.1.13
- '@smithy/middleware-retry': 4.1.14
- '@smithy/middleware-serde': 4.0.8
- '@smithy/middleware-stack': 4.0.4
- '@smithy/node-config-provider': 4.1.3
- '@smithy/node-http-handler': 4.0.6
- '@smithy/protocol-http': 5.1.2
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- '@smithy/url-parser': 4.0.4
- '@smithy/util-base64': 4.0.0
- '@smithy/util-body-length-browser': 4.0.0
- '@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.21
- '@smithy/util-defaults-mode-node': 4.0.21
- '@smithy/util-endpoints': 3.0.6
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-retry': 4.0.6
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/core@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/xml-builder': 3.821.0
- '@smithy/core': 3.6.0
- '@smithy/node-config-provider': 4.1.3
- '@smithy/property-provider': 4.0.4
- '@smithy/protocol-http': 5.1.2
- '@smithy/signature-v4': 5.1.2
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- '@smithy/util-base64': 4.0.0
- '@smithy/util-body-length-browser': 4.0.0
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-utf8': 4.0.0
- fast-xml-parser: 4.4.1
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-env@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/property-provider': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-http@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/fetch-http-handler': 5.0.4
- '@smithy/node-http-handler': 4.0.6
- '@smithy/property-provider': 4.0.4
- '@smithy/protocol-http': 5.1.2
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- '@smithy/util-stream': 4.2.2
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-ini@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/credential-provider-env': 3.840.0
- '@aws-sdk/credential-provider-http': 3.840.0
- '@aws-sdk/credential-provider-process': 3.840.0
- '@aws-sdk/credential-provider-sso': 3.840.0
- '@aws-sdk/credential-provider-web-identity': 3.840.0
- '@aws-sdk/nested-clients': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/credential-provider-imds': 4.0.6
- '@smithy/property-provider': 4.0.4
- '@smithy/shared-ini-file-loader': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-node@3.840.0':
- dependencies:
- '@aws-sdk/credential-provider-env': 3.840.0
- '@aws-sdk/credential-provider-http': 3.840.0
- '@aws-sdk/credential-provider-ini': 3.840.0
- '@aws-sdk/credential-provider-process': 3.840.0
- '@aws-sdk/credential-provider-sso': 3.840.0
- '@aws-sdk/credential-provider-web-identity': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/credential-provider-imds': 4.0.6
- '@smithy/property-provider': 4.0.4
- '@smithy/shared-ini-file-loader': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-process@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/property-provider': 4.0.4
- '@smithy/shared-ini-file-loader': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-sso@3.840.0':
- dependencies:
- '@aws-sdk/client-sso': 3.840.0
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/token-providers': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/property-provider': 4.0.4
- '@smithy/shared-ini-file-loader': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-web-identity@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/nested-clients': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/property-provider': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/middleware-bucket-endpoint@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-arn-parser': 3.804.0
- '@smithy/node-config-provider': 4.1.3
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- '@smithy/util-config-provider': 4.0.0
- tslib: 2.8.1
-
- '@aws-sdk/middleware-expect-continue@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-flexible-checksums@3.840.0':
- dependencies:
- '@aws-crypto/crc32': 5.2.0
- '@aws-crypto/crc32c': 5.2.0
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/is-array-buffer': 4.0.0
- '@smithy/node-config-provider': 4.1.3
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-stream': 4.2.2
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@aws-sdk/middleware-host-header@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-location-constraint@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-logger@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-recursion-detection@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-sdk-s3@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-arn-parser': 3.804.0
- '@smithy/core': 3.6.0
- '@smithy/node-config-provider': 4.1.3
- '@smithy/protocol-http': 5.1.2
- '@smithy/signature-v4': 5.1.2
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- '@smithy/util-config-provider': 4.0.0
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-stream': 4.2.2
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@aws-sdk/middleware-ssec@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-user-agent@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-endpoints': 3.840.0
- '@smithy/core': 3.6.0
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/nested-clients@3.840.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/middleware-host-header': 3.840.0
- '@aws-sdk/middleware-logger': 3.840.0
- '@aws-sdk/middleware-recursion-detection': 3.840.0
- '@aws-sdk/middleware-user-agent': 3.840.0
- '@aws-sdk/region-config-resolver': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@aws-sdk/util-endpoints': 3.840.0
- '@aws-sdk/util-user-agent-browser': 3.840.0
- '@aws-sdk/util-user-agent-node': 3.840.0
- '@smithy/config-resolver': 4.1.4
- '@smithy/core': 3.6.0
- '@smithy/fetch-http-handler': 5.0.4
- '@smithy/hash-node': 4.0.4
- '@smithy/invalid-dependency': 4.0.4
- '@smithy/middleware-content-length': 4.0.4
- '@smithy/middleware-endpoint': 4.1.13
- '@smithy/middleware-retry': 4.1.14
- '@smithy/middleware-serde': 4.0.8
- '@smithy/middleware-stack': 4.0.4
- '@smithy/node-config-provider': 4.1.3
- '@smithy/node-http-handler': 4.0.6
- '@smithy/protocol-http': 5.1.2
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- '@smithy/url-parser': 4.0.4
- '@smithy/util-base64': 4.0.0
- '@smithy/util-body-length-browser': 4.0.0
- '@smithy/util-body-length-node': 4.0.0
- '@smithy/util-defaults-mode-browser': 4.0.21
- '@smithy/util-defaults-mode-node': 4.0.21
- '@smithy/util-endpoints': 3.0.6
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-retry': 4.0.6
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/region-config-resolver@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/node-config-provider': 4.1.3
- '@smithy/types': 4.3.1
- '@smithy/util-config-provider': 4.0.0
- '@smithy/util-middleware': 4.0.4
- tslib: 2.8.1
-
- '@aws-sdk/signature-v4-multi-region@3.840.0':
- dependencies:
- '@aws-sdk/middleware-sdk-s3': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/protocol-http': 5.1.2
- '@smithy/signature-v4': 5.1.2
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/token-providers@3.840.0':
- dependencies:
- '@aws-sdk/core': 3.840.0
- '@aws-sdk/nested-clients': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/property-provider': 4.0.4
- '@smithy/shared-ini-file-loader': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/types@3.840.0':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/util-arn-parser@3.804.0':
- dependencies:
- tslib: 2.8.1
-
- '@aws-sdk/util-endpoints@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/types': 4.3.1
- '@smithy/util-endpoints': 3.0.6
- tslib: 2.8.1
-
- '@aws-sdk/util-locate-window@3.804.0':
- dependencies:
- tslib: 2.8.1
-
- '@aws-sdk/util-user-agent-browser@3.840.0':
- dependencies:
- '@aws-sdk/types': 3.840.0
- '@smithy/types': 4.3.1
- bowser: 2.11.0
- tslib: 2.8.1
-
- '@aws-sdk/util-user-agent-node@3.840.0':
- dependencies:
- '@aws-sdk/middleware-user-agent': 3.840.0
- '@aws-sdk/types': 3.840.0
- '@smithy/node-config-provider': 4.1.3
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@aws-sdk/xml-builder@3.821.0':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@cspotcode/source-map-support@0.8.1':
- dependencies:
- '@jridgewell/trace-mapping': 0.3.9
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/sourcemap-codec@1.5.0': {}
-
- '@jridgewell/trace-mapping@0.3.9':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.0
-
- '@playwright/test@1.52.0':
- dependencies:
- playwright: 1.52.0
-
- '@slack/logger@4.0.0':
- dependencies:
- '@types/node': 22.15.28
-
- '@slack/types@2.14.0': {}
-
- '@slack/web-api@7.9.2':
- dependencies:
- '@slack/logger': 4.0.0
- '@slack/types': 2.14.0
- '@types/node': 22.15.28
- '@types/retry': 0.12.0
- axios: 1.9.0
- eventemitter3: 5.0.1
- form-data: 4.0.2
- is-electron: 2.2.2
- is-stream: 2.0.1
- p-queue: 6.6.2
- p-retry: 4.6.2
- retry: 0.13.1
- transitivePeerDependencies:
- - debug
-
- '@slack/webhook@7.0.5':
- dependencies:
- '@slack/types': 2.14.0
- '@types/node': 22.15.28
- axios: 1.9.0
- transitivePeerDependencies:
- - debug
-
- '@smithy/abort-controller@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/chunked-blob-reader-native@4.0.0':
- dependencies:
- '@smithy/util-base64': 4.0.0
- tslib: 2.8.1
-
- '@smithy/chunked-blob-reader@5.0.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/config-resolver@4.1.4':
- dependencies:
- '@smithy/node-config-provider': 4.1.3
- '@smithy/types': 4.3.1
- '@smithy/util-config-provider': 4.0.0
- '@smithy/util-middleware': 4.0.4
- tslib: 2.8.1
-
- '@smithy/core@3.6.0':
- dependencies:
- '@smithy/middleware-serde': 4.0.8
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- '@smithy/util-base64': 4.0.0
- '@smithy/util-body-length-browser': 4.0.0
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-stream': 4.2.2
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@smithy/credential-provider-imds@4.0.6':
- dependencies:
- '@smithy/node-config-provider': 4.1.3
- '@smithy/property-provider': 4.0.4
- '@smithy/types': 4.3.1
- '@smithy/url-parser': 4.0.4
- tslib: 2.8.1
-
- '@smithy/eventstream-codec@4.0.4':
- dependencies:
- '@aws-crypto/crc32': 5.2.0
- '@smithy/types': 4.3.1
- '@smithy/util-hex-encoding': 4.0.0
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-browser@4.0.4':
- dependencies:
- '@smithy/eventstream-serde-universal': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-config-resolver@4.1.2':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-node@4.0.4':
- dependencies:
- '@smithy/eventstream-serde-universal': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-universal@4.0.4':
- dependencies:
- '@smithy/eventstream-codec': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/fetch-http-handler@5.0.4':
- dependencies:
- '@smithy/protocol-http': 5.1.2
- '@smithy/querystring-builder': 4.0.4
- '@smithy/types': 4.3.1
- '@smithy/util-base64': 4.0.0
- tslib: 2.8.1
-
- '@smithy/hash-blob-browser@4.0.4':
- dependencies:
- '@smithy/chunked-blob-reader': 5.0.0
- '@smithy/chunked-blob-reader-native': 4.0.0
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/hash-node@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- '@smithy/util-buffer-from': 4.0.0
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@smithy/hash-stream-node@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@smithy/invalid-dependency@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/is-array-buffer@2.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/is-array-buffer@4.0.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/md5-js@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@smithy/middleware-content-length@4.0.4':
- dependencies:
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/middleware-endpoint@4.1.13':
- dependencies:
- '@smithy/core': 3.6.0
- '@smithy/middleware-serde': 4.0.8
- '@smithy/node-config-provider': 4.1.3
- '@smithy/shared-ini-file-loader': 4.0.4
- '@smithy/types': 4.3.1
- '@smithy/url-parser': 4.0.4
- '@smithy/util-middleware': 4.0.4
- tslib: 2.8.1
-
- '@smithy/middleware-retry@4.1.14':
- dependencies:
- '@smithy/node-config-provider': 4.1.3
- '@smithy/protocol-http': 5.1.2
- '@smithy/service-error-classification': 4.0.6
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-retry': 4.0.6
- tslib: 2.8.1
- uuid: 9.0.1
-
- '@smithy/middleware-serde@4.0.8':
- dependencies:
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/middleware-stack@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/node-config-provider@4.1.3':
- dependencies:
- '@smithy/property-provider': 4.0.4
- '@smithy/shared-ini-file-loader': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/node-http-handler@4.0.6':
- dependencies:
- '@smithy/abort-controller': 4.0.4
- '@smithy/protocol-http': 5.1.2
- '@smithy/querystring-builder': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/property-provider@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/protocol-http@5.1.2':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/querystring-builder@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- '@smithy/util-uri-escape': 4.0.0
- tslib: 2.8.1
-
- '@smithy/querystring-parser@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/service-error-classification@4.0.6':
- dependencies:
- '@smithy/types': 4.3.1
-
- '@smithy/shared-ini-file-loader@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/signature-v4@5.1.2':
- dependencies:
- '@smithy/is-array-buffer': 4.0.0
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- '@smithy/util-hex-encoding': 4.0.0
- '@smithy/util-middleware': 4.0.4
- '@smithy/util-uri-escape': 4.0.0
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@smithy/smithy-client@4.4.5':
- dependencies:
- '@smithy/core': 3.6.0
- '@smithy/middleware-endpoint': 4.1.13
- '@smithy/middleware-stack': 4.0.4
- '@smithy/protocol-http': 5.1.2
- '@smithy/types': 4.3.1
- '@smithy/util-stream': 4.2.2
- tslib: 2.8.1
-
- '@smithy/types@4.3.1':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/url-parser@4.0.4':
- dependencies:
- '@smithy/querystring-parser': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/util-base64@4.0.0':
- dependencies:
- '@smithy/util-buffer-from': 4.0.0
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@smithy/util-body-length-browser@4.0.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-body-length-node@4.0.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-buffer-from@2.2.0':
- dependencies:
- '@smithy/is-array-buffer': 2.2.0
- tslib: 2.8.1
-
- '@smithy/util-buffer-from@4.0.0':
- dependencies:
- '@smithy/is-array-buffer': 4.0.0
- tslib: 2.8.1
-
- '@smithy/util-config-provider@4.0.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-defaults-mode-browser@4.0.21':
- dependencies:
- '@smithy/property-provider': 4.0.4
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- bowser: 2.11.0
- tslib: 2.8.1
-
- '@smithy/util-defaults-mode-node@4.0.21':
- dependencies:
- '@smithy/config-resolver': 4.1.4
- '@smithy/credential-provider-imds': 4.0.6
- '@smithy/node-config-provider': 4.1.3
- '@smithy/property-provider': 4.0.4
- '@smithy/smithy-client': 4.4.5
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/util-endpoints@3.0.6':
- dependencies:
- '@smithy/node-config-provider': 4.1.3
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/util-hex-encoding@4.0.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-middleware@4.0.4':
- dependencies:
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/util-retry@4.0.6':
- dependencies:
- '@smithy/service-error-classification': 4.0.6
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@smithy/util-stream@4.2.2':
- dependencies:
- '@smithy/fetch-http-handler': 5.0.4
- '@smithy/node-http-handler': 4.0.6
- '@smithy/types': 4.3.1
- '@smithy/util-base64': 4.0.0
- '@smithy/util-buffer-from': 4.0.0
- '@smithy/util-hex-encoding': 4.0.0
- '@smithy/util-utf8': 4.0.0
- tslib: 2.8.1
-
- '@smithy/util-uri-escape@4.0.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-utf8@2.3.0':
- dependencies:
- '@smithy/util-buffer-from': 2.2.0
- tslib: 2.8.1
-
- '@smithy/util-utf8@4.0.0':
- dependencies:
- '@smithy/util-buffer-from': 4.0.0
- tslib: 2.8.1
-
- '@smithy/util-waiter@4.0.6':
- dependencies:
- '@smithy/abort-controller': 4.0.4
- '@smithy/types': 4.3.1
- tslib: 2.8.1
-
- '@tsconfig/node10@1.0.11': {}
-
- '@tsconfig/node12@1.0.11': {}
-
- '@tsconfig/node14@1.0.3': {}
-
- '@tsconfig/node16@1.0.4': {}
-
- '@types/node@22.15.28':
- dependencies:
- undici-types: 6.21.0
-
- '@types/retry@0.12.0': {}
-
- '@types/uuid@9.0.8': {}
-
- acorn-walk@8.3.4:
- dependencies:
- acorn: 8.14.1
-
- acorn@8.14.1: {}
-
- agent-base@7.1.3: {}
-
- arg@4.1.3: {}
-
- asynckit@0.4.0: {}
-
- axios@1.9.0:
- dependencies:
- follow-redirects: 1.15.9
- form-data: 4.0.2
- proxy-from-env: 1.1.0
- transitivePeerDependencies:
- - debug
-
- bowser@2.11.0: {}
-
- call-bind-apply-helpers@1.0.2:
- dependencies:
- es-errors: 1.3.0
- function-bind: 1.1.2
-
- combined-stream@1.0.8:
- dependencies:
- delayed-stream: 1.0.0
-
- commander@13.1.0: {}
-
- create-require@1.1.1: {}
-
- debug@4.4.1:
- dependencies:
- ms: 2.1.3
-
- delayed-stream@1.0.0: {}
-
- diff@4.0.2: {}
-
- dunder-proto@1.0.1:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-errors: 1.3.0
- gopd: 1.2.0
-
- es-define-property@1.0.1: {}
-
- es-errors@1.3.0: {}
-
- es-object-atoms@1.1.1:
- dependencies:
- es-errors: 1.3.0
-
- es-set-tostringtag@2.1.0:
- dependencies:
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
- eventemitter3@4.0.7: {}
-
- eventemitter3@5.0.1: {}
-
- fast-xml-parser@4.4.1:
- dependencies:
- strnum: 1.1.2
-
- follow-redirects@1.15.9: {}
-
- form-data@4.0.2:
- dependencies:
- asynckit: 0.4.0
- combined-stream: 1.0.8
- es-set-tostringtag: 2.1.0
- mime-types: 2.1.35
-
- fsevents@2.3.2:
- optional: true
-
- function-bind@1.1.2: {}
-
- get-intrinsic@1.3.0:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- function-bind: 1.1.2
- get-proto: 1.0.1
- gopd: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- math-intrinsics: 1.1.0
-
- get-proto@1.0.1:
- dependencies:
- dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
-
- gopd@1.2.0: {}
-
- has-symbols@1.1.0: {}
-
- has-tostringtag@1.0.2:
- dependencies:
- has-symbols: 1.1.0
-
- hasown@2.0.2:
- dependencies:
- function-bind: 1.1.2
-
- https-proxy-agent@7.0.6:
- dependencies:
- agent-base: 7.1.3
- debug: 4.4.1
- transitivePeerDependencies:
- - supports-color
-
- indento@1.1.14: {}
-
- is-electron@2.2.2: {}
-
- is-stream@2.0.1: {}
-
- json2md@2.0.3:
- dependencies:
- indento: 1.1.14
-
- make-error@1.3.6: {}
-
- math-intrinsics@1.1.0: {}
-
- mime-db@1.52.0: {}
-
- mime-types@2.1.35:
- dependencies:
- mime-db: 1.52.0
-
- ms@2.1.3: {}
-
- p-finally@1.0.0: {}
-
- p-queue@6.6.2:
- dependencies:
- eventemitter3: 4.0.7
- p-timeout: 3.2.0
-
- p-retry@4.6.2:
- dependencies:
- '@types/retry': 0.12.0
- retry: 0.13.1
-
- p-timeout@3.2.0:
- dependencies:
- p-finally: 1.0.0
-
- playwright-core@1.52.0: {}
-
- playwright-slack-report@1.1.93(@types/node@22.15.28)(typescript@5.8.3):
- dependencies:
- '@slack/web-api': 7.9.2
- '@slack/webhook': 7.0.5
- commander: 13.1.0
- https-proxy-agent: 7.0.6
- ts-node: 10.9.2(@types/node@22.15.28)(typescript@5.8.3)
- zod: 3.25.42
- transitivePeerDependencies:
- - '@swc/core'
- - '@swc/wasm'
- - '@types/node'
- - debug
- - supports-color
- - typescript
-
- playwright@1.52.0:
- dependencies:
- playwright-core: 1.52.0
- optionalDependencies:
- fsevents: 2.3.2
-
- proxy-from-env@1.1.0: {}
-
- retry@0.13.1: {}
-
- strnum@1.1.2: {}
-
- ts-node@10.9.2(@types/node@22.15.28)(typescript@5.8.3):
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.11
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 22.15.28
- acorn: 8.14.1
- acorn-walk: 8.3.4
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.8.3
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
-
- tslib@2.8.1: {}
-
- typescript@5.8.3: {}
-
- undici-types@6.21.0: {}
-
- uuid@9.0.1: {}
-
- v8-compile-cache-lib@3.0.1: {}
-
- yn@3.1.1: {}
-
- zod@3.25.42: {}
diff --git a/apps/dojo/package.json b/apps/dojo/package.json
index 74805947b..8a8cd3d68 100644
--- a/apps/dojo/package.json
+++ b/apps/dojo/package.json
@@ -12,6 +12,8 @@
"run-everything": "./scripts/prep-dojo-everything.js && ./scripts/run-dojo-everything.js"
},
"dependencies": {
+ "@a2a-js/sdk": "0.2.5",
+ "@ag-ui/a2a": "workspace:*",
"@ag-ui/a2a-middleware": "workspace:*",
"@ag-ui/adk": "workspace:*",
"@ag-ui/agno": "workspace:*",
@@ -20,10 +22,10 @@
"@ag-ui/llamaindex": "workspace:*",
"@ag-ui/mastra": "workspace:*",
"@ag-ui/middleware-starter": "workspace:*",
- "@ag-ui/spring-ai": "workspace:*",
"@ag-ui/pydantic-ai": "workspace:*",
"@ag-ui/server-starter": "workspace:*",
"@ag-ui/server-starter-all-features": "workspace:*",
+ "@ag-ui/spring-ai": "workspace:*",
"@ag-ui/vercel-ai-sdk": "workspace:*",
"@ai-sdk/openai": "^2.0.42",
"@copilotkit/react-core": "1.10.6",
@@ -31,6 +33,9 @@
"@copilotkit/runtime": "1.10.6",
"@copilotkit/runtime-client-gql": "1.10.6",
"@copilotkit/shared": "1.10.6",
+ "@copilotkitnext/react": "0.0.19-alpha.0",
+ "@copilotkitnext/runtime": "0.0.19-alpha.0",
+ "@copilotkitnext/agent": "0.0.19-alpha.0",
"@mastra/client-js": "^0.15.2",
"@mastra/core": "^0.20.2",
"@mastra/dynamodb": "^0.15.6",
@@ -58,6 +63,7 @@
"diff": "^7.0.0",
"embla-carousel-react": "^8.6.0",
"fast-json-patch": "^3.1.1",
+ "hono": "^4.10.3",
"lucide-react": "^0.477.0",
"markdown-it": "^14.1.0",
"markdown-it-ins": "^4.0.0",
diff --git a/apps/dojo/src/agents.ts b/apps/dojo/src/agents.ts
index 18d7e90e8..02db44e28 100644
--- a/apps/dojo/src/agents.ts
+++ b/apps/dojo/src/agents.ts
@@ -16,9 +16,11 @@ import getEnvVars from "./env";
import { mastra } from "./mastra";
import { PydanticAIAgent } from "@ag-ui/pydantic-ai";
import { ADKAgent } from "@ag-ui/adk";
-import { SpringAiAgent } from '@ag-ui/spring-ai';
+import { SpringAiAgent } from "@ag-ui/spring-ai";
import { HttpAgent } from "@ag-ui/client";
import { A2AMiddlewareAgent } from "@ag-ui/a2a-middleware";
+import { A2AAgent } from "@ag-ui/a2a";
+import { A2AClient } from "@a2a-js/sdk/client";
const envVars = getEnvVars();
export const agentsIntegrations: AgentIntegrationConfig[] = [
@@ -81,7 +83,9 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [
backend_tool_rendering: new ADKAgent({
url: `${envVars.adkMiddlewareUrl}/backend_tool_rendering`,
}),
- shared_state: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/adk-shared-state-agent` }),
+ shared_state: new ADKAgent({
+ url: `${envVars.adkMiddlewareUrl}/adk-shared-state-agent`,
+ }),
// predictive_state_updates: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/adk-predictive-state-agent` }),
};
},
@@ -273,26 +277,26 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [
},
},
{
- id: 'spring-ai',
+ id: "spring-ai",
agents: async () => {
return {
agentic_chat: new SpringAiAgent({
- url: `${envVars.springAiUrl}/agentic_chat/agui`
+ url: `${envVars.springAiUrl}/agentic_chat/agui`,
}),
shared_state: new SpringAiAgent({
- url: `${envVars.springAiUrl}/shared_state/agui`
+ url: `${envVars.springAiUrl}/shared_state/agui`,
}),
tool_based_generative_ui: new SpringAiAgent({
- url: `${envVars.springAiUrl}/tool_based_generative_ui/agui`
+ url: `${envVars.springAiUrl}/tool_based_generative_ui/agui`,
}),
human_in_the_loop: new SpringAiAgent({
- url: `${envVars.springAiUrl}/human_in_the_loop/agui`
+ url: `${envVars.springAiUrl}/human_in_the_loop/agui`,
}),
agentic_generative_ui: new SpringAiAgent({
- url: `${envVars.springAiUrl}/agentic_generative_ui/agui`
- })
- }
- }
+ url: `${envVars.springAiUrl}/agentic_generative_ui/agui`,
+ }),
+ };
+ },
},
{
id: "llama-index",
@@ -341,6 +345,19 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [
};
},
},
+ {
+ id: "a2a-basic",
+ agents: async () => {
+ const a2aClient = new A2AClient(envVars.a2aUrl);
+ return {
+ agentic_chat: new A2AAgent({
+ description: "Direct A2A agent",
+ a2aClient,
+ debug: process.env.NODE_ENV !== "production",
+ }),
+ };
+ },
+ },
{
id: "a2a",
agents: async () => {
diff --git a/apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx b/apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx
new file mode 100644
index 000000000..b81ab7ecb
--- /dev/null
+++ b/apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx
@@ -0,0 +1,39 @@
+"use client";
+
+import React from "react";
+import "@copilotkitnext/react/styles.css";
+import { CopilotChat, CopilotKitProvider } from "@copilotkitnext/react";
+
+export const dynamic = "force-dynamic";
+
+interface PageProps {
+ params: Promise<{
+ integrationId: string;
+ }>;
+}
+
+export default function Page({ params }: PageProps) {
+ const { integrationId } = React.use(params);
+
+ return (
+
+
+
+
+
+ );
+}
+
+function Chat({ threadId }: { threadId: string }) {
+ return (
+
+
+
+ );
+}
diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts
index 5a0641441..a1c04b856 100644
--- a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts
+++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts
@@ -3,10 +3,10 @@ import {
ExperimentalEmptyAdapter,
copilotRuntimeNextJSAppRouterEndpoint,
} from "@copilotkit/runtime";
-import { agentsIntegrations } from "@/agents";
-
import { NextRequest } from "next/server";
+import { agentsIntegrations } from "@/agents";
+
export async function POST(request: NextRequest) {
const integrationId = request.url.split("/").pop();
@@ -14,6 +14,7 @@ export async function POST(request: NextRequest) {
if (!integration) {
return new Response("Integration not found", { status: 404 });
}
+
const agents = await integration.agents();
const runtime = new CopilotRuntime({
// @ts-ignore for now
@@ -27,3 +28,4 @@ export async function POST(request: NextRequest) {
return handleRequest(request);
}
+
diff --git a/apps/dojo/src/app/api/copilotkit/route.ts b/apps/dojo/src/app/api/copilotkit/route.ts
new file mode 100644
index 000000000..80f03f2c1
--- /dev/null
+++ b/apps/dojo/src/app/api/copilotkit/route.ts
@@ -0,0 +1,22 @@
+import {
+ CopilotRuntime,
+ InMemoryAgentRunner,
+ createCopilotEndpoint,
+} from "@copilotkitnext/runtime";
+import { handle } from "hono/vercel";
+
+const runtime = new CopilotRuntime({
+ agents: {
+ default: null as any,
+ },
+ runner: new InMemoryAgentRunner(),
+});
+
+const app = createCopilotEndpoint({
+ runtime,
+ basePath: "/api/copilotkit",
+});
+
+export const GET = handle(app);
+export const POST = handle(app);
+
diff --git a/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts
new file mode 100644
index 000000000..8ecd15ff3
--- /dev/null
+++ b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts
@@ -0,0 +1,57 @@
+import {
+ CopilotRuntime,
+ InMemoryAgentRunner,
+ createCopilotEndpoint,
+} from "@copilotkitnext/runtime";
+import { handle } from "hono/vercel";
+import type { NextRequest } from "next/server";
+import { BasicAgent } from "@copilotkitnext/agent";
+import type { AbstractAgent } from "@ag-ui/client";
+
+type RouteParams = {
+ params: Promise<{
+ integrationId: string;
+ slug?: string[];
+ }>;
+};
+
+const handlerCache = new Map>();
+
+function getHandler(integrationId: string) {
+ const cached = handlerCache.get(integrationId);
+ if (cached) {
+ return cached;
+ }
+
+ const defaultAgent = new BasicAgent({
+ model: "openai/gpt-4o",
+ }) as unknown as AbstractAgent; // Cast until upstream marks run() public.
+
+ const runtime = new CopilotRuntime({
+ agents: {
+ default: defaultAgent,
+ },
+ runner: new InMemoryAgentRunner(),
+ });
+
+ const app = createCopilotEndpoint({
+ runtime,
+ basePath: `/api/copilotkitnext/${integrationId}`,
+ });
+
+ const handler = handle(app);
+ handlerCache.set(integrationId, handler);
+ return handler;
+}
+
+export async function GET(request: NextRequest, context: RouteParams) {
+ const { integrationId } = await context.params;
+ const handler = getHandler(integrationId);
+ return handler(request);
+}
+
+export async function POST(request: NextRequest, context: RouteParams) {
+ const { integrationId } = await context.params;
+ const handler = getHandler(integrationId);
+ return handler(request);
+}
diff --git a/apps/dojo/src/components/sidebar/sidebar.tsx b/apps/dojo/src/components/sidebar/sidebar.tsx
index d2b1a83c9..5a60e3cda 100644
--- a/apps/dojo/src/components/sidebar/sidebar.tsx
+++ b/apps/dojo/src/components/sidebar/sidebar.tsx
@@ -3,7 +3,7 @@
import React, { useState, useEffect } from "react";
import { EyeIcon as Eye, CodeIcon as Code, BookOpenTextIcon as Book } from "@phosphor-icons/react";
import { cn } from "@/lib/utils";
-import { useRouter, usePathname } from "next/navigation";
+import { useRouter, usePathname, useSearchParams } from "next/navigation";
import { DemoList } from "@/components/demo-list/demo-list";
import { ThemeToggle } from "@/components/ui/theme-toggle";
import { ChevronDown } from "lucide-react";
@@ -31,6 +31,7 @@ interface SidebarProps {
export function Sidebar({ isMobile, onMobileClose }: SidebarProps) {
const router = useRouter();
const pathname = usePathname();
+ const searchParams = useSearchParams();
const { theme, setTheme } = useTheme();
const isDarkTheme = theme === "dark"
const { view, frameworkPickerHidden, viewPickerHidden, featurePickerHidden, setView} = useURLParams();
@@ -56,7 +57,10 @@ export function Sidebar({ isMobile, onMobileClose }: SidebarProps) {
// Handle selecting a demo
const handleDemoSelect = (demoId: string) => {
if (currentIntegration) {
- router.push(`/${currentIntegration.id}/feature/${demoId}`);
+ const queryString = searchParams.toString();
+ const newPath = `/${currentIntegration.id}/feature/${demoId}`;
+ const url = queryString ? `${newPath}?${queryString}` : newPath;
+ router.push(url);
// Close mobile sidebar when demo is selected
if (isMobile && onMobileClose) {
onMobileClose();
@@ -66,7 +70,10 @@ export function Sidebar({ isMobile, onMobileClose }: SidebarProps) {
// Handle integration selection
const handleIntegrationSelect = (integrationId: string) => {
- router.push(`/${integrationId}`);
+ const queryString = searchParams.toString();
+ const newPath = `/${integrationId}`;
+ const url = queryString ? `${newPath}?${queryString}` : newPath;
+ router.push(url);
};
const tabClass = `cursor-pointer flex-1 h-8 px-2 text-sm text-primary shadow-none bg-none border-none font-medium gap-1 rounded-lg data-[state=active]:bg-white data-[state=active]:text-primary data-[state=active]:shadow-none`
diff --git a/apps/dojo/src/config.ts b/apps/dojo/src/config.ts
index e27f3a4b8..df7e0f25e 100644
--- a/apps/dojo/src/config.ts
+++ b/apps/dojo/src/config.ts
@@ -32,13 +32,15 @@ export const featureConfig: FeatureConfig[] = [
createFeatureConfig({
id: "human_in_the_loop",
name: "Human in the loop",
- description: "Plan a task together and direct the Copilot to take the right steps",
+ description:
+ "Plan a task together and direct the Copilot to take the right steps",
tags: ["HITL", "Interactivity"],
}),
createFeatureConfig({
id: "agentic_generative_ui",
name: "Agentic Generative UI",
- description: "Assign a long running task to your Copilot and see how it performs!",
+ description:
+ "Assign a long running task to your Copilot and see how it performs!",
tags: ["Generative ui (agent)", "Long running task"],
}),
createFeatureConfig({
@@ -56,7 +58,8 @@ export const featureConfig: FeatureConfig[] = [
createFeatureConfig({
id: "predictive_state_updates",
name: "Predictive State Updates",
- description: "Use collaboration to edit a document in real time with your Copilot",
+ description:
+ "Use collaboration to edit a document in real time with your Copilot",
tags: ["State", "Streaming", "Tools"],
}),
createFeatureConfig({
@@ -68,7 +71,8 @@ export const featureConfig: FeatureConfig[] = [
createFeatureConfig({
id: "subgraphs",
name: "Subgraphs",
- description: "Have your tasks performed by multiple agents, working together",
+ description:
+ "Have your tasks performed by multiple agents, working together",
tags: ["Chat", "Multi-agent architecture", "Streaming", "Subgraphs"],
}),
createFeatureConfig({
@@ -77,6 +81,12 @@ export const featureConfig: FeatureConfig[] = [
description: "Chat with your Copilot and call frontend tools",
tags: ["Chat", "Tools", "Streaming"],
}),
+ createFeatureConfig({
+ id: "vnext_chat",
+ name: "VNext Chat",
+ description: "Chat based on CopilotKit vnext",
+ tags: ["Chat", "VNext", "Streaming"],
+ }),
];
export default featureConfig;
diff --git a/apps/dojo/src/env.ts b/apps/dojo/src/env.ts
index c63344897..569c6cfdc 100644
--- a/apps/dojo/src/env.ts
+++ b/apps/dojo/src/env.ts
@@ -11,6 +11,7 @@ type envVars = {
crewAiUrl: string;
pydanticAIUrl: string;
adkMiddlewareUrl: string;
+ a2aUrl: string;
a2aMiddlewareBuildingsManagementUrl: string;
a2aMiddlewareFinanceUrl: string;
a2aMiddlewareItUrl: string;
@@ -40,10 +41,11 @@ export default function getEnvVars(): envVars {
pydanticAIUrl: process.env.PYDANTIC_AI_URL || 'http://localhost:9000',
adkMiddlewareUrl: process.env.ADK_MIDDLEWARE_URL || 'http://localhost:8000',
springAiUrl: process.env.SPRING_AI_URL || 'http://localhost:8080',
+ a2aUrl: process.env.A2A_URL || 'http://localhost:10002',
a2aMiddlewareBuildingsManagementUrl: process.env.A2A_MIDDLEWARE_BUILDINGS_MANAGEMENT_URL || 'http://localhost:9001',
a2aMiddlewareFinanceUrl: process.env.A2A_MIDDLEWARE_FINANCE_URL || 'http://localhost:9002',
a2aMiddlewareItUrl: process.env.A2A_MIDDLEWARE_IT_URL || 'http://localhost:9003',
a2aMiddlewareOrchestratorUrl: process.env.A2A_MIDDLEWARE_ORCHESTRATOR_URL || 'http://localhost:9000',
customDomainTitle: customDomainTitle,
}
-}
\ No newline at end of file
+}
diff --git a/apps/dojo/src/menu.ts b/apps/dojo/src/menu.ts
index 25d02f283..36959a218 100644
--- a/apps/dojo/src/menu.ts
+++ b/apps/dojo/src/menu.ts
@@ -47,7 +47,11 @@ export const menuIntegrations: MenuIntegrationConfig[] = [
{
id: "mastra",
name: "Mastra",
- features: ["agentic_chat", "backend_tool_rendering", "tool_based_generative_ui"],
+ features: [
+ "agentic_chat",
+ "backend_tool_rendering",
+ "tool_based_generative_ui",
+ ],
},
{
id: "mastra-agent-local",
@@ -60,15 +64,15 @@ export const menuIntegrations: MenuIntegrationConfig[] = [
],
},
{
- id: 'spring-ai',
- name: 'Spring AI',
+ id: "spring-ai",
+ name: "Spring AI",
features: [
- 'agentic_chat',
- 'shared_state',
- 'tool_based_generative_ui',
- 'human_in_the_loop',
- 'agentic_generative_ui'
- ]
+ "agentic_chat",
+ "shared_state",
+ "tool_based_generative_ui",
+ "human_in_the_loop",
+ "agentic_generative_ui",
+ ],
},
{
id: "pydantic-ai",
@@ -99,7 +103,11 @@ export const menuIntegrations: MenuIntegrationConfig[] = [
{
id: "agno",
name: "Agno",
- features: ["agentic_chat", "backend_tool_rendering", "tool_based_generative_ui"],
+ features: [
+ "agentic_chat",
+ "backend_tool_rendering",
+ "tool_based_generative_ui",
+ ],
},
{
id: "llama-index",
@@ -125,6 +133,11 @@ export const menuIntegrations: MenuIntegrationConfig[] = [
"tool_based_generative_ui",
],
},
+ {
+ id: "a2a-basic",
+ name: "A2A (Direct)",
+ features: ["vnext_chat"],
+ },
// Disabled until we can support Vercel AI SDK v5
// {
// id: "vercel-ai-sdk",
diff --git a/apps/dojo/src/types/integration.ts b/apps/dojo/src/types/integration.ts
index 59d9b3adb..182933a6f 100644
--- a/apps/dojo/src/types/integration.ts
+++ b/apps/dojo/src/types/integration.ts
@@ -10,7 +10,8 @@ export type Feature =
| "backend_tool_rendering"
| "agentic_chat_reasoning"
| "subgraphs"
- | "a2a_chat";
+ | "a2a_chat"
+ | "vnext_chat";
export interface MenuIntegrationConfig {
id: string;
diff --git a/apps/dojo/tsconfig.json b/apps/dojo/tsconfig.json
index af157911a..a57e78c43 100644
--- a/apps/dojo/tsconfig.json
+++ b/apps/dojo/tsconfig.json
@@ -19,9 +19,9 @@
}
],
"paths": {
- "@/*": ["./src/*", "../../packages/client/src/*"],
- "@ag-ui/client": ["../../packages/client/src"],
- "@ag-ui/client/*": ["../../packages/client/src/*"]
+ "@/*": ["./src/*", "../../sdks/typescript/packages/client/src/*"],
+ "@ag-ui/client": ["../../sdks/typescript/packages/client/src"],
+ "@ag-ui/client/*": ["../../sdks/typescript/packages/client/src/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
diff --git a/docs/concepts/events.mdx b/docs/concepts/events.mdx
index 920b203b9..985576379 100644
--- a/docs/concepts/events.mdx
+++ b/docs/concepts/events.mdx
@@ -19,6 +19,7 @@ Events in the protocol are categorized by their purpose:
| Text Message Events | Handle streaming textual content |
| Tool Call Events | Manage tool executions by agents |
| State Management Events | Synchronize state between agents and UI |
+| Activity Events | Represent ongoing activity progress |
| Special Events | Support custom functionality |
| Draft Events | Proposed events under development |
@@ -83,10 +84,12 @@ elements such as progress indicators or loading states. It also provides crucial
identifiers that can be used to associate subsequent events with this specific
run.
-| Property | Description |
-| ---------- | ----------------------------- |
-| `threadId` | ID of the conversation thread |
-| `runId` | ID of the agent run |
+| Property | Description |
+| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `threadId` | ID of the conversation thread |
+| `runId` | ID of the agent run |
+| `parentRunId` | (Optional) Lineage pointer for branching/time travel. If present, refers to a prior run within the same thread, creating a git-like append-only log |
+| `input` | (Optional) The exact agent input payload that was sent to the agent for this run. May omit messages already present in history; compactEvents() will normalize |
### RunFinished
@@ -234,18 +237,23 @@ automatic scrolling to ensure the full message is visible.
### TextMessageChunk
-A self-contained text message event that combines start, content, and end.
+Convenience event that expands to Start → Content → End automatically.
-The `TextMessageChunk` event provides a convenient way to send complete text messages
-in a single event instead of the three-event sequence (start, content, end). This is
-particularly useful for simple messages or when the entire content is available at once.
-The event includes both the message metadata and content, making it more efficient for
-non-streaming scenarios.
+The `TextMessageChunk` event lets you omit explicit `TextMessageStart` and
+`TextMessageEnd` events. The client stream transformer expands chunks into the
+standard triad:
+
+- First chunk for a message must include `messageId` and will emit
+ `TextMessageStart` (role defaults to `assistant` when not provided).
+- Each chunk with a `delta` emits a `TextMessageContent` for the current
+ `messageId`.
+- `TextMessageEnd` is emitted automatically when the stream switches to a new
+ message ID or when the stream completes.
| Property | Description |
| ----------- | ------------------------------------------------------------------------------------- |
-| `messageId` | Optional unique identifier for the message |
-| `role` | Optional role of the sender ("developer", "system", "assistant", "user", "tool") |
+| `messageId` | Optional unique identifier for the message; required on the first chunk of a message |
+| `role` | Optional role of the sender ("developer", "system", "assistant", "user") |
| `delta` | Optional text content of the message |
## Tool Call Events
@@ -356,6 +364,28 @@ the tool's output.
| `content` | The actual result/output content from the tool execution |
| `role` | Optional role identifier, typically "tool" for tool results |
+### ToolCallChunk
+
+Convenience event that expands to Start → Args → End automatically.
+
+The `ToolCallChunk` event lets you omit explicit `ToolCallStart` and
+`ToolCallEnd` events. The client stream transformer expands chunks into the
+standard tool-call triad:
+
+- First chunk for a tool call must include `toolCallId` and `toolCallName` and
+ will emit `ToolCallStart` (propagating any `parentMessageId`).
+- Each chunk with a `delta` emits a `ToolCallArgs` for the current
+ `toolCallId`.
+- `ToolCallEnd` is emitted automatically when the stream switches to a new
+ `toolCallId` or when the stream completes.
+
+| Property | Description |
+| ----------------- | --------------------------------------------------------------------------- |
+| `toolCallId` | Optional on later chunks; required on the first chunk of a tool call |
+| `toolCallName` | Optional on later chunks; required on the first chunk of a tool call |
+| `parentMessageId` | Optional ID of the parent message |
+| `delta` | Optional argument data chunk (often a JSON fragment) |
+
## State Management Events
These events are used to manage and synchronize the agent's state with the
@@ -445,6 +475,41 @@ displayed to users.
| ---------- | ------------------------ |
| `messages` | Array of message objects |
+## Activity Events
+
+Activity Events expose structured, in-progress activity updates that occur
+between chat messages. They follow the same snapshot/delta pattern as the state
+system so that UIs can render a complete activity view immediately and then
+incrementally update it as new information arrives.
+
+### ActivitySnapshot
+
+Delivers a complete snapshot of an activity message.
+
+| Property | Description |
+| --------------- | -------------------------------------------------------------------------------------------- |
+| `messageId` | Identifier for the `ActivityMessage` this event updates |
+| `activityType` | Activity discriminator (for example `"PLAN"`, `"SEARCH"`) |
+| `content` | Structured JSON payload representing the full activity state |
+| `replace` | Optional. Defaults to `true`. When `false`, ignore the snapshot if the message already exists |
+
+Frontends should either create a new `ActivityMessage` or replace the existing
+one with the payload supplied by the snapshot.
+
+### ActivityDelta
+
+Applies incremental updates to an existing activity using JSON Patch operations.
+
+| Property | Description |
+| --------------- | -------------------------------------------------------------------- |
+| `messageId` | Identifier for the target activity message |
+| `activityType` | Activity discriminator (mirrors the value from the most recent snapshot) |
+| `patch` | Array of RFC 6902 JSON Patch operations to apply to the activity data |
+
+Activity deltas should be applied in order to the previously synchronized
+activity content. If an application detects divergence, it can request or emit a
+fresh `ActivitySnapshot` to resynchronize.
+
## Special Events
Special events provide flexibility in the protocol by allowing for
@@ -492,32 +557,6 @@ implementation across frontends and agents.
These events are currently in draft status and may change before finalization. They represent proposed extensions to the protocol that are under active development and discussion.
-### Activity Events
-
-DRAFT [View Proposal](/drafts/activity-events)
-
-Activity events represent ongoing agent progress between chat messages, allowing frameworks to surface fine-grained activity updates chronologically.
-
-#### ActivitySnapshotEvent
-
-Provides the complete activity state at a point in time.
-
-| Property | Description |
-| -------------- | ---------------------------------------------------- |
-| `messageId` | Unique identifier for the ActivityMessage |
-| `activityType` | Activity type (e.g., "PLAN", "SEARCH", "SCRAPE") |
-| `content` | Complete activity state at this point |
-
-#### ActivityDeltaEvent
-
-Provides incremental updates to the activity state using JSON Patch operations.
-
-| Property | Description |
-| -------------- | ---------------------------------------------------- |
-| `messageId` | Unique identifier for the ActivityMessage |
-| `activityType` | Activity type (e.g., "PLAN", "SEARCH", "SCRAPE") |
-| `patch` | JSON Patch operations (RFC 6902) to apply |
-
### Reasoning Events
DRAFT [View Proposal](/drafts/reasoning)
@@ -606,7 +645,7 @@ The `RunFinished` event gains new fields to support interrupt-aware workflows.
| `outcome` | Optional: "success" or "interrupt" |
| `interrupt` | Optional: Contains interrupt details when paused |
-DRAFT [View Proposal](/drafts/serialization)
+See [Serialization](/concepts/serialization) for lineage and input capture.
#### RunStarted (Extended)
diff --git a/docs/concepts/messages.mdx b/docs/concepts/messages.mdx
index 4777cbfe1..c37011d1b 100644
--- a/docs/concepts/messages.mdx
+++ b/docs/concepts/messages.mdx
@@ -28,6 +28,10 @@ interface BaseMessage {
}
```
+The `role` discriminator can be `"user"`, `"assistant"`, `"system"`,
+`"tool"`, `"developer"`, or `"activity"`. Concrete message types extend this
+shape with the fields they need.
+
## Message Types
AG-UI supports several message types to accommodate different participants in a
@@ -41,11 +45,31 @@ Messages from the end user to the agent:
interface UserMessage {
id: string
role: "user"
- content: string // Text input from the user
+ content: string | InputContent[] // Text or multimodal input from the user
name?: string // Optional user identifier
}
+
+type InputContent = TextInputContent | BinaryInputContent
+
+interface TextInputContent {
+ type: "text"
+ text: string
+}
+
+interface BinaryInputContent {
+ type: "binary"
+ mimeType: string
+ id?: string
+ url?: string
+ data?: string
+ filename?: string
+}
```
+> For `BinaryInputContent`, provide at least one of `id`, `url`, or `data` to reference the payload.
+
+This structure keeps traditional plain-text inputs working while enabling richer payloads such as images, audio clips, or uploaded files in the same message.
+
### Assistant Messages
Messages from the AI assistant to the user:
@@ -86,6 +110,24 @@ interface ToolMessage {
}
```
+### Activity Messages
+
+Structured progress updates that appear between chat messages:
+
+```typescript
+interface ActivityMessage {
+ id: string
+ role: "activity"
+ activityType: string // e.g. "PLAN", "SEARCH", "SCRAPE"
+ content: Record // Structured payload rendered by the frontend
+}
+```
+
+Activity messages are populated by `ACTIVITY_SNAPSHOT` and `ACTIVITY_DELTA`
+events. The structured `content` object gives frontends everything they need to
+render bespoke status views, such as checklists, workflow progress, or search
+results in flight.
+
### Developer Messages
Internal messages used for development or debugging:
diff --git a/docs/concepts/middleware.mdx b/docs/concepts/middleware.mdx
new file mode 100644
index 000000000..835d10566
--- /dev/null
+++ b/docs/concepts/middleware.mdx
@@ -0,0 +1,307 @@
+---
+title: "Middleware"
+description: "Transform and intercept events in AG-UI agents"
+---
+
+# Middleware
+
+Middleware in AG-UI provides a powerful way to transform, filter, and augment the event streams that flow through agents. It enables you to add cross-cutting concerns like logging, authentication, rate limiting, and event filtering without modifying the core agent logic.
+
+## What is Middleware?
+
+Middleware sits between the agent execution and the event consumer, allowing you to:
+
+1. **Transform events** – Modify or enhance events as they flow through the pipeline
+2. **Filter events** – Selectively allow or block certain events
+3. **Add metadata** – Inject additional context or tracking information
+4. **Handle errors** – Implement custom error recovery strategies
+5. **Monitor execution** – Add logging, metrics, or debugging capabilities
+
+## How Middleware Works
+
+Middleware forms a chain where each middleware wraps the next, creating layers of functionality. When an agent runs, the event stream flows through each middleware in sequence.
+
+```typescript
+import { AbstractAgent } from "@ag-ui/client"
+
+const agent = new MyAgent()
+
+// Middleware chain: logging -> auth -> filter -> agent
+agent.use(loggingMiddleware, authMiddleware, filterMiddleware)
+
+// When agent runs, events flow through all middleware
+await agent.runAgent()
+```
+
+## Function-Based Middleware
+
+For simple transformations, you can use function-based middleware. This is the most concise way to add middleware:
+
+```typescript
+import { MiddlewareFunction } from "@ag-ui/client"
+import { EventType } from "@ag-ui/core"
+
+const prefixMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ map(event => {
+ if (event.type === EventType.TEXT_MESSAGE_CHUNK) {
+ return {
+ ...event,
+ delta: `[AI]: ${event.delta}`
+ }
+ }
+ return event
+ })
+ )
+}
+
+agent.use(prefixMiddleware)
+```
+
+## Class-Based Middleware
+
+For more complex scenarios requiring state or configuration, use class-based middleware:
+
+```typescript
+import { Middleware } from "@ag-ui/client"
+import { Observable } from "rxjs"
+import { tap } from "rxjs/operators"
+
+class MetricsMiddleware extends Middleware {
+ private eventCount = 0
+
+ constructor(private metricsService: MetricsService) {
+ super()
+ }
+
+ run(input: RunAgentInput, next: AbstractAgent): Observable {
+ const startTime = Date.now()
+
+ return next.run(input).pipe(
+ tap(event => {
+ this.eventCount++
+ this.metricsService.recordEvent(event.type)
+ }),
+ finalize(() => {
+ const duration = Date.now() - startTime
+ this.metricsService.recordDuration(duration)
+ this.metricsService.recordEventCount(this.eventCount)
+ })
+ )
+ }
+}
+
+agent.use(new MetricsMiddleware(metricsService))
+```
+
+## Built-in Middleware
+
+AG-UI provides several built-in middleware components for common use cases:
+
+### FilterToolCallsMiddleware
+
+Filter tool calls based on allowed or disallowed lists:
+
+```typescript
+import { FilterToolCallsMiddleware } from "@ag-ui/client"
+
+// Only allow specific tools
+const allowedFilter = new FilterToolCallsMiddleware({
+ allowedToolCalls: ["search", "calculate"]
+})
+
+// Or block specific tools
+const blockedFilter = new FilterToolCallsMiddleware({
+ disallowedToolCalls: ["delete", "modify"]
+})
+
+agent.use(allowedFilter)
+```
+
+## Middleware Patterns
+
+### Logging Middleware
+
+```typescript
+const loggingMiddleware: MiddlewareFunction = (input, next) => {
+ console.log("Request:", input.messages)
+
+ return next.run(input).pipe(
+ tap(event => console.log("Event:", event.type)),
+ catchError(error => {
+ console.error("Error:", error)
+ throw error
+ })
+ )
+}
+```
+
+### Authentication Middleware
+
+```typescript
+class AuthMiddleware extends Middleware {
+ constructor(private apiKey: string) {
+ super()
+ }
+
+ run(input: RunAgentInput, next: AbstractAgent): Observable {
+ // Add authentication to the context
+ const authenticatedInput = {
+ ...input,
+ context: [
+ ...input.context,
+ { type: "auth", apiKey: this.apiKey }
+ ]
+ }
+
+ return next.run(authenticatedInput)
+ }
+}
+```
+
+### Rate Limiting Middleware
+
+```typescript
+class RateLimitMiddleware extends Middleware {
+ private lastCall = 0
+
+ constructor(private minInterval: number) {
+ super()
+ }
+
+ run(input: RunAgentInput, next: AbstractAgent): Observable {
+ const now = Date.now()
+ const timeSinceLastCall = now - this.lastCall
+
+ if (timeSinceLastCall < this.minInterval) {
+ const delay = this.minInterval - timeSinceLastCall
+ return timer(delay).pipe(
+ switchMap(() => {
+ this.lastCall = Date.now()
+ return next.run(input)
+ })
+ )
+ }
+
+ this.lastCall = now
+ return next.run(input)
+ }
+}
+```
+
+## Combining Middleware
+
+You can combine multiple middleware to create sophisticated processing pipelines:
+
+```typescript
+// Function middleware for simple logging
+const logMiddleware: MiddlewareFunction = (input, next) => {
+ console.log(`Starting run ${input.runId}`)
+ return next.run(input)
+}
+
+// Class middleware for authentication
+const authMiddleware = new AuthMiddleware(apiKey)
+
+// Built-in middleware for filtering
+const filterMiddleware = new FilterToolCallsMiddleware({
+ allowedToolCalls: ["search", "summarize"]
+})
+
+// Apply all middleware in order
+agent.use(
+ logMiddleware, // First: log the request
+ authMiddleware, // Second: add authentication
+ filterMiddleware // Third: filter tool calls
+)
+```
+
+## Execution Order
+
+Middleware executes in the order it's added, with each middleware wrapping the next:
+
+1. First middleware receives the original input
+2. It can modify the input before passing to the next middleware
+3. Each middleware processes events from the next in the chain
+4. The final middleware calls the actual agent
+
+```typescript
+agent.use(middleware1, middleware2, middleware3)
+
+// Execution flow:
+// → middleware1
+// → middleware2
+// → middleware3
+// → agent.run()
+// ← events flow back through middleware3
+// ← events flow back through middleware2
+// ← events flow back through middleware1
+```
+
+## Best Practices
+
+1. **Keep middleware focused** – Each middleware should have a single responsibility
+2. **Handle errors gracefully** – Use RxJS error handling operators
+3. **Avoid blocking operations** – Use async patterns for I/O operations
+4. **Document side effects** – Clearly indicate if middleware modifies state
+5. **Test middleware independently** – Write unit tests for each middleware
+6. **Consider performance** – Be mindful of processing overhead in the event stream
+
+## Advanced Use Cases
+
+### Conditional Middleware
+
+Apply middleware based on runtime conditions:
+
+```typescript
+const conditionalMiddleware: MiddlewareFunction = (input, next) => {
+ if (input.context.some(c => c.type === "debug")) {
+ // Apply debug logging
+ return next.run(input).pipe(
+ tap(event => console.debug(event))
+ )
+ }
+ return next.run(input)
+}
+```
+
+### Event Transformation
+
+Transform specific event types:
+
+```typescript
+const transformMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ map(event => {
+ if (event.type === EventType.TOOL_CALL_START) {
+ // Add timestamp to tool calls
+ return {
+ ...event,
+ metadata: {
+ ...event.metadata,
+ timestamp: Date.now()
+ }
+ }
+ }
+ return event
+ })
+ )
+}
+```
+
+### Stream Control
+
+Control the flow of events:
+
+```typescript
+const throttleMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ // Throttle text message chunks to prevent overwhelming the UI
+ throttleTime(50, undefined, { leading: true, trailing: true })
+ )
+}
+```
+
+## Conclusion
+
+Middleware provides a flexible and powerful way to extend AG-UI agents without modifying their core logic. Whether you need simple event transformation or complex stateful processing, the middleware system offers the tools to build robust, maintainable agent applications.
\ No newline at end of file
diff --git a/docs/concepts/serialization.mdx b/docs/concepts/serialization.mdx
new file mode 100644
index 000000000..8a4196131
--- /dev/null
+++ b/docs/concepts/serialization.mdx
@@ -0,0 +1,188 @@
+---
+title: "Serialization"
+description: "Serialize event streams for history restore, branching, and compaction in AG-UI"
+---
+
+# Serialization
+
+Serialization in AG-UI provides a standard way to persist and restore the event
+stream that drives an agent–UI session. With a serialized stream you can:
+
+- Restore chat history and UI state after reloads or reconnects
+- Attach to running agents and continue receiving events
+- Create branches (time travel) from any prior run
+- Compact stored history to reduce size without losing meaning
+
+This page explains the model, the updated event fields, and practical usage
+patterns with examples.
+
+## Core Concepts
+
+- Stream serialization – Convert the full event history to and from a portable
+ representation (e.g., JSON) for storage in databases, files, or logs.
+- Event compaction – Reduce verbose streams to snapshots while preserving
+ semantics (e.g., merge content chunks, collapse deltas into snapshots).
+- Run lineage – Track branches of conversation using a `parentRunId`, forming
+ a git‑like append‑only log that enables time travel and alternative paths.
+
+## Updated Event Fields
+
+The `RunStarted` event includes additional optional fields:
+
+```ts
+type RunStartedEvent = BaseEvent & {
+ type: EventType.RUN_STARTED
+ threadId: string
+ runId: string
+ /** Parent for branching/time travel within the same thread */
+ parentRunId?: string
+ /** Exact agent input for this run (may omit messages already in history) */
+ input?: AgentInput
+}
+```
+
+These fields enable lineage tracking and let implementations record precisely
+what was passed to the agent, independent of previously recorded messages.
+
+## Event Compaction
+
+Compaction reduces noise in an event stream while keeping the same observable
+outcome. A typical implementation provides a utility:
+
+```ts
+declare function compactEvents(events: BaseEvent[]): BaseEvent[]
+```
+
+Common compaction rules include:
+
+- Message streams – Combine `TEXT_MESSAGE_*` sequences into a single message
+ snapshot; concatenate adjacent `TEXT_MESSAGE_CONTENT` for the same message.
+- Tool calls – Collapse tool call start/content/end into a compact record.
+- State – Merge consecutive `STATE_DELTA` events into a single final
+ `STATE_SNAPSHOT` and discard superseded updates.
+- Run input normalization – Remove from `RunStarted.input.messages` any
+ messages already present earlier in the stream.
+
+## Branching and Time Travel
+
+Setting `parentRunId` on a `RunStarted` event creates a git‑like lineage. The
+stream becomes an immutable append‑only log where each run can branch from any
+previous run.
+
+```mermaid
+gitGraph
+ commit id: "run1"
+ commit id: "run2"
+ branch alternative
+ checkout alternative
+ commit id: "run3 (parent run2)"
+ commit id: "run4"
+ checkout main
+ commit id: "run5 (parent run2)"
+ commit id: "run6"
+```
+
+Benefits:
+
+- Multiple branches in the same serialized log
+- Immutable history (append‑only)
+- Deterministic time travel to any point
+
+## Examples
+
+### Basic Serialization
+
+```ts
+// Serialize event stream
+const events: BaseEvent[] = [...];
+const serialized = JSON.stringify(events);
+
+await storage.save(threadId, serialized);
+
+// Restore and compact later
+const restored = JSON.parse(await storage.load(threadId));
+const compacted = compactEvents(restored);
+```
+
+### Event Compaction
+
+Before:
+
+```ts
+[
+ { type: "TEXT_MESSAGE_START", messageId: "msg1", role: "user" },
+ { type: "TEXT_MESSAGE_CONTENT", messageId: "msg1", delta: "Hello " },
+ { type: "TEXT_MESSAGE_CONTENT", messageId: "msg1", delta: "world" },
+ { type: "TEXT_MESSAGE_END", messageId: "msg1" },
+ { type: "STATE_DELTA", patch: { op: "add", path: "/foo", value: 1 } },
+ { type: "STATE_DELTA", patch: { op: "replace", path: "/foo", value: 2 } },
+]
+```
+
+After:
+
+```ts
+[
+ {
+ type: "MESSAGES_SNAPSHOT",
+ messages: [{ id: "msg1", role: "user", content: "Hello world" }],
+ },
+ {
+ type: "STATE_SNAPSHOT",
+ state: { foo: 2 },
+ },
+]
+```
+
+### Branching With `parentRunId`
+
+```ts
+// Original run
+{
+ type: "RUN_STARTED",
+ threadId: "thread1",
+ runId: "run1",
+ input: { messages: ["Tell me about Paris"] },
+}
+
+// Branch from run1
+{
+ type: "RUN_STARTED",
+ threadId: "thread1",
+ runId: "run2",
+ parentRunId: "run1",
+ input: { messages: ["Actually, tell me about London instead"] },
+}
+```
+
+### Normalized Input
+
+```ts
+// First run includes full message
+{
+ type: "RUN_STARTED",
+ runId: "run1",
+ input: { messages: [{ id: "msg1", role: "user", content: "Hello" }] },
+}
+
+// Second run omits already‑present message
+{
+ type: "RUN_STARTED",
+ runId: "run2",
+ input: { messages: [{ id: "msg2", role: "user", content: "How are you?" }] },
+ // msg1 omitted; it already exists in history
+}
+```
+
+## Implementation Notes
+
+- Provide SDK helpers for compaction and (de)serialization.
+- Store streams append‑only; prefer incremental writes when possible.
+- Consider compression when persisting long histories.
+- Add indexes by `threadId`, `runId`, and timestamps for fast retrieval.
+
+## See Also
+
+- Concepts: [Events](/concepts/events), [State Management](/concepts/state)
+- SDKs: TypeScript encoder and core event types
+
diff --git a/docs/docs.json b/docs/docs.json
index 664f672bd..b92fca9ba 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -40,8 +40,10 @@
"concepts/architecture",
"concepts/events",
"concepts/agents",
+ "concepts/middleware",
"concepts/messages",
"concepts/state",
+ "concepts/serialization",
"concepts/tools"
]
},
@@ -49,9 +51,7 @@
"group": "Draft Proposals",
"pages": [
"drafts/overview",
- "drafts/activity-events",
"drafts/reasoning",
- "drafts/serialization",
"drafts/multimodal-messages",
"drafts/interrupts",
"drafts/generative-ui",
@@ -85,7 +85,9 @@
"sdk/js/client/overview",
"sdk/js/client/abstract-agent",
"sdk/js/client/http-agent",
- "sdk/js/client/subscriber"
+ "sdk/js/client/middleware",
+ "sdk/js/client/subscriber",
+ "sdk/js/client/compaction"
]
},
"sdk/js/encoder",
diff --git a/docs/drafts/activity-events.mdx b/docs/drafts/activity-events.mdx
deleted file mode 100644
index a1eb5f88c..000000000
--- a/docs/drafts/activity-events.mdx
+++ /dev/null
@@ -1,262 +0,0 @@
----
-title: Activity Events
-description:
- Proposal for representing ongoing agent progress between chat messages
----
-
-# Activity Events Proposal
-
-## Summary
-
-### Problem Statement
-
-Users want to render "activity" updates inline with chat, not just at run start
-or end. Currently, there's no standardized way to represent ongoing agent
-progress between chat messages.
-
-### Motivation
-
-AG-UI is extended with **ActivityEvents** and **ActivityMessages** to represent
-ongoing agent progress in between chat messages. This allows frameworks to
-surface fine-grained activity updates chronologically, giving users immediate
-visibility into what an agent is doing without waiting for the next message or
-run boundary.
-
-## Status
-
-- **Status**: Draft
-- **Author(s)**: Markus Ecker (mail@mme.xyz)
-
-## Background
-
-Users want real-time visibility into agent activities as they happen. Consider
-this example UI:
-
-```
-+------------------------------------------------------------+
-| I will search the internet for relevant information | <- TextMessage
-+------------------------------------------------------------+
-+------------------------------------------------------------+
-| ✓ checking reddit | <- ActivityMessage
-| searching X.com... |
-+------------------------------------------------------------+
-```
-
-### Use Cases
-
-- **Workflows**: Step-by-step progress through workflow execution
-- **Planning**: Intermediate planning or tool use visibility
-- **Custom frameworks**: Signals representing ongoing work in any agent system
-
-## Challenges
-
-- **Flexibility**: Must handle arbitrary activity data from different frameworks
-- **Serializability**: Events must be replayable and rehydrated for session
- recovery
-- **Extensibility**: Developers should define custom renderers per activity
- type, with a generic fallback
-- **Chronology**: Activities must interleave naturally with chat and run events
-
-## Detailed Specification
-
-### Overview
-
-This proposal introduces new concepts to the AG-UI protocol:
-
-1. **ActivitySnapshotEvent** and **ActivityDeltaEvent**: Two new event types following the established state management pattern
-2. **ActivityMessage**: A new message type alongside TextMessage, ToolMessage,
- etc.
-
-Frameworks may emit ActivityEvents, and frontends can render them inline with
-chat.
-
-### New Events: ActivitySnapshotEvent and ActivityDeltaEvent
-
-Following the established pattern in AG-UI (similar to `StateSnapshotEvent` and `StateDeltaEvent`), activities are represented using two complementary events:
-
-#### ActivitySnapshotEvent
-
-Provides the complete activity state at a point in time.
-
-```typescript
-type ActivitySnapshotEvent = BaseEvent & {
- type: EventType.ACTIVITY_SNAPSHOT
- /**
- * Unique identifier for the ActivityMessage this event belongs to.
- */
- messageId: string
- /**
- * Activity type, e.g. "PLAN", "SEARCH", "SCRAPE"
- */
- activityType: string
- /**
- * Complete activity state at this point in time.
- */
- content: Record
-}
-```
-
-#### ActivityDeltaEvent
-
-Provides incremental updates to the activity state.
-
-```typescript
-type ActivityDeltaEvent = BaseEvent & {
- type: EventType.ACTIVITY_DELTA
- /**
- * Unique identifier for the ActivityMessage this event belongs to.
- */
- messageId: string
- /**
- * Activity type, e.g. "PLAN", "SEARCH", "SCRAPE"
- */
- activityType: string
- /**
- * JSON Patch operations to apply to the current activity state.
- * Follows RFC 6902 semantics.
- */
- patch: JSONPatchOperation[]
-}
-```
-
-#### Example Events
-
-Initial activity snapshot:
-
-```json
-{
- "id": "evt_001",
- "ts": 1714064100000,
- "type": "ACTIVITY_SNAPSHOT",
- "messageId": "msg_789",
- "activityType": "PLAN",
- "content": {
- "tasks": ["check reddit", "search X.com"]
- }
-}
-```
-
-Incremental update via patch:
-
-```json
-{
- "id": "evt_002",
- "ts": 1714064120000,
- "type": "ACTIVITY_DELTA",
- "messageId": "msg_789",
- "activityType": "PLAN",
- "patch": [
- {
- "op": "replace",
- "path": "/tasks/0",
- "value": "✓ check reddit"
- }
- ]
-}
-```
-
-### New Message: ActivityMessage
-
-```typescript
-type ActivityMessage = {
- id: string
- role: "activity"
- activityType: string
- /**
- * Finalized activity content as of compaction.
- */
- content: Record
-}
-```
-
-### Rendering Strategy
-
-- **Generic renderer**: Displays raw snapshot/patch as JSON or formatted text
-- **Custom renderer**: Developers can register a renderer per `activityType`:
- - `"PLAN"` → Interactive checklist component
- - `"SEARCH"` → Live status with progress indicators
- - `"WORKFLOW"` → Step-by-step workflow visualization
-
-## Implementation Considerations
-
-### Client SDK Changes
-
-TypeScript SDK additions:
-
-- New `ActivitySnapshotEvent` and `ActivityDeltaEvent` types in `@ag-ui/core`
-- New `ActivityMessage` type in message unions
-- Activity renderer registry in `@ag-ui/client`
-- JSON Patch utilities for activity updates
-
-Python SDK additions:
-
-- New `ActivitySnapshotEvent` and `ActivityDeltaEvent` classes in `ag_ui.core.events`
-- New `ActivityMessage` class in message types
-- Activity serialization/deserialization support
-- JSON Patch utilities for activity updates
-
-### Integration Impact
-
-- **Planning Frameworks**: Can emit ActivitySnapshotEvent/ActivityDeltaEvent during planning or tool
- execution phases
-- **Workflow Systems**: Can surface step-by-step workflow progress as
- ActivitySnapshotEvent/ActivityDeltaEvent
-- **Other frameworks**: May emit ActivitySnapshotEvent/ActivityDeltaEvent freely; AG-UI will serialize
- them like other events
-
-## Examples and Use Cases
-
-### Example 1: Web Search Activity
-
-```typescript
-// Agent emits initial search activity snapshot
-agent.emitActivitySnapshot({
- messageId: "msg_123",
- activityType: "SEARCH",
- content: {
- sources: [
- { name: "Reddit", status: "pending" },
- { name: "X.com", status: "pending" },
- { name: "Google", status: "pending" },
- ],
- },
-})
-
-// Update as search progresses
-agent.emitActivityDelta({
- messageId: "msg_123",
- activityType: "SEARCH",
- patch: [
- {
- op: "replace",
- path: "/sources/0/status",
- value: "complete",
- }
- ],
-})
-```
-
-### Use Case: Multi-Step Workflow Visibility
-
-A data analysis agent performing multiple steps:
-
-1. Loading dataset → ActivitySnapshotEvent/ActivityDeltaEvent shows progress bar
-2. Cleaning data → ActivitySnapshotEvent/ActivityDeltaEvent shows rows processed
-3. Running analysis → ActivitySnapshotEvent/ActivityDeltaEvent shows current computation
-4. Generating report → ActivitySnapshotEvent/ActivityDeltaEvent shows sections completed
-
-Each step appears inline with chat, giving users real-time feedback.
-
-## Testing Strategy
-
-- Unit tests for ActivitySnapshotEvent/ActivityDeltaEvent serialization/deserialization
-- Integration tests with mock frameworks emitting ActivitySnapshotEvent/ActivityDeltaEvent
-- E2E tests in AG-UI Dojo demonstrating activity rendering
-- Performance benchmarks for high-frequency activity updates
-- JSON Patch application correctness tests
-
-## References
-
-- [JSON Patch RFC 6902](https://tools.ietf.org/html/rfc6902)
-- [AG-UI Events Documentation](/concepts/events)
-- [AG-UI Messages Documentation](/concepts/messages)
diff --git a/docs/drafts/multimodal-messages.mdx b/docs/drafts/multimodal-messages.mdx
index 969032fc9..6b375ff89 100644
--- a/docs/drafts/multimodal-messages.mdx
+++ b/docs/drafts/multimodal-messages.mdx
@@ -21,7 +21,7 @@ apps. Inputs may include text, images, audio, and files.
## Status
-- **Status**: Draft
+- **Status**: Implemented — October 16, 2025
- **Author(s)**: Markus Ecker (mail@mme.xyz)
## Detailed Specification
diff --git a/docs/drafts/overview.mdx b/docs/drafts/overview.mdx
index a8c307bc5..1acc15a44 100644
--- a/docs/drafts/overview.mdx
+++ b/docs/drafts/overview.mdx
@@ -10,15 +10,6 @@ This section contains draft changes being considered for the AG-UI protocol. The
## Current Drafts
-
- Represent ongoing agent progress between chat messages with fine-grained activity updates
-
Support for LLM reasoning visibility and continuity with encrypted content
-
- Stream serialization for chat history restoration and event compaction
-
+
=18'}
-
- '@alloc/quick-lru@5.2.0':
- resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
- engines: {node: '>=10'}
-
- '@ark/schema@0.49.0':
- resolution: {integrity: sha512-GphZBLpW72iS0v4YkeUtV3YIno35Gimd7+ezbPO9GwEi9kzdUrPVjvf6aXSBAfHikaFc/9pqZOpv3pOXnC71tw==}
-
- '@ark/util@0.49.0':
- resolution: {integrity: sha512-/BtnX7oCjNkxi2vi6y1399b+9xd1jnCrDYhZ61f0a+3X8x8DxlK52VgEEzyuC2UQMPACIfYrmHkhD3lGt2GaMA==}
-
- '@asyncapi/parser@3.4.0':
- resolution: {integrity: sha512-Sxn74oHiZSU6+cVeZy62iPZMFMvKp4jupMFHelSICCMw1qELmUHPvuZSr+ZHDmNGgHcEpzJM5HN02kR7T4g+PQ==}
-
- '@asyncapi/specs@6.10.0':
- resolution: {integrity: sha512-vB5oKLsdrLUORIZ5BXortZTlVyGWWMC1Nud/0LtgxQ3Yn2738HigAD6EVqScvpPsDUI/bcLVsYEXN4dtXQHVng==}
-
- '@babel/code-frame@7.27.1':
- resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.27.1':
- resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
- engines: {node: '>=6.9.0'}
-
- '@emnapi/runtime@1.5.0':
- resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
-
- '@floating-ui/core@1.7.3':
- resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
-
- '@floating-ui/dom@1.7.4':
- resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==}
-
- '@floating-ui/react-dom@2.1.6':
- resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
-
- '@floating-ui/utils@0.2.10':
- resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
-
- '@icons-pack/react-simple-icons@11.2.0':
- resolution: {integrity: sha512-jCJ+1Fe0yiBQGYSfhx8QGU/9o27t8J4Hw3mxHEI9vohRltLSi5CaPzO2fCQcMNeTrAUAm4j+yaDuAutskiKRjA==}
- peerDependencies:
- react: ^16.13 || ^17 || ^18 || ^19
-
- '@img/sharp-darwin-arm64@0.33.5':
- resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm64]
- os: [darwin]
-
- '@img/sharp-darwin-x64@0.33.5':
- resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [darwin]
-
- '@img/sharp-libvips-darwin-arm64@1.0.4':
- resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
- cpu: [arm64]
- os: [darwin]
-
- '@img/sharp-libvips-darwin-x64@1.0.4':
- resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
- cpu: [x64]
- os: [darwin]
-
- '@img/sharp-libvips-linux-arm64@1.0.4':
- resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-libvips-linux-arm@1.0.5':
- resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
- cpu: [arm]
- os: [linux]
-
- '@img/sharp-libvips-linux-s390x@1.0.4':
- resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
- cpu: [s390x]
- os: [linux]
-
- '@img/sharp-libvips-linux-x64@1.0.4':
- resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
- resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-libvips-linuxmusl-x64@1.0.4':
- resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-linux-arm64@0.33.5':
- resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-linux-arm@0.33.5':
- resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm]
- os: [linux]
-
- '@img/sharp-linux-s390x@0.33.5':
- resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [s390x]
- os: [linux]
-
- '@img/sharp-linux-x64@0.33.5':
- resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-linuxmusl-arm64@0.33.5':
- resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-linuxmusl-x64@0.33.5':
- resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-wasm32@0.33.5':
- resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [wasm32]
-
- '@img/sharp-win32-ia32@0.33.5':
- resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [ia32]
- os: [win32]
-
- '@img/sharp-win32-x64@0.33.5':
- resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [win32]
-
- '@inquirer/ansi@1.0.0':
- resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==}
- engines: {node: '>=18'}
-
- '@inquirer/checkbox@4.2.4':
- resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/confirm@5.1.18':
- resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/core@10.2.2':
- resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/editor@4.2.20':
- resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/expand@4.0.20':
- resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/external-editor@1.0.2':
- resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/figures@1.0.13':
- resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==}
- engines: {node: '>=18'}
-
- '@inquirer/input@4.2.4':
- resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/number@3.0.20':
- resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/password@4.0.20':
- resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/prompts@7.8.6':
- resolution: {integrity: sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/rawlist@4.1.8':
- resolution: {integrity: sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/search@3.1.3':
- resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/select@4.3.4':
- resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/type@3.0.8':
- resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
-
- '@jridgewell/gen-mapping@0.3.13':
- resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.5':
- resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
-
- '@jridgewell/trace-mapping@0.3.31':
- resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
-
- '@jsep-plugin/assignment@1.3.0':
- resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==}
- engines: {node: '>= 10.16.0'}
- peerDependencies:
- jsep: ^0.4.0||^1.0.0
-
- '@jsep-plugin/regex@1.0.4':
- resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==}
- engines: {node: '>= 10.16.0'}
- peerDependencies:
- jsep: ^0.4.0||^1.0.0
-
- '@jsep-plugin/ternary@1.1.4':
- resolution: {integrity: sha512-ck5wiqIbqdMX6WRQztBL7ASDty9YLgJ3sSAK5ZpBzXeySvFGCzIvM6UiAI4hTZ22fEcYQVV/zhUbNscggW+Ukg==}
- engines: {node: '>= 10.16.0'}
- peerDependencies:
- jsep: ^0.4.0||^1.0.0
-
- '@leichtgewicht/ip-codec@2.0.5':
- resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==}
-
- '@mdx-js/mdx@3.1.1':
- resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
-
- '@mdx-js/react@3.1.1':
- resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==}
- peerDependencies:
- '@types/react': '>=16'
- react: '>=16'
-
- '@mintlify/cli@4.0.727':
- resolution: {integrity: sha512-6iplgwOC9wK1FFdSFE9NX92qhxF0TkuZADf2rVkSR/A3MQ9LzTh9iKttRWD0q66pQ8l2kwOhzwqt/tW22ZLmcA==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- '@mintlify/common@1.0.537':
- resolution: {integrity: sha512-Mqm9OuXhaL0mVxkbPZHTIYNH8cVZdh9lsi5GHSGl8U7Vc+qHfv0CS+fempV1RAg6zRBjdSwD5rh43RMrPJSl/Q==}
-
- '@mintlify/link-rot@3.0.674':
- resolution: {integrity: sha512-QzbMAva0GdbBBG6R+pWmHrVzNdR08ug6e6a5Tnxk1NaNr8+/YR7cehu5xdAX31aO6n+CIv8Ot5HxzsqsY2vwtA==}
- engines: {node: '>=18.0.0'}
-
- '@mintlify/mdx@2.0.11':
- resolution: {integrity: sha512-yXwuM0BNCxNaJetPrh89c5Q2lhzU2al4QrOM3zLUdrPOdjOpPmv8ewcdiXV/qIhZDpl5Ll9k47dsz33bZjVWTg==}
- peerDependencies:
- '@radix-ui/react-popover': ^1.1.15
- react: ^18.3.1
- react-dom: ^18.3.1
-
- '@mintlify/models@0.0.229':
- resolution: {integrity: sha512-1P3R6dQFNzjTbmVDCQf/vAGFGOEUdUv6sCaJAmZCNWY2mhwgvDU/Oa2YLiNmVrAqnWDH1Pkz5nq+i7gClrdXgA==}
- engines: {node: '>=18.0.0'}
-
- '@mintlify/openapi-parser@0.0.7':
- resolution: {integrity: sha512-3ecbkzPbsnkKVZJypVL0H5pCTR7a4iLv4cP7zbffzAwy+vpH70JmPxNVpPPP62yLrdZlfNcMxu5xKeT7fllgMg==}
- engines: {node: '>=18'}
-
- '@mintlify/prebuild@1.0.661':
- resolution: {integrity: sha512-hcYLxhf53RV6hecJLIEdG7ajQuTtDj3vuoueeLmhcVXEDYkvKKa36EOk9/olLUDvjqsENnK601NmdmHPd80pJA==}
-
- '@mintlify/previewing@4.0.710':
- resolution: {integrity: sha512-3SyO58i7kmR4W+UCcP9gq/wTKsJ0Vs+pudFnfJt5Qk1QIMTXbZGjC/ojaYDbGqSt+VOmIPwbGchQzZrAp1aXbA==}
- engines: {node: '>=18.0.0'}
-
- '@mintlify/scraping@4.0.396':
- resolution: {integrity: sha512-cPavXt7yrnyGLNb5QEY8C8anPfw9Tj8TL7CVE76Ey/+l7sae9inLd2f5E3vKYfWrqyIouxGmvA+pFuenOt66aw==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- '@mintlify/validation@0.1.471':
- resolution: {integrity: sha512-lf4zp9sJspXmDA9HH9VaJfK4ll+BaaH9XxuU2SVNuploKjRKmpHYFfN9YI42pA2bda/X32rkqDZSRI+JHdQcNg==}
-
- '@nodelib/fs.scandir@2.1.5':
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.stat@2.0.5':
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.walk@1.2.8':
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
-
- '@openapi-contrib/openapi-schema-to-json-schema@3.2.0':
- resolution: {integrity: sha512-Gj6C0JwCr8arj0sYuslWXUBSP/KnUlEGnPW4qxlXvAl543oaNQgMgIgkQUA6vs5BCCvwTEiL8m/wdWzfl4UvSw==}
-
- '@pkgjs/parseargs@0.11.0':
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
-
- '@puppeteer/browsers@2.3.0':
- resolution: {integrity: sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA==}
- engines: {node: '>=18'}
- hasBin: true
-
- '@radix-ui/primitive@1.1.3':
- resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==}
-
- '@radix-ui/react-arrow@1.1.7':
- resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-compose-refs@1.1.2':
- resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-context@1.1.2':
- resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-dismissable-layer@1.1.11':
- resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-focus-guards@1.1.3':
- resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-focus-scope@1.1.7':
- resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-id@1.1.1':
- resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-popover@1.1.15':
- resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-popper@1.2.8':
- resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-portal@1.1.9':
- resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-presence@1.1.5':
- resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-primitive@2.1.3':
- resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-slot@1.2.3':
- resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-callback-ref@1.1.1':
- resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-controllable-state@1.2.2':
- resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-effect-event@0.0.2':
- resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-escape-keydown@1.1.1':
- resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-layout-effect@1.1.1':
- resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-rect@1.1.1':
- resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-size@1.1.1':
- resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/rect@1.1.1':
- resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
-
- '@shikijs/core@3.13.0':
- resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==}
-
- '@shikijs/engine-javascript@3.13.0':
- resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==}
-
- '@shikijs/engine-oniguruma@3.13.0':
- resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==}
-
- '@shikijs/langs@3.13.0':
- resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==}
-
- '@shikijs/themes@3.13.0':
- resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==}
-
- '@shikijs/transformers@3.13.0':
- resolution: {integrity: sha512-833lcuVzcRiG+fXvgslWsM2f4gHpjEgui1ipIknSizRuTgMkNZupiXE5/TVJ6eSYfhNBFhBZKkReKWO2GgYmqA==}
-
- '@shikijs/twoslash@3.13.0':
- resolution: {integrity: sha512-OmNKNoZ8Hevt4VKQHfJL+hrsrqLSnW/Nz7RMutuBqXBCIYZWk80HnF9pcXEwRmy9MN0MGRmZCW2rDDP8K7Bxkw==}
- peerDependencies:
- typescript: '>=5.5.0'
-
- '@shikijs/types@3.13.0':
- resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==}
-
- '@shikijs/vscode-textmate@10.0.2':
- resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
-
- '@sindresorhus/is@5.6.0':
- resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==}
- engines: {node: '>=14.16'}
-
- '@sindresorhus/slugify@2.2.1':
- resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==}
- engines: {node: '>=12'}
-
- '@sindresorhus/transliterate@1.6.0':
- resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==}
- engines: {node: '>=12'}
-
- '@socket.io/component-emitter@3.1.2':
- resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==}
-
- '@stoplight/better-ajv-errors@1.0.3':
- resolution: {integrity: sha512-0p9uXkuB22qGdNfy3VeEhxkU5uwvp/KrBTAbrLBURv6ilxIVwanKwjMc41lQfIVgPGcOkmLbTolfFrSsueu7zA==}
- engines: {node: ^12.20 || >= 14.13}
- peerDependencies:
- ajv: '>=8'
-
- '@stoplight/json-ref-readers@1.2.2':
- resolution: {integrity: sha512-nty0tHUq2f1IKuFYsLM4CXLZGHdMn+X/IwEUIpeSOXt0QjMUbL0Em57iJUDzz+2MkWG83smIigNZ3fauGjqgdQ==}
- engines: {node: '>=8.3.0'}
-
- '@stoplight/json-ref-resolver@3.1.6':
- resolution: {integrity: sha512-YNcWv3R3n3U6iQYBsFOiWSuRGE5su1tJSiX6pAPRVk7dP0L7lqCteXGzuVRQ0gMZqUl8v1P0+fAKxF6PLo9B5A==}
- engines: {node: '>=8.3.0'}
-
- '@stoplight/json@3.21.0':
- resolution: {integrity: sha512-5O0apqJ/t4sIevXCO3SBN9AHCEKKR/Zb4gaj7wYe5863jme9g02Q0n/GhM7ZCALkL+vGPTe4ZzTETP8TFtsw3g==}
- engines: {node: '>=8.3.0'}
-
- '@stoplight/ordered-object-literal@1.0.5':
- resolution: {integrity: sha512-COTiuCU5bgMUtbIFBuyyh2/yVVzlr5Om0v5utQDgBCuQUOPgU1DwoffkTfg4UBQOvByi5foF4w4T+H9CoRe5wg==}
- engines: {node: '>=8'}
-
- '@stoplight/path@1.3.2':
- resolution: {integrity: sha512-lyIc6JUlUA8Ve5ELywPC8I2Sdnh1zc1zmbYgVarhXIp9YeAB0ReeqmGEOWNtlHkbP2DAA1AL65Wfn2ncjK/jtQ==}
- engines: {node: '>=8'}
-
- '@stoplight/spectral-core@1.20.0':
- resolution: {integrity: sha512-5hBP81nCC1zn1hJXL/uxPNRKNcB+/pEIHgCjPRpl/w/qy9yC9ver04tw1W0l/PMiv0UeB5dYgozXVQ4j5a6QQQ==}
- engines: {node: ^16.20 || ^18.18 || >= 20.17}
-
- '@stoplight/spectral-formats@1.8.2':
- resolution: {integrity: sha512-c06HB+rOKfe7tuxg0IdKDEA5XnjL2vrn/m/OVIIxtINtBzphZrOgtRn7epQ5bQF5SWp84Ue7UJWaGgDwVngMFw==}
- engines: {node: ^16.20 || ^18.18 || >= 20.17}
-
- '@stoplight/spectral-functions@1.10.1':
- resolution: {integrity: sha512-obu8ZfoHxELOapfGsCJixKZXZcffjg+lSoNuttpmUFuDzVLT3VmH8QkPXfOGOL5Pz80BR35ClNAToDkdnYIURg==}
- engines: {node: ^16.20 || ^18.18 || >= 20.17}
-
- '@stoplight/spectral-parsers@1.0.5':
- resolution: {integrity: sha512-ANDTp2IHWGvsQDAY85/jQi9ZrF4mRrA5bciNHX+PUxPr4DwS6iv4h+FVWJMVwcEYdpyoIdyL+SRmHdJfQEPmwQ==}
- engines: {node: ^16.20 || ^18.18 || >= 20.17}
-
- '@stoplight/spectral-ref-resolver@1.0.5':
- resolution: {integrity: sha512-gj3TieX5a9zMW29z3mBlAtDOCgN3GEc1VgZnCVlr5irmR4Qi5LuECuFItAq4pTn5Zu+sW5bqutsCH7D4PkpyAA==}
- engines: {node: ^16.20 || ^18.18 || >= 20.17}
-
- '@stoplight/spectral-runtime@1.1.4':
- resolution: {integrity: sha512-YHbhX3dqW0do6DhiPSgSGQzr6yQLlWybhKwWx0cqxjMwxej3TqLv3BXMfIUYFKKUqIwH4Q2mV8rrMM8qD2N0rQ==}
- engines: {node: ^16.20 || ^18.18 || >= 20.17}
-
- '@stoplight/types@13.20.0':
- resolution: {integrity: sha512-2FNTv05If7ib79VPDA/r9eUet76jewXFH2y2K5vuge6SXbRHtWBhcaRmu+6QpF4/WRNoJj5XYRSwLGXDxysBGA==}
- engines: {node: ^12.20 || >=14.13}
-
- '@stoplight/types@13.6.0':
- resolution: {integrity: sha512-dzyuzvUjv3m1wmhPfq82lCVYGcXG0xUYgqnWfCq3PCVR4BKFhjdkHrnJ+jIDoMKvXb05AZP/ObQF6+NpDo29IQ==}
- engines: {node: ^12.20 || >=14.13}
-
- '@stoplight/types@14.1.1':
- resolution: {integrity: sha512-/kjtr+0t0tjKr+heVfviO9FrU/uGLc+QNX3fHJc19xsCNYqU7lVhaXxDmEID9BZTjG+/r9pK9xP/xU02XGg65g==}
- engines: {node: ^12.20 || >=14.13}
-
- '@stoplight/yaml-ast-parser@0.0.50':
- resolution: {integrity: sha512-Pb6M8TDO9DtSVla9yXSTAxmo9GVEouq5P40DWXdOie69bXogZTkgvopCq+yEvTMA0F6PEvdJmbtTV3ccIp11VQ==}
-
- '@stoplight/yaml@4.3.0':
- resolution: {integrity: sha512-JZlVFE6/dYpP9tQmV0/ADfn32L9uFarHWxfcRhReKUnljz1ZiUM5zpX+PH8h5CJs6lao3TuFqnPm9IJJCEkE2w==}
- engines: {node: '>=10.8'}
-
- '@szmarczak/http-timer@5.0.1':
- resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==}
- engines: {node: '>=14.16'}
-
- '@tootallnate/quickjs-emscripten@0.23.0':
- resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
-
- '@types/cors@2.8.19':
- resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
-
- '@types/debug@4.1.12':
- resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
-
- '@types/es-aggregate-error@1.0.6':
- resolution: {integrity: sha512-qJ7LIFp06h1QE1aVxbVd+zJP2wdaugYXYfd6JxsyRMrYHaxb6itXPogW2tz+ylUJ1n1b+JF1PHyYCfYHm0dvUg==}
-
- '@types/estree-jsx@1.0.5':
- resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
-
- '@types/estree@1.0.8':
- resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
-
- '@types/hast@3.0.4':
- resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
-
- '@types/http-cache-semantics@4.0.4':
- resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
-
- '@types/json-schema@7.0.15':
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
-
- '@types/katex@0.16.7':
- resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
-
- '@types/mdast@4.0.4':
- resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
-
- '@types/mdx@2.0.13':
- resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
-
- '@types/ms@2.1.0':
- resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
-
- '@types/nlcst@2.0.3':
- resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
-
- '@types/node@24.5.2':
- resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==}
-
- '@types/react@19.1.13':
- resolution: {integrity: sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==}
-
- '@types/unist@2.0.11':
- resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
-
- '@types/unist@3.0.3':
- resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
-
- '@types/urijs@1.19.25':
- resolution: {integrity: sha512-XOfUup9r3Y06nFAZh3WvO0rBU4OtlfPB/vgxpjg+NRdGU6CN6djdc6OEiH+PcqHCY6eFLo9Ista73uarf4gnBg==}
-
- '@types/yauzl@2.10.3':
- resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
-
- '@typescript/vfs@1.6.1':
- resolution: {integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==}
- peerDependencies:
- typescript: '*'
-
- '@ungap/structured-clone@1.3.0':
- resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
-
- abort-controller@3.0.0:
- resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
- engines: {node: '>=6.5'}
-
- accepts@1.3.8:
- resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
- engines: {node: '>= 0.6'}
-
- acorn-jsx@5.3.2:
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- acorn@8.15.0:
- resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- address@1.2.2:
- resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
- engines: {node: '>= 10.0.0'}
-
- agent-base@7.1.4:
- resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
- engines: {node: '>= 14'}
-
- aggregate-error@4.0.1:
- resolution: {integrity: sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==}
- engines: {node: '>=12'}
-
- ajv-draft-04@1.0.0:
- resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==}
- peerDependencies:
- ajv: ^8.5.0
- peerDependenciesMeta:
- ajv:
- optional: true
-
- ajv-errors@3.0.0:
- resolution: {integrity: sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ==}
- peerDependencies:
- ajv: ^8.0.1
-
- ajv-formats@2.1.1:
- resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
- peerDependencies:
- ajv: ^8.0.0
- peerDependenciesMeta:
- ajv:
- optional: true
-
- ajv-formats@3.0.1:
- resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==}
- peerDependencies:
- ajv: ^8.0.0
- peerDependenciesMeta:
- ajv:
- optional: true
-
- ajv@8.17.1:
- resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
-
- ansi-escapes@7.1.1:
- resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==}
- engines: {node: '>=18'}
-
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- ansi-styles@6.2.3:
- resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
- engines: {node: '>=12'}
-
- any-promise@1.3.0:
- resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
-
- anymatch@3.1.3:
- resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
- engines: {node: '>= 8'}
-
- arg@5.0.2:
- resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
-
- argparse@1.0.10:
- resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-
- argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-
- aria-hidden@1.2.6:
- resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
- engines: {node: '>=10'}
-
- arktype@2.1.22:
- resolution: {integrity: sha512-xdzl6WcAhrdahvRRnXaNwsipCgHuNoLobRqhiP8RjnfL9Gp947abGlo68GAIyLtxbD+MLzNyH2YR4kEqioMmYQ==}
-
- array-buffer-byte-length@1.0.2:
- resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
- engines: {node: '>= 0.4'}
-
- array-flatten@1.1.1:
- resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
-
- array-iterate@2.0.1:
- resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
-
- arraybuffer.prototype.slice@1.0.4:
- resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
- engines: {node: '>= 0.4'}
-
- ast-types@0.13.4:
- resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
- engines: {node: '>=4'}
-
- astring@1.9.0:
- resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
- hasBin: true
-
- async-function@1.0.0:
- resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
- engines: {node: '>= 0.4'}
-
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
- auto-bind@5.0.1:
- resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- available-typed-arrays@1.0.7:
- resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
- engines: {node: '>= 0.4'}
-
- avsc@5.7.9:
- resolution: {integrity: sha512-yOA4wFeI7ET3v32Di/sUybQ+ttP20JHSW3mxLuNGeO0uD6PPcvLrIQXSvy/rhJOWU5JrYh7U4OHplWMmtAtjMg==}
- engines: {node: '>=0.11'}
-
- axios@1.12.2:
- resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==}
-
- b4a@1.7.2:
- resolution: {integrity: sha512-DyUOdz+E8R6+sruDpQNOaV0y/dBbV6X/8ZkxrDcR0Ifc3BgKlpgG0VAtfOozA0eMtJO5GGe9FsZhueLs00pTww==}
- peerDependencies:
- react-native-b4a: '*'
- peerDependenciesMeta:
- react-native-b4a:
- optional: true
-
- bail@2.0.2:
- resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
-
- balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- bare-events@2.7.0:
- resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==}
-
- bare-fs@4.4.4:
- resolution: {integrity: sha512-Q8yxM1eLhJfuM7KXVP3zjhBvtMJCYRByoTT+wHXjpdMELv0xICFJX+1w4c7csa+WZEOsq4ItJ4RGwvzid6m/dw==}
- engines: {bare: '>=1.16.0'}
- peerDependencies:
- bare-buffer: '*'
- peerDependenciesMeta:
- bare-buffer:
- optional: true
-
- bare-os@3.6.2:
- resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==}
- engines: {bare: '>=1.14.0'}
-
- bare-path@3.0.0:
- resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==}
-
- bare-stream@2.7.0:
- resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==}
- peerDependencies:
- bare-buffer: '*'
- bare-events: '*'
- peerDependenciesMeta:
- bare-buffer:
- optional: true
- bare-events:
- optional: true
-
- bare-url@2.2.2:
- resolution: {integrity: sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==}
-
- base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
-
- base64id@2.0.0:
- resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
- engines: {node: ^4.5.0 || >= 5.9}
-
- basic-ftp@5.0.5:
- resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
- engines: {node: '>=10.0.0'}
-
- better-opn@3.0.2:
- resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==}
- engines: {node: '>=12.0.0'}
-
- binary-extensions@2.3.0:
- resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
- engines: {node: '>=8'}
-
- body-parser@1.20.3:
- resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
-
- brace-expansion@1.1.12:
- resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
-
- brace-expansion@2.0.2:
- resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
- buffer-crc32@0.2.13:
- resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
-
- buffer@5.7.1:
- resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
-
- bytes@3.1.2:
- resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
- engines: {node: '>= 0.8'}
-
- cacheable-lookup@7.0.0:
- resolution: {integrity: sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==}
- engines: {node: '>=14.16'}
-
- cacheable-request@10.2.14:
- resolution: {integrity: sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==}
- engines: {node: '>=14.16'}
-
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- call-bind@1.0.8:
- resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
- engines: {node: '>= 0.4'}
-
- call-bound@1.0.4:
- resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
- engines: {node: '>= 0.4'}
-
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- camelcase-css@2.0.1:
- resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
- engines: {node: '>= 6'}
-
- ccount@2.0.1:
- resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
-
- chalk@5.6.2:
- resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
-
- character-entities-html4@2.1.0:
- resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
-
- character-entities-legacy@3.0.0:
- resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
-
- character-entities@2.0.2:
- resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
-
- character-reference-invalid@2.0.1:
- resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
-
- chardet@2.1.0:
- resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==}
-
- chokidar@3.6.0:
- resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
- engines: {node: '>= 8.10.0'}
-
- chownr@2.0.0:
- resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
- engines: {node: '>=10'}
-
- chromium-bidi@0.6.3:
- resolution: {integrity: sha512-qXlsCmpCZJAnoTYI83Iu6EdYQpMYdVkCfq08KDh2pmlVqK5t5IA9mGs4/LwCwp4fqisSOMXZxP3HIh8w8aRn0A==}
- peerDependencies:
- devtools-protocol: '*'
-
- clean-stack@4.2.0:
- resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==}
- engines: {node: '>=12'}
-
- cli-boxes@3.0.0:
- resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
- engines: {node: '>=10'}
-
- cli-cursor@4.0.0:
- resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- cli-spinners@2.9.2:
- resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
- engines: {node: '>=6'}
-
- cli-truncate@4.0.0:
- resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
- engines: {node: '>=18'}
-
- cli-width@4.1.0:
- resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
- engines: {node: '>= 12'}
-
- cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
-
- code-excerpt@4.0.0:
- resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- collapse-white-space@2.1.0:
- resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
-
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- color-string@1.9.1:
- resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
-
- color@4.2.3:
- resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
- engines: {node: '>=12.5.0'}
-
- combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
-
- comma-separated-tokens@2.0.3:
- resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
-
- commander@4.1.1:
- resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
- engines: {node: '>= 6'}
-
- commander@8.3.0:
- resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
- engines: {node: '>= 12'}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
- content-disposition@0.5.4:
- resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
- engines: {node: '>= 0.6'}
-
- content-type@1.0.5:
- resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
- engines: {node: '>= 0.6'}
-
- convert-to-spaces@2.0.1:
- resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- cookie-signature@1.0.6:
- resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
-
- cookie@0.7.1:
- resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
- engines: {node: '>= 0.6'}
-
- cookie@0.7.2:
- resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
- engines: {node: '>= 0.6'}
-
- cors@2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
- engines: {node: '>= 0.10'}
-
- cosmiconfig@9.0.0:
- resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==}
- engines: {node: '>=14'}
- peerDependencies:
- typescript: '>=4.9.5'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- cross-spawn@7.0.6:
- resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
- engines: {node: '>= 8'}
-
- cssesc@3.0.0:
- resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
- engines: {node: '>=4'}
- hasBin: true
-
- csstype@3.1.3:
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
-
- data-uri-to-buffer@6.0.2:
- resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
- engines: {node: '>= 14'}
-
- data-view-buffer@1.0.2:
- resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-length@1.0.2:
- resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-offset@1.0.1:
- resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
- engines: {node: '>= 0.4'}
-
- debug@2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.3.7:
- resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.4.3:
- resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- decode-named-character-reference@1.2.0:
- resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
-
- decompress-response@6.0.0:
- resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
- engines: {node: '>=10'}
-
- defer-to-connect@2.0.1:
- resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
- engines: {node: '>=10'}
-
- define-data-property@1.1.4:
- resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
- engines: {node: '>= 0.4'}
-
- define-lazy-prop@2.0.0:
- resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
- engines: {node: '>=8'}
-
- define-properties@1.2.1:
- resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
- engines: {node: '>= 0.4'}
-
- degenerator@5.0.1:
- resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
- engines: {node: '>= 14'}
-
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
- depd@2.0.0:
- resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
- engines: {node: '>= 0.8'}
-
- dependency-graph@0.11.0:
- resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==}
- engines: {node: '>= 0.6.0'}
-
- dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
-
- destroy@1.2.0:
- resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
-
- detect-libc@2.1.1:
- resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==}
- engines: {node: '>=8'}
-
- detect-node-es@1.1.0:
- resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
-
- detect-port@1.6.1:
- resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==}
- engines: {node: '>= 4.0.0'}
- hasBin: true
-
- devlop@1.1.0:
- resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
-
- devtools-protocol@0.0.1312386:
- resolution: {integrity: sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==}
-
- didyoumean@1.2.2:
- resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
-
- dlv@1.1.3:
- resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
-
- dns-packet@5.6.1:
- resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
- engines: {node: '>=6'}
-
- dns-socket@4.2.2:
- resolution: {integrity: sha512-BDeBd8najI4/lS00HSKpdFia+OvUMytaVjfzR9n5Lq8MlZRSvtbI+uLtx1+XmQFls5wFU9dssccTmQQ6nfpjdg==}
- engines: {node: '>=6'}
-
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
- eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
- ee-first@1.1.1:
- resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
-
- emoji-regex@10.5.0:
- resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==}
-
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
- emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-
- encodeurl@1.0.2:
- resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
- engines: {node: '>= 0.8'}
-
- encodeurl@2.0.0:
- resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
- engines: {node: '>= 0.8'}
-
- end-of-stream@1.4.5:
- resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
-
- engine.io-parser@5.2.3:
- resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==}
- engines: {node: '>=10.0.0'}
-
- engine.io@6.6.4:
- resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==}
- engines: {node: '>=10.2.0'}
-
- entities@6.0.1:
- resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
- engines: {node: '>=0.12'}
-
- env-paths@2.2.1:
- resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
- engines: {node: '>=6'}
-
- environment@1.1.0:
- resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
- engines: {node: '>=18'}
-
- error-ex@1.3.4:
- resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
-
- es-abstract@1.24.0:
- resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==}
- engines: {node: '>= 0.4'}
-
- es-aggregate-error@1.0.14:
- resolution: {integrity: sha512-3YxX6rVb07B5TV11AV5wsL7nQCHXNwoHPsQC8S4AmBiqYhyNCJ5BRKXkXyDJvs8QzXN20NgRtxe3dEEQD9NLHA==}
- engines: {node: '>= 0.4'}
-
- es-define-property@1.0.1:
- resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
- engines: {node: '>= 0.4'}
-
- es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- es-set-tostringtag@2.1.0:
- resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
- engines: {node: '>= 0.4'}
-
- es-to-primitive@1.3.0:
- resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
- engines: {node: '>= 0.4'}
-
- es-toolkit@1.39.10:
- resolution: {integrity: sha512-E0iGnTtbDhkeczB0T+mxmoVlT4YNweEKBLq7oaU4p11mecdsZpNWOglI4895Vh4usbQ+LsJiuLuI2L0Vdmfm2w==}
-
- esast-util-from-estree@2.0.0:
- resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
-
- esast-util-from-js@2.0.1:
- resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
-
- escalade@3.2.0:
- resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
- engines: {node: '>=6'}
-
- escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
-
- escape-string-regexp@2.0.0:
- resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
- engines: {node: '>=8'}
-
- escape-string-regexp@5.0.0:
- resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
- engines: {node: '>=12'}
-
- escodegen@2.1.0:
- resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
- engines: {node: '>=6.0'}
- hasBin: true
-
- esprima@4.0.1:
- resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
- engines: {node: '>=4'}
- hasBin: true
-
- estraverse@5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- engines: {node: '>=4.0'}
-
- estree-util-attach-comments@3.0.0:
- resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
-
- estree-util-build-jsx@3.0.1:
- resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
-
- estree-util-is-identifier-name@3.0.0:
- resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
-
- estree-util-scope@1.0.0:
- resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==}
-
- estree-util-to-js@2.0.0:
- resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
-
- estree-util-visit@2.0.0:
- resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
-
- estree-walker@3.0.3:
- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
-
- esutils@2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
-
- etag@1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
- engines: {node: '>= 0.6'}
-
- event-target-shim@5.0.1:
- resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
- engines: {node: '>=6'}
-
- events-universal@1.0.1:
- resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==}
-
- express@4.21.2:
- resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
- engines: {node: '>= 0.10.0'}
-
- extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
-
- extend@3.0.2:
- resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
-
- extract-zip@2.0.1:
- resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
- engines: {node: '>= 10.17.0'}
- hasBin: true
-
- fast-deep-equal@3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-
- fast-fifo@1.3.2:
- resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
-
- fast-glob@3.3.3:
- resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
- engines: {node: '>=8.6.0'}
-
- fast-memoize@2.5.2:
- resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==}
-
- fast-uri@3.1.0:
- resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
-
- fastq@1.19.1:
- resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
-
- fault@2.0.1:
- resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
-
- favicons@7.2.0:
- resolution: {integrity: sha512-k/2rVBRIRzOeom3wI9jBPaSEvoTSQEW4iM0EveBmBBKFxO8mSyyRWtDlfC3VnEfu0avmjrMzy8/ZFPSe6F71Hw==}
- engines: {node: '>=14.0.0'}
-
- fd-slicer@1.1.0:
- resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- finalhandler@1.3.1:
- resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
- engines: {node: '>= 0.8'}
-
- follow-redirects@1.15.11:
- resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
-
- for-each@0.3.5:
- resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
- engines: {node: '>= 0.4'}
-
- foreground-child@3.3.1:
- resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
- engines: {node: '>=14'}
-
- form-data-encoder@2.1.4:
- resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
- engines: {node: '>= 14.17'}
-
- form-data@4.0.4:
- resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
- engines: {node: '>= 6'}
-
- format@0.2.2:
- resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
- engines: {node: '>=0.4.x'}
-
- forwarded@0.2.0:
- resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
- engines: {node: '>= 0.6'}
-
- fresh@0.5.2:
- resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
- engines: {node: '>= 0.6'}
-
- fs-extra@11.3.2:
- resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==}
- engines: {node: '>=14.14'}
-
- fs-minipass@2.1.0:
- resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
- engines: {node: '>= 8'}
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- function.prototype.name@1.1.8:
- resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
- engines: {node: '>= 0.4'}
-
- functions-have-names@1.2.3:
- resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
-
- gcd@0.0.1:
- resolution: {integrity: sha512-VNx3UEGr+ILJTiMs1+xc5SX1cMgJCrXezKPa003APUWNqQqaF6n25W8VcR7nHN6yRWbvvUTwCpZCFJeWC2kXlw==}
-
- get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
-
- get-east-asian-width@1.4.0:
- resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==}
- engines: {node: '>=18'}
-
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
- get-nonce@1.0.1:
- resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
- engines: {node: '>=6'}
-
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
- get-stream@5.2.0:
- resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
- engines: {node: '>=8'}
-
- get-stream@6.0.1:
- resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
- engines: {node: '>=10'}
-
- get-symbol-description@1.1.0:
- resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
- engines: {node: '>= 0.4'}
-
- get-uri@6.0.5:
- resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==}
- engines: {node: '>= 14'}
-
- glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
-
- glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
-
- glob@10.4.5:
- resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
- hasBin: true
-
- globalthis@1.0.4:
- resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
- engines: {node: '>= 0.4'}
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
-
- got@12.6.1:
- resolution: {integrity: sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==}
- engines: {node: '>=14.16'}
-
- got@13.0.0:
- resolution: {integrity: sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==}
- engines: {node: '>=16'}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- gray-matter@4.0.3:
- resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
- engines: {node: '>=6.0'}
-
- has-bigints@1.1.0:
- resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
- engines: {node: '>= 0.4'}
-
- has-property-descriptors@1.0.2:
- resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
-
- has-proto@1.2.0:
- resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
- engines: {node: '>= 0.4'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- has-tostringtag@1.0.2:
- resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
- engines: {node: '>= 0.4'}
-
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
- hast-util-embedded@3.0.0:
- resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==}
-
- hast-util-from-dom@5.0.1:
- resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==}
-
- hast-util-from-html-isomorphic@2.0.0:
- resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==}
-
- hast-util-from-html@2.0.3:
- resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
-
- hast-util-from-parse5@8.0.3:
- resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
-
- hast-util-has-property@3.0.0:
- resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==}
-
- hast-util-is-body-ok-link@3.0.1:
- resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==}
-
- hast-util-is-element@3.0.0:
- resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
-
- hast-util-minify-whitespace@1.0.1:
- resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==}
-
- hast-util-parse-selector@4.0.0:
- resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
-
- hast-util-phrasing@3.0.1:
- resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==}
-
- hast-util-to-estree@3.1.3:
- resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==}
-
- hast-util-to-html@9.0.5:
- resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
-
- hast-util-to-jsx-runtime@2.3.6:
- resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
-
- hast-util-to-mdast@10.1.2:
- resolution: {integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==}
-
- hast-util-to-string@3.0.1:
- resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==}
-
- hast-util-to-text@4.0.2:
- resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==}
-
- hast-util-whitespace@3.0.0:
- resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
-
- hastscript@9.0.1:
- resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
-
- html-void-elements@3.0.0:
- resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
-
- http-cache-semantics@4.2.0:
- resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==}
-
- http-errors@2.0.0:
- resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
- engines: {node: '>= 0.8'}
-
- http-proxy-agent@7.0.2:
- resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
- engines: {node: '>= 14'}
-
- http2-wrapper@2.2.1:
- resolution: {integrity: sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==}
- engines: {node: '>=10.19.0'}
-
- https-proxy-agent@7.0.6:
- resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
- engines: {node: '>= 14'}
-
- iconv-lite@0.4.24:
- resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
- engines: {node: '>=0.10.0'}
-
- iconv-lite@0.7.0:
- resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==}
- engines: {node: '>=0.10.0'}
-
- ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
-
- immer@9.0.21:
- resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
-
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
-
- indent-string@5.0.0:
- resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
- engines: {node: '>=12'}
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- ink-spinner@5.0.0:
- resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==}
- engines: {node: '>=14.16'}
- peerDependencies:
- ink: '>=4.0.0'
- react: '>=18.0.0'
-
- ink@6.3.1:
- resolution: {integrity: sha512-3wGwITGrzL6rkWsi2gEKzgwdafGn4ZYd3u4oRp+sOPvfoxEHlnoB5Vnk9Uy5dMRUhDOqF3hqr4rLQ4lEzBc2sQ==}
- engines: {node: '>=20'}
- peerDependencies:
- '@types/react': '>=19.0.0'
- react: '>=19.0.0'
- react-devtools-core: ^6.1.2
- peerDependenciesMeta:
- '@types/react':
- optional: true
- react-devtools-core:
- optional: true
-
- inline-style-parser@0.2.4:
- resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
-
- inquirer@12.9.6:
- resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- internal-slot@1.1.0:
- resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
- engines: {node: '>= 0.4'}
-
- ip-address@10.0.1:
- resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==}
- engines: {node: '>= 12'}
-
- ip-regex@4.3.0:
- resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==}
- engines: {node: '>=8'}
-
- ipaddr.js@1.9.1:
- resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
- engines: {node: '>= 0.10'}
-
- is-alphabetical@2.0.1:
- resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
-
- is-alphanumerical@2.0.1:
- resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
-
- is-array-buffer@3.0.5:
- resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
- engines: {node: '>= 0.4'}
-
- is-arrayish@0.2.1:
- resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
-
- is-arrayish@0.3.4:
- resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==}
-
- is-async-function@2.1.1:
- resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
- engines: {node: '>= 0.4'}
-
- is-bigint@1.1.0:
- resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
- engines: {node: '>= 0.4'}
-
- is-binary-path@2.1.0:
- resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
- engines: {node: '>=8'}
-
- is-boolean-object@1.2.2:
- resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
- engines: {node: '>= 0.4'}
-
- is-callable@1.2.7:
- resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
- engines: {node: '>= 0.4'}
-
- is-core-module@2.16.1:
- resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
- engines: {node: '>= 0.4'}
-
- is-data-view@1.0.2:
- resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
- engines: {node: '>= 0.4'}
-
- is-date-object@1.1.0:
- resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
- engines: {node: '>= 0.4'}
-
- is-decimal@2.0.1:
- resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
-
- is-docker@2.2.1:
- resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
- engines: {node: '>=8'}
- hasBin: true
-
- is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-finalizationregistry@1.1.1:
- resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
- engines: {node: '>= 0.4'}
-
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
- is-fullwidth-code-point@4.0.0:
- resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
- engines: {node: '>=12'}
-
- is-fullwidth-code-point@5.1.0:
- resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==}
- engines: {node: '>=18'}
-
- is-generator-function@1.1.0:
- resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
- engines: {node: '>= 0.4'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- is-hexadecimal@2.0.1:
- resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
-
- is-in-ci@2.0.0:
- resolution: {integrity: sha512-cFeerHriAnhrQSbpAxL37W1wcJKUUX07HyLWZCW1URJT/ra3GyUTzBgUnh24TMVfNTV2Hij2HLxkPHFZfOZy5w==}
- engines: {node: '>=20'}
- hasBin: true
-
- is-ip@3.1.0:
- resolution: {integrity: sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==}
- engines: {node: '>=8'}
-
- is-map@2.0.3:
- resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
- engines: {node: '>= 0.4'}
-
- is-negative-zero@2.0.3:
- resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
- engines: {node: '>= 0.4'}
-
- is-number-object@1.1.1:
- resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
- engines: {node: '>= 0.4'}
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- is-online@10.0.0:
- resolution: {integrity: sha512-WCPdKwNDjXJJmUubf2VHLMDBkUZEtuOvpXUfUnUFbEnM6In9ByiScL4f4jKACz/fsb2qDkesFerW3snf/AYz3A==}
- engines: {node: '>=14.16'}
-
- is-plain-obj@4.1.0:
- resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
- engines: {node: '>=12'}
-
- is-regex@1.2.1:
- resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
- engines: {node: '>= 0.4'}
-
- is-set@2.0.3:
- resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
- engines: {node: '>= 0.4'}
-
- is-shared-array-buffer@1.0.4:
- resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
- engines: {node: '>= 0.4'}
-
- is-string@1.1.1:
- resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
- engines: {node: '>= 0.4'}
-
- is-symbol@1.1.1:
- resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
- engines: {node: '>= 0.4'}
-
- is-typed-array@1.1.15:
- resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
- engines: {node: '>= 0.4'}
-
- is-weakmap@2.0.2:
- resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
- engines: {node: '>= 0.4'}
-
- is-weakref@1.1.1:
- resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
- engines: {node: '>= 0.4'}
-
- is-weakset@2.0.4:
- resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
- engines: {node: '>= 0.4'}
-
- is-wsl@2.2.0:
- resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
- engines: {node: '>=8'}
-
- isarray@2.0.5:
- resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
-
- isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
- jackspeak@3.4.3:
- resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
-
- jiti@1.21.7:
- resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
- hasBin: true
-
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@3.14.1:
- resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
- hasBin: true
-
- js-yaml@4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
- hasBin: true
-
- jsep@1.4.0:
- resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==}
- engines: {node: '>= 10.16.0'}
-
- json-buffer@3.0.1:
- resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
-
- json-parse-even-better-errors@2.3.1:
- resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
-
- json-schema-traverse@1.0.0:
- resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
-
- jsonc-parser@2.2.1:
- resolution: {integrity: sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==}
-
- jsonfile@6.2.0:
- resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
-
- jsonpath-plus@10.3.0:
- resolution: {integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- jsonpointer@5.0.1:
- resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
- engines: {node: '>=0.10.0'}
-
- katex@0.16.22:
- resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==}
- hasBin: true
-
- keyv@4.5.4:
- resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
-
- kind-of@6.0.3:
- resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
- engines: {node: '>=0.10.0'}
-
- lcm@0.0.3:
- resolution: {integrity: sha512-TB+ZjoillV6B26Vspf9l2L/vKaRY/4ep3hahcyVkCGFgsTNRUQdc24bQeNFiZeoxH0vr5+7SfNRMQuPHv/1IrQ==}
-
- leven@3.1.0:
- resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
- engines: {node: '>=6'}
-
- leven@4.1.0:
- resolution: {integrity: sha512-KZ9W9nWDT7rF7Dazg8xyLHGLrmpgq2nVNFUckhqdW3szVP6YhCpp/RAnpmVExA9JvrMynjwSLVrEj3AepHR6ew==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- lilconfig@3.1.3:
- resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
- engines: {node: '>=14'}
-
- lines-and-columns@1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
-
- lodash.topath@4.5.2:
- resolution: {integrity: sha512-1/W4dM+35DwvE/iEd1M9ekewOSTlpFekhw9mhAtrwjVqUr83/ilQiyAvmg4tVX7Unkcfl1KC+i9WdaT4B6aQcg==}
-
- lodash@4.17.21:
- resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-
- longest-streak@3.1.0:
- resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
-
- loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
-
- lowercase-keys@3.0.0:
- resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
- lru-cache@7.18.3:
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
- engines: {node: '>=12'}
-
- lucide-react@0.446.0:
- resolution: {integrity: sha512-BU7gy8MfBMqvEdDPH79VhOXSEgyG8TSPOKWaExWGCQVqnGH7wGgDngPbofu+KdtVjPQBWbEmnfMTq90CTiiDRg==}
- peerDependencies:
- react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc
-
- markdown-extensions@2.0.0:
- resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
- engines: {node: '>=16'}
-
- markdown-table@3.0.4:
- resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
-
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
- mdast-util-find-and-replace@3.0.2:
- resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
-
- mdast-util-from-markdown@2.0.2:
- resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
-
- mdast-util-frontmatter@2.0.1:
- resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
-
- mdast-util-gfm-autolink-literal@2.0.1:
- resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
-
- mdast-util-gfm-footnote@2.1.0:
- resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
-
- mdast-util-gfm-strikethrough@2.0.0:
- resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
-
- mdast-util-gfm-table@2.0.0:
- resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
-
- mdast-util-gfm-task-list-item@2.0.0:
- resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
-
- mdast-util-gfm@3.1.0:
- resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
-
- mdast-util-math@3.0.0:
- resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==}
-
- mdast-util-mdx-expression@2.0.1:
- resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
-
- mdast-util-mdx-jsx@3.2.0:
- resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
-
- mdast-util-mdx@3.0.0:
- resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
-
- mdast-util-mdxjs-esm@2.0.1:
- resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
-
- mdast-util-phrasing@4.1.0:
- resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
-
- mdast-util-to-hast@13.2.0:
- resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
-
- mdast-util-to-markdown@2.1.2:
- resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
-
- mdast-util-to-string@4.0.0:
- resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
-
- mdast@3.0.0:
- resolution: {integrity: sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==}
- deprecated: '`mdast` was renamed to `remark`'
-
- media-typer@0.3.0:
- resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
- engines: {node: '>= 0.6'}
-
- merge-descriptors@1.0.3:
- resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
-
- merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
-
- methods@1.1.2:
- resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
- engines: {node: '>= 0.6'}
-
- micromark-core-commonmark@2.0.3:
- resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
-
- micromark-extension-frontmatter@2.0.0:
- resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
-
- micromark-extension-gfm-autolink-literal@2.1.0:
- resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
-
- micromark-extension-gfm-footnote@2.1.0:
- resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
-
- micromark-extension-gfm-strikethrough@2.1.0:
- resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
-
- micromark-extension-gfm-table@2.1.1:
- resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
-
- micromark-extension-gfm-tagfilter@2.0.0:
- resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
-
- micromark-extension-gfm-task-list-item@2.1.0:
- resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
-
- micromark-extension-gfm@3.0.0:
- resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
-
- micromark-extension-math@3.1.0:
- resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==}
-
- micromark-extension-mdx-expression@3.0.1:
- resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==}
-
- micromark-extension-mdx-jsx@3.0.2:
- resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==}
-
- micromark-extension-mdx-md@2.0.0:
- resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
-
- micromark-extension-mdxjs-esm@3.0.0:
- resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
-
- micromark-extension-mdxjs@3.0.0:
- resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
-
- micromark-factory-destination@2.0.1:
- resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
-
- micromark-factory-label@2.0.1:
- resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
-
- micromark-factory-mdx-expression@2.0.3:
- resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==}
-
- micromark-factory-space@2.0.1:
- resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
-
- micromark-factory-title@2.0.1:
- resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
-
- micromark-factory-whitespace@2.0.1:
- resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
-
- micromark-util-character@2.1.1:
- resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
-
- micromark-util-chunked@2.0.1:
- resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
-
- micromark-util-classify-character@2.0.1:
- resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
-
- micromark-util-combine-extensions@2.0.1:
- resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
-
- micromark-util-decode-numeric-character-reference@2.0.2:
- resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
-
- micromark-util-decode-string@2.0.1:
- resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
-
- micromark-util-encode@2.0.1:
- resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
-
- micromark-util-events-to-acorn@2.0.3:
- resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==}
-
- micromark-util-html-tag-name@2.0.1:
- resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
-
- micromark-util-normalize-identifier@2.0.1:
- resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
-
- micromark-util-resolve-all@2.0.1:
- resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
-
- micromark-util-sanitize-uri@2.0.1:
- resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
-
- micromark-util-subtokenize@2.1.0:
- resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
-
- micromark-util-symbol@2.0.1:
- resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
-
- micromark-util-types@2.0.2:
- resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
-
- micromark@4.0.2:
- resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
-
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
- mime@1.6.0:
- resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
- engines: {node: '>=4'}
- hasBin: true
-
- mimic-fn@2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- engines: {node: '>=6'}
-
- mimic-response@3.1.0:
- resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
- engines: {node: '>=10'}
-
- mimic-response@4.0.0:
- resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-
- minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- minipass@3.3.6:
- resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
- engines: {node: '>=8'}
-
- minipass@5.0.0:
- resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
- engines: {node: '>=8'}
-
- minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- minizlib@2.1.2:
- resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
- engines: {node: '>= 8'}
-
- mintlify@4.2.123:
- resolution: {integrity: sha512-5489Uv0O0ryv5lY0rlHB1JszZWUd8/S+4g4UwQ1adXzKXURAz1D2ZW694hMivnAHebhlEylb9neQ6h38WdapSQ==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- mitt@3.0.1:
- resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==}
-
- mkdirp@1.0.4:
- resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
- engines: {node: '>=10'}
- hasBin: true
-
- ms@2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- mute-stream@2.0.0:
- resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==}
- engines: {node: ^18.17.0 || >=20.5.0}
-
- mz@2.7.0:
- resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
-
- nanoid@3.3.11:
- resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
- negotiator@0.6.3:
- resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
- engines: {node: '>= 0.6'}
-
- neotraverse@0.6.18:
- resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==}
- engines: {node: '>= 10'}
-
- netmask@2.0.2:
- resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
- engines: {node: '>= 0.4.0'}
-
- next-mdx-remote-client@1.1.2:
- resolution: {integrity: sha512-LZJxBU420dTZsbWOrNYZXkahGJu8lNKxLTrQrZl4JUsKeFtp91yA78dHMTfOcp7UAud3txhM1tayyoKFq4tw7A==}
- engines: {node: '>=18.18.0'}
- peerDependencies:
- react: '>= 18.3.0 < 19.0.0'
- react-dom: '>= 18.3.0 < 19.0.0'
-
- nimma@0.2.3:
- resolution: {integrity: sha512-1ZOI8J+1PKKGceo/5CT5GfQOG6H8I2BencSK06YarZ2wXwH37BSSUWldqJmMJYA5JfqDqffxDXynt6f11AyKcA==}
- engines: {node: ^12.20 || >=14.13}
-
- nlcst-to-string@4.0.0:
- resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==}
-
- node-fetch@2.6.7:
- resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==}
- engines: {node: 4.x || >=6.0.0}
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
-
- node-fetch@2.7.0:
- resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
- engines: {node: 4.x || >=6.0.0}
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
-
- normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
-
- normalize-url@8.1.0:
- resolution: {integrity: sha512-X06Mfd/5aKsRHc0O0J5CUedwnPmnDtLF2+nq+KN9KSDlJHkPuh0JUviWjEWMe0SW/9TDdSLVPuk7L5gGTIA1/w==}
- engines: {node: '>=14.16'}
-
- object-assign@4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
- engines: {node: '>=0.10.0'}
-
- object-hash@3.0.0:
- resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
- engines: {node: '>= 6'}
-
- object-inspect@1.13.4:
- resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
- engines: {node: '>= 0.4'}
-
- object-keys@1.1.1:
- resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
- engines: {node: '>= 0.4'}
-
- object.assign@4.1.7:
- resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
- engines: {node: '>= 0.4'}
-
- on-finished@2.4.1:
- resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
- engines: {node: '>= 0.8'}
-
- once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
-
- onetime@5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- engines: {node: '>=6'}
-
- oniguruma-parser@0.12.1:
- resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==}
-
- oniguruma-to-es@4.3.3:
- resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==}
-
- open@8.4.2:
- resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==}
- engines: {node: '>=12'}
-
- openapi-types@12.1.3:
- resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==}
-
- own-keys@1.0.1:
- resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
- engines: {node: '>= 0.4'}
-
- p-any@4.0.0:
- resolution: {integrity: sha512-S/B50s+pAVe0wmEZHmBs/9yJXeZ5KhHzOsgKzt0hRdgkoR3DxW9ts46fcsWi/r3VnzsnkKS7q4uimze+zjdryw==}
- engines: {node: '>=12.20'}
-
- p-cancelable@3.0.0:
- resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==}
- engines: {node: '>=12.20'}
-
- p-some@6.0.0:
- resolution: {integrity: sha512-CJbQCKdfSX3fIh8/QKgS+9rjm7OBNUTmwWswAFQAhc8j1NR1dsEDETUEuVUtQHZpV+J03LqWBEwvu0g1Yn+TYg==}
- engines: {node: '>=12.20'}
-
- p-timeout@5.1.0:
- resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==}
- engines: {node: '>=12'}
-
- pac-proxy-agent@7.2.0:
- resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==}
- engines: {node: '>= 14'}
-
- pac-resolver@7.0.1:
- resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==}
- engines: {node: '>= 14'}
-
- package-json-from-dist@1.0.1:
- resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
-
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
-
- parse-entities@4.0.2:
- resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
-
- parse-json@5.2.0:
- resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
- engines: {node: '>=8'}
-
- parse-latin@7.0.0:
- resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
-
- parse5@7.3.0:
- resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
-
- parseurl@1.3.3:
- resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
- engines: {node: '>= 0.8'}
-
- patch-console@2.0.0:
- resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
-
- path-parse@1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
-
- path-scurry@1.11.1:
- resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
- engines: {node: '>=16 || 14 >=14.18'}
-
- path-to-regexp@0.1.12:
- resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
-
- pend@1.2.0:
- resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
-
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
-
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- pify@2.3.0:
- resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
- engines: {node: '>=0.10.0'}
-
- pirates@4.0.7:
- resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
- engines: {node: '>= 6'}
-
- pony-cause@1.1.1:
- resolution: {integrity: sha512-PxkIc/2ZpLiEzQXu5YRDOUgBlfGYBY8156HY5ZcRAwwonMk5W/MrJP2LLkG/hF7GEQzaHo2aS7ho6ZLCOvf+6g==}
- engines: {node: '>=12.0.0'}
-
- possible-typed-array-names@1.1.0:
- resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
- engines: {node: '>= 0.4'}
-
- postcss-import@15.1.0:
- resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- postcss: ^8.0.0
-
- postcss-js@4.1.0:
- resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==}
- engines: {node: ^12 || ^14 || >= 16}
- peerDependencies:
- postcss: ^8.4.21
-
- postcss-load-config@4.0.2:
- resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
- engines: {node: '>= 14'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
-
- postcss-nested@6.2.0:
- resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
-
- postcss-selector-parser@6.1.2:
- resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
- engines: {node: '>=4'}
-
- postcss-value-parser@4.2.0:
- resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
-
- postcss@8.5.6:
- resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
- engines: {node: ^10 || ^12 || >=14}
-
- progress@2.0.3:
- resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
- engines: {node: '>=0.4.0'}
-
- property-information@7.1.0:
- resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
-
- proxy-addr@2.0.7:
- resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
- engines: {node: '>= 0.10'}
-
- proxy-agent@6.5.0:
- resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==}
- engines: {node: '>= 14'}
-
- proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
-
- public-ip@5.0.0:
- resolution: {integrity: sha512-xaH3pZMni/R2BG7ZXXaWS9Wc9wFlhyDVJF47IJ+3ali0TGv+2PsckKxbmo+rnx3ZxiV2wblVhtdS3bohAP6GGw==}
- engines: {node: ^14.13.1 || >=16.0.0}
-
- pump@3.0.3:
- resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
-
- puppeteer-core@22.15.0:
- resolution: {integrity: sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA==}
- engines: {node: '>=18'}
-
- puppeteer@22.15.0:
- resolution: {integrity: sha512-XjCY1SiSEi1T7iSYuxS82ft85kwDJUS7wj1Z0eGVXKdtr5g4xnVcbjwxhq5xBnpK/E7x1VZZoJDxpjAOasHT4Q==}
- engines: {node: '>=18'}
- deprecated: < 24.10.2 is no longer supported
- hasBin: true
-
- qs@6.13.0:
- resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
- engines: {node: '>=0.6'}
-
- queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-
- quick-lru@5.1.1:
- resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
- engines: {node: '>=10'}
-
- range-parser@1.2.1:
- resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
- engines: {node: '>= 0.6'}
-
- raw-body@2.5.2:
- resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
- engines: {node: '>= 0.8'}
-
- react-dom@18.3.1:
- resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
- peerDependencies:
- react: ^18.3.1
-
- react-icons@5.5.0:
- resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==}
- peerDependencies:
- react: '*'
-
- react-reconciler@0.32.0:
- resolution: {integrity: sha512-2NPMOzgTlG0ZWdIf3qG+dcbLSoAc/uLfOwckc3ofy5sSK0pLJqnQLpUFxvGcN2rlXSjnVtGeeFLNimCQEj5gOQ==}
- engines: {node: '>=0.10.0'}
- peerDependencies:
- react: ^19.1.0
-
- react-remove-scroll-bar@2.3.8:
- resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-remove-scroll@2.7.1:
- resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-style-singleton@2.2.3:
- resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react@19.1.1:
- resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==}
- engines: {node: '>=0.10.0'}
-
- read-cache@1.0.0:
- resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
-
- readdirp@3.6.0:
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
- engines: {node: '>=8.10.0'}
-
- recma-build-jsx@1.0.0:
- resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==}
-
- recma-jsx@1.0.1:
- resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- recma-parse@1.0.0:
- resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==}
-
- recma-stringify@1.0.0:
- resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
-
- reflect.getprototypeof@1.0.10:
- resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
- engines: {node: '>= 0.4'}
-
- regex-recursion@6.0.2:
- resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
-
- regex-utilities@2.3.0:
- resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
-
- regex@6.0.1:
- resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==}
-
- regexp.prototype.flags@1.5.4:
- resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
- engines: {node: '>= 0.4'}
-
- rehype-katex@7.0.1:
- resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==}
-
- rehype-minify-whitespace@6.0.2:
- resolution: {integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==}
-
- rehype-parse@9.0.1:
- resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
-
- rehype-recma@1.0.0:
- resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==}
-
- remark-frontmatter@5.0.0:
- resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
-
- remark-gfm@4.0.1:
- resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
-
- remark-math@6.0.0:
- resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==}
-
- remark-mdx-remove-esm@1.2.1:
- resolution: {integrity: sha512-Vz1GKmRR9u7ij8TTf88DK8dFc/mVror9YUJekl1uP+S0sTzHxGdszJMeBbh96aIR+ZiI2QRKHu2UsV+/pWj7uQ==}
- peerDependencies:
- unified: ^11
-
- remark-mdx@3.1.1:
- resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==}
-
- remark-parse@11.0.0:
- resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
-
- remark-rehype@11.1.2:
- resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
-
- remark-smartypants@3.0.2:
- resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==}
- engines: {node: '>=16.0.0'}
-
- remark-stringify@11.0.0:
- resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
-
- remark@15.0.1:
- resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==}
-
- require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
-
- require-from-string@2.0.2:
- resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
- engines: {node: '>=0.10.0'}
-
- resolve-alpn@1.2.1:
- resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
-
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
-
- resolve@1.22.10:
- resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
- engines: {node: '>= 0.4'}
- hasBin: true
-
- responselike@3.0.0:
- resolution: {integrity: sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==}
- engines: {node: '>=14.16'}
-
- restore-cursor@4.0.0:
- resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- retext-latin@4.0.0:
- resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==}
-
- retext-smartypants@6.2.0:
- resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==}
-
- retext-stringify@4.0.0:
- resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==}
-
- retext@9.0.0:
- resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==}
-
- reusify@1.1.0:
- resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
- engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-
- run-async@4.0.6:
- resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==}
- engines: {node: '>=0.12.0'}
-
- run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
-
- rxjs@7.8.2:
- resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
-
- safe-array-concat@1.1.3:
- resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
- engines: {node: '>=0.4'}
-
- safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-
- safe-push-apply@1.0.0:
- resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
- engines: {node: '>= 0.4'}
-
- safe-regex-test@1.1.0:
- resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
- engines: {node: '>= 0.4'}
-
- safe-stable-stringify@1.1.1:
- resolution: {integrity: sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==}
-
- safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
-
- sax@1.4.1:
- resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
-
- scheduler@0.23.2:
- resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
-
- scheduler@0.26.0:
- resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==}
-
- section-matter@1.0.0:
- resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
- engines: {node: '>=4'}
-
- semver@7.7.2:
- resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
- engines: {node: '>=10'}
- hasBin: true
-
- send@0.19.0:
- resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
- engines: {node: '>= 0.8.0'}
-
- serialize-error@12.0.0:
- resolution: {integrity: sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==}
- engines: {node: '>=18'}
-
- serve-static@1.16.2:
- resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
- engines: {node: '>= 0.8.0'}
-
- set-function-length@1.2.2:
- resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
- engines: {node: '>= 0.4'}
-
- set-function-name@2.0.2:
- resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
- engines: {node: '>= 0.4'}
-
- set-proto@1.0.0:
- resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
- engines: {node: '>= 0.4'}
-
- setprototypeof@1.2.0:
- resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
-
- sharp@0.33.5:
- resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
-
- shebang-command@2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- engines: {node: '>=8'}
-
- shebang-regex@3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- engines: {node: '>=8'}
-
- shiki@3.13.0:
- resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==}
-
- side-channel-list@1.0.0:
- resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
- engines: {node: '>= 0.4'}
-
- side-channel-map@1.0.1:
- resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
- engines: {node: '>= 0.4'}
-
- side-channel-weakmap@1.0.2:
- resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
- engines: {node: '>= 0.4'}
-
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
- engines: {node: '>= 0.4'}
-
- signal-exit@3.0.7:
- resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
-
- signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
-
- simple-eval@1.0.1:
- resolution: {integrity: sha512-LH7FpTAkeD+y5xQC4fzS+tFtaNlvt3Ib1zKzvhjv/Y+cioV4zIuw4IZr2yhRLu67CWL7FR9/6KXKnjRoZTvGGQ==}
- engines: {node: '>=12'}
-
- simple-swizzle@0.2.4:
- resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==}
-
- slice-ansi@5.0.0:
- resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
- engines: {node: '>=12'}
-
- slice-ansi@7.1.2:
- resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==}
- engines: {node: '>=18'}
-
- smart-buffer@4.2.0:
- resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
- engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
-
- socket.io-adapter@2.5.5:
- resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==}
-
- socket.io-parser@4.2.4:
- resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
- engines: {node: '>=10.0.0'}
-
- socket.io@4.8.1:
- resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==}
- engines: {node: '>=10.2.0'}
-
- socks-proxy-agent@8.0.5:
- resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==}
- engines: {node: '>= 14'}
-
- socks@2.8.7:
- resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==}
- engines: {node: '>= 10.0.0', npm: '>= 3.0.0'}
-
- source-map-js@1.2.1:
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
- engines: {node: '>=0.10.0'}
-
- source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
-
- source-map@0.7.6:
- resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
- engines: {node: '>= 12'}
-
- space-separated-tokens@2.0.2:
- resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
-
- sprintf-js@1.0.3:
- resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-
- stack-utils@2.0.6:
- resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
- engines: {node: '>=10'}
-
- statuses@2.0.1:
- resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
- engines: {node: '>= 0.8'}
-
- stop-iteration-iterator@1.1.0:
- resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
- engines: {node: '>= 0.4'}
-
- streamx@2.23.0:
- resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==}
-
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
- string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
-
- string-width@7.2.0:
- resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
- engines: {node: '>=18'}
-
- string.prototype.trim@1.2.10:
- resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimend@1.0.9:
- resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimstart@1.0.8:
- resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
- engines: {node: '>= 0.4'}
-
- stringify-entities@4.0.4:
- resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
-
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
- strip-ansi@7.1.2:
- resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
- engines: {node: '>=12'}
-
- strip-bom-string@1.0.0:
- resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
- engines: {node: '>=0.10.0'}
-
- style-to-js@1.1.17:
- resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==}
-
- style-to-object@1.0.9:
- resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==}
-
- sucrase@3.35.0:
- resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
-
- supports-preserve-symlinks-flag@1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
-
- tailwindcss@3.4.17:
- resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
- engines: {node: '>=14.0.0'}
- hasBin: true
-
- tar-fs@3.1.1:
- resolution: {integrity: sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==}
-
- tar-stream@3.1.7:
- resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
-
- tar@6.2.1:
- resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
- engines: {node: '>=10'}
-
- text-decoder@1.2.3:
- resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==}
-
- thenify-all@1.6.0:
- resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
- engines: {node: '>=0.8'}
-
- thenify@3.3.1:
- resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
-
- through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
- toidentifier@1.0.1:
- resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
- engines: {node: '>=0.6'}
-
- tr46@0.0.3:
- resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
-
- trim-lines@3.0.1:
- resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
-
- trim-trailing-lines@2.1.0:
- resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==}
-
- trough@2.2.0:
- resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
-
- ts-interface-checker@0.1.13:
- resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
-
- tslib@1.14.1:
- resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- twoslash-protocol@0.3.4:
- resolution: {integrity: sha512-HHd7lzZNLUvjPzG/IE6js502gEzLC1x7HaO1up/f72d8G8ScWAs9Yfa97igelQRDl5h9tGcdFsRp+lNVre1EeQ==}
-
- twoslash@0.3.4:
- resolution: {integrity: sha512-RtJURJlGRxrkJmTcZMjpr7jdYly1rfgpujJr1sBM9ch7SKVht/SjFk23IOAyvwT1NLCk+SJiMrvW4rIAUM2Wug==}
- peerDependencies:
- typescript: ^5.5.0
-
- type-fest@4.41.0:
- resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
- engines: {node: '>=16'}
-
- type-is@1.6.18:
- resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
- engines: {node: '>= 0.6'}
-
- typed-array-buffer@1.0.3:
- resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-length@1.0.3:
- resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
- engines: {node: '>= 0.4'}
-
- typed-array-length@1.0.7:
- resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
- engines: {node: '>= 0.4'}
-
- typescript@5.9.2:
- resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- unbox-primitive@1.1.0:
- resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
- engines: {node: '>= 0.4'}
-
- unbzip2-stream@1.4.3:
- resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==}
-
- undici-types@7.12.0:
- resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==}
-
- unified@11.0.5:
- resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
-
- unist-builder@4.0.0:
- resolution: {integrity: sha512-wmRFnH+BLpZnTKpc5L7O67Kac89s9HMrtELpnNaE6TAobq5DTZZs5YaTQfAZBA9bFPECx2uVAPO31c+GVug8mg==}
-
- unist-util-find-after@5.0.0:
- resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==}
-
- unist-util-is@5.2.1:
- resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
-
- unist-util-is@6.0.0:
- resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
-
- unist-util-map@4.0.0:
- resolution: {integrity: sha512-HJs1tpkSmRJUzj6fskQrS5oYhBYlmtcvy4SepdDEEsL04FjBrgF0Mgggvxc1/qGBGgW7hRh9+UBK1aqTEnBpIA==}
-
- unist-util-modify-children@4.0.0:
- resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==}
-
- unist-util-position-from-estree@2.0.0:
- resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
-
- unist-util-position@5.0.0:
- resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
-
- unist-util-remove-position@5.0.0:
- resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
-
- unist-util-remove@4.0.0:
- resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==}
-
- unist-util-stringify-position@4.0.0:
- resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
-
- unist-util-visit-children@3.0.0:
- resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==}
-
- unist-util-visit-parents@5.1.3:
- resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
-
- unist-util-visit-parents@6.0.1:
- resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
-
- unist-util-visit@4.1.2:
- resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
-
- unist-util-visit@5.0.0:
- resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
-
- universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
-
- unpipe@1.0.0:
- resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
- engines: {node: '>= 0.8'}
-
- urijs@1.19.11:
- resolution: {integrity: sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==}
-
- urlpattern-polyfill@10.0.0:
- resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==}
-
- use-callback-ref@1.3.3:
- resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- use-sidecar@1.1.3:
- resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
- utility-types@3.11.0:
- resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
- engines: {node: '>= 4'}
-
- utils-merge@1.0.1:
- resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
- engines: {node: '>= 0.4.0'}
-
- vary@1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
- engines: {node: '>= 0.8'}
-
- vfile-location@5.0.3:
- resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
-
- vfile-matter@5.0.1:
- resolution: {integrity: sha512-o6roP82AiX0XfkyTHyRCMXgHfltUNlXSEqCIS80f+mbAyiQBE2fxtDVMtseyytGx75sihiJFo/zR6r/4LTs2Cw==}
-
- vfile-message@4.0.3:
- resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
-
- vfile@6.0.3:
- resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
-
- web-namespaces@2.0.1:
- resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
-
- webidl-conversions@3.0.1:
- resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
-
- whatwg-url@5.0.0:
- resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
-
- which-boxed-primitive@1.1.1:
- resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
- engines: {node: '>= 0.4'}
-
- which-builtin-type@1.2.1:
- resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
- engines: {node: '>= 0.4'}
-
- which-collection@1.0.2:
- resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
- engines: {node: '>= 0.4'}
-
- which-typed-array@1.1.19:
- resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
- engines: {node: '>= 0.4'}
-
- which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
-
- widest-line@5.0.0:
- resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
- engines: {node: '>=18'}
-
- wrap-ansi@6.2.0:
- resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
- engines: {node: '>=8'}
-
- wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
-
- wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
-
- wrap-ansi@9.0.2:
- resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==}
- engines: {node: '>=18'}
-
- wrappy@1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-
- ws@8.17.1:
- resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
-
- ws@8.18.3:
- resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
-
- xml2js@0.6.2:
- resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==}
- engines: {node: '>=4.0.0'}
-
- xmlbuilder@11.0.1:
- resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
- engines: {node: '>=4.0'}
-
- y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
-
- yallist@4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
-
- yaml@2.8.1:
- resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==}
- engines: {node: '>= 14.6'}
- hasBin: true
-
- yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
-
- yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
-
- yauzl@2.10.0:
- resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
-
- yoctocolors-cjs@2.1.3:
- resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==}
- engines: {node: '>=18'}
-
- yoga-layout@3.2.1:
- resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==}
-
- zod-to-json-schema@3.24.6:
- resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==}
- peerDependencies:
- zod: ^3.24.1
-
- zod@3.23.8:
- resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
-
- zod@3.25.76:
- resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
-
- zwitch@2.0.4:
- resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
-
-snapshots:
-
- '@alcalzone/ansi-tokenize@0.2.0':
- dependencies:
- ansi-styles: 6.2.3
- is-fullwidth-code-point: 5.1.0
-
- '@alloc/quick-lru@5.2.0': {}
-
- '@ark/schema@0.49.0':
- dependencies:
- '@ark/util': 0.49.0
-
- '@ark/util@0.49.0': {}
-
- '@asyncapi/parser@3.4.0':
- dependencies:
- '@asyncapi/specs': 6.10.0
- '@openapi-contrib/openapi-schema-to-json-schema': 3.2.0
- '@stoplight/json': 3.21.0
- '@stoplight/json-ref-readers': 1.2.2
- '@stoplight/json-ref-resolver': 3.1.6
- '@stoplight/spectral-core': 1.20.0
- '@stoplight/spectral-functions': 1.10.1
- '@stoplight/spectral-parsers': 1.0.5
- '@stoplight/spectral-ref-resolver': 1.0.5
- '@stoplight/types': 13.20.0
- '@types/json-schema': 7.0.15
- '@types/urijs': 1.19.25
- ajv: 8.17.1
- ajv-errors: 3.0.0(ajv@8.17.1)
- ajv-formats: 2.1.1(ajv@8.17.1)
- avsc: 5.7.9
- js-yaml: 4.1.0
- jsonpath-plus: 10.3.0
- node-fetch: 2.6.7
- transitivePeerDependencies:
- - encoding
-
- '@asyncapi/specs@6.10.0':
- dependencies:
- '@types/json-schema': 7.0.15
-
- '@babel/code-frame@7.27.1':
- dependencies:
- '@babel/helper-validator-identifier': 7.27.1
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/helper-validator-identifier@7.27.1': {}
-
- '@emnapi/runtime@1.5.0':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@floating-ui/core@1.7.3':
- dependencies:
- '@floating-ui/utils': 0.2.10
-
- '@floating-ui/dom@1.7.4':
- dependencies:
- '@floating-ui/core': 1.7.3
- '@floating-ui/utils': 0.2.10
-
- '@floating-ui/react-dom@2.1.6(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@floating-ui/dom': 1.7.4
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
-
- '@floating-ui/utils@0.2.10': {}
-
- '@icons-pack/react-simple-icons@11.2.0(react@19.1.1)':
- dependencies:
- react: 19.1.1
-
- '@img/sharp-darwin-arm64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-darwin-arm64': 1.0.4
- optional: true
-
- '@img/sharp-darwin-x64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-darwin-x64': 1.0.4
- optional: true
-
- '@img/sharp-libvips-darwin-arm64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-darwin-x64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linux-arm64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linux-arm@1.0.5':
- optional: true
-
- '@img/sharp-libvips-linux-s390x@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linux-x64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linuxmusl-x64@1.0.4':
- optional: true
-
- '@img/sharp-linux-arm64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-arm64': 1.0.4
- optional: true
-
- '@img/sharp-linux-arm@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-arm': 1.0.5
- optional: true
-
- '@img/sharp-linux-s390x@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-s390x': 1.0.4
- optional: true
-
- '@img/sharp-linux-x64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-x64': 1.0.4
- optional: true
-
- '@img/sharp-linuxmusl-arm64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
- optional: true
-
- '@img/sharp-linuxmusl-x64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linuxmusl-x64': 1.0.4
- optional: true
-
- '@img/sharp-wasm32@0.33.5':
- dependencies:
- '@emnapi/runtime': 1.5.0
- optional: true
-
- '@img/sharp-win32-ia32@0.33.5':
- optional: true
-
- '@img/sharp-win32-x64@0.33.5':
- optional: true
-
- '@inquirer/ansi@1.0.0': {}
-
- '@inquirer/checkbox@4.2.4(@types/node@24.5.2)':
- dependencies:
- '@inquirer/ansi': 1.0.0
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/figures': 1.0.13
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/confirm@5.1.18(@types/node@24.5.2)':
- dependencies:
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/core@10.2.2(@types/node@24.5.2)':
- dependencies:
- '@inquirer/ansi': 1.0.0
- '@inquirer/figures': 1.0.13
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- cli-width: 4.1.0
- mute-stream: 2.0.0
- signal-exit: 4.1.0
- wrap-ansi: 6.2.0
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/editor@4.2.20(@types/node@24.5.2)':
- dependencies:
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/external-editor': 1.0.2(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/expand@4.0.20(@types/node@24.5.2)':
- dependencies:
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/external-editor@1.0.2(@types/node@24.5.2)':
- dependencies:
- chardet: 2.1.0
- iconv-lite: 0.7.0
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/figures@1.0.13': {}
-
- '@inquirer/input@4.2.4(@types/node@24.5.2)':
- dependencies:
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/number@3.0.20(@types/node@24.5.2)':
- dependencies:
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/password@4.0.20(@types/node@24.5.2)':
- dependencies:
- '@inquirer/ansi': 1.0.0
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/prompts@7.8.6(@types/node@24.5.2)':
- dependencies:
- '@inquirer/checkbox': 4.2.4(@types/node@24.5.2)
- '@inquirer/confirm': 5.1.18(@types/node@24.5.2)
- '@inquirer/editor': 4.2.20(@types/node@24.5.2)
- '@inquirer/expand': 4.0.20(@types/node@24.5.2)
- '@inquirer/input': 4.2.4(@types/node@24.5.2)
- '@inquirer/number': 3.0.20(@types/node@24.5.2)
- '@inquirer/password': 4.0.20(@types/node@24.5.2)
- '@inquirer/rawlist': 4.1.8(@types/node@24.5.2)
- '@inquirer/search': 3.1.3(@types/node@24.5.2)
- '@inquirer/select': 4.3.4(@types/node@24.5.2)
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/rawlist@4.1.8(@types/node@24.5.2)':
- dependencies:
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/search@3.1.3(@types/node@24.5.2)':
- dependencies:
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/figures': 1.0.13
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/select@4.3.4(@types/node@24.5.2)':
- dependencies:
- '@inquirer/ansi': 1.0.0
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/figures': 1.0.13
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@inquirer/type@3.0.8(@types/node@24.5.2)':
- optionalDependencies:
- '@types/node': 24.5.2
-
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
- strip-ansi-cjs: strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: wrap-ansi@7.0.0
-
- '@jridgewell/gen-mapping@0.3.13':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/sourcemap-codec@1.5.5': {}
-
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
-
- '@jsep-plugin/assignment@1.3.0(jsep@1.4.0)':
- dependencies:
- jsep: 1.4.0
-
- '@jsep-plugin/regex@1.0.4(jsep@1.4.0)':
- dependencies:
- jsep: 1.4.0
-
- '@jsep-plugin/ternary@1.1.4(jsep@1.4.0)':
- dependencies:
- jsep: 1.4.0
-
- '@leichtgewicht/ip-codec@2.0.5': {}
-
- '@mdx-js/mdx@3.1.1':
- dependencies:
- '@types/estree': 1.0.8
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdx': 2.0.13
- acorn: 8.15.0
- collapse-white-space: 2.1.0
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- estree-util-scope: 1.0.0
- estree-walker: 3.0.3
- hast-util-to-jsx-runtime: 2.3.6
- markdown-extensions: 2.0.0
- recma-build-jsx: 1.0.0
- recma-jsx: 1.0.1(acorn@8.15.0)
- recma-stringify: 1.0.0
- rehype-recma: 1.0.0
- remark-mdx: 3.1.1
- remark-parse: 11.0.0
- remark-rehype: 11.1.2
- source-map: 0.7.6
- unified: 11.0.5
- unist-util-position-from-estree: 2.0.0
- unist-util-stringify-position: 4.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
- transitivePeerDependencies:
- - supports-color
-
- '@mdx-js/react@3.1.1(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@types/mdx': 2.0.13
- '@types/react': 19.1.13
- react: 19.1.1
-
- '@mintlify/cli@4.0.727(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/node@24.5.2)(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(typescript@5.9.2)':
- dependencies:
- '@mintlify/common': 1.0.537(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/link-rot': 3.0.674(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/models': 0.0.229
- '@mintlify/prebuild': 1.0.661(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/previewing': 4.0.710(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(typescript@5.9.2)
- '@mintlify/validation': 0.1.471
- chalk: 5.6.2
- detect-port: 1.6.1
- fs-extra: 11.3.2
- gray-matter: 4.0.3
- ink: 6.3.1(@types/react@19.1.13)(react@19.1.1)
- inquirer: 12.9.6(@types/node@24.5.2)
- js-yaml: 4.1.0
- react: 19.1.1
- semver: 7.7.2
- yargs: 17.7.2
- transitivePeerDependencies:
- - '@radix-ui/react-popover'
- - '@types/node'
- - '@types/react'
- - bare-buffer
- - bufferutil
- - debug
- - encoding
- - react-devtools-core
- - react-dom
- - react-native-b4a
- - supports-color
- - ts-node
- - typescript
- - utf-8-validate
-
- '@mintlify/common@1.0.537(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
- dependencies:
- '@asyncapi/parser': 3.4.0
- '@mintlify/mdx': 2.0.11(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/models': 0.0.229
- '@mintlify/openapi-parser': 0.0.7
- '@mintlify/validation': 0.1.471
- '@sindresorhus/slugify': 2.2.1
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- estree-util-to-js: 2.0.0
- estree-walker: 3.0.3
- gray-matter: 4.0.3
- hast-util-from-html: 2.0.3
- hast-util-to-html: 9.0.5
- hast-util-to-text: 4.0.2
- js-yaml: 4.1.0
- lodash: 4.17.21
- mdast: 3.0.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-gfm: 3.1.0
- mdast-util-mdx: 3.0.0
- mdast-util-mdx-jsx: 3.2.0
- micromark-extension-gfm: 3.0.0
- micromark-extension-mdx-jsx: 3.0.2
- micromark-extension-mdxjs: 3.0.0
- openapi-types: 12.1.3
- postcss: 8.5.6
- remark: 15.0.1
- remark-frontmatter: 5.0.0
- remark-gfm: 4.0.1
- remark-math: 6.0.0
- remark-mdx: 3.1.1
- remark-stringify: 11.0.0
- tailwindcss: 3.4.17
- unified: 11.0.5
- unist-builder: 4.0.0
- unist-util-map: 4.0.0
- unist-util-remove: 4.0.0
- unist-util-remove-position: 5.0.0
- unist-util-visit: 5.0.0
- unist-util-visit-parents: 6.0.1
- vfile: 6.0.3
- transitivePeerDependencies:
- - '@radix-ui/react-popover'
- - '@types/react'
- - debug
- - encoding
- - react
- - react-dom
- - supports-color
- - ts-node
- - typescript
-
- '@mintlify/link-rot@3.0.674(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
- dependencies:
- '@mintlify/common': 1.0.537(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/prebuild': 1.0.661(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/previewing': 4.0.710(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(typescript@5.9.2)
- '@mintlify/validation': 0.1.471
- fs-extra: 11.3.2
- unist-util-visit: 4.1.2
- transitivePeerDependencies:
- - '@radix-ui/react-popover'
- - '@types/react'
- - bare-buffer
- - bufferutil
- - debug
- - encoding
- - react
- - react-devtools-core
- - react-dom
- - react-native-b4a
- - supports-color
- - ts-node
- - typescript
- - utf-8-validate
-
- '@mintlify/mdx@2.0.11(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
- dependencies:
- '@radix-ui/react-popover': 1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@shikijs/transformers': 3.13.0
- '@shikijs/twoslash': 3.13.0(typescript@5.9.2)
- hast-util-to-string: 3.0.1
- mdast-util-from-markdown: 2.0.2
- mdast-util-gfm: 3.1.0
- mdast-util-mdx-jsx: 3.2.0
- mdast-util-to-hast: 13.2.0
- next-mdx-remote-client: 1.1.2(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(unified@11.0.5)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- rehype-katex: 7.0.1
- remark-gfm: 4.0.1
- remark-math: 6.0.0
- remark-smartypants: 3.0.2
- shiki: 3.13.0
- unified: 11.0.5
- unist-util-visit: 5.0.0
- transitivePeerDependencies:
- - '@types/react'
- - supports-color
- - typescript
-
- '@mintlify/models@0.0.229':
- dependencies:
- axios: 1.12.2
- openapi-types: 12.1.3
- transitivePeerDependencies:
- - debug
-
- '@mintlify/openapi-parser@0.0.7':
- dependencies:
- ajv: 8.17.1
- ajv-draft-04: 1.0.0(ajv@8.17.1)
- ajv-formats: 3.0.1(ajv@8.17.1)
- jsonpointer: 5.0.1
- leven: 4.1.0
- yaml: 2.8.1
-
- '@mintlify/prebuild@1.0.661(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
- dependencies:
- '@mintlify/common': 1.0.537(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/openapi-parser': 0.0.7
- '@mintlify/scraping': 4.0.396(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/validation': 0.1.471
- chalk: 5.6.2
- favicons: 7.2.0
- fs-extra: 11.3.2
- gray-matter: 4.0.3
- js-yaml: 4.1.0
- mdast: 3.0.0
- openapi-types: 12.1.3
- unist-util-visit: 4.1.2
- transitivePeerDependencies:
- - '@radix-ui/react-popover'
- - '@types/react'
- - bare-buffer
- - bufferutil
- - debug
- - encoding
- - react
- - react-dom
- - react-native-b4a
- - supports-color
- - ts-node
- - typescript
- - utf-8-validate
-
- '@mintlify/previewing@4.0.710(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(typescript@5.9.2)':
- dependencies:
- '@mintlify/common': 1.0.537(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/prebuild': 1.0.661(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/validation': 0.1.471
- better-opn: 3.0.2
- chalk: 5.6.2
- chokidar: 3.6.0
- express: 4.21.2
- fs-extra: 11.3.2
- got: 13.0.0
- gray-matter: 4.0.3
- ink: 6.3.1(@types/react@19.1.13)(react@19.1.1)
- ink-spinner: 5.0.0(ink@6.3.1(@types/react@19.1.13)(react@19.1.1))(react@19.1.1)
- is-online: 10.0.0
- js-yaml: 4.1.0
- mdast: 3.0.0
- openapi-types: 12.1.3
- react: 19.1.1
- socket.io: 4.8.1
- tar: 6.2.1
- unist-util-visit: 4.1.2
- yargs: 17.7.2
- transitivePeerDependencies:
- - '@radix-ui/react-popover'
- - '@types/react'
- - bare-buffer
- - bufferutil
- - debug
- - encoding
- - react-devtools-core
- - react-dom
- - react-native-b4a
- - supports-color
- - ts-node
- - typescript
- - utf-8-validate
-
- '@mintlify/scraping@4.0.396(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)':
- dependencies:
- '@mintlify/common': 1.0.537(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2)
- '@mintlify/openapi-parser': 0.0.7
- fs-extra: 11.3.2
- hast-util-to-mdast: 10.1.2
- js-yaml: 4.1.0
- mdast-util-mdx-jsx: 3.2.0
- neotraverse: 0.6.18
- puppeteer: 22.15.0(typescript@5.9.2)
- rehype-parse: 9.0.1
- remark-gfm: 4.0.1
- remark-mdx: 3.1.1
- remark-parse: 11.0.0
- remark-stringify: 11.0.0
- unified: 11.0.5
- unist-util-visit: 5.0.0
- yargs: 17.7.2
- zod: 3.25.76
- transitivePeerDependencies:
- - '@radix-ui/react-popover'
- - '@types/react'
- - bare-buffer
- - bufferutil
- - debug
- - encoding
- - react
- - react-dom
- - react-native-b4a
- - supports-color
- - ts-node
- - typescript
- - utf-8-validate
-
- '@mintlify/validation@0.1.471':
- dependencies:
- '@mintlify/models': 0.0.229
- arktype: 2.1.22
- lcm: 0.0.3
- lodash: 4.17.21
- openapi-types: 12.1.3
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - debug
-
- '@nodelib/fs.scandir@2.1.5':
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
-
- '@nodelib/fs.stat@2.0.5': {}
-
- '@nodelib/fs.walk@1.2.8':
- dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.19.1
-
- '@openapi-contrib/openapi-schema-to-json-schema@3.2.0':
- dependencies:
- fast-deep-equal: 3.1.3
-
- '@pkgjs/parseargs@0.11.0':
- optional: true
-
- '@puppeteer/browsers@2.3.0':
- dependencies:
- debug: 4.4.3
- extract-zip: 2.0.1
- progress: 2.0.3
- proxy-agent: 6.5.0
- semver: 7.7.2
- tar-fs: 3.1.1
- unbzip2-stream: 1.4.3
- yargs: 17.7.2
- transitivePeerDependencies:
- - bare-buffer
- - react-native-b4a
- - supports-color
-
- '@radix-ui/primitive@1.1.3': {}
-
- '@radix-ui/react-arrow@1.1.7(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-context@1.1.2(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-dismissable-layer@1.1.11(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-focus-guards@1.1.3(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-focus-scope@1.1.7(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-id@1.1.1(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-id': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-popper': 1.2.8(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-portal': 1.1.9(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-presence': 1.1.5(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.13)(react@19.1.1)
- aria-hidden: 1.2.6
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- react-remove-scroll: 2.7.1(@types/react@19.1.13)(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-popper@1.2.8(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@floating-ui/react-dom': 2.1.6(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-arrow': 1.1.7(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-context': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/rect': 1.1.1
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-portal@1.1.9(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-presence@1.1.5(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-primitive@2.1.3(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)':
- dependencies:
- '@radix-ui/react-slot': 1.2.3(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-slot@1.2.3(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.13)(react@19.1.1)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@radix-ui/rect': 1.1.1
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/react-use-size@1.1.1(@types/react@19.1.13)(react@19.1.1)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- '@radix-ui/rect@1.1.1': {}
-
- '@shikijs/core@3.13.0':
- dependencies:
- '@shikijs/types': 3.13.0
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
- hast-util-to-html: 9.0.5
-
- '@shikijs/engine-javascript@3.13.0':
- dependencies:
- '@shikijs/types': 3.13.0
- '@shikijs/vscode-textmate': 10.0.2
- oniguruma-to-es: 4.3.3
-
- '@shikijs/engine-oniguruma@3.13.0':
- dependencies:
- '@shikijs/types': 3.13.0
- '@shikijs/vscode-textmate': 10.0.2
-
- '@shikijs/langs@3.13.0':
- dependencies:
- '@shikijs/types': 3.13.0
-
- '@shikijs/themes@3.13.0':
- dependencies:
- '@shikijs/types': 3.13.0
-
- '@shikijs/transformers@3.13.0':
- dependencies:
- '@shikijs/core': 3.13.0
- '@shikijs/types': 3.13.0
-
- '@shikijs/twoslash@3.13.0(typescript@5.9.2)':
- dependencies:
- '@shikijs/core': 3.13.0
- '@shikijs/types': 3.13.0
- twoslash: 0.3.4(typescript@5.9.2)
- typescript: 5.9.2
- transitivePeerDependencies:
- - supports-color
-
- '@shikijs/types@3.13.0':
- dependencies:
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
-
- '@shikijs/vscode-textmate@10.0.2': {}
-
- '@sindresorhus/is@5.6.0': {}
-
- '@sindresorhus/slugify@2.2.1':
- dependencies:
- '@sindresorhus/transliterate': 1.6.0
- escape-string-regexp: 5.0.0
-
- '@sindresorhus/transliterate@1.6.0':
- dependencies:
- escape-string-regexp: 5.0.0
-
- '@socket.io/component-emitter@3.1.2': {}
-
- '@stoplight/better-ajv-errors@1.0.3(ajv@8.17.1)':
- dependencies:
- ajv: 8.17.1
- jsonpointer: 5.0.1
- leven: 3.1.0
-
- '@stoplight/json-ref-readers@1.2.2':
- dependencies:
- node-fetch: 2.6.7
- tslib: 1.14.1
- transitivePeerDependencies:
- - encoding
-
- '@stoplight/json-ref-resolver@3.1.6':
- dependencies:
- '@stoplight/json': 3.21.0
- '@stoplight/path': 1.3.2
- '@stoplight/types': 13.20.0
- '@types/urijs': 1.19.25
- dependency-graph: 0.11.0
- fast-memoize: 2.5.2
- immer: 9.0.21
- lodash: 4.17.21
- tslib: 2.8.1
- urijs: 1.19.11
-
- '@stoplight/json@3.21.0':
- dependencies:
- '@stoplight/ordered-object-literal': 1.0.5
- '@stoplight/path': 1.3.2
- '@stoplight/types': 13.20.0
- jsonc-parser: 2.2.1
- lodash: 4.17.21
- safe-stable-stringify: 1.1.1
-
- '@stoplight/ordered-object-literal@1.0.5': {}
-
- '@stoplight/path@1.3.2': {}
-
- '@stoplight/spectral-core@1.20.0':
- dependencies:
- '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1)
- '@stoplight/json': 3.21.0
- '@stoplight/path': 1.3.2
- '@stoplight/spectral-parsers': 1.0.5
- '@stoplight/spectral-ref-resolver': 1.0.5
- '@stoplight/spectral-runtime': 1.1.4
- '@stoplight/types': 13.6.0
- '@types/es-aggregate-error': 1.0.6
- '@types/json-schema': 7.0.15
- ajv: 8.17.1
- ajv-errors: 3.0.0(ajv@8.17.1)
- ajv-formats: 2.1.1(ajv@8.17.1)
- es-aggregate-error: 1.0.14
- jsonpath-plus: 10.3.0
- lodash: 4.17.21
- lodash.topath: 4.5.2
- minimatch: 3.1.2
- nimma: 0.2.3
- pony-cause: 1.1.1
- simple-eval: 1.0.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - encoding
-
- '@stoplight/spectral-formats@1.8.2':
- dependencies:
- '@stoplight/json': 3.21.0
- '@stoplight/spectral-core': 1.20.0
- '@types/json-schema': 7.0.15
- tslib: 2.8.1
- transitivePeerDependencies:
- - encoding
-
- '@stoplight/spectral-functions@1.10.1':
- dependencies:
- '@stoplight/better-ajv-errors': 1.0.3(ajv@8.17.1)
- '@stoplight/json': 3.21.0
- '@stoplight/spectral-core': 1.20.0
- '@stoplight/spectral-formats': 1.8.2
- '@stoplight/spectral-runtime': 1.1.4
- ajv: 8.17.1
- ajv-draft-04: 1.0.0(ajv@8.17.1)
- ajv-errors: 3.0.0(ajv@8.17.1)
- ajv-formats: 2.1.1(ajv@8.17.1)
- lodash: 4.17.21
- tslib: 2.8.1
- transitivePeerDependencies:
- - encoding
-
- '@stoplight/spectral-parsers@1.0.5':
- dependencies:
- '@stoplight/json': 3.21.0
- '@stoplight/types': 14.1.1
- '@stoplight/yaml': 4.3.0
- tslib: 2.8.1
-
- '@stoplight/spectral-ref-resolver@1.0.5':
- dependencies:
- '@stoplight/json-ref-readers': 1.2.2
- '@stoplight/json-ref-resolver': 3.1.6
- '@stoplight/spectral-runtime': 1.1.4
- dependency-graph: 0.11.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - encoding
-
- '@stoplight/spectral-runtime@1.1.4':
- dependencies:
- '@stoplight/json': 3.21.0
- '@stoplight/path': 1.3.2
- '@stoplight/types': 13.20.0
- abort-controller: 3.0.0
- lodash: 4.17.21
- node-fetch: 2.7.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - encoding
-
- '@stoplight/types@13.20.0':
- dependencies:
- '@types/json-schema': 7.0.15
- utility-types: 3.11.0
-
- '@stoplight/types@13.6.0':
- dependencies:
- '@types/json-schema': 7.0.15
- utility-types: 3.11.0
-
- '@stoplight/types@14.1.1':
- dependencies:
- '@types/json-schema': 7.0.15
- utility-types: 3.11.0
-
- '@stoplight/yaml-ast-parser@0.0.50': {}
-
- '@stoplight/yaml@4.3.0':
- dependencies:
- '@stoplight/ordered-object-literal': 1.0.5
- '@stoplight/types': 14.1.1
- '@stoplight/yaml-ast-parser': 0.0.50
- tslib: 2.8.1
-
- '@szmarczak/http-timer@5.0.1':
- dependencies:
- defer-to-connect: 2.0.1
-
- '@tootallnate/quickjs-emscripten@0.23.0': {}
-
- '@types/cors@2.8.19':
- dependencies:
- '@types/node': 24.5.2
-
- '@types/debug@4.1.12':
- dependencies:
- '@types/ms': 2.1.0
-
- '@types/es-aggregate-error@1.0.6':
- dependencies:
- '@types/node': 24.5.2
-
- '@types/estree-jsx@1.0.5':
- dependencies:
- '@types/estree': 1.0.8
-
- '@types/estree@1.0.8': {}
-
- '@types/hast@3.0.4':
- dependencies:
- '@types/unist': 3.0.3
-
- '@types/http-cache-semantics@4.0.4': {}
-
- '@types/json-schema@7.0.15': {}
-
- '@types/katex@0.16.7': {}
-
- '@types/mdast@4.0.4':
- dependencies:
- '@types/unist': 3.0.3
-
- '@types/mdx@2.0.13': {}
-
- '@types/ms@2.1.0': {}
-
- '@types/nlcst@2.0.3':
- dependencies:
- '@types/unist': 3.0.3
-
- '@types/node@24.5.2':
- dependencies:
- undici-types: 7.12.0
-
- '@types/react@19.1.13':
- dependencies:
- csstype: 3.1.3
-
- '@types/unist@2.0.11': {}
-
- '@types/unist@3.0.3': {}
-
- '@types/urijs@1.19.25': {}
-
- '@types/yauzl@2.10.3':
- dependencies:
- '@types/node': 24.5.2
- optional: true
-
- '@typescript/vfs@1.6.1(typescript@5.9.2)':
- dependencies:
- debug: 4.4.3
- typescript: 5.9.2
- transitivePeerDependencies:
- - supports-color
-
- '@ungap/structured-clone@1.3.0': {}
-
- abort-controller@3.0.0:
- dependencies:
- event-target-shim: 5.0.1
-
- accepts@1.3.8:
- dependencies:
- mime-types: 2.1.35
- negotiator: 0.6.3
-
- acorn-jsx@5.3.2(acorn@8.15.0):
- dependencies:
- acorn: 8.15.0
-
- acorn@8.15.0: {}
-
- address@1.2.2: {}
-
- agent-base@7.1.4: {}
-
- aggregate-error@4.0.1:
- dependencies:
- clean-stack: 4.2.0
- indent-string: 5.0.0
-
- ajv-draft-04@1.0.0(ajv@8.17.1):
- optionalDependencies:
- ajv: 8.17.1
-
- ajv-errors@3.0.0(ajv@8.17.1):
- dependencies:
- ajv: 8.17.1
-
- ajv-formats@2.1.1(ajv@8.17.1):
- optionalDependencies:
- ajv: 8.17.1
-
- ajv-formats@3.0.1(ajv@8.17.1):
- optionalDependencies:
- ajv: 8.17.1
-
- ajv@8.17.1:
- dependencies:
- fast-deep-equal: 3.1.3
- fast-uri: 3.1.0
- json-schema-traverse: 1.0.0
- require-from-string: 2.0.2
-
- ansi-escapes@7.1.1:
- dependencies:
- environment: 1.1.0
-
- ansi-regex@5.0.1: {}
-
- ansi-regex@6.2.2: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- ansi-styles@6.2.3: {}
-
- any-promise@1.3.0: {}
-
- anymatch@3.1.3:
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
-
- arg@5.0.2: {}
-
- argparse@1.0.10:
- dependencies:
- sprintf-js: 1.0.3
-
- argparse@2.0.1: {}
-
- aria-hidden@1.2.6:
- dependencies:
- tslib: 2.8.1
-
- arktype@2.1.22:
- dependencies:
- '@ark/schema': 0.49.0
- '@ark/util': 0.49.0
-
- array-buffer-byte-length@1.0.2:
- dependencies:
- call-bound: 1.0.4
- is-array-buffer: 3.0.5
-
- array-flatten@1.1.1: {}
-
- array-iterate@2.0.1: {}
-
- arraybuffer.prototype.slice@1.0.4:
- dependencies:
- array-buffer-byte-length: 1.0.2
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- is-array-buffer: 3.0.5
-
- ast-types@0.13.4:
- dependencies:
- tslib: 2.8.1
-
- astring@1.9.0: {}
-
- async-function@1.0.0: {}
-
- asynckit@0.4.0: {}
-
- auto-bind@5.0.1: {}
-
- available-typed-arrays@1.0.7:
- dependencies:
- possible-typed-array-names: 1.1.0
-
- avsc@5.7.9: {}
-
- axios@1.12.2:
- dependencies:
- follow-redirects: 1.15.11
- form-data: 4.0.4
- proxy-from-env: 1.1.0
- transitivePeerDependencies:
- - debug
-
- b4a@1.7.2: {}
-
- bail@2.0.2: {}
-
- balanced-match@1.0.2: {}
-
- bare-events@2.7.0: {}
-
- bare-fs@4.4.4:
- dependencies:
- bare-events: 2.7.0
- bare-path: 3.0.0
- bare-stream: 2.7.0(bare-events@2.7.0)
- bare-url: 2.2.2
- fast-fifo: 1.3.2
- transitivePeerDependencies:
- - react-native-b4a
- optional: true
-
- bare-os@3.6.2:
- optional: true
-
- bare-path@3.0.0:
- dependencies:
- bare-os: 3.6.2
- optional: true
-
- bare-stream@2.7.0(bare-events@2.7.0):
- dependencies:
- streamx: 2.23.0
- optionalDependencies:
- bare-events: 2.7.0
- transitivePeerDependencies:
- - react-native-b4a
- optional: true
-
- bare-url@2.2.2:
- dependencies:
- bare-path: 3.0.0
- optional: true
-
- base64-js@1.5.1: {}
-
- base64id@2.0.0: {}
-
- basic-ftp@5.0.5: {}
-
- better-opn@3.0.2:
- dependencies:
- open: 8.4.2
-
- binary-extensions@2.3.0: {}
-
- body-parser@1.20.3:
- 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.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
-
- brace-expansion@1.1.12:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- brace-expansion@2.0.2:
- dependencies:
- balanced-match: 1.0.2
-
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
- buffer-crc32@0.2.13: {}
-
- buffer@5.7.1:
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
-
- bytes@3.1.2: {}
-
- cacheable-lookup@7.0.0: {}
-
- cacheable-request@10.2.14:
- dependencies:
- '@types/http-cache-semantics': 4.0.4
- get-stream: 6.0.1
- http-cache-semantics: 4.2.0
- keyv: 4.5.4
- mimic-response: 4.0.0
- normalize-url: 8.1.0
- responselike: 3.0.0
-
- call-bind-apply-helpers@1.0.2:
- dependencies:
- es-errors: 1.3.0
- function-bind: 1.1.2
-
- call-bind@1.0.8:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- get-intrinsic: 1.3.0
- set-function-length: 1.2.2
-
- call-bound@1.0.4:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- get-intrinsic: 1.3.0
-
- callsites@3.1.0: {}
-
- camelcase-css@2.0.1: {}
-
- ccount@2.0.1: {}
-
- chalk@5.6.2: {}
-
- character-entities-html4@2.1.0: {}
-
- character-entities-legacy@3.0.0: {}
-
- character-entities@2.0.2: {}
-
- character-reference-invalid@2.0.1: {}
-
- chardet@2.1.0: {}
-
- chokidar@3.6.0:
- dependencies:
- anymatch: 3.1.3
- braces: 3.0.3
- glob-parent: 5.1.2
- is-binary-path: 2.1.0
- is-glob: 4.0.3
- normalize-path: 3.0.0
- readdirp: 3.6.0
- optionalDependencies:
- fsevents: 2.3.3
-
- chownr@2.0.0: {}
-
- chromium-bidi@0.6.3(devtools-protocol@0.0.1312386):
- dependencies:
- devtools-protocol: 0.0.1312386
- mitt: 3.0.1
- urlpattern-polyfill: 10.0.0
- zod: 3.23.8
-
- clean-stack@4.2.0:
- dependencies:
- escape-string-regexp: 5.0.0
-
- cli-boxes@3.0.0: {}
-
- cli-cursor@4.0.0:
- dependencies:
- restore-cursor: 4.0.0
-
- cli-spinners@2.9.2: {}
-
- cli-truncate@4.0.0:
- dependencies:
- slice-ansi: 5.0.0
- string-width: 7.2.0
-
- cli-width@4.1.0: {}
-
- cliui@8.0.1:
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
-
- code-excerpt@4.0.0:
- dependencies:
- convert-to-spaces: 2.0.1
-
- collapse-white-space@2.1.0: {}
-
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
- color-string@1.9.1:
- dependencies:
- color-name: 1.1.4
- simple-swizzle: 0.2.4
-
- color@4.2.3:
- dependencies:
- color-convert: 2.0.1
- color-string: 1.9.1
-
- combined-stream@1.0.8:
- dependencies:
- delayed-stream: 1.0.0
-
- comma-separated-tokens@2.0.3: {}
-
- commander@4.1.1: {}
-
- commander@8.3.0: {}
-
- concat-map@0.0.1: {}
-
- content-disposition@0.5.4:
- dependencies:
- safe-buffer: 5.2.1
-
- content-type@1.0.5: {}
-
- convert-to-spaces@2.0.1: {}
-
- cookie-signature@1.0.6: {}
-
- cookie@0.7.1: {}
-
- cookie@0.7.2: {}
-
- cors@2.8.5:
- dependencies:
- object-assign: 4.1.1
- vary: 1.1.2
-
- cosmiconfig@9.0.0(typescript@5.9.2):
- dependencies:
- env-paths: 2.2.1
- import-fresh: 3.3.1
- js-yaml: 4.1.0
- parse-json: 5.2.0
- optionalDependencies:
- typescript: 5.9.2
-
- cross-spawn@7.0.6:
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
- cssesc@3.0.0: {}
-
- csstype@3.1.3: {}
-
- data-uri-to-buffer@6.0.2: {}
-
- data-view-buffer@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- data-view-byte-length@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- data-view-byte-offset@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- debug@2.6.9:
- dependencies:
- ms: 2.0.0
-
- debug@4.3.7:
- dependencies:
- ms: 2.1.3
-
- debug@4.4.3:
- dependencies:
- ms: 2.1.3
-
- decode-named-character-reference@1.2.0:
- dependencies:
- character-entities: 2.0.2
-
- decompress-response@6.0.0:
- dependencies:
- mimic-response: 3.1.0
-
- defer-to-connect@2.0.1: {}
-
- define-data-property@1.1.4:
- dependencies:
- es-define-property: 1.0.1
- es-errors: 1.3.0
- gopd: 1.2.0
-
- define-lazy-prop@2.0.0: {}
-
- define-properties@1.2.1:
- dependencies:
- define-data-property: 1.1.4
- has-property-descriptors: 1.0.2
- object-keys: 1.1.1
-
- degenerator@5.0.1:
- dependencies:
- ast-types: 0.13.4
- escodegen: 2.1.0
- esprima: 4.0.1
-
- delayed-stream@1.0.0: {}
-
- depd@2.0.0: {}
-
- dependency-graph@0.11.0: {}
-
- dequal@2.0.3: {}
-
- destroy@1.2.0: {}
-
- detect-libc@2.1.1: {}
-
- detect-node-es@1.1.0: {}
-
- detect-port@1.6.1:
- dependencies:
- address: 1.2.2
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- devlop@1.1.0:
- dependencies:
- dequal: 2.0.3
-
- devtools-protocol@0.0.1312386: {}
-
- didyoumean@1.2.2: {}
-
- dlv@1.1.3: {}
-
- dns-packet@5.6.1:
- dependencies:
- '@leichtgewicht/ip-codec': 2.0.5
-
- dns-socket@4.2.2:
- dependencies:
- dns-packet: 5.6.1
-
- dunder-proto@1.0.1:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-errors: 1.3.0
- gopd: 1.2.0
-
- eastasianwidth@0.2.0: {}
-
- ee-first@1.1.1: {}
-
- emoji-regex@10.5.0: {}
-
- emoji-regex@8.0.0: {}
-
- emoji-regex@9.2.2: {}
-
- encodeurl@1.0.2: {}
-
- encodeurl@2.0.0: {}
-
- end-of-stream@1.4.5:
- dependencies:
- once: 1.4.0
-
- engine.io-parser@5.2.3: {}
-
- engine.io@6.6.4:
- dependencies:
- '@types/cors': 2.8.19
- '@types/node': 24.5.2
- accepts: 1.3.8
- base64id: 2.0.0
- cookie: 0.7.2
- cors: 2.8.5
- debug: 4.3.7
- engine.io-parser: 5.2.3
- ws: 8.17.1
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
- entities@6.0.1: {}
-
- env-paths@2.2.1: {}
-
- environment@1.1.0: {}
-
- error-ex@1.3.4:
- dependencies:
- is-arrayish: 0.2.1
-
- es-abstract@1.24.0:
- dependencies:
- array-buffer-byte-length: 1.0.2
- arraybuffer.prototype.slice: 1.0.4
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- call-bound: 1.0.4
- data-view-buffer: 1.0.2
- data-view-byte-length: 1.0.2
- data-view-byte-offset: 1.0.1
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- es-set-tostringtag: 2.1.0
- es-to-primitive: 1.3.0
- function.prototype.name: 1.1.8
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- get-symbol-description: 1.1.0
- globalthis: 1.0.4
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
- has-proto: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- internal-slot: 1.1.0
- is-array-buffer: 3.0.5
- is-callable: 1.2.7
- is-data-view: 1.0.2
- is-negative-zero: 2.0.3
- is-regex: 1.2.1
- is-set: 2.0.3
- is-shared-array-buffer: 1.0.4
- is-string: 1.1.1
- is-typed-array: 1.1.15
- is-weakref: 1.1.1
- math-intrinsics: 1.1.0
- object-inspect: 1.13.4
- object-keys: 1.1.1
- object.assign: 4.1.7
- own-keys: 1.0.1
- regexp.prototype.flags: 1.5.4
- safe-array-concat: 1.1.3
- safe-push-apply: 1.0.0
- safe-regex-test: 1.1.0
- set-proto: 1.0.0
- stop-iteration-iterator: 1.1.0
- string.prototype.trim: 1.2.10
- string.prototype.trimend: 1.0.9
- string.prototype.trimstart: 1.0.8
- typed-array-buffer: 1.0.3
- typed-array-byte-length: 1.0.3
- typed-array-byte-offset: 1.0.4
- typed-array-length: 1.0.7
- unbox-primitive: 1.1.0
- which-typed-array: 1.1.19
-
- es-aggregate-error@1.0.14:
- dependencies:
- define-data-property: 1.1.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- function-bind: 1.1.2
- globalthis: 1.0.4
- has-property-descriptors: 1.0.2
- set-function-name: 2.0.2
-
- es-define-property@1.0.1: {}
-
- es-errors@1.3.0: {}
-
- es-object-atoms@1.1.1:
- dependencies:
- es-errors: 1.3.0
-
- es-set-tostringtag@2.1.0:
- dependencies:
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
- es-to-primitive@1.3.0:
- dependencies:
- is-callable: 1.2.7
- is-date-object: 1.1.0
- is-symbol: 1.1.1
-
- es-toolkit@1.39.10: {}
-
- esast-util-from-estree@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- devlop: 1.1.0
- estree-util-visit: 2.0.0
- unist-util-position-from-estree: 2.0.0
-
- esast-util-from-js@2.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- acorn: 8.15.0
- esast-util-from-estree: 2.0.0
- vfile-message: 4.0.3
-
- escalade@3.2.0: {}
-
- escape-html@1.0.3: {}
-
- escape-string-regexp@2.0.0: {}
-
- escape-string-regexp@5.0.0: {}
-
- escodegen@2.1.0:
- dependencies:
- esprima: 4.0.1
- estraverse: 5.3.0
- esutils: 2.0.3
- optionalDependencies:
- source-map: 0.6.1
-
- esprima@4.0.1: {}
-
- estraverse@5.3.0: {}
-
- estree-util-attach-comments@3.0.0:
- dependencies:
- '@types/estree': 1.0.8
-
- estree-util-build-jsx@3.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- estree-walker: 3.0.3
-
- estree-util-is-identifier-name@3.0.0: {}
-
- estree-util-scope@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
-
- estree-util-to-js@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- astring: 1.9.0
- source-map: 0.7.6
-
- estree-util-visit@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/unist': 3.0.3
-
- estree-walker@3.0.3:
- dependencies:
- '@types/estree': 1.0.8
-
- esutils@2.0.3: {}
-
- etag@1.8.1: {}
-
- event-target-shim@5.0.1: {}
-
- events-universal@1.0.1:
- dependencies:
- bare-events: 2.7.0
-
- express@4.21.2:
- dependencies:
- accepts: 1.3.8
- array-flatten: 1.1.1
- body-parser: 1.20.3
- content-disposition: 0.5.4
- content-type: 1.0.5
- cookie: 0.7.1
- cookie-signature: 1.0.6
- debug: 2.6.9
- depd: 2.0.0
- encodeurl: 2.0.0
- escape-html: 1.0.3
- etag: 1.8.1
- finalhandler: 1.3.1
- fresh: 0.5.2
- http-errors: 2.0.0
- 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.13.0
- range-parser: 1.2.1
- safe-buffer: 5.2.1
- send: 0.19.0
- serve-static: 1.16.2
- setprototypeof: 1.2.0
- statuses: 2.0.1
- type-is: 1.6.18
- utils-merge: 1.0.1
- vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
-
- extend-shallow@2.0.1:
- dependencies:
- is-extendable: 0.1.1
-
- extend@3.0.2: {}
-
- extract-zip@2.0.1:
- dependencies:
- debug: 4.4.3
- get-stream: 5.2.0
- yauzl: 2.10.0
- optionalDependencies:
- '@types/yauzl': 2.10.3
- transitivePeerDependencies:
- - supports-color
-
- fast-deep-equal@3.1.3: {}
-
- fast-fifo@1.3.2: {}
-
- fast-glob@3.3.3:
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.8
-
- fast-memoize@2.5.2: {}
-
- fast-uri@3.1.0: {}
-
- fastq@1.19.1:
- dependencies:
- reusify: 1.1.0
-
- fault@2.0.1:
- dependencies:
- format: 0.2.2
-
- favicons@7.2.0:
- dependencies:
- escape-html: 1.0.3
- sharp: 0.33.5
- xml2js: 0.6.2
-
- fd-slicer@1.1.0:
- dependencies:
- pend: 1.2.0
-
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
- finalhandler@1.3.1:
- 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.1
- unpipe: 1.0.0
- transitivePeerDependencies:
- - supports-color
-
- follow-redirects@1.15.11: {}
-
- for-each@0.3.5:
- dependencies:
- is-callable: 1.2.7
-
- foreground-child@3.3.1:
- dependencies:
- cross-spawn: 7.0.6
- signal-exit: 4.1.0
-
- form-data-encoder@2.1.4: {}
-
- form-data@4.0.4:
- 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
-
- format@0.2.2: {}
-
- forwarded@0.2.0: {}
-
- fresh@0.5.2: {}
-
- fs-extra@11.3.2:
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 6.2.0
- universalify: 2.0.1
-
- fs-minipass@2.1.0:
- dependencies:
- minipass: 3.3.6
-
- fsevents@2.3.3:
- optional: true
-
- function-bind@1.1.2: {}
-
- function.prototype.name@1.1.8:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- functions-have-names: 1.2.3
- hasown: 2.0.2
- is-callable: 1.2.7
-
- functions-have-names@1.2.3: {}
-
- gcd@0.0.1: {}
-
- get-caller-file@2.0.5: {}
-
- get-east-asian-width@1.4.0: {}
-
- get-intrinsic@1.3.0:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- function-bind: 1.1.2
- get-proto: 1.0.1
- gopd: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- math-intrinsics: 1.1.0
-
- get-nonce@1.0.1: {}
-
- get-proto@1.0.1:
- dependencies:
- dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
-
- get-stream@5.2.0:
- dependencies:
- pump: 3.0.3
-
- get-stream@6.0.1: {}
-
- get-symbol-description@1.1.0:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
-
- get-uri@6.0.5:
- dependencies:
- basic-ftp: 5.0.5
- data-uri-to-buffer: 6.0.2
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- glob-parent@5.1.2:
- dependencies:
- is-glob: 4.0.3
-
- glob-parent@6.0.2:
- dependencies:
- is-glob: 4.0.3
-
- glob@10.4.5:
- dependencies:
- foreground-child: 3.3.1
- jackspeak: 3.4.3
- minimatch: 9.0.5
- minipass: 7.1.2
- package-json-from-dist: 1.0.1
- path-scurry: 1.11.1
-
- globalthis@1.0.4:
- dependencies:
- define-properties: 1.2.1
- gopd: 1.2.0
-
- gopd@1.2.0: {}
-
- got@12.6.1:
- dependencies:
- '@sindresorhus/is': 5.6.0
- '@szmarczak/http-timer': 5.0.1
- cacheable-lookup: 7.0.0
- cacheable-request: 10.2.14
- decompress-response: 6.0.0
- form-data-encoder: 2.1.4
- get-stream: 6.0.1
- http2-wrapper: 2.2.1
- lowercase-keys: 3.0.0
- p-cancelable: 3.0.0
- responselike: 3.0.0
-
- got@13.0.0:
- dependencies:
- '@sindresorhus/is': 5.6.0
- '@szmarczak/http-timer': 5.0.1
- cacheable-lookup: 7.0.0
- cacheable-request: 10.2.14
- decompress-response: 6.0.0
- form-data-encoder: 2.1.4
- get-stream: 6.0.1
- http2-wrapper: 2.2.1
- lowercase-keys: 3.0.0
- p-cancelable: 3.0.0
- responselike: 3.0.0
-
- graceful-fs@4.2.11: {}
-
- gray-matter@4.0.3:
- dependencies:
- js-yaml: 3.14.1
- kind-of: 6.0.3
- section-matter: 1.0.0
- strip-bom-string: 1.0.0
-
- has-bigints@1.1.0: {}
-
- has-property-descriptors@1.0.2:
- dependencies:
- es-define-property: 1.0.1
-
- has-proto@1.2.0:
- dependencies:
- dunder-proto: 1.0.1
-
- has-symbols@1.1.0: {}
-
- has-tostringtag@1.0.2:
- dependencies:
- has-symbols: 1.1.0
-
- hasown@2.0.2:
- dependencies:
- function-bind: 1.1.2
-
- hast-util-embedded@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-is-element: 3.0.0
-
- hast-util-from-dom@5.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hastscript: 9.0.1
- web-namespaces: 2.0.1
-
- hast-util-from-html-isomorphic@2.0.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-from-dom: 5.0.1
- hast-util-from-html: 2.0.3
- unist-util-remove-position: 5.0.0
-
- hast-util-from-html@2.0.3:
- dependencies:
- '@types/hast': 3.0.4
- devlop: 1.1.0
- hast-util-from-parse5: 8.0.3
- parse5: 7.3.0
- vfile: 6.0.3
- vfile-message: 4.0.3
-
- hast-util-from-parse5@8.0.3:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- devlop: 1.1.0
- hastscript: 9.0.1
- property-information: 7.1.0
- vfile: 6.0.3
- vfile-location: 5.0.3
- web-namespaces: 2.0.1
-
- hast-util-has-property@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-is-body-ok-link@3.0.1:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-is-element@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-minify-whitespace@1.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-is-element: 3.0.0
- hast-util-whitespace: 3.0.0
- unist-util-is: 6.0.0
-
- hast-util-parse-selector@4.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-phrasing@3.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-embedded: 3.0.0
- hast-util-has-property: 3.0.0
- hast-util-is-body-ok-link: 3.0.1
- hast-util-is-element: 3.0.0
-
- hast-util-to-estree@3.1.3:
- dependencies:
- '@types/estree': 1.0.8
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- devlop: 1.1.0
- estree-util-attach-comments: 3.0.0
- estree-util-is-identifier-name: 3.0.0
- hast-util-whitespace: 3.0.0
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.2.0
- mdast-util-mdxjs-esm: 2.0.1
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
- style-to-js: 1.1.17
- unist-util-position: 5.0.0
- zwitch: 2.0.4
- transitivePeerDependencies:
- - supports-color
-
- hast-util-to-html@9.0.5:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- ccount: 2.0.1
- comma-separated-tokens: 2.0.3
- hast-util-whitespace: 3.0.0
- html-void-elements: 3.0.0
- mdast-util-to-hast: 13.2.0
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
- stringify-entities: 4.0.4
- zwitch: 2.0.4
-
- hast-util-to-jsx-runtime@2.3.6:
- dependencies:
- '@types/estree': 1.0.8
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- comma-separated-tokens: 2.0.3
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- hast-util-whitespace: 3.0.0
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.2.0
- mdast-util-mdxjs-esm: 2.0.1
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
- style-to-js: 1.1.17
- unist-util-position: 5.0.0
- vfile-message: 4.0.3
- transitivePeerDependencies:
- - supports-color
-
- hast-util-to-mdast@10.1.2:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- '@ungap/structured-clone': 1.3.0
- hast-util-phrasing: 3.0.1
- hast-util-to-html: 9.0.5
- hast-util-to-text: 4.0.2
- hast-util-whitespace: 3.0.0
- mdast-util-phrasing: 4.1.0
- mdast-util-to-hast: 13.2.0
- mdast-util-to-string: 4.0.0
- rehype-minify-whitespace: 6.0.2
- trim-trailing-lines: 2.1.0
- unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
-
- hast-util-to-string@3.0.1:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-to-text@4.0.2:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- hast-util-is-element: 3.0.0
- unist-util-find-after: 5.0.0
-
- hast-util-whitespace@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hastscript@9.0.1:
- dependencies:
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- hast-util-parse-selector: 4.0.0
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
-
- html-void-elements@3.0.0: {}
-
- http-cache-semantics@4.2.0: {}
-
- http-errors@2.0.0:
- dependencies:
- depd: 2.0.0
- inherits: 2.0.4
- setprototypeof: 1.2.0
- statuses: 2.0.1
- toidentifier: 1.0.1
-
- http-proxy-agent@7.0.2:
- dependencies:
- agent-base: 7.1.4
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- http2-wrapper@2.2.1:
- dependencies:
- quick-lru: 5.1.1
- resolve-alpn: 1.2.1
-
- https-proxy-agent@7.0.6:
- dependencies:
- agent-base: 7.1.4
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- iconv-lite@0.4.24:
- dependencies:
- safer-buffer: 2.1.2
-
- iconv-lite@0.7.0:
- dependencies:
- safer-buffer: 2.1.2
-
- ieee754@1.2.1: {}
-
- immer@9.0.21: {}
-
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
-
- indent-string@5.0.0: {}
-
- inherits@2.0.4: {}
-
- ink-spinner@5.0.0(ink@6.3.1(@types/react@19.1.13)(react@19.1.1))(react@19.1.1):
- dependencies:
- cli-spinners: 2.9.2
- ink: 6.3.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
-
- ink@6.3.1(@types/react@19.1.13)(react@19.1.1):
- dependencies:
- '@alcalzone/ansi-tokenize': 0.2.0
- ansi-escapes: 7.1.1
- ansi-styles: 6.2.3
- auto-bind: 5.0.1
- chalk: 5.6.2
- cli-boxes: 3.0.0
- cli-cursor: 4.0.0
- cli-truncate: 4.0.0
- code-excerpt: 4.0.0
- es-toolkit: 1.39.10
- indent-string: 5.0.0
- is-in-ci: 2.0.0
- patch-console: 2.0.0
- react: 19.1.1
- react-reconciler: 0.32.0(react@19.1.1)
- signal-exit: 3.0.7
- slice-ansi: 7.1.2
- stack-utils: 2.0.6
- string-width: 7.2.0
- type-fest: 4.41.0
- widest-line: 5.0.0
- wrap-ansi: 9.0.2
- ws: 8.18.3
- yoga-layout: 3.2.1
- optionalDependencies:
- '@types/react': 19.1.13
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- inline-style-parser@0.2.4: {}
-
- inquirer@12.9.6(@types/node@24.5.2):
- dependencies:
- '@inquirer/ansi': 1.0.0
- '@inquirer/core': 10.2.2(@types/node@24.5.2)
- '@inquirer/prompts': 7.8.6(@types/node@24.5.2)
- '@inquirer/type': 3.0.8(@types/node@24.5.2)
- mute-stream: 2.0.0
- run-async: 4.0.6
- rxjs: 7.8.2
- optionalDependencies:
- '@types/node': 24.5.2
-
- internal-slot@1.1.0:
- dependencies:
- es-errors: 1.3.0
- hasown: 2.0.2
- side-channel: 1.1.0
-
- ip-address@10.0.1: {}
-
- ip-regex@4.3.0: {}
-
- ipaddr.js@1.9.1: {}
-
- is-alphabetical@2.0.1: {}
-
- is-alphanumerical@2.0.1:
- dependencies:
- is-alphabetical: 2.0.1
- is-decimal: 2.0.1
-
- is-array-buffer@3.0.5:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
-
- is-arrayish@0.2.1: {}
-
- is-arrayish@0.3.4: {}
-
- is-async-function@2.1.1:
- dependencies:
- async-function: 1.0.0
- call-bound: 1.0.4
- get-proto: 1.0.1
- has-tostringtag: 1.0.2
- safe-regex-test: 1.1.0
-
- is-bigint@1.1.0:
- dependencies:
- has-bigints: 1.1.0
-
- is-binary-path@2.1.0:
- dependencies:
- binary-extensions: 2.3.0
-
- is-boolean-object@1.2.2:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-callable@1.2.7: {}
-
- is-core-module@2.16.1:
- dependencies:
- hasown: 2.0.2
-
- is-data-view@1.0.2:
- dependencies:
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
- is-typed-array: 1.1.15
-
- is-date-object@1.1.0:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-decimal@2.0.1: {}
-
- is-docker@2.2.1: {}
-
- is-extendable@0.1.1: {}
-
- is-extglob@2.1.1: {}
-
- is-finalizationregistry@1.1.1:
- dependencies:
- call-bound: 1.0.4
-
- is-fullwidth-code-point@3.0.0: {}
-
- is-fullwidth-code-point@4.0.0: {}
-
- is-fullwidth-code-point@5.1.0:
- dependencies:
- get-east-asian-width: 1.4.0
-
- is-generator-function@1.1.0:
- dependencies:
- call-bound: 1.0.4
- get-proto: 1.0.1
- has-tostringtag: 1.0.2
- safe-regex-test: 1.1.0
-
- is-glob@4.0.3:
- dependencies:
- is-extglob: 2.1.1
-
- is-hexadecimal@2.0.1: {}
-
- is-in-ci@2.0.0: {}
-
- is-ip@3.1.0:
- dependencies:
- ip-regex: 4.3.0
-
- is-map@2.0.3: {}
-
- is-negative-zero@2.0.3: {}
-
- is-number-object@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-number@7.0.0: {}
-
- is-online@10.0.0:
- dependencies:
- got: 12.6.1
- p-any: 4.0.0
- p-timeout: 5.1.0
- public-ip: 5.0.0
-
- is-plain-obj@4.1.0: {}
-
- is-regex@1.2.1:
- dependencies:
- call-bound: 1.0.4
- gopd: 1.2.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
- is-set@2.0.3: {}
-
- is-shared-array-buffer@1.0.4:
- dependencies:
- call-bound: 1.0.4
-
- is-string@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-symbol@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-symbols: 1.1.0
- safe-regex-test: 1.1.0
-
- is-typed-array@1.1.15:
- dependencies:
- which-typed-array: 1.1.19
-
- is-weakmap@2.0.2: {}
-
- is-weakref@1.1.1:
- dependencies:
- call-bound: 1.0.4
-
- is-weakset@2.0.4:
- dependencies:
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
-
- is-wsl@2.2.0:
- dependencies:
- is-docker: 2.2.1
-
- isarray@2.0.5: {}
-
- isexe@2.0.0: {}
-
- jackspeak@3.4.3:
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
-
- jiti@1.21.7: {}
-
- js-tokens@4.0.0: {}
-
- js-yaml@3.14.1:
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
-
- js-yaml@4.1.0:
- dependencies:
- argparse: 2.0.1
-
- jsep@1.4.0: {}
-
- json-buffer@3.0.1: {}
-
- json-parse-even-better-errors@2.3.1: {}
-
- json-schema-traverse@1.0.0: {}
-
- jsonc-parser@2.2.1: {}
-
- jsonfile@6.2.0:
- dependencies:
- universalify: 2.0.1
- optionalDependencies:
- graceful-fs: 4.2.11
-
- jsonpath-plus@10.3.0:
- dependencies:
- '@jsep-plugin/assignment': 1.3.0(jsep@1.4.0)
- '@jsep-plugin/regex': 1.0.4(jsep@1.4.0)
- jsep: 1.4.0
-
- jsonpointer@5.0.1: {}
-
- katex@0.16.22:
- dependencies:
- commander: 8.3.0
-
- keyv@4.5.4:
- dependencies:
- json-buffer: 3.0.1
-
- kind-of@6.0.3: {}
-
- lcm@0.0.3:
- dependencies:
- gcd: 0.0.1
-
- leven@3.1.0: {}
-
- leven@4.1.0: {}
-
- lilconfig@3.1.3: {}
-
- lines-and-columns@1.2.4: {}
-
- lodash.topath@4.5.2: {}
-
- lodash@4.17.21: {}
-
- longest-streak@3.1.0: {}
-
- loose-envify@1.4.0:
- dependencies:
- js-tokens: 4.0.0
-
- lowercase-keys@3.0.0: {}
-
- lru-cache@10.4.3: {}
-
- lru-cache@7.18.3: {}
-
- lucide-react@0.446.0(react@19.1.1):
- dependencies:
- react: 19.1.1
-
- markdown-extensions@2.0.0: {}
-
- markdown-table@3.0.4: {}
-
- math-intrinsics@1.1.0: {}
-
- mdast-util-find-and-replace@3.0.2:
- dependencies:
- '@types/mdast': 4.0.4
- escape-string-regexp: 5.0.0
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
-
- mdast-util-from-markdown@2.0.2:
- dependencies:
- '@types/mdast': 4.0.4
- '@types/unist': 3.0.3
- decode-named-character-reference: 1.2.0
- devlop: 1.1.0
- mdast-util-to-string: 4.0.0
- micromark: 4.0.2
- micromark-util-decode-numeric-character-reference: 2.0.2
- micromark-util-decode-string: 2.0.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- unist-util-stringify-position: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-frontmatter@2.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- escape-string-regexp: 5.0.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- micromark-extension-frontmatter: 2.0.0
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-autolink-literal@2.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- ccount: 2.0.1
- devlop: 1.1.0
- mdast-util-find-and-replace: 3.0.2
- micromark-util-character: 2.1.1
-
- mdast-util-gfm-footnote@2.1.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- micromark-util-normalize-identifier: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-strikethrough@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-table@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- markdown-table: 3.0.4
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-task-list-item@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm@3.1.0:
- dependencies:
- mdast-util-from-markdown: 2.0.2
- mdast-util-gfm-autolink-literal: 2.0.1
- mdast-util-gfm-footnote: 2.1.0
- mdast-util-gfm-strikethrough: 2.0.0
- mdast-util-gfm-table: 2.0.0
- mdast-util-gfm-task-list-item: 2.0.0
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-math@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- longest-streak: 3.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- unist-util-remove-position: 5.0.0
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdx-expression@2.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdx-jsx@3.2.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- '@types/unist': 3.0.3
- ccount: 2.0.1
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- parse-entities: 4.0.2
- stringify-entities: 4.0.4
- unist-util-stringify-position: 4.0.0
- vfile-message: 4.0.3
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdx@3.0.0:
- dependencies:
- mdast-util-from-markdown: 2.0.2
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.2.0
- mdast-util-mdxjs-esm: 2.0.1
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdxjs-esm@2.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-phrasing@4.1.0:
- dependencies:
- '@types/mdast': 4.0.4
- unist-util-is: 6.0.0
-
- mdast-util-to-hast@13.2.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- '@ungap/structured-clone': 1.3.0
- devlop: 1.1.0
- micromark-util-sanitize-uri: 2.0.1
- trim-lines: 3.0.1
- unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
-
- mdast-util-to-markdown@2.1.2:
- dependencies:
- '@types/mdast': 4.0.4
- '@types/unist': 3.0.3
- longest-streak: 3.1.0
- mdast-util-phrasing: 4.1.0
- mdast-util-to-string: 4.0.0
- micromark-util-classify-character: 2.0.1
- micromark-util-decode-string: 2.0.1
- unist-util-visit: 5.0.0
- zwitch: 2.0.4
-
- mdast-util-to-string@4.0.0:
- dependencies:
- '@types/mdast': 4.0.4
-
- mdast@3.0.0: {}
-
- media-typer@0.3.0: {}
-
- merge-descriptors@1.0.3: {}
-
- merge2@1.4.1: {}
-
- methods@1.1.2: {}
-
- micromark-core-commonmark@2.0.3:
- dependencies:
- decode-named-character-reference: 1.2.0
- devlop: 1.1.0
- micromark-factory-destination: 2.0.1
- micromark-factory-label: 2.0.1
- micromark-factory-space: 2.0.1
- micromark-factory-title: 2.0.1
- micromark-factory-whitespace: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-chunked: 2.0.1
- micromark-util-classify-character: 2.0.1
- micromark-util-html-tag-name: 2.0.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-resolve-all: 2.0.1
- micromark-util-subtokenize: 2.1.0
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-frontmatter@2.0.0:
- dependencies:
- fault: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-autolink-literal@2.1.0:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-footnote@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-strikethrough@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-util-chunked: 2.0.1
- micromark-util-classify-character: 2.0.1
- micromark-util-resolve-all: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-table@2.1.1:
- dependencies:
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-tagfilter@2.0.0:
- dependencies:
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-task-list-item@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm@3.0.0:
- dependencies:
- micromark-extension-gfm-autolink-literal: 2.1.0
- micromark-extension-gfm-footnote: 2.1.0
- micromark-extension-gfm-strikethrough: 2.1.0
- micromark-extension-gfm-table: 2.1.1
- micromark-extension-gfm-tagfilter: 2.0.0
- micromark-extension-gfm-task-list-item: 2.1.0
- micromark-util-combine-extensions: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-math@3.1.0:
- dependencies:
- '@types/katex': 0.16.7
- devlop: 1.1.0
- katex: 0.16.22
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-mdx-expression@3.0.1:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- micromark-factory-mdx-expression: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-mdx-jsx@3.0.2:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- micromark-factory-mdx-expression: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- vfile-message: 4.0.3
-
- micromark-extension-mdx-md@2.0.0:
- dependencies:
- micromark-util-types: 2.0.2
-
- micromark-extension-mdxjs-esm@3.0.0:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.3
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.3
-
- micromark-extension-mdxjs@3.0.0:
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- micromark-extension-mdx-expression: 3.0.1
- micromark-extension-mdx-jsx: 3.0.2
- micromark-extension-mdx-md: 2.0.0
- micromark-extension-mdxjs-esm: 3.0.0
- micromark-util-combine-extensions: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-destination@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-label@2.0.1:
- dependencies:
- devlop: 1.1.0
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-mdx-expression@2.0.3:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.3
-
- micromark-factory-space@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-types: 2.0.2
-
- micromark-factory-title@2.0.1:
- dependencies:
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-whitespace@2.0.1:
- dependencies:
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-character@2.1.1:
- dependencies:
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-chunked@2.0.1:
- dependencies:
- micromark-util-symbol: 2.0.1
-
- micromark-util-classify-character@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-combine-extensions@2.0.1:
- dependencies:
- micromark-util-chunked: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-decode-numeric-character-reference@2.0.2:
- dependencies:
- micromark-util-symbol: 2.0.1
-
- micromark-util-decode-string@2.0.1:
- dependencies:
- decode-named-character-reference: 1.2.0
- micromark-util-character: 2.1.1
- micromark-util-decode-numeric-character-reference: 2.0.2
- micromark-util-symbol: 2.0.1
-
- micromark-util-encode@2.0.1: {}
-
- micromark-util-events-to-acorn@2.0.3:
- dependencies:
- '@types/estree': 1.0.8
- '@types/unist': 3.0.3
- devlop: 1.1.0
- estree-util-visit: 2.0.0
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- vfile-message: 4.0.3
-
- micromark-util-html-tag-name@2.0.1: {}
-
- micromark-util-normalize-identifier@2.0.1:
- dependencies:
- micromark-util-symbol: 2.0.1
-
- micromark-util-resolve-all@2.0.1:
- dependencies:
- micromark-util-types: 2.0.2
-
- micromark-util-sanitize-uri@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-encode: 2.0.1
- micromark-util-symbol: 2.0.1
-
- micromark-util-subtokenize@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-util-chunked: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-symbol@2.0.1: {}
-
- micromark-util-types@2.0.2: {}
-
- micromark@4.0.2:
- dependencies:
- '@types/debug': 4.1.12
- debug: 4.4.3
- decode-named-character-reference: 1.2.0
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-chunked: 2.0.1
- micromark-util-combine-extensions: 2.0.1
- micromark-util-decode-numeric-character-reference: 2.0.2
- micromark-util-encode: 2.0.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-resolve-all: 2.0.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-subtokenize: 2.1.0
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- micromatch@4.0.8:
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.1
-
- mime-db@1.52.0: {}
-
- mime-types@2.1.35:
- dependencies:
- mime-db: 1.52.0
-
- mime@1.6.0: {}
-
- mimic-fn@2.1.0: {}
-
- mimic-response@3.1.0: {}
-
- mimic-response@4.0.0: {}
-
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.12
-
- minimatch@9.0.5:
- dependencies:
- brace-expansion: 2.0.2
-
- minipass@3.3.6:
- dependencies:
- yallist: 4.0.0
-
- minipass@5.0.0: {}
-
- minipass@7.1.2: {}
-
- minizlib@2.1.2:
- dependencies:
- minipass: 3.3.6
- yallist: 4.0.0
-
- mintlify@4.2.123(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/node@24.5.2)(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(typescript@5.9.2):
- dependencies:
- '@mintlify/cli': 4.0.727(@radix-ui/react-popover@1.1.15(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1))(@types/node@24.5.2)(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(typescript@5.9.2)
- transitivePeerDependencies:
- - '@radix-ui/react-popover'
- - '@types/node'
- - '@types/react'
- - bare-buffer
- - bufferutil
- - debug
- - encoding
- - react-devtools-core
- - react-dom
- - react-native-b4a
- - supports-color
- - ts-node
- - typescript
- - utf-8-validate
-
- mitt@3.0.1: {}
-
- mkdirp@1.0.4: {}
-
- ms@2.0.0: {}
-
- ms@2.1.3: {}
-
- mute-stream@2.0.0: {}
-
- mz@2.7.0:
- dependencies:
- any-promise: 1.3.0
- object-assign: 4.1.1
- thenify-all: 1.6.0
-
- nanoid@3.3.11: {}
-
- negotiator@0.6.3: {}
-
- neotraverse@0.6.18: {}
-
- netmask@2.0.2: {}
-
- next-mdx-remote-client@1.1.2(@types/react@19.1.13)(react-dom@18.3.1(react@19.1.1))(react@19.1.1)(unified@11.0.5):
- dependencies:
- '@babel/code-frame': 7.27.1
- '@mdx-js/mdx': 3.1.1
- '@mdx-js/react': 3.1.1(@types/react@19.1.13)(react@19.1.1)
- react: 19.1.1
- react-dom: 18.3.1(react@19.1.1)
- remark-mdx-remove-esm: 1.2.1(unified@11.0.5)
- serialize-error: 12.0.0
- vfile: 6.0.3
- vfile-matter: 5.0.1
- transitivePeerDependencies:
- - '@types/react'
- - supports-color
- - unified
-
- nimma@0.2.3:
- dependencies:
- '@jsep-plugin/regex': 1.0.4(jsep@1.4.0)
- '@jsep-plugin/ternary': 1.1.4(jsep@1.4.0)
- astring: 1.9.0
- jsep: 1.4.0
- optionalDependencies:
- jsonpath-plus: 10.3.0
- lodash.topath: 4.5.2
-
- nlcst-to-string@4.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
-
- node-fetch@2.6.7:
- dependencies:
- whatwg-url: 5.0.0
-
- node-fetch@2.7.0:
- dependencies:
- whatwg-url: 5.0.0
-
- normalize-path@3.0.0: {}
-
- normalize-url@8.1.0: {}
-
- object-assign@4.1.1: {}
-
- object-hash@3.0.0: {}
-
- object-inspect@1.13.4: {}
-
- object-keys@1.1.1: {}
-
- object.assign@4.1.7:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
- has-symbols: 1.1.0
- object-keys: 1.1.1
-
- on-finished@2.4.1:
- dependencies:
- ee-first: 1.1.1
-
- once@1.4.0:
- dependencies:
- wrappy: 1.0.2
-
- onetime@5.1.2:
- dependencies:
- mimic-fn: 2.1.0
-
- oniguruma-parser@0.12.1: {}
-
- oniguruma-to-es@4.3.3:
- dependencies:
- oniguruma-parser: 0.12.1
- regex: 6.0.1
- regex-recursion: 6.0.2
-
- open@8.4.2:
- dependencies:
- define-lazy-prop: 2.0.0
- is-docker: 2.2.1
- is-wsl: 2.2.0
-
- openapi-types@12.1.3: {}
-
- own-keys@1.0.1:
- dependencies:
- get-intrinsic: 1.3.0
- object-keys: 1.1.1
- safe-push-apply: 1.0.0
-
- p-any@4.0.0:
- dependencies:
- p-cancelable: 3.0.0
- p-some: 6.0.0
-
- p-cancelable@3.0.0: {}
-
- p-some@6.0.0:
- dependencies:
- aggregate-error: 4.0.1
- p-cancelable: 3.0.0
-
- p-timeout@5.1.0: {}
-
- pac-proxy-agent@7.2.0:
- dependencies:
- '@tootallnate/quickjs-emscripten': 0.23.0
- agent-base: 7.1.4
- debug: 4.4.3
- get-uri: 6.0.5
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.6
- pac-resolver: 7.0.1
- socks-proxy-agent: 8.0.5
- transitivePeerDependencies:
- - supports-color
-
- pac-resolver@7.0.1:
- dependencies:
- degenerator: 5.0.1
- netmask: 2.0.2
-
- package-json-from-dist@1.0.1: {}
-
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
-
- parse-entities@4.0.2:
- dependencies:
- '@types/unist': 2.0.11
- character-entities-legacy: 3.0.0
- character-reference-invalid: 2.0.1
- decode-named-character-reference: 1.2.0
- is-alphanumerical: 2.0.1
- is-decimal: 2.0.1
- is-hexadecimal: 2.0.1
-
- parse-json@5.2.0:
- dependencies:
- '@babel/code-frame': 7.27.1
- error-ex: 1.3.4
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
-
- parse-latin@7.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- '@types/unist': 3.0.3
- nlcst-to-string: 4.0.0
- unist-util-modify-children: 4.0.0
- unist-util-visit-children: 3.0.0
- vfile: 6.0.3
-
- parse5@7.3.0:
- dependencies:
- entities: 6.0.1
-
- parseurl@1.3.3: {}
-
- patch-console@2.0.0: {}
-
- path-key@3.1.1: {}
-
- path-parse@1.0.7: {}
-
- path-scurry@1.11.1:
- dependencies:
- lru-cache: 10.4.3
- minipass: 7.1.2
-
- path-to-regexp@0.1.12: {}
-
- pend@1.2.0: {}
-
- picocolors@1.1.1: {}
-
- picomatch@2.3.1: {}
-
- pify@2.3.0: {}
-
- pirates@4.0.7: {}
-
- pony-cause@1.1.1: {}
-
- possible-typed-array-names@1.1.0: {}
-
- postcss-import@15.1.0(postcss@8.5.6):
- dependencies:
- postcss: 8.5.6
- postcss-value-parser: 4.2.0
- read-cache: 1.0.0
- resolve: 1.22.10
-
- postcss-js@4.1.0(postcss@8.5.6):
- dependencies:
- camelcase-css: 2.0.1
- postcss: 8.5.6
-
- postcss-load-config@4.0.2(postcss@8.5.6):
- dependencies:
- lilconfig: 3.1.3
- yaml: 2.8.1
- optionalDependencies:
- postcss: 8.5.6
-
- postcss-nested@6.2.0(postcss@8.5.6):
- dependencies:
- postcss: 8.5.6
- postcss-selector-parser: 6.1.2
-
- postcss-selector-parser@6.1.2:
- dependencies:
- cssesc: 3.0.0
- util-deprecate: 1.0.2
-
- postcss-value-parser@4.2.0: {}
-
- postcss@8.5.6:
- dependencies:
- nanoid: 3.3.11
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
- progress@2.0.3: {}
-
- property-information@7.1.0: {}
-
- proxy-addr@2.0.7:
- dependencies:
- forwarded: 0.2.0
- ipaddr.js: 1.9.1
-
- proxy-agent@6.5.0:
- dependencies:
- agent-base: 7.1.4
- debug: 4.4.3
- http-proxy-agent: 7.0.2
- https-proxy-agent: 7.0.6
- lru-cache: 7.18.3
- pac-proxy-agent: 7.2.0
- proxy-from-env: 1.1.0
- socks-proxy-agent: 8.0.5
- transitivePeerDependencies:
- - supports-color
-
- proxy-from-env@1.1.0: {}
-
- public-ip@5.0.0:
- dependencies:
- dns-socket: 4.2.2
- got: 12.6.1
- is-ip: 3.1.0
-
- pump@3.0.3:
- dependencies:
- end-of-stream: 1.4.5
- once: 1.4.0
-
- puppeteer-core@22.15.0:
- dependencies:
- '@puppeteer/browsers': 2.3.0
- chromium-bidi: 0.6.3(devtools-protocol@0.0.1312386)
- debug: 4.4.3
- devtools-protocol: 0.0.1312386
- ws: 8.18.3
- transitivePeerDependencies:
- - bare-buffer
- - bufferutil
- - react-native-b4a
- - supports-color
- - utf-8-validate
-
- puppeteer@22.15.0(typescript@5.9.2):
- dependencies:
- '@puppeteer/browsers': 2.3.0
- cosmiconfig: 9.0.0(typescript@5.9.2)
- devtools-protocol: 0.0.1312386
- puppeteer-core: 22.15.0
- transitivePeerDependencies:
- - bare-buffer
- - bufferutil
- - react-native-b4a
- - supports-color
- - typescript
- - utf-8-validate
-
- qs@6.13.0:
- dependencies:
- side-channel: 1.1.0
-
- queue-microtask@1.2.3: {}
-
- quick-lru@5.1.1: {}
-
- range-parser@1.2.1: {}
-
- raw-body@2.5.2:
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- unpipe: 1.0.0
-
- react-dom@18.3.1(react@19.1.1):
- dependencies:
- loose-envify: 1.4.0
- react: 19.1.1
- scheduler: 0.23.2
-
- react-icons@5.5.0(react@19.1.1):
- dependencies:
- react: 19.1.1
-
- react-reconciler@0.32.0(react@19.1.1):
- dependencies:
- react: 19.1.1
- scheduler: 0.26.0
-
- react-remove-scroll-bar@2.3.8(@types/react@19.1.13)(react@19.1.1):
- dependencies:
- react: 19.1.1
- react-style-singleton: 2.2.3(@types/react@19.1.13)(react@19.1.1)
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- react-remove-scroll@2.7.1(@types/react@19.1.13)(react@19.1.1):
- dependencies:
- react: 19.1.1
- react-remove-scroll-bar: 2.3.8(@types/react@19.1.13)(react@19.1.1)
- react-style-singleton: 2.2.3(@types/react@19.1.13)(react@19.1.1)
- tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.1.13)(react@19.1.1)
- use-sidecar: 1.1.3(@types/react@19.1.13)(react@19.1.1)
- optionalDependencies:
- '@types/react': 19.1.13
-
- react-style-singleton@2.2.3(@types/react@19.1.13)(react@19.1.1):
- dependencies:
- get-nonce: 1.0.1
- react: 19.1.1
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- react@19.1.1: {}
-
- read-cache@1.0.0:
- dependencies:
- pify: 2.3.0
-
- readdirp@3.6.0:
- dependencies:
- picomatch: 2.3.1
-
- recma-build-jsx@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- estree-util-build-jsx: 3.0.1
- vfile: 6.0.3
-
- recma-jsx@1.0.1(acorn@8.15.0):
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- estree-util-to-js: 2.0.0
- recma-parse: 1.0.0
- recma-stringify: 1.0.0
- unified: 11.0.5
-
- recma-parse@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- esast-util-from-js: 2.0.1
- unified: 11.0.5
- vfile: 6.0.3
-
- recma-stringify@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- estree-util-to-js: 2.0.0
- unified: 11.0.5
- vfile: 6.0.3
-
- reflect.getprototypeof@1.0.10:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- which-builtin-type: 1.2.1
-
- regex-recursion@6.0.2:
- dependencies:
- regex-utilities: 2.3.0
-
- regex-utilities@2.3.0: {}
-
- regex@6.0.1:
- dependencies:
- regex-utilities: 2.3.0
-
- regexp.prototype.flags@1.5.4:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-errors: 1.3.0
- get-proto: 1.0.1
- gopd: 1.2.0
- set-function-name: 2.0.2
-
- rehype-katex@7.0.1:
- dependencies:
- '@types/hast': 3.0.4
- '@types/katex': 0.16.7
- hast-util-from-html-isomorphic: 2.0.0
- hast-util-to-text: 4.0.2
- katex: 0.16.22
- unist-util-visit-parents: 6.0.1
- vfile: 6.0.3
-
- rehype-minify-whitespace@6.0.2:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-minify-whitespace: 1.0.1
-
- rehype-parse@9.0.1:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-from-html: 2.0.3
- unified: 11.0.5
-
- rehype-recma@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- '@types/hast': 3.0.4
- hast-util-to-estree: 3.1.3
- transitivePeerDependencies:
- - supports-color
-
- remark-frontmatter@5.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-frontmatter: 2.0.1
- micromark-extension-frontmatter: 2.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-gfm@4.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-gfm: 3.1.0
- micromark-extension-gfm: 3.0.0
- remark-parse: 11.0.0
- remark-stringify: 11.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-math@6.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-math: 3.0.0
- micromark-extension-math: 3.1.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-mdx-remove-esm@1.2.1(unified@11.0.5):
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-mdxjs-esm: 2.0.1
- unified: 11.0.5
- unist-util-remove: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- remark-mdx@3.1.1:
- dependencies:
- mdast-util-mdx: 3.0.0
- micromark-extension-mdxjs: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
- remark-parse@11.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
- micromark-util-types: 2.0.2
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-rehype@11.1.2:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- mdast-util-to-hast: 13.2.0
- unified: 11.0.5
- vfile: 6.0.3
-
- remark-smartypants@3.0.2:
- dependencies:
- retext: 9.0.0
- retext-smartypants: 6.2.0
- unified: 11.0.5
- unist-util-visit: 5.0.0
-
- remark-stringify@11.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-to-markdown: 2.1.2
- unified: 11.0.5
-
- remark@15.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- remark-parse: 11.0.0
- remark-stringify: 11.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- require-directory@2.1.1: {}
-
- require-from-string@2.0.2: {}
-
- resolve-alpn@1.2.1: {}
-
- resolve-from@4.0.0: {}
-
- resolve@1.22.10:
- dependencies:
- is-core-module: 2.16.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
-
- responselike@3.0.0:
- dependencies:
- lowercase-keys: 3.0.0
-
- restore-cursor@4.0.0:
- dependencies:
- onetime: 5.1.2
- signal-exit: 3.0.7
-
- retext-latin@4.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- parse-latin: 7.0.0
- unified: 11.0.5
-
- retext-smartypants@6.2.0:
- dependencies:
- '@types/nlcst': 2.0.3
- nlcst-to-string: 4.0.0
- unist-util-visit: 5.0.0
-
- retext-stringify@4.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- nlcst-to-string: 4.0.0
- unified: 11.0.5
-
- retext@9.0.0:
- dependencies:
- '@types/nlcst': 2.0.3
- retext-latin: 4.0.0
- retext-stringify: 4.0.0
- unified: 11.0.5
-
- reusify@1.1.0: {}
-
- run-async@4.0.6: {}
-
- run-parallel@1.2.0:
- dependencies:
- queue-microtask: 1.2.3
-
- rxjs@7.8.2:
- dependencies:
- tslib: 2.8.1
-
- safe-array-concat@1.1.3:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
- has-symbols: 1.1.0
- isarray: 2.0.5
-
- safe-buffer@5.2.1: {}
-
- safe-push-apply@1.0.0:
- dependencies:
- es-errors: 1.3.0
- isarray: 2.0.5
-
- safe-regex-test@1.1.0:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-regex: 1.2.1
-
- safe-stable-stringify@1.1.1: {}
-
- safer-buffer@2.1.2: {}
-
- sax@1.4.1: {}
-
- scheduler@0.23.2:
- dependencies:
- loose-envify: 1.4.0
-
- scheduler@0.26.0: {}
-
- section-matter@1.0.0:
- dependencies:
- extend-shallow: 2.0.1
- kind-of: 6.0.3
-
- semver@7.7.2: {}
-
- send@0.19.0:
- dependencies:
- debug: 2.6.9
- depd: 2.0.0
- destroy: 1.2.0
- encodeurl: 1.0.2
- escape-html: 1.0.3
- etag: 1.8.1
- fresh: 0.5.2
- http-errors: 2.0.0
- mime: 1.6.0
- ms: 2.1.3
- on-finished: 2.4.1
- range-parser: 1.2.1
- statuses: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
- serialize-error@12.0.0:
- dependencies:
- type-fest: 4.41.0
-
- serve-static@1.16.2:
- dependencies:
- encodeurl: 2.0.0
- escape-html: 1.0.3
- parseurl: 1.3.3
- send: 0.19.0
- transitivePeerDependencies:
- - supports-color
-
- set-function-length@1.2.2:
- dependencies:
- define-data-property: 1.1.4
- es-errors: 1.3.0
- function-bind: 1.1.2
- get-intrinsic: 1.3.0
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
-
- set-function-name@2.0.2:
- dependencies:
- define-data-property: 1.1.4
- es-errors: 1.3.0
- functions-have-names: 1.2.3
- has-property-descriptors: 1.0.2
-
- set-proto@1.0.0:
- dependencies:
- dunder-proto: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
-
- setprototypeof@1.2.0: {}
-
- sharp@0.33.5:
- dependencies:
- color: 4.2.3
- detect-libc: 2.1.1
- semver: 7.7.2
- optionalDependencies:
- '@img/sharp-darwin-arm64': 0.33.5
- '@img/sharp-darwin-x64': 0.33.5
- '@img/sharp-libvips-darwin-arm64': 1.0.4
- '@img/sharp-libvips-darwin-x64': 1.0.4
- '@img/sharp-libvips-linux-arm': 1.0.5
- '@img/sharp-libvips-linux-arm64': 1.0.4
- '@img/sharp-libvips-linux-s390x': 1.0.4
- '@img/sharp-libvips-linux-x64': 1.0.4
- '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
- '@img/sharp-libvips-linuxmusl-x64': 1.0.4
- '@img/sharp-linux-arm': 0.33.5
- '@img/sharp-linux-arm64': 0.33.5
- '@img/sharp-linux-s390x': 0.33.5
- '@img/sharp-linux-x64': 0.33.5
- '@img/sharp-linuxmusl-arm64': 0.33.5
- '@img/sharp-linuxmusl-x64': 0.33.5
- '@img/sharp-wasm32': 0.33.5
- '@img/sharp-win32-ia32': 0.33.5
- '@img/sharp-win32-x64': 0.33.5
-
- shebang-command@2.0.0:
- dependencies:
- shebang-regex: 3.0.0
-
- shebang-regex@3.0.0: {}
-
- shiki@3.13.0:
- dependencies:
- '@shikijs/core': 3.13.0
- '@shikijs/engine-javascript': 3.13.0
- '@shikijs/engine-oniguruma': 3.13.0
- '@shikijs/langs': 3.13.0
- '@shikijs/themes': 3.13.0
- '@shikijs/types': 3.13.0
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.4
-
- side-channel-list@1.0.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-map@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-weakmap@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
- side-channel-map: 1.0.1
-
- side-channel@1.1.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
- side-channel-list: 1.0.0
- side-channel-map: 1.0.1
- side-channel-weakmap: 1.0.2
-
- signal-exit@3.0.7: {}
-
- signal-exit@4.1.0: {}
-
- simple-eval@1.0.1:
- dependencies:
- jsep: 1.4.0
-
- simple-swizzle@0.2.4:
- dependencies:
- is-arrayish: 0.3.4
-
- slice-ansi@5.0.0:
- dependencies:
- ansi-styles: 6.2.3
- is-fullwidth-code-point: 4.0.0
-
- slice-ansi@7.1.2:
- dependencies:
- ansi-styles: 6.2.3
- is-fullwidth-code-point: 5.1.0
-
- smart-buffer@4.2.0: {}
-
- socket.io-adapter@2.5.5:
- dependencies:
- debug: 4.3.7
- ws: 8.17.1
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
- socket.io-parser@4.2.4:
- dependencies:
- '@socket.io/component-emitter': 3.1.2
- debug: 4.3.7
- transitivePeerDependencies:
- - supports-color
-
- socket.io@4.8.1:
- dependencies:
- accepts: 1.3.8
- base64id: 2.0.0
- cors: 2.8.5
- debug: 4.3.7
- engine.io: 6.6.4
- socket.io-adapter: 2.5.5
- socket.io-parser: 4.2.4
- transitivePeerDependencies:
- - bufferutil
- - supports-color
- - utf-8-validate
-
- socks-proxy-agent@8.0.5:
- dependencies:
- agent-base: 7.1.4
- debug: 4.4.3
- socks: 2.8.7
- transitivePeerDependencies:
- - supports-color
-
- socks@2.8.7:
- dependencies:
- ip-address: 10.0.1
- smart-buffer: 4.2.0
-
- source-map-js@1.2.1: {}
-
- source-map@0.6.1:
- optional: true
-
- source-map@0.7.6: {}
-
- space-separated-tokens@2.0.2: {}
-
- sprintf-js@1.0.3: {}
-
- stack-utils@2.0.6:
- dependencies:
- escape-string-regexp: 2.0.0
-
- statuses@2.0.1: {}
-
- stop-iteration-iterator@1.1.0:
- dependencies:
- es-errors: 1.3.0
- internal-slot: 1.1.0
-
- streamx@2.23.0:
- dependencies:
- events-universal: 1.0.1
- fast-fifo: 1.3.2
- text-decoder: 1.2.3
- transitivePeerDependencies:
- - react-native-b4a
-
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- string-width@5.1.2:
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.2
-
- string-width@7.2.0:
- dependencies:
- emoji-regex: 10.5.0
- get-east-asian-width: 1.4.0
- strip-ansi: 7.1.2
-
- string.prototype.trim@1.2.10:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-data-property: 1.1.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-object-atoms: 1.1.1
- has-property-descriptors: 1.0.2
-
- string.prototype.trimend@1.0.9:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- string.prototype.trimstart@1.0.8:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- stringify-entities@4.0.4:
- dependencies:
- character-entities-html4: 2.1.0
- character-entities-legacy: 3.0.0
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
- strip-ansi@7.1.2:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-bom-string@1.0.0: {}
-
- style-to-js@1.1.17:
- dependencies:
- style-to-object: 1.0.9
-
- style-to-object@1.0.9:
- dependencies:
- inline-style-parser: 0.2.4
-
- sucrase@3.35.0:
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- commander: 4.1.1
- glob: 10.4.5
- lines-and-columns: 1.2.4
- mz: 2.7.0
- pirates: 4.0.7
- ts-interface-checker: 0.1.13
-
- supports-preserve-symlinks-flag@1.0.0: {}
-
- tailwindcss@3.4.17:
- dependencies:
- '@alloc/quick-lru': 5.2.0
- arg: 5.0.2
- chokidar: 3.6.0
- didyoumean: 1.2.2
- dlv: 1.1.3
- fast-glob: 3.3.3
- glob-parent: 6.0.2
- is-glob: 4.0.3
- jiti: 1.21.7
- lilconfig: 3.1.3
- micromatch: 4.0.8
- normalize-path: 3.0.0
- object-hash: 3.0.0
- picocolors: 1.1.1
- postcss: 8.5.6
- postcss-import: 15.1.0(postcss@8.5.6)
- postcss-js: 4.1.0(postcss@8.5.6)
- postcss-load-config: 4.0.2(postcss@8.5.6)
- postcss-nested: 6.2.0(postcss@8.5.6)
- postcss-selector-parser: 6.1.2
- resolve: 1.22.10
- sucrase: 3.35.0
- transitivePeerDependencies:
- - ts-node
-
- tar-fs@3.1.1:
- dependencies:
- pump: 3.0.3
- tar-stream: 3.1.7
- optionalDependencies:
- bare-fs: 4.4.4
- bare-path: 3.0.0
- transitivePeerDependencies:
- - bare-buffer
- - react-native-b4a
-
- tar-stream@3.1.7:
- dependencies:
- b4a: 1.7.2
- fast-fifo: 1.3.2
- streamx: 2.23.0
- transitivePeerDependencies:
- - react-native-b4a
-
- tar@6.2.1:
- dependencies:
- chownr: 2.0.0
- fs-minipass: 2.1.0
- minipass: 5.0.0
- minizlib: 2.1.2
- mkdirp: 1.0.4
- yallist: 4.0.0
-
- text-decoder@1.2.3:
- dependencies:
- b4a: 1.7.2
- transitivePeerDependencies:
- - react-native-b4a
-
- thenify-all@1.6.0:
- dependencies:
- thenify: 3.3.1
-
- thenify@3.3.1:
- dependencies:
- any-promise: 1.3.0
-
- through@2.3.8: {}
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
- toidentifier@1.0.1: {}
-
- tr46@0.0.3: {}
-
- trim-lines@3.0.1: {}
-
- trim-trailing-lines@2.1.0: {}
-
- trough@2.2.0: {}
-
- ts-interface-checker@0.1.13: {}
-
- tslib@1.14.1: {}
-
- tslib@2.8.1: {}
-
- twoslash-protocol@0.3.4: {}
-
- twoslash@0.3.4(typescript@5.9.2):
- dependencies:
- '@typescript/vfs': 1.6.1(typescript@5.9.2)
- twoslash-protocol: 0.3.4
- typescript: 5.9.2
- transitivePeerDependencies:
- - supports-color
-
- type-fest@4.41.0: {}
-
- type-is@1.6.18:
- dependencies:
- media-typer: 0.3.0
- mime-types: 2.1.35
-
- typed-array-buffer@1.0.3:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-typed-array: 1.1.15
-
- typed-array-byte-length@1.0.3:
- dependencies:
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- has-proto: 1.2.0
- is-typed-array: 1.1.15
-
- typed-array-byte-offset@1.0.4:
- dependencies:
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- has-proto: 1.2.0
- is-typed-array: 1.1.15
- reflect.getprototypeof: 1.0.10
-
- typed-array-length@1.0.7:
- dependencies:
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- is-typed-array: 1.1.15
- possible-typed-array-names: 1.1.0
- reflect.getprototypeof: 1.0.10
-
- typescript@5.9.2: {}
-
- unbox-primitive@1.1.0:
- dependencies:
- call-bound: 1.0.4
- has-bigints: 1.1.0
- has-symbols: 1.1.0
- which-boxed-primitive: 1.1.1
-
- unbzip2-stream@1.4.3:
- dependencies:
- buffer: 5.7.1
- through: 2.3.8
-
- undici-types@7.12.0: {}
-
- unified@11.0.5:
- dependencies:
- '@types/unist': 3.0.3
- bail: 2.0.2
- devlop: 1.1.0
- extend: 3.0.2
- is-plain-obj: 4.1.0
- trough: 2.2.0
- vfile: 6.0.3
-
- unist-builder@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-find-after@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
-
- unist-util-is@5.2.1:
- dependencies:
- '@types/unist': 2.0.11
-
- unist-util-is@6.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-map@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-modify-children@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
- array-iterate: 2.0.1
-
- unist-util-position-from-estree@2.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-position@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-remove-position@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-visit: 5.0.0
-
- unist-util-remove@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
-
- unist-util-stringify-position@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-visit-children@3.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-visit-parents@5.1.3:
- dependencies:
- '@types/unist': 2.0.11
- unist-util-is: 5.2.1
-
- unist-util-visit-parents@6.0.1:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
-
- unist-util-visit@4.1.2:
- dependencies:
- '@types/unist': 2.0.11
- unist-util-is: 5.2.1
- unist-util-visit-parents: 5.1.3
-
- unist-util-visit@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
-
- universalify@2.0.1: {}
-
- unpipe@1.0.0: {}
-
- urijs@1.19.11: {}
-
- urlpattern-polyfill@10.0.0: {}
-
- use-callback-ref@1.3.3(@types/react@19.1.13)(react@19.1.1):
- dependencies:
- react: 19.1.1
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- use-sidecar@1.1.3(@types/react@19.1.13)(react@19.1.1):
- dependencies:
- detect-node-es: 1.1.0
- react: 19.1.1
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.1.13
-
- util-deprecate@1.0.2: {}
-
- utility-types@3.11.0: {}
-
- utils-merge@1.0.1: {}
-
- vary@1.1.2: {}
-
- vfile-location@5.0.3:
- dependencies:
- '@types/unist': 3.0.3
- vfile: 6.0.3
-
- vfile-matter@5.0.1:
- dependencies:
- vfile: 6.0.3
- yaml: 2.8.1
-
- vfile-message@4.0.3:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-stringify-position: 4.0.0
-
- vfile@6.0.3:
- dependencies:
- '@types/unist': 3.0.3
- vfile-message: 4.0.3
-
- web-namespaces@2.0.1: {}
-
- webidl-conversions@3.0.1: {}
-
- whatwg-url@5.0.0:
- dependencies:
- tr46: 0.0.3
- webidl-conversions: 3.0.1
-
- which-boxed-primitive@1.1.1:
- dependencies:
- is-bigint: 1.1.0
- is-boolean-object: 1.2.2
- is-number-object: 1.1.1
- is-string: 1.1.1
- is-symbol: 1.1.1
-
- which-builtin-type@1.2.1:
- dependencies:
- call-bound: 1.0.4
- function.prototype.name: 1.1.8
- has-tostringtag: 1.0.2
- is-async-function: 2.1.1
- is-date-object: 1.1.0
- is-finalizationregistry: 1.1.1
- is-generator-function: 1.1.0
- is-regex: 1.2.1
- is-weakref: 1.1.1
- isarray: 2.0.5
- which-boxed-primitive: 1.1.1
- which-collection: 1.0.2
- which-typed-array: 1.1.19
-
- which-collection@1.0.2:
- dependencies:
- is-map: 2.0.3
- is-set: 2.0.3
- is-weakmap: 2.0.2
- is-weakset: 2.0.4
-
- which-typed-array@1.1.19:
- dependencies:
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- call-bound: 1.0.4
- for-each: 0.3.5
- get-proto: 1.0.1
- gopd: 1.2.0
- has-tostringtag: 1.0.2
-
- which@2.0.2:
- dependencies:
- isexe: 2.0.0
-
- widest-line@5.0.0:
- dependencies:
- string-width: 7.2.0
-
- wrap-ansi@6.2.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- wrap-ansi@7.0.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- wrap-ansi@8.1.0:
- dependencies:
- ansi-styles: 6.2.3
- string-width: 5.1.2
- strip-ansi: 7.1.2
-
- wrap-ansi@9.0.2:
- dependencies:
- ansi-styles: 6.2.3
- string-width: 7.2.0
- strip-ansi: 7.1.2
-
- wrappy@1.0.2: {}
-
- ws@8.17.1: {}
-
- ws@8.18.3: {}
-
- xml2js@0.6.2:
- dependencies:
- sax: 1.4.1
- xmlbuilder: 11.0.1
-
- xmlbuilder@11.0.1: {}
-
- y18n@5.0.8: {}
-
- yallist@4.0.0: {}
-
- yaml@2.8.1: {}
-
- yargs-parser@21.1.1: {}
-
- yargs@17.7.2:
- dependencies:
- cliui: 8.0.1
- escalade: 3.2.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
-
- yauzl@2.10.0:
- dependencies:
- buffer-crc32: 0.2.13
- fd-slicer: 1.1.0
-
- yoctocolors-cjs@2.1.3: {}
-
- yoga-layout@3.2.1: {}
-
- zod-to-json-schema@3.24.6(zod@3.25.76):
- dependencies:
- zod: 3.25.76
-
- zod@3.23.8: {}
-
- zod@3.25.76: {}
-
- zwitch@2.0.4: {}
diff --git a/docs/sdk/js/client/abstract-agent.mdx b/docs/sdk/js/client/abstract-agent.mdx
index 3738b0aae..4ece6e5b5 100644
--- a/docs/sdk/js/client/abstract-agent.mdx
+++ b/docs/sdk/js/client/abstract-agent.mdx
@@ -95,6 +95,36 @@ subscribe(subscriber: AgentSubscriber): { unsubscribe: () => void }
Returns an object with an `unsubscribe()` method to remove the subscriber when
no longer needed.
+### use()
+
+Adds middleware to the agent's event processing pipeline.
+
+```typescript
+use(...middlewares: (Middleware | MiddlewareFunction)[]): this
+```
+
+Middleware can be either:
+- **Function middleware**: Simple functions that transform the event stream
+- **Class middleware**: Instances of the `Middleware` class for stateful operations
+
+```typescript
+// Function middleware
+agent.use((input, next) => {
+ console.log("Processing:", input.runId);
+ return next.run(input);
+});
+
+// Class middleware
+agent.use(new FilterToolCallsMiddleware({
+ allowedToolCalls: ["search"]
+}));
+
+// Chain multiple middleware
+agent.use(loggingMiddleware, authMiddleware, filterMiddleware);
+```
+
+Middleware executes in the order added, with each wrapping the next. See the [Middleware documentation](/sdk/js/client/middleware) for more details.
+
### abortRun()
Cancels the current agent execution.
@@ -111,6 +141,33 @@ Creates a deep copy of the agent instance.
clone(): AbstractAgent
```
+### connectAgent()
+
+Establishes a persistent connection with an agent that implements the
+`connect()` method.
+
+```typescript
+connectAgent(parameters?: RunAgentParameters, subscriber?: AgentSubscriber): Promise
+```
+
+Similar to `runAgent()` but uses the `connect()` method internally. The agent
+must implement `connect()` or this functionality must be provided by a framework
+like [CopilotKit](https://copilotkit.ai).
+
+## Observable Properties
+
+### events$
+
+An observable stream of all events emitted during agent execution.
+
+```typescript
+events$: Observable
+```
+
+This property provides direct access to the agent's event stream. Events are
+stored using a `ReplaySubject`, allowing late subscribers will receive all
+historical events.
+
## Properties
- `agentId`: Unique identifier for the agent instance
@@ -118,6 +175,8 @@ clone(): AbstractAgent
- `threadId`: Conversation thread identifier
- `messages`: Array of conversation messages
- `state`: Current agent state object
+- `events$`: Observable stream of all `BaseEvent` objects emitted during agent
+ execution (replayed for late subscribers)
## Protected Methods
@@ -131,6 +190,17 @@ Executes the agent and returns an observable event stream.
protected abstract run(input: RunAgentInput): RunAgent
```
+### connect()
+
+Establishes a persistent connection and returns an observable event stream.
+
+```typescript
+protected connect(input: RunAgentInput): RunAgent
+```
+
+Override this method to implement persistent connections. Default implementation
+throws `ConnectNotImplementedError`.
+
### apply()
Processes events from the run and updates the agent state.
diff --git a/docs/sdk/js/client/compaction.mdx b/docs/sdk/js/client/compaction.mdx
new file mode 100644
index 000000000..415c0556c
--- /dev/null
+++ b/docs/sdk/js/client/compaction.mdx
@@ -0,0 +1,76 @@
+---
+title: "Stream Compaction"
+description: "compactEvents utility for reducing verbose streaming sequences"
+---
+
+# compactEvents
+
+`compactEvents` reduces verbose streaming sequences in an event array while
+preserving semantics. Use it to shrink logs before persistence or to simplify
+post‑processing of Server‑Sent Events (SSE) streams.
+
+```ts
+import { compactEvents, EventType, type BaseEvent } from "@ag-ui/client"
+
+const compacted: BaseEvent[] = compactEvents(events)
+```
+
+## API
+
+```ts
+function compactEvents(events: BaseEvent[]): BaseEvent[]
+```
+
+## What it does
+
+- Text messages: Groups `TEXT_MESSAGE_START` → `TEXT_MESSAGE_CONTENT*` →
+ `TEXT_MESSAGE_END` for the same `messageId`, concatenating all `delta`
+ chunks into a single `TEXT_MESSAGE_CONTENT` event.
+- Tool calls: Groups `TOOL_CALL_START` → `TOOL_CALL_ARGS*` → `TOOL_CALL_END`
+ for the same `toolCallId`, concatenating all `delta` chunks into a single
+ `TOOL_CALL_ARGS` event.
+- Interleaved events: Any events that occur between a start/end pair are moved
+ after that sequence so the streaming block remains contiguous.
+- Pass‑through: All other events (state, custom, etc.) are preserved unchanged.
+
+## Example
+
+Before:
+
+```ts
+[
+ { type: EventType.TEXT_MESSAGE_START, messageId: "m1", role: "assistant" },
+ { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "m1", delta: "Hello" },
+ { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "m1", delta: " " },
+ { type: EventType.CUSTOM, name: "thinking" },
+ { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "m1", delta: "world" },
+ { type: EventType.TEXT_MESSAGE_END, messageId: "m1" },
+]
+```
+
+After:
+
+```ts
+[
+ { type: EventType.TEXT_MESSAGE_START, messageId: "m1", role: "assistant" },
+ { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "m1", delta: "Hello world" },
+ { type: EventType.TEXT_MESSAGE_END, messageId: "m1" },
+ { type: EventType.CUSTOM, name: "thinking" },
+]
+```
+
+Tool call compaction works analogously for `TOOL_CALL_ARGS` chunks.
+
+## When to use
+
+- Persisting event history (store fewer frames with the same meaning)
+- Preparing snapshots for analytics or export
+- Reducing noise in tests or debugging output
+
+## Notes & limitations
+
+- This utility focuses on message and tool‑call streams. It does not modify
+ state events (`STATE_SNAPSHOT`/`STATE_DELTA`) or generate message snapshots.
+- For background and broader patterns (branching, normalization), see
+ [Serialization](/concepts/serialization).
+
diff --git a/docs/sdk/js/client/middleware.mdx b/docs/sdk/js/client/middleware.mdx
new file mode 100644
index 000000000..31462257b
--- /dev/null
+++ b/docs/sdk/js/client/middleware.mdx
@@ -0,0 +1,408 @@
+---
+title: "Middleware"
+description: "Event stream transformation and filtering for AG-UI agents"
+---
+
+# Middleware
+
+The middleware system in `@ag-ui/client` provides a powerful way to transform, filter, and augment event streams flowing through agents. Middleware can intercept and modify events, add logging, implement authentication, filter tool calls, and more.
+
+```typescript
+import { Middleware, MiddlewareFunction, FilterToolCallsMiddleware } from "@ag-ui/client"
+```
+
+## Types
+
+### MiddlewareFunction
+
+A function that transforms the event stream.
+
+```typescript
+type MiddlewareFunction = (
+ input: RunAgentInput,
+ next: AbstractAgent
+) => Observable
+```
+
+### Middleware
+
+Abstract base class for creating middleware.
+
+```typescript
+abstract class Middleware {
+ abstract run(
+ input: RunAgentInput,
+ next: AbstractAgent
+ ): Observable
+}
+```
+
+## Function-Based Middleware
+
+The simplest way to create middleware is with a function. Function middleware is ideal for stateless transformations.
+
+### Basic Example
+
+```typescript
+const loggingMiddleware: MiddlewareFunction = (input, next) => {
+ console.log(`[${new Date().toISOString()}] Starting run ${input.runId}`)
+
+ return next.run(input).pipe(
+ tap(event => console.log(`Event: ${event.type}`)),
+ finalize(() => console.log(`Run ${input.runId} completed`))
+ )
+}
+
+agent.use(loggingMiddleware)
+```
+
+### Transforming Events
+
+```typescript
+const prefixMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ map(event => {
+ if (event.type === EventType.TEXT_MESSAGE_CHUNK) {
+ return {
+ ...event,
+ delta: `[Assistant]: ${event.delta}`
+ }
+ }
+ return event
+ })
+ )
+}
+```
+
+### Error Handling
+
+```typescript
+const errorMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ catchError(error => {
+ console.error("Agent error:", error)
+
+ // Return error event
+ return of({
+ type: EventType.RUN_ERROR,
+ message: error.message
+ } as BaseEvent)
+ })
+ )
+}
+```
+
+## Class-Based Middleware
+
+For stateful operations or complex logic, extend the `Middleware` class.
+
+### Basic Implementation
+
+```typescript
+class CounterMiddleware extends Middleware {
+ private totalEvents = 0
+
+ run(input: RunAgentInput, next: AbstractAgent): Observable {
+ let runEvents = 0
+
+ return next.run(input).pipe(
+ tap(() => {
+ runEvents++
+ this.totalEvents++
+ }),
+ finalize(() => {
+ console.log(`Run events: ${runEvents}, Total: ${this.totalEvents}`)
+ })
+ )
+ }
+}
+
+agent.use(new CounterMiddleware())
+```
+
+### Configuration-Based Middleware
+
+```typescript
+class AuthMiddleware extends Middleware {
+ constructor(
+ private apiKey: string,
+ private headerName: string = "Authorization"
+ ) {
+ super()
+ }
+
+ run(input: RunAgentInput, next: AbstractAgent): Observable {
+ // Add authentication to context
+ const authenticatedInput = {
+ ...input,
+ context: [
+ ...input.context,
+ {
+ type: "auth",
+ [this.headerName]: `Bearer ${this.apiKey}`
+ }
+ ]
+ }
+
+ return next.run(authenticatedInput)
+ }
+}
+
+agent.use(new AuthMiddleware(process.env.API_KEY))
+```
+
+## Built-in Middleware
+
+### FilterToolCallsMiddleware
+
+Filters tool calls based on allowed or disallowed lists.
+
+```typescript
+import { FilterToolCallsMiddleware } from "@ag-ui/client"
+```
+
+#### Configuration
+
+```typescript
+type FilterToolCallsConfig =
+ | { allowedToolCalls: string[]; disallowedToolCalls?: never }
+ | { disallowedToolCalls: string[]; allowedToolCalls?: never }
+```
+
+#### Allow Specific Tools
+
+```typescript
+const allowFilter = new FilterToolCallsMiddleware({
+ allowedToolCalls: ["search", "calculate", "summarize"]
+})
+
+agent.use(allowFilter)
+```
+
+#### Block Specific Tools
+
+```typescript
+const blockFilter = new FilterToolCallsMiddleware({
+ disallowedToolCalls: ["delete", "modify", "execute"]
+})
+
+agent.use(blockFilter)
+```
+
+## Middleware Patterns
+
+### Timing Middleware
+
+```typescript
+const timingMiddleware: MiddlewareFunction = (input, next) => {
+ const startTime = performance.now()
+
+ return next.run(input).pipe(
+ finalize(() => {
+ const duration = performance.now() - startTime
+ console.log(`Execution time: ${duration.toFixed(2)}ms`)
+ })
+ )
+}
+```
+
+### Rate Limiting
+
+```typescript
+class RateLimitMiddleware extends Middleware {
+ private lastCall = 0
+
+ constructor(private minInterval: number) {
+ super()
+ }
+
+ run(input: RunAgentInput, next: AbstractAgent): Observable {
+ const now = Date.now()
+ const elapsed = now - this.lastCall
+
+ if (elapsed < this.minInterval) {
+ // Delay the execution
+ return timer(this.minInterval - elapsed).pipe(
+ switchMap(() => {
+ this.lastCall = Date.now()
+ return next.run(input)
+ })
+ )
+ }
+
+ this.lastCall = now
+ return next.run(input)
+ }
+}
+
+// Limit to one request per second
+agent.use(new RateLimitMiddleware(1000))
+```
+
+### Retry Logic
+
+```typescript
+const retryMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ retry({
+ count: 3,
+ delay: (error, retryCount) => {
+ console.log(`Retry attempt ${retryCount}`)
+ return timer(1000 * retryCount) // Exponential backoff
+ }
+ })
+ )
+}
+```
+
+### Caching
+
+```typescript
+class CacheMiddleware extends Middleware {
+ private cache = new Map()
+
+ run(input: RunAgentInput, next: AbstractAgent): Observable {
+ const cacheKey = this.getCacheKey(input)
+
+ if (this.cache.has(cacheKey)) {
+ console.log("Cache hit")
+ return from(this.cache.get(cacheKey)!)
+ }
+
+ const events: BaseEvent[] = []
+
+ return next.run(input).pipe(
+ tap(event => events.push(event)),
+ finalize(() => {
+ this.cache.set(cacheKey, events)
+ })
+ )
+ }
+
+ private getCacheKey(input: RunAgentInput): string {
+ // Create a cache key from the input
+ return JSON.stringify({
+ messages: input.messages,
+ tools: input.tools.map(t => t.name)
+ })
+ }
+}
+```
+
+## Chaining Middleware
+
+Multiple middleware can be combined to create sophisticated processing pipelines.
+
+```typescript
+// Create middleware instances
+const logger = loggingMiddleware
+const auth = new AuthMiddleware(apiKey)
+const filter = new FilterToolCallsMiddleware({
+ allowedToolCalls: ["search"]
+})
+const rateLimit = new RateLimitMiddleware(1000)
+
+// Apply middleware in order
+agent.use(
+ logger, // First: Log all events
+ auth, // Second: Add authentication
+ rateLimit, // Third: Apply rate limiting
+ filter // Fourth: Filter tool calls
+)
+
+// Execution flow:
+// logger → auth → rateLimit → filter → agent → filter → rateLimit → auth → logger
+```
+
+## Advanced Usage
+
+### Conditional Middleware
+
+```typescript
+const debugMiddleware: MiddlewareFunction = (input, next) => {
+ const isDebug = input.context.some(c => c.type === "debug")
+
+ if (!isDebug) {
+ return next.run(input)
+ }
+
+ return next.run(input).pipe(
+ tap(event => {
+ console.debug("[DEBUG]", JSON.stringify(event, null, 2))
+ })
+ )
+}
+```
+
+### Event Filtering
+
+```typescript
+const filterEventsMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ filter(event => {
+ // Only allow specific event types
+ return [
+ EventType.RUN_STARTED,
+ EventType.TEXT_MESSAGE_CHUNK,
+ EventType.RUN_FINISHED
+ ].includes(event.type)
+ })
+ )
+}
+```
+
+### Stream Manipulation
+
+```typescript
+const bufferMiddleware: MiddlewareFunction = (input, next) => {
+ return next.run(input).pipe(
+ // Buffer text chunks and emit them in batches
+ bufferWhen(() =>
+ interval(100).pipe(
+ filter(() => true)
+ )
+ ),
+ map(events => events.flat())
+ )
+}
+```
+
+## Best Practices
+
+1. **Single Responsibility**: Each middleware should focus on one concern
+2. **Error Handling**: Always handle errors gracefully and consider recovery strategies
+3. **Performance**: Be mindful of processing overhead in high-throughput scenarios
+4. **State Management**: Use class-based middleware when state is required
+5. **Testing**: Write unit tests for each middleware independently
+6. **Documentation**: Document middleware behavior and side effects
+
+## TypeScript Support
+
+The middleware system is fully typed for excellent IDE support:
+
+```typescript
+import {
+ Middleware,
+ MiddlewareFunction,
+ FilterToolCallsMiddleware
+} from "@ag-ui/client"
+import { RunAgentInput, BaseEvent, EventType } from "@ag-ui/core"
+
+// Type-safe middleware function
+const typedMiddleware: MiddlewareFunction = (
+ input: RunAgentInput,
+ next: AbstractAgent
+): Observable => {
+ return next.run(input)
+}
+
+// Type-safe middleware class
+class TypedMiddleware extends Middleware {
+ run(
+ input: RunAgentInput,
+ next: AbstractAgent
+ ): Observable {
+ return next.run(input)
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/sdk/js/client/overview.mdx b/docs/sdk/js/client/overview.mdx
index 0bfcf085f..3902715c5 100644
--- a/docs/sdk/js/client/overview.mdx
+++ b/docs/sdk/js/client/overview.mdx
@@ -61,6 +61,30 @@ Concrete implementation for HTTP-based agent connectivity:
efficient event encoding format
+## Middleware
+
+Transform and intercept event streams flowing through agents with a flexible
+middleware system:
+
+- [Function Middleware](/sdk/js/client/middleware#function-based-middleware) - Simple
+ transformations with plain functions
+- [Class Middleware](/sdk/js/client/middleware#class-based-middleware) - Stateful
+ middleware with configuration
+- [Built-in Middleware](/sdk/js/client/middleware#built-in-middleware) -
+ FilterToolCallsMiddleware and more
+- [Middleware Patterns](/sdk/js/client/middleware#middleware-patterns) - Common
+ use cases and examples
+
+
+ Powerful event stream transformation and filtering for AG-UI agents
+
+
## AgentSubscriber
Event-driven subscriber system for handling agent lifecycle events and state
diff --git a/docs/sdk/js/client/subscriber.mdx b/docs/sdk/js/client/subscriber.mdx
index ee010488f..f97ab1389 100644
--- a/docs/sdk/js/client/subscriber.mdx
+++ b/docs/sdk/js/client/subscriber.mdx
@@ -271,6 +271,32 @@ Called when a complete message history snapshot is provided.
onMessagesSnapshotEvent?(params: { event: MessagesSnapshotEvent } & AgentSubscriberParams): MaybePromise
```
+#### onActivitySnapshotEvent()
+
+Called when an activity snapshot is received. The handler receives both the raw
+event and any existing `ActivityMessage` (if present) so you can inspect or
+replace it before the default client logic runs.
+
+```typescript
+onActivitySnapshotEvent?(params: {
+ event: ActivitySnapshotEvent
+ activityMessage?: ActivityMessage
+ existingMessage?: Message
+} & AgentSubscriberParams): MaybePromise
+```
+
+#### onActivityDeltaEvent()
+
+Triggered for each activity delta. Use this hook to transform or debounce the
+incoming JSON Patch operations before they update the conversation transcript.
+
+```typescript
+onActivityDeltaEvent?(params: {
+ event: ActivityDeltaEvent
+ activityMessage?: ActivityMessage
+} & AgentSubscriberParams): MaybePromise
+```
+
#### onRawEvent()
Handler for raw, unprocessed events.
diff --git a/docs/sdk/js/core/events.mdx b/docs/sdk/js/core/events.mdx
index ea119090c..569be5d21 100644
--- a/docs/sdk/js/core/events.mdx
+++ b/docs/sdk/js/core/events.mdx
@@ -26,6 +26,8 @@ enum EventType {
STATE_SNAPSHOT = "STATE_SNAPSHOT",
STATE_DELTA = "STATE_DELTA",
MESSAGES_SNAPSHOT = "MESSAGES_SNAPSHOT",
+ ACTIVITY_SNAPSHOT = "ACTIVITY_SNAPSHOT",
+ ACTIVITY_DELTA = "ACTIVITY_DELTA",
RAW = "RAW",
CUSTOM = "CUSTOM",
RUN_STARTED = "RUN_STARTED",
@@ -68,13 +70,17 @@ type RunStartedEvent = BaseEvent & {
type: EventType.RUN_STARTED
threadId: string
runId: string
+ parentRunId?: string
+ input?: RunAgentInput
}
```
-| Property | Type | Description |
-| ---------- | -------- | ----------------------------- |
-| `threadId` | `string` | ID of the conversation thread |
-| `runId` | `string` | ID of the agent run |
+| Property | Type | Description |
+| -------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `threadId` | `string` | ID of the conversation thread |
+| `runId` | `string` | ID of the agent run |
+| `parentRunId` | `string` (optional) | (Optional) Lineage pointer for branching/time travel. If present, refers to a prior run within the same thread |
+| `input` | `RunAgentInput` (optional) | (Optional) The exact agent input payload sent to the agent for this run. May omit messages already in history |
### RunFinishedEvent
@@ -195,6 +201,29 @@ type TextMessageEndEvent = BaseEvent & {
| ----------- | -------- | ----------------------------------------- |
| `messageId` | `string` | Matches the ID from TextMessageStartEvent |
+### TextMessageChunkEvent
+
+Convenience event that expands to `TextMessageStart` → `TextMessageContent` →
+`TextMessageEnd` automatically in the JS/TS client.
+
+```typescript
+type TextMessageChunkEvent = BaseEvent & {
+ type: EventType.TEXT_MESSAGE_CHUNK
+ messageId?: string // required on the first chunk for a message
+ role?: 'developer' | 'system' | 'assistant' | 'user'
+ delta?: string
+}
+```
+
+Behavior
+- Omit start/end: The client transforms chunk sequences into the standard
+ start/content/end triad, so you don’t need to emit them manually.
+- First chunk requirements: The first chunk for a message must include
+ `messageId`. When `role` is omitted, it defaults to `assistant`.
+- Streaming: Subsequent chunks with the same `messageId` emit
+ `TextMessageContent` events. `TextMessageEnd` is emitted automatically when a
+ different message starts or when the stream completes.
+
## Tool Call Events
These events represent the lifecycle of tool calls made by agents.
@@ -320,6 +349,46 @@ type MessagesSnapshotEvent = BaseEvent & {
| ---------- | ----------- | ------------------------ |
| `messages` | `Message[]` | Array of message objects |
+### ActivitySnapshotEvent
+
+Delivers a complete snapshot of an activity message.
+
+```typescript
+type ActivitySnapshotEvent = BaseEvent & {
+ type: EventType.ACTIVITY_SNAPSHOT
+ messageId: string
+ activityType: string
+ content: Record
+ replace?: boolean
+}
+```
+
+| Property | Type | Description |
+| -------------- | ---------------------- | ------------------------------------------------------- |
+| `messageId` | `string` | Identifier for the target `ActivityMessage` |
+| `activityType` | `string` | Activity discriminator such as `"PLAN"` or `"SEARCH"` |
+| `content` | `Record` | Structured payload describing the full activity state |
+| `replace` | `boolean` (optional) | Defaults to `true`; when `false` the snapshot is ignored if a message with the same ID already exists |
+
+### ActivityDeltaEvent
+
+Provides incremental updates to an activity snapshot using JSON Patch.
+
+```typescript
+type ActivityDeltaEvent = BaseEvent & {
+ type: EventType.ACTIVITY_DELTA
+ messageId: string
+ activityType: string
+ patch: any[] // RFC 6902 JSON Patch operations
+}
+```
+
+| Property | Type | Description |
+| -------------- | ------------- | ----------------------------------------------------------------- |
+| `messageId` | `string` | Identifier for the target `ActivityMessage` |
+| `activityType` | `string` | Activity discriminator mirroring the most recent snapshot |
+| `patch` | `any[]` | JSON Patch operations applied to the structured activity payload |
+
## Special Events
### RawEvent
@@ -384,3 +453,26 @@ const EventSchemas = z.discriminatedUnion("type", [
This allows for runtime validation of events and provides TypeScript type
inference.
+### ToolCallChunkEvent
+
+Convenience event that expands to `ToolCallStart` → `ToolCallArgs` →
+`ToolCallEnd` automatically in the JS/TS client.
+
+```typescript
+type ToolCallChunkEvent = BaseEvent & {
+ type: EventType.TOOL_CALL_CHUNK
+ toolCallId?: string // required on the first chunk for a tool call
+ toolCallName?: string // required on the first chunk for a tool call
+ parentMessageId?: string
+ delta?: string
+}
+```
+
+Behavior
+- Omit start/end: The client transforms chunk sequences into the standard
+ start/args/end triad.
+- First chunk requirements: The first chunk must include both `toolCallId` and
+ `toolCallName`; `parentMessageId` is propagated to `ToolCallStart` if given.
+- Streaming: Subsequent chunks with the same `toolCallId` emit `ToolCallArgs`.
+ `ToolCallEnd` is emitted automatically when the tool call changes or when the
+ stream completes.
diff --git a/docs/sdk/js/core/types.mdx b/docs/sdk/js/core/types.mdx
index afc011609..758549ed0 100644
--- a/docs/sdk/js/core/types.mdx
+++ b/docs/sdk/js/core/types.mdx
@@ -20,6 +20,7 @@ Input parameters for running an agent. In the HTTP API, this is the body of the
type RunAgentInput = {
threadId: string
runId: string
+ parentRunId?: string
state: any
messages: Message[]
tools: Tool[]
@@ -32,6 +33,7 @@ type RunAgentInput = {
| ---------------- | ----------- | ---------------------------------------------- |
| `threadId` | `string` | ID of the conversation thread |
| `runId` | `string` | ID of the current run |
+| `parentRunId` | `string (optional)` | ID of the run that spawned this run |
| `state` | `any` | Current state of the agent |
| `messages` | `Message[]` | Array of messages in the conversation |
| `tools` | `Tool[]` | Array of tools available to the agent |
@@ -48,7 +50,7 @@ messages in the system.
Represents the possible roles a message sender can have.
```typescript
-type Role = "developer" | "system" | "assistant" | "user" | "tool"
+type Role = "developer" | "system" | "assistant" | "user" | "tool" | "activity"
```
### DeveloperMessage
@@ -121,17 +123,49 @@ Represents a message from a user.
type UserMessage = {
id: string
role: "user"
- content: string
+ content: string | InputContent[]
name?: string
}
```
-| Property | Type | Description |
-| --------- | -------- | ------------------------------------------- |
-| `id` | `string` | Unique identifier for the message |
-| `role` | `"user"` | Role of the message sender, fixed as "user" |
-| `content` | `string` | Text content of the message (required) |
-| `name` | `string` | Optional name of the sender |
+| Property | Type | Description |
+| --------- | --------------------------- | --------------------------------------------------------------------- |
+| `id` | `string` | Unique identifier for the message |
+| `role` | `"user"` | Role of the message sender, fixed as "user" |
+| `content` | `string \| InputContent[]` | Either plain text or an ordered array of multimodal content fragments |
+| `name` | `string` | Optional name of the sender |
+
+### InputContent
+
+Union of supported multimodal fragments.
+
+```typescript
+type InputContent = TextInputContent | BinaryInputContent
+```
+
+### TextInputContent
+
+```typescript
+type TextInputContent = {
+ type: "text"
+ text: string
+}
+```
+
+### BinaryInputContent
+
+```typescript
+type BinaryInputContent = {
+ type: "binary"
+ mimeType: string
+ id?: string
+ url?: string
+ data?: string
+ filename?: string
+}
+```
+
+> At least one of `id`, `url`, or `data` must be provided.
### ToolMessage
@@ -155,6 +189,26 @@ type ToolMessage = {
| `toolCallId` | `string` | ID of the tool call this message responds to |
| `error` | `string` | Error message if the tool call failed |
+### ActivityMessage
+
+Represents structured activity progress emitted between chat messages.
+
+```typescript
+type ActivityMessage = {
+ id: string
+ role: "activity"
+ activityType: string
+ content: Record
+}
+```
+
+| Property | Type | Description |
+| -------------- | --------------------- | ------------------------------------------------------- |
+| `id` | `string` | Unique identifier for the activity message |
+| `role` | `"activity"` | Fixed discriminator identifying the message as activity |
+| `activityType` | `string` | Activity discriminator used for renderer selection |
+| `content` | `Record` | Structured payload representing the activity state |
+
### Message
A union type representing any type of message in the system.
@@ -166,6 +220,7 @@ type Message =
| AssistantMessage
| UserMessage
| ToolMessage
+ | ActivityMessage
```
### ToolCall
diff --git a/docs/sdk/python/core/events.mdx b/docs/sdk/python/core/events.mdx
index 6d5cdc934..8283a42bc 100644
--- a/docs/sdk/python/core/events.mdx
+++ b/docs/sdk/python/core/events.mdx
@@ -29,6 +29,8 @@ class EventType(str, Enum):
STATE_SNAPSHOT = "STATE_SNAPSHOT"
STATE_DELTA = "STATE_DELTA"
MESSAGES_SNAPSHOT = "MESSAGES_SNAPSHOT"
+ ACTIVITY_SNAPSHOT = "ACTIVITY_SNAPSHOT"
+ ACTIVITY_DELTA = "ACTIVITY_DELTA"
RAW = "RAW"
CUSTOM = "CUSTOM"
RUN_STARTED = "RUN_STARTED"
@@ -73,12 +75,16 @@ class RunStartedEvent(BaseEvent):
type: Literal[EventType.RUN_STARTED]
thread_id: str
run_id: str
+ parent_run_id: Optional[str] = None
+ input: Optional[RunAgentInput] = None
```
-| Property | Type | Description |
-| ----------- | ----- | ----------------------------- |
-| `thread_id` | `str` | ID of the conversation thread |
-| `run_id` | `str` | ID of the agent run |
+| Property | Type | Description |
+| ---------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
+| `thread_id` | `str` | ID of the conversation thread |
+| `run_id` | `str` | ID of the agent run |
+| `parent_run_id` | `Optional[str]` | (Optional) Lineage pointer for branching/time travel. If present, refers to a prior run within the same thread |
+| `input` | `Optional[RunAgentInput]` | (Optional) The exact agent input payload sent to the agent for this run. May omit messages already in history |
### RunFinishedEvent
@@ -342,6 +348,48 @@ class MessagesSnapshotEvent(BaseEvent):
| ---------- | --------------- | ------------------------ |
| `messages` | `List[Message]` | Array of message objects |
+### ActivitySnapshotEvent
+
+`from ag_ui.core import ActivitySnapshotEvent`
+
+Delivers a complete snapshot of an activity message.
+
+```python
+class ActivitySnapshotEvent(BaseEvent):
+ type: Literal[EventType.ACTIVITY_SNAPSHOT]
+ message_id: str
+ activity_type: str
+ content: Any
+ replace: bool = True
+```
+
+| Property | Type | Description |
+| --------------- | ----- | ----------------------------------------------------- |
+| `message_id` | `str` | Identifier for the target `ActivityMessage` |
+| `activity_type` | `str` | Activity discriminator such as `"PLAN"` or `"SEARCH"` |
+| `content` | `Any` | Structured payload describing the full activity state |
+| `replace` | `bool` (default `True`) | When `False`, the snapshot is ignored if a message with the same ID already exists |
+
+### ActivityDeltaEvent
+
+`from ag_ui.core import ActivityDeltaEvent`
+
+Provides incremental updates to an activity snapshot using JSON Patch.
+
+```python
+class ActivityDeltaEvent(BaseEvent):
+ type: Literal[EventType.ACTIVITY_DELTA]
+ message_id: str
+ activity_type: str
+ patch: List[Any]
+```
+
+| Property | Type | Description |
+| --------------- | ------------ | -------------------------------------------------------------------- |
+| `message_id` | `str` | Identifier for the target `ActivityMessage` |
+| `activity_type` | `str` | Activity discriminator mirroring the most recent snapshot |
+| `patch` | `List[Any]` | JSON Patch operations applied to the structured activity content |
+
## Special Events
### RawEvent
@@ -413,3 +461,50 @@ Event = Annotated[
This allows for runtime validation of events and type checking at development
time.
+### TextMessageChunkEvent
+
+Convenience event for complete text messages without manually emitting
+`TextMessageStart`/`TextMessageEnd`.
+
+```python
+from ag_ui.core import TextMessageChunkEvent
+
+class TextMessageChunkEvent(BaseEvent):
+ type: Literal[EventType.TEXT_MESSAGE_CHUNK]
+ message_id: Optional[str] = None # required on first chunk for a message
+ role: Optional[TextMessageRole] = None # defaults to "assistant" in JS client
+ delta: Optional[str] = None
+```
+
+Behavior
+- Convenience: Some consumers (e.g., the JS/TS client) expand chunk events into
+ the standard start/content/end sequence automatically, allowing producers to
+ omit explicit start/end events when using chunks.
+- First chunk requirements: The first chunk for a given message must include
+ `message_id`.
+- Streaming: Subsequent chunks with the same `message_id` correspond to content
+ pieces; completion triggers an implied end in clients that perform expansion.
+
+### ToolCallChunkEvent
+
+Convenience event for tool calls without manually emitting
+`ToolCallStart`/`ToolCallEnd`.
+
+```python
+from ag_ui.core import ToolCallChunkEvent
+
+class ToolCallChunkEvent(BaseEvent):
+ type: Literal[EventType.TOOL_CALL_CHUNK]
+ tool_call_id: Optional[str] = None # required on first chunk
+ tool_call_name: Optional[str] = None # required on first chunk
+ parent_message_id: Optional[str] = None
+ delta: Optional[str] = None
+```
+
+Behavior
+- Convenience: Consumers may expand chunk sequences into the standard
+ start/args/end triad (the JS/TS client does this automatically).
+- First chunk requirements: Include both `tool_call_id` and `tool_call_name` on
+ the first chunk.
+- Streaming: Subsequent chunks with the same `tool_call_id` correspond to args
+ pieces; completion triggers an implied end in clients that perform expansion.
diff --git a/docs/sdk/python/core/types.mdx b/docs/sdk/python/core/types.mdx
index 4f9180455..70275c4e2 100644
--- a/docs/sdk/python/core/types.mdx
+++ b/docs/sdk/python/core/types.mdx
@@ -22,6 +22,7 @@ Input parameters for running an agent. In the HTTP API, this is the body of the
class RunAgentInput(ConfiguredBaseModel):
thread_id: str
run_id: str
+ parent_run_id: Optional[str] = None
state: Any
messages: List[Message]
tools: List[Tool]
@@ -33,6 +34,7 @@ class RunAgentInput(ConfiguredBaseModel):
| ----------------- | --------------- | --------------------------------------------- |
| `thread_id` | `str` | ID of the conversation thread |
| `run_id` | `str` | ID of the current run |
+| `parent_run_id` | `Optional[str]` | (Optional) ID of the run that spawned this run|
| `state` | `Any` | Current state of the agent |
| `messages` | `List[Message]` | List of messages in the conversation |
| `tools` | `List[Tool]` | List of tools available to the agent |
@@ -51,7 +53,7 @@ messages in the system.
Represents the possible roles a message sender can have.
```python
-Role = Literal["developer", "system", "assistant", "user", "tool"]
+Role = Literal["developer", "system", "assistant", "user", "tool", "activity"]
```
### DeveloperMessage
@@ -122,15 +124,55 @@ Represents a message from a user.
```python
class UserMessage(BaseMessage):
role: Literal["user"]
- content: str
+ content: Union[str, List["InputContent"]]
+```
+
+| Property | Type | Description |
+| --------- | ---------------------------------- | --------------------------------------------------------------------- |
+| `id` | `str` | Unique identifier for the message |
+| `role` | `Literal["user"]` | Role of the message sender, fixed as "user" |
+| `content` | `Union[str, List["InputContent"]]` | Either a plain text string or an ordered list of multimodal fragments |
+| `name` | `Optional[str]` | Optional name of the sender |
+
+### TextInputContent
+
+Represents a text fragment inside a multimodal user message.
+
+```python
+class TextInputContent(ConfiguredBaseModel):
+ type: Literal["text"]
+ text: str
+```
+
+| Property | Type | Description |
+| -------- | --------------- | ---------------------------- |
+| `type` | `Literal["text"]` | Identifies the fragment type |
+| `text` | `str` | Text content |
+
+### BinaryInputContent
+
+Represents binary data such as images, audio, or files.
+
+```python
+class BinaryInputContent(ConfiguredBaseModel):
+ type: Literal["binary"]
+ mime_type: str
+ id: Optional[str] = None
+ url: Optional[str] = None
+ data: Optional[str] = None
+ filename: Optional[str] = None
```
-| Property | Type | Description |
-| --------- | ----------------- | ------------------------------------------- |
-| `id` | `str` | Unique identifier for the message |
-| `role` | `Literal["user"]` | Role of the message sender, fixed as "user" |
-| `content` | `str` | Text content of the message (required) |
-| `name` | `Optional[str]` | Optional name of the sender |
+| Property | Type | Description |
+| ---------- | ----------------- | ------------------------------------------------------------- |
+| `type` | `Literal["binary"]` | Identifies the fragment type |
+| `mime_type`| `str` | MIME type, for example `"image/png"` |
+| `id` | `Optional[str]` | Reference to previously uploaded content |
+| `url` | `Optional[str]` | Remote URL where the content can be retrieved |
+| `data` | `Optional[str]` | Base64 encoded content |
+| `filename` | `Optional[str]` | Optional filename hint |
+
+> **Validation:** At least one of `id`, `url`, or `data` must be provided.
### ToolMessage
@@ -155,6 +197,27 @@ class ToolMessage(ConfiguredBaseModel):
| `tool_call_id` | `str` | ID of the tool call this message responds to |
| `error` | `Optional[str]` | Error message if the tool call failed |
+### ActivityMessage
+
+`from ag_ui.core import ActivityMessage`
+
+Represents structured activity progress emitted between chat messages.
+
+```python
+class ActivityMessage(ConfiguredBaseModel):
+ id: str
+ role: Literal["activity"]
+ activity_type: str
+ content: Dict[str, Any]
+```
+
+| Property | Type | Description |
+| --------------- | ----------------------- | ------------------------------------------------------- |
+| `id` | `str` | Unique identifier for the activity message |
+| `role` | `Literal["activity"]` | Fixed discriminator identifying the message as activity |
+| `activity_type` | `str` | Activity discriminator used for renderer selection |
+| `content` | `Dict[str, Any]` | Structured payload representing the activity state |
+
### Message
`from ag_ui.core import Message`
@@ -163,7 +226,14 @@ A union type representing any type of message in the system.
```python
Message = Annotated[
- Union[DeveloperMessage, SystemMessage, AssistantMessage, UserMessage, ToolMessage],
+ Union[
+ DeveloperMessage,
+ SystemMessage,
+ AssistantMessage,
+ UserMessage,
+ ToolMessage,
+ ActivityMessage,
+ ],
Field(discriminator="role")
]
```
diff --git a/integrations/a2a/typescript/.gitignore b/integrations/a2a/typescript/.gitignore
new file mode 100644
index 000000000..de4d1f007
--- /dev/null
+++ b/integrations/a2a/typescript/.gitignore
@@ -0,0 +1,2 @@
+dist
+node_modules
diff --git a/integrations/a2a/typescript/.npmrc b/integrations/a2a/typescript/.npmrc
new file mode 100644
index 000000000..3e775efb0
--- /dev/null
+++ b/integrations/a2a/typescript/.npmrc
@@ -0,0 +1 @@
+auto-install-peers=true
diff --git a/integrations/a2a/typescript/README.md b/integrations/a2a/typescript/README.md
new file mode 100644
index 000000000..e1f689eb1
--- /dev/null
+++ b/integrations/a2a/typescript/README.md
@@ -0,0 +1,86 @@
+# @ag-ui/a2a
+
+A TypeScript integration that connects AG-UI agents with remote services that expose the [A2A protocol](https://a2a.dev/). It converts AG-UI conversations into A2A payloads, forwards them through the official A2A SDK, and replays the responses back into AG-UI event streams.
+
+> **Status:** Experimental. APIs may change while the integration stabilises.
+
+## Features
+
+- Message conversion helpers between AG-UI and A2A formats (user, assistant, tool, binary payloads).
+- `A2AAgent` implementation that streams or performs blocking requests against A2A endpoints.
+- Optional fallback from streaming to blocking requests when an agent does not support SSE.
+- Event conversion utilities that surface A2A messages, task status updates, and artifact chunks as AG-UI events.
+- Helper tool schema (`send_message_to_a2a_agent`) for orchestration scenarios.
+- Example client and Jest tests to validate conversions and streaming flows.
+
+## Installation
+
+Once dependencies are installed in the monorepo:
+
+```bash
+pnpm install
+pnpm --filter @ag-ui/a2a build
+```
+
+## Quick start
+
+```ts
+import { A2AAgent } from "@ag-ui/a2a";
+
+import { A2AClient } from "@a2a-js/sdk/client";
+
+const client = new A2AClient("https://my-a2a-agent");
+
+const agent = new A2AAgent({
+ a2aClient: client,
+ initialMessages: [
+ { id: "user-1", role: "user", content: "Plan a team offsite" } as any,
+ ],
+});
+
+const { result, newMessages } = await agent.runAgent();
+console.log(result);
+console.log(newMessages);
+```
+
+You can inject your own `A2AClient` instance via the `client` option, override default instructions, or force blocking mode by setting `strategy: "blocking"`.
+
+## Configuration reference
+
+| Option | Description |
+| ------ | ----------- |
+| `a2aClient` | Required. Provide an `A2AClient` instance (with any auth headers or custom fetch logic you need). |
+
+## Environment variables & authentication
+
+The integration relies on the underlying A2A agent for authentication. Common patterns include:
+
+- `A2A_AGENT_URL` – set in deployment environments to point to the remote agent base URL.
+- `A2A_API_KEY` or `A2A_BEARER_TOKEN` – consumed by a wrapped `fetch` inside a custom `A2AClient` instance if the remote agent enforces API key or bearer authentication.
+
+Pass any credentials to the `A2AClient` you provide to `A2AAgent`, or configure an HTTP proxy that injects the correct headers.
+
+## Utilities
+
+- `convertAGUIMessagesToA2A(messages, options)` — reshapes AG-UI history into A2A message objects, forwarding only user/assistant/tool turns and preserving the tool payloads.
+- `convertA2AEventToAGUIEvents(event, options)` — maps an A2A stream event to AG-UI text and tool events (`TEXT_MESSAGE_CHUNK`, `TOOL_CALL_*`, `TOOL_CALL_RESULT`).
+- `sendMessageToA2AAgentTool` — JSON schema describing a `send_message_to_a2a_agent` tool for orchestration agents.
+
+## Testing
+
+```bash
+pnpm --filter @ag-ui/a2a test
+```
+
+The suite covers conversion edge cases and streaming / fallback behaviour using mocked A2A clients.
+
+## Examples
+
+- `examples/basic.ts` – minimal script. If you set `A2A_AGENT_URL`, it will connect to that agent through the real `A2AClient`. Otherwise it falls back to a tiny in-memory mock client so you can observe the integration without hitting a remote endpoint.
+
+## Release checklist
+
+1. `pnpm --filter @ag-ui/a2a build`
+2. `pnpm --filter @ag-ui/a2a test`
+3. Update CHANGELOG / release notes.
+4. Publish with `pnpm publish --filter @ag-ui/a2a`.
diff --git a/integrations/a2a/typescript/jest.config.js b/integrations/a2a/typescript/jest.config.js
new file mode 100644
index 000000000..0521f8d91
--- /dev/null
+++ b/integrations/a2a/typescript/jest.config.js
@@ -0,0 +1,10 @@
+/** @type {import('ts-jest').JestConfigWithTsJest} */
+module.exports = {
+ preset: "ts-jest",
+ testEnvironment: "node",
+ testMatch: ["**/*.test.ts"],
+ passWithNoTests: true,
+ moduleNameMapper: {
+ "^@/(.*)$": "/src/$1",
+ },
+};
diff --git a/integrations/a2a/typescript/package.json b/integrations/a2a/typescript/package.json
new file mode 100644
index 000000000..d939bf829
--- /dev/null
+++ b/integrations/a2a/typescript/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "@ag-ui/a2a",
+ "author": "Markus Ecker ",
+ "version": "0.0.5",
+ "license": "Apache-2.0",
+ "main": "./dist/index.js",
+ "module": "./dist/index.mjs",
+ "types": "./dist/index.d.ts",
+ "sideEffects": false,
+ "private": false,
+ "publishConfig": {
+ "access": "public"
+ },
+ "files": [
+ "dist/**",
+ "README.md"
+ ],
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.js"
+ }
+ },
+ "scripts": {
+ "build": "tsup",
+ "dev": "tsup --watch",
+ "clean": "rm -rf dist .turbo node_modules",
+ "typecheck": "tsc --noEmit",
+ "test": "jest",
+ "link:global": "pnpm link --global",
+ "unlink:global": "pnpm unlink --global"
+ },
+ "dependencies": {
+ "@a2a-js/sdk": "^0.2.2",
+ "rxjs": "7.8.1"
+ },
+ "peerDependencies": {
+ "@ag-ui/core": ">=0.0.40",
+ "@ag-ui/client": ">=0.0.40"
+ },
+ "devDependencies": {
+ "@ag-ui/core": "workspace:*",
+ "@ag-ui/client": "workspace:*",
+ "@types/jest": "^29.5.14",
+ "@types/node": "^20.11.19",
+ "jest": "^29.7.0",
+ "ts-jest": "^29.1.2",
+ "tsup": "^8.0.2",
+ "typescript": "^5.3.3"
+ }
+}
diff --git a/integrations/a2a/typescript/src/__tests__/agent.test.ts b/integrations/a2a/typescript/src/__tests__/agent.test.ts
new file mode 100644
index 000000000..9d9ab88b9
--- /dev/null
+++ b/integrations/a2a/typescript/src/__tests__/agent.test.ts
@@ -0,0 +1,143 @@
+import type { Message } from "@ag-ui/client";
+import { A2AAgent } from "../agent";
+import type { MessageSendParams } from "@a2a-js/sdk";
+
+const createMessage = (message: Partial): Message => message as Message;
+
+type SendMessageResponseSuccess = {
+ id: string | number | null;
+ jsonrpc: "2.0";
+ result: any;
+};
+
+type SendMessageResponseError = {
+ id: string | number | null;
+ jsonrpc: "2.0";
+ error: { code: number; message: string };
+};
+
+class FakeA2AClient {
+ constructor(
+ readonly behaviour: {
+ stream?: () => AsyncGenerator;
+ send?: () => Promise;
+ card?: () => Promise;
+ } = {},
+ ) {}
+
+ sendMessageStream(params: MessageSendParams) {
+ if (!this.behaviour.stream) {
+ throw new Error("Streaming not configured");
+ }
+ return this.behaviour.stream();
+ }
+
+ async sendMessage(params: MessageSendParams) {
+ if (!this.behaviour.send) {
+ throw new Error("sendMessage not configured");
+ }
+ return this.behaviour.send();
+ }
+
+ isErrorResponse(response: SendMessageResponseSuccess | SendMessageResponseError): response is SendMessageResponseError {
+ return "error" in response && Boolean(response.error);
+ }
+
+ async getAgentCard() {
+ if (this.behaviour.card) {
+ return this.behaviour.card();
+ }
+ return {
+ name: "Test Agent",
+ description: "",
+ capabilities: {},
+ };
+ }
+}
+
+describe("A2AAgent", () => {
+ it("streams responses and records run summary", async () => {
+ const fakeClient = new FakeA2AClient({
+ stream: async function* () {
+ yield {
+ kind: "message",
+ messageId: "resp-1",
+ role: "agent",
+ parts: [{ kind: "text", text: "Hello from stream" }],
+ };
+ },
+ });
+
+ const agent = new A2AAgent({
+ a2aClient: fakeClient as any,
+ initialMessages: [
+ createMessage({
+ id: "user-1",
+ role: "user",
+ content: "Hi there",
+ }),
+ ],
+ });
+
+ const result = await agent.runAgent();
+
+ expect(result.result).toBeUndefined();
+
+ expect(result.newMessages).toEqual(
+ expect.arrayContaining([
+ expect.objectContaining({ role: "assistant" }),
+ ]),
+ );
+ });
+
+ it("falls back to blocking when streaming fails", async () => {
+ const fakeClient = new FakeA2AClient({
+ stream: async function* () {
+ throw new Error("Streaming unsupported");
+ },
+ send: async () => ({
+ id: null,
+ jsonrpc: "2.0",
+ result: {
+ kind: "message",
+ messageId: "resp-2",
+ role: "agent",
+ parts: [{ kind: "text", text: "Blocking response" }],
+ },
+ }),
+ });
+
+ const agent = new A2AAgent({
+ a2aClient: fakeClient as any,
+ initialMessages: [
+ createMessage({ id: "user-1", role: "user", content: "Ping" }),
+ ],
+ });
+
+ const result = await agent.runAgent();
+
+ expect(result.result).toBeUndefined();
+ });
+
+ it("throws when the A2A service reports an error", async () => {
+ const fakeClient = new FakeA2AClient({
+ stream: async function* () {
+ throw new Error("Streaming unsupported");
+ },
+ send: async () => ({
+ id: null,
+ jsonrpc: "2.0",
+ error: { code: -32000, message: "Agent failure" },
+ }),
+ });
+
+ const agent = new A2AAgent({
+ a2aClient: fakeClient as any,
+ initialMessages: [
+ createMessage({ id: "user-1", role: "user", content: "Trouble" }),
+ ],
+ });
+
+ await expect(agent.runAgent()).rejects.toThrow("Agent failure");
+ });
+});
diff --git a/integrations/a2a/typescript/src/__tests__/utils.test.ts b/integrations/a2a/typescript/src/__tests__/utils.test.ts
new file mode 100644
index 000000000..2621e62df
--- /dev/null
+++ b/integrations/a2a/typescript/src/__tests__/utils.test.ts
@@ -0,0 +1,191 @@
+import { EventType } from "@ag-ui/client";
+import type { Message } from "@ag-ui/client";
+import {
+ convertAGUIMessagesToA2A,
+ convertA2AEventToAGUIEvents,
+ sendMessageToA2AAgentTool,
+} from "../utils";
+
+const createMessage = (message: Partial): Message => message as Message;
+
+describe("convertAGUIMessagesToA2A", () => {
+ it("converts AG-UI messages into A2A format while skipping system messages", () => {
+ const systemMessage = createMessage({
+ id: "sys-1",
+ role: "system",
+ content: "Follow project guidelines",
+ });
+
+ const userMessage = createMessage({
+ id: "user-1",
+ role: "user",
+ content: [
+ {
+ type: "text",
+ text: "Draft a project plan",
+ },
+ ],
+ });
+
+ const assistantMessage = createMessage({
+ id: "assistant-1",
+ role: "assistant",
+ content: "Sure, preparing a plan",
+ toolCalls: [
+ {
+ id: "tool-call-1",
+ type: "function",
+ function: {
+ name: "lookupRequirements",
+ arguments: JSON.stringify({ id: 123 }),
+ },
+ },
+ ],
+ });
+
+ const toolMessage = createMessage({
+ id: "tool-1",
+ role: "tool",
+ toolCallId: "tool-call-1",
+ content: JSON.stringify({ status: "ok" }),
+ });
+
+ const converted = convertAGUIMessagesToA2A([
+ systemMessage,
+ userMessage,
+ assistantMessage,
+ toolMessage,
+ ]);
+
+ expect(converted.contextId).toBeUndefined();
+ expect(converted.history).toHaveLength(3);
+
+ const assistantEntry = converted.history.find((entry) => entry.role === "agent");
+ expect(assistantEntry?.parts).toEqual(
+ expect.arrayContaining([
+ expect.objectContaining({ kind: "text", text: "Sure, preparing a plan" }),
+ expect.objectContaining({ kind: "data" }),
+ ]),
+ );
+
+ const toolEntry = converted.history.find((entry) =>
+ entry.parts.some((part) => part.kind === "data" && (part as any).data?.type === "tool-result"),
+ );
+ expect(toolEntry?.parts).toEqual(
+ expect.arrayContaining([
+ expect.objectContaining({ kind: "data", data: expect.objectContaining({ type: "tool-result" }) }),
+ ]),
+ );
+
+ expect(converted.latestUserMessage?.role).toBe("user");
+ expect(
+ converted.history.some((msg) =>
+ (msg.parts ?? []).some((part) =>
+ part.kind === "text" && (part as any).text?.includes("Follow project guidelines"),
+ ),
+ ),
+ ).toBe(false);
+ });
+});
+
+describe("convertA2AEventToAGUIEvents", () => {
+ it("produces AG-UI text chunks from A2A messages", () => {
+ const a2aEvent = {
+ kind: "message" as const,
+ messageId: "remote-1",
+ role: "agent" as const,
+ parts: [
+ { kind: "text" as const, text: "Hello from A2A" },
+ ],
+ };
+
+ const map = new Map();
+ const events = convertA2AEventToAGUIEvents(a2aEvent, {
+ messageIdMap: map,
+ });
+
+ expect(events).toHaveLength(1);
+ expect(events[0]).toEqual(
+ expect.objectContaining({
+ type: EventType.TEXT_MESSAGE_CHUNK,
+ delta: "Hello from A2A",
+ }),
+ );
+
+ expect(map.size).toBe(1);
+ });
+
+ it("maps tool-call payloads to tool events", () => {
+ const a2aEvent = {
+ kind: "message" as const,
+ messageId: "remote-call",
+ role: "agent" as const,
+ parts: [
+ {
+ kind: "data" as const,
+ data: { type: "tool-call", id: "tool-123", name: "lookup", arguments: { query: "hi" } },
+ },
+ {
+ kind: "data" as const,
+ data: { type: "tool-result", toolCallId: "tool-123", payload: { ok: true } },
+ },
+ ],
+ };
+
+ const events = convertA2AEventToAGUIEvents(a2aEvent, { messageIdMap: new Map() });
+
+ expect(events).toEqual([
+ expect.objectContaining({ type: EventType.TOOL_CALL_START, toolCallId: "tool-123" }),
+ expect.objectContaining({ type: EventType.TOOL_CALL_ARGS, toolCallId: "tool-123" }),
+ expect.objectContaining({ type: EventType.TOOL_CALL_RESULT, toolCallId: "tool-123" }),
+ expect.objectContaining({ type: EventType.TOOL_CALL_END, toolCallId: "tool-123" }),
+ ]);
+ });
+
+ it("maps tool-result payloads to ToolCallResult events", () => {
+ const a2aEvent = {
+ kind: "message" as const,
+ messageId: "remote-2",
+ role: "agent" as const,
+ parts: [
+ {
+ kind: "data" as const,
+ data: { type: "tool-result", toolCallId: "call-1", payload: { ok: true } },
+ },
+ ],
+ };
+
+ const events = convertA2AEventToAGUIEvents(a2aEvent, { messageIdMap: new Map() });
+
+ expect(events).toHaveLength(1);
+ expect(events[0]).toEqual(
+ expect.objectContaining({
+ type: EventType.TOOL_CALL_RESULT,
+ toolCallId: "call-1",
+ }),
+ );
+ });
+
+ it("maps task status updates to raw events", () => {
+ const statusEvent = {
+ kind: "status-update" as const,
+ contextId: "ctx",
+ final: false,
+ status: { state: "working", message: undefined },
+ taskId: "task-1",
+ };
+
+ const events = convertA2AEventToAGUIEvents(statusEvent as any, {
+ messageIdMap: new Map(),
+ });
+
+ expect(events).toHaveLength(0);
+ });
+});
+
+describe("sendMessageToA2AAgentTool", () => {
+ it("matches the expected schema", () => {
+ expect(sendMessageToA2AAgentTool.name).toBe("send_message_to_a2a_agent");
+ expect(sendMessageToA2AAgentTool.parameters.required).toContain("task");
+ });
+});
diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts
new file mode 100644
index 000000000..f8fcc7a93
--- /dev/null
+++ b/integrations/a2a/typescript/src/agent.ts
@@ -0,0 +1,360 @@
+import {
+ AbstractAgent,
+ AgentConfig,
+ BaseEvent,
+ EventType,
+ RunAgentInput,
+ RunErrorEvent,
+ RunFinishedEvent,
+ RunStartedEvent,
+} from "@ag-ui/client";
+import { Observable } from "rxjs";
+import { A2AClient } from "@a2a-js/sdk/client";
+import type {
+ MessageSendConfiguration,
+ MessageSendParams,
+ Message as A2AMessage,
+} from "@a2a-js/sdk";
+import { convertAGUIMessagesToA2A, convertA2AEventToAGUIEvents } from "./utils";
+import type {
+ A2AAgentRunResultSummary,
+ ConvertedA2AMessages,
+ A2AStreamEvent,
+ SurfaceTracker,
+} from "./types";
+import { randomUUID } from "@ag-ui/client";
+
+export interface A2AAgentConfig extends AgentConfig {
+ a2aClient: A2AClient;
+}
+
+const EXTENSION_URI = "https://a2ui.org/ext/a2a-ui/v0.1";
+
+export class A2AAgent extends AbstractAgent {
+ private readonly a2aClient: A2AClient;
+ private readonly messageIdMap = new Map();
+
+ constructor(config: A2AAgentConfig) {
+ const { a2aClient, ...rest } = config;
+ if (!a2aClient) {
+ throw new Error("A2AAgent requires a configured A2AClient instance.");
+ }
+
+ super(rest);
+
+ this.a2aClient = a2aClient;
+ this.initializeExtension(this.a2aClient);
+ }
+
+ clone() {
+ return new A2AAgent({ a2aClient: this.a2aClient, debug: this.debug });
+ }
+
+ public override run(input: RunAgentInput): Observable {
+ return new Observable((subscriber) => {
+ const run = async () => {
+ const runStarted: RunStartedEvent = {
+ type: EventType.RUN_STARTED,
+ threadId: input.threadId,
+ runId: input.runId,
+ };
+ subscriber.next(runStarted);
+
+ if (!input.messages?.length) {
+ const runFinished: RunFinishedEvent = {
+ type: EventType.RUN_FINISHED,
+ threadId: input.threadId,
+ runId: input.runId,
+ };
+ subscriber.next(runFinished);
+ subscriber.complete();
+ return;
+ }
+
+ try {
+ const converted = this.prepareConversation(input);
+
+ if (!converted.latestUserMessage) {
+ const runFinished: RunFinishedEvent = {
+ type: EventType.RUN_FINISHED,
+ threadId: input.threadId,
+ runId: input.runId,
+ } as unknown as RunFinishedEvent;
+ subscriber.next(runFinished);
+ subscriber.complete();
+ return;
+ }
+
+ const sendParams = await this.createSendParams(converted, input);
+
+ const surfaceTracker = this.createSurfaceTracker();
+
+ try {
+ await this.streamMessage(sendParams, subscriber, surfaceTracker);
+ } catch (error) {
+ await this.fallbackToBlocking(
+ sendParams,
+ subscriber,
+ error as Error,
+ surfaceTracker,
+ );
+ }
+
+ const runFinished: RunFinishedEvent = {
+ type: EventType.RUN_FINISHED,
+ threadId: input.threadId,
+ runId: input.runId,
+ };
+ subscriber.next(runFinished);
+ subscriber.complete();
+ } catch (error) {
+ const runError: RunErrorEvent = {
+ type: EventType.RUN_ERROR,
+ message: (error as Error).message ?? "Unknown A2A error",
+ };
+ subscriber.next(runError);
+ subscriber.error(error);
+ }
+ };
+
+ run();
+
+ return () => {};
+ });
+ }
+
+ private prepareConversation(input: RunAgentInput): ConvertedA2AMessages {
+ return convertAGUIMessagesToA2A(input.messages ?? [], {
+ contextId: input.threadId,
+ });
+ }
+
+ private async createSendParams(
+ converted: ConvertedA2AMessages,
+ input: RunAgentInput,
+ ): Promise {
+ const latest = converted.latestUserMessage as A2AMessage;
+
+ const message: A2AMessage = {
+ ...latest,
+ messageId: latest.messageId ?? randomUUID(),
+ contextId: converted.contextId ?? input.threadId,
+ };
+
+ const configuration: MessageSendConfiguration = {
+ acceptedOutputModes: ["text"],
+ } as MessageSendConfiguration;
+
+ return {
+ message,
+ configuration,
+ } as MessageSendParams;
+ }
+
+ private async streamMessage(
+ params: MessageSendParams,
+ subscriber: { next: (event: BaseEvent) => void },
+ surfaceTracker?: SurfaceTracker,
+ ): Promise {
+ const aggregatedText = new Map();
+ const rawEvents: A2AStreamEvent[] = [];
+ const tracker = surfaceTracker ?? this.createSurfaceTracker();
+
+ const stream = this.a2aClient.sendMessageStream(params);
+ for await (const chunk of stream) {
+ rawEvents.push(chunk as A2AStreamEvent);
+ const events = convertA2AEventToAGUIEvents(chunk as A2AStreamEvent, {
+ role: "assistant",
+ messageIdMap: this.messageIdMap,
+ onTextDelta: ({ messageId, delta }) => {
+ aggregatedText.set(
+ messageId,
+ (aggregatedText.get(messageId) ?? "") + delta,
+ );
+ },
+ getCurrentText: (messageId) => aggregatedText.get(messageId),
+ source: "a2a",
+ surfaceTracker: tracker,
+ });
+ for (const event of events) {
+ subscriber.next(event);
+ }
+ }
+
+ return {
+ messages: [],
+ rawEvents,
+ };
+ }
+
+ private async fallbackToBlocking(
+ params: MessageSendParams,
+ subscriber: { next: (event: BaseEvent) => void },
+ error: Error,
+ surfaceTracker?: SurfaceTracker,
+ ): Promise {
+ const configuration: MessageSendConfiguration = {
+ ...params.configuration,
+ acceptedOutputModes: params.configuration?.acceptedOutputModes ?? [
+ "text",
+ ],
+ blocking: true,
+ };
+
+ return this.blockingMessage(
+ {
+ ...params,
+ configuration,
+ },
+ subscriber,
+ surfaceTracker,
+ );
+ }
+
+ private async blockingMessage(
+ params: MessageSendParams,
+ subscriber: { next: (event: BaseEvent) => void },
+ surfaceTracker?: SurfaceTracker,
+ ): Promise {
+ const response = await this.a2aClient.sendMessage(params);
+
+ if (this.a2aClient.isErrorResponse(response)) {
+ const errorMessage =
+ response.error?.message ?? "Unknown error from A2A agent";
+ console.error("A2A sendMessage error", response.error);
+ throw new Error(errorMessage);
+ }
+
+ const aggregatedText = new Map();
+ const rawEvents: A2AStreamEvent[] = [];
+ const tracker = surfaceTracker ?? this.createSurfaceTracker();
+
+ const result = response.result as A2AStreamEvent;
+ rawEvents.push(result);
+
+ const events = convertA2AEventToAGUIEvents(result, {
+ role: "assistant",
+ messageIdMap: this.messageIdMap,
+ onTextDelta: ({ messageId, delta }) => {
+ aggregatedText.set(
+ messageId,
+ (aggregatedText.get(messageId) ?? "") + delta,
+ );
+ },
+ getCurrentText: (messageId) => aggregatedText.get(messageId),
+ source: "a2a",
+ surfaceTracker: tracker,
+ });
+
+ for (const event of events) {
+ subscriber.next(event);
+ }
+
+ return {
+ messages: [],
+ rawEvents,
+ };
+ }
+
+ private initializeExtension(client: A2AClient) {
+ const addExtensionHeader = (headers: Headers) => {
+ const existingValue = headers.get("X-A2A-Extensions") ?? "";
+ const values = existingValue
+ .split(",")
+ .map((value) => value.trim())
+ .filter(Boolean);
+
+ if (!values.includes(EXTENSION_URI)) {
+ values.push(EXTENSION_URI);
+ headers.set("X-A2A-Extensions", values.join(", "));
+ }
+ };
+
+ const patchFetch = () => {
+ const originalFetch = globalThis.fetch;
+ if (!originalFetch) {
+ return () => {};
+ }
+
+ const extensionFetch: typeof fetch = async (input, init) => {
+ const headers = new Headers(init?.headers);
+ addExtensionHeader(headers);
+ const nextInit: RequestInit = {
+ ...init,
+ headers,
+ };
+ return originalFetch(input, nextInit);
+ };
+
+ globalThis.fetch = extensionFetch;
+
+ return () => {
+ globalThis.fetch = originalFetch;
+ };
+ };
+
+ const wrapPromise = async (operation: () => Promise): Promise => {
+ const restore = patchFetch();
+ try {
+ return await operation();
+ } finally {
+ restore();
+ }
+ };
+
+ const wrapStream = (
+ original:
+ | ((...args: any[]) => AsyncGenerator)
+ | undefined,
+ ) => {
+ if (!original) {
+ return undefined;
+ }
+
+ return function wrapped(this: unknown, ...args: unknown[]) {
+ const restore = patchFetch();
+ const iterator = original.apply(this, args);
+
+ const wrappedIterator = (async function* () {
+ try {
+ for await (const value of iterator) {
+ yield value;
+ }
+ } finally {
+ restore();
+ }
+ })();
+
+ return wrappedIterator;
+ };
+ };
+
+ const originalSendMessage = client.sendMessage.bind(client);
+ client.sendMessage = (params) =>
+ wrapPromise(() => originalSendMessage(params));
+
+ const originalSendMessageStream = client.sendMessageStream?.bind(client);
+ const wrappedSendMessageStream = wrapStream(originalSendMessageStream);
+ if (wrappedSendMessageStream) {
+ client.sendMessageStream =
+ wrappedSendMessageStream as typeof client.sendMessageStream;
+ }
+
+ const originalResubscribeTask = client.resubscribeTask?.bind(client);
+ const wrappedResubscribeTask = wrapStream(originalResubscribeTask);
+ if (wrappedResubscribeTask) {
+ client.resubscribeTask =
+ wrappedResubscribeTask as typeof client.resubscribeTask;
+ }
+ }
+
+ private createSurfaceTracker(): SurfaceTracker {
+ const seenSurfaceIds = new Set();
+ return {
+ has: (surfaceId: string) => seenSurfaceIds.has(surfaceId),
+ add: (surfaceId: string) => {
+ seenSurfaceIds.add(surfaceId);
+ },
+ };
+ }
+}
diff --git a/integrations/a2a/typescript/src/index.ts b/integrations/a2a/typescript/src/index.ts
new file mode 100644
index 000000000..c06315272
--- /dev/null
+++ b/integrations/a2a/typescript/src/index.ts
@@ -0,0 +1,3 @@
+export * from "./agent";
+export * from "./utils";
+export * from "./types";
diff --git a/integrations/a2a/typescript/src/types.ts b/integrations/a2a/typescript/src/types.ts
new file mode 100644
index 000000000..b3e51181c
--- /dev/null
+++ b/integrations/a2a/typescript/src/types.ts
@@ -0,0 +1,60 @@
+import type {
+ MessageSendConfiguration,
+ MessageSendParams,
+ Message as A2AMessage,
+ Part as A2APart,
+ TextPart as A2ATextPart,
+ DataPart as A2ADataPart,
+ FilePart as A2AFilePart,
+ Task as A2ATask,
+ TaskStatusUpdateEvent as A2ATaskStatusUpdateEvent,
+ TaskArtifactUpdateEvent as A2ATaskArtifactUpdateEvent,
+} from "@a2a-js/sdk";
+import type { Message as AGUIMessage } from "@ag-ui/client";
+
+export type {
+ A2AMessage,
+ A2APart,
+ A2ATextPart,
+ A2ADataPart,
+ A2AFilePart,
+ MessageSendParams,
+ MessageSendConfiguration,
+ AGUIMessage as AGUIConversationMessage,
+};
+
+export interface SurfaceTracker {
+ has(surfaceId: string): boolean;
+ add(surfaceId: string): void;
+}
+
+export type A2AStreamEvent =
+ | A2AMessage
+ | A2ATask
+ | A2ATaskStatusUpdateEvent
+ | A2ATaskArtifactUpdateEvent;
+
+export interface ConvertAGUIMessagesOptions {
+ contextId?: string;
+ includeToolMessages?: boolean;
+}
+
+export interface ConvertedA2AMessages {
+ contextId?: string;
+ history: A2AMessage[];
+ latestUserMessage?: A2AMessage;
+}
+
+export interface ConvertA2AEventOptions {
+ role?: "assistant" | "user";
+ messageIdMap: Map;
+ onTextDelta?: (payload: { messageId: string; delta: string }) => void;
+ source?: string;
+ getCurrentText?: (messageId: string) => string | undefined;
+ surfaceTracker?: SurfaceTracker;
+}
+
+export interface A2AAgentRunResultSummary {
+ messages: Array<{ messageId: string; text: string }>;
+ rawEvents: A2AStreamEvent[];
+}
diff --git a/integrations/a2a/typescript/src/utils.ts b/integrations/a2a/typescript/src/utils.ts
new file mode 100644
index 000000000..8aba08fcd
--- /dev/null
+++ b/integrations/a2a/typescript/src/utils.ts
@@ -0,0 +1,488 @@
+import type {
+ BaseEvent,
+ InputContent,
+ Message,
+ TextMessageChunkEvent,
+ RawEvent,
+ ToolCallArgsEvent,
+ ToolCallEndEvent,
+ ToolCallStartEvent,
+ ToolCallResultEvent,
+} from "@ag-ui/client";
+import { EventType, randomUUID } from "@ag-ui/client";
+import type {
+ A2AMessage,
+ A2APart,
+ A2ATextPart,
+ A2ADataPart,
+ A2AFilePart,
+ A2AStreamEvent,
+ ConvertAGUIMessagesOptions,
+ ConvertedA2AMessages,
+ ConvertA2AEventOptions,
+} from "./types";
+
+const ROLE_MAP: Record = {
+ user: "user",
+ assistant: "agent",
+ tool: "agent",
+ system: "user",
+ developer: "user",
+};
+
+const TOOL_RESULT_PART_TYPE = "tool-result";
+const TOOL_CALL_PART_TYPE = "tool-call";
+const SURFACE_OPERATION_KEYS = [
+ "beginRendering",
+ "surfaceUpdate",
+ "dataModelUpdate",
+] as const;
+
+type SurfaceOperationKey = (typeof SURFACE_OPERATION_KEYS)[number];
+
+const isBinaryContent = (
+ content: InputContent,
+): content is Extract => content.type === "binary";
+
+const isTextContent = (content: InputContent): content is Extract =>
+ content.type === "text";
+
+const createTextPart = (text: string): A2ATextPart => ({
+ kind: "text",
+ text,
+});
+
+const createFilePart = (content: Extract): A2AFilePart | null => {
+ if (content.url) {
+ return {
+ kind: "file",
+ file: {
+ uri: content.url,
+ mimeType: content.mimeType,
+ name: content.filename,
+ },
+ };
+ }
+
+ if (content.data) {
+ return {
+ kind: "file",
+ file: {
+ bytes: content.data,
+ mimeType: content.mimeType,
+ name: content.filename,
+ },
+ };
+ }
+
+ return null;
+};
+
+const extractSurfaceOperation = (
+ payload: unknown,
+): { surfaceId: string; operation: Record } | null => {
+ if (!payload || typeof payload !== "object") {
+ return null;
+ }
+
+ const record = payload as Record;
+
+ for (const key of SURFACE_OPERATION_KEYS) {
+ const value = record[key as SurfaceOperationKey];
+ if (value && typeof value === "object" && (value as { surfaceId?: unknown }).surfaceId) {
+ const surfaceId = (value as { surfaceId?: unknown }).surfaceId;
+ if (typeof surfaceId === "string" && surfaceId.length > 0) {
+ return { surfaceId, operation: record };
+ }
+ }
+ }
+
+ return null;
+};
+
+const safeJsonParse = (value: string): unknown => {
+ try {
+ return JSON.parse(value);
+ } catch (error) {
+ return value;
+ }
+};
+
+const messageContentToParts = (message: Message): A2APart[] => {
+ const parts: A2APart[] = [];
+ const { content } = message as { content?: Message["content"] };
+
+ if (typeof content === "string") {
+ const trimmed = content.trim();
+ if (trimmed.length > 0) {
+ parts.push(createTextPart(trimmed));
+ }
+ } else if (Array.isArray(content)) {
+ for (const chunk of content) {
+ if (isTextContent(chunk)) {
+ const value = chunk.text.trim();
+ if (value.length > 0) {
+ parts.push(createTextPart(value));
+ }
+ } else if (isBinaryContent(chunk)) {
+ const filePart = createFilePart(chunk);
+ if (filePart) {
+ parts.push(filePart);
+ }
+ } else {
+ parts.push({ kind: "data", data: chunk } as A2ADataPart);
+ }
+ }
+ } else if (content && typeof content === "object") {
+ parts.push({
+ kind: "data",
+ data: content as Record,
+ });
+ }
+
+ if (message.role === "assistant" && "toolCalls" in message && message.toolCalls?.length) {
+ for (const toolCall of message.toolCalls) {
+ parts.push({
+ kind: "data",
+ data: {
+ type: TOOL_CALL_PART_TYPE,
+ id: toolCall.id,
+ name: toolCall.function.name,
+ arguments: safeJsonParse(toolCall.function.arguments),
+ rawArguments: toolCall.function.arguments,
+ },
+ });
+ }
+ }
+
+ if (message.role === "tool") {
+ const payload = typeof message.content === "string" ? safeJsonParse(message.content) : message.content;
+ parts.push({
+ kind: "data",
+ data: {
+ type: TOOL_RESULT_PART_TYPE,
+ toolCallId: message.toolCallId,
+ payload,
+ },
+ });
+ }
+
+ return parts;
+};
+
+const messageContentToText = (message: Message): string => {
+ const { content } = message as { content?: Message["content"] };
+ if (typeof content === "string") {
+ return content;
+ }
+ if (Array.isArray(content)) {
+ return content
+ .filter((part): part is Extract => isTextContent(part))
+ .map((part) => part.text)
+ .join("\n");
+ }
+ if (content && typeof content === "object") {
+ return JSON.stringify(content);
+ }
+ return "";
+};
+
+export function convertAGUIMessagesToA2A(
+ messages: Message[],
+ options: ConvertAGUIMessagesOptions = {},
+): ConvertedA2AMessages {
+ const history: A2AMessage[] = [];
+ const includeToolMessages = options.includeToolMessages ?? true;
+ const contextId = options.contextId;
+
+ for (const message of messages) {
+ if (message.role === "activity") {
+ continue;
+ }
+
+ if (message.role === "tool" && !includeToolMessages) {
+ continue;
+ }
+
+ if (message.role === "system" || message.role === "developer") {
+ continue;
+ }
+
+ const mappedRole = ROLE_MAP[message.role] ?? (message.role === "tool" ? "agent" : undefined);
+
+ if (!mappedRole) {
+ continue;
+ }
+
+ const parts = messageContentToParts(message);
+
+ if (parts.length === 0 && mappedRole !== "agent") {
+ continue;
+ }
+
+ const messageId = message.id ?? randomUUID();
+
+ history.push({
+ kind: "message",
+ messageId,
+ role: mappedRole,
+ parts,
+ contextId,
+ });
+ }
+
+ const latestUserMessage = [...history].reverse().find((msg) => msg.role === "user");
+
+ return {
+ contextId,
+ history,
+ latestUserMessage,
+ };
+}
+
+const isA2AMessage = (event: A2AStreamEvent): event is A2AMessage => event.kind === "message";
+
+const isA2ATask = (event: A2AStreamEvent): event is import("@a2a-js/sdk").Task => event.kind === "task";
+
+const isA2AStatusUpdate = (
+ event: A2AStreamEvent,
+): event is import("@a2a-js/sdk").TaskStatusUpdateEvent => event.kind === "status-update";
+
+function resolveMappedMessageId(
+ originalId: string,
+ options: ConvertA2AEventOptions,
+ aliasKey?: string,
+): string {
+ if (aliasKey) {
+ const existingAliasId = options.messageIdMap.get(aliasKey);
+ if (existingAliasId) {
+ options.messageIdMap.set(originalId, existingAliasId);
+ return existingAliasId;
+ }
+ }
+
+ const existingId = options.messageIdMap.get(originalId);
+ if (existingId) {
+ if (aliasKey) {
+ options.messageIdMap.set(aliasKey, existingId);
+ }
+ return existingId;
+ }
+
+ const newId = randomUUID();
+ options.messageIdMap.set(originalId, newId);
+ if (aliasKey) {
+ options.messageIdMap.set(aliasKey, newId);
+ }
+ return newId;
+}
+
+function convertMessageToEvents(
+ message: A2AMessage,
+ options: ConvertA2AEventOptions,
+ aliasKey?: string,
+): BaseEvent[] {
+ const role = options.role ?? "assistant";
+ const events: BaseEvent[] = [];
+
+ const originalId = message.messageId ?? randomUUID();
+ const mappedId = resolveMappedMessageId(originalId, options, aliasKey);
+
+ const openToolCalls = new Set();
+
+ for (const part of message.parts ?? []) {
+ if (part.kind === "text") {
+ const textPart = part as A2ATextPart;
+ const partText = textPart.text ?? "";
+ if (partText) {
+ const previousText = options.getCurrentText?.(mappedId) ?? "";
+
+ if (partText !== previousText) {
+ const deltaText = partText.startsWith(previousText)
+ ? partText.slice(previousText.length)
+ : partText;
+
+ if (deltaText.length > 0) {
+ const chunkEvent: TextMessageChunkEvent = {
+ type: EventType.TEXT_MESSAGE_CHUNK,
+ messageId: mappedId,
+ role,
+ delta: deltaText,
+ };
+ options.onTextDelta?.({ messageId: mappedId, delta: deltaText });
+ events.push(chunkEvent);
+ }
+ }
+ }
+ continue;
+ }
+
+ if (part.kind === "data") {
+ const dataPart = part as A2ADataPart;
+ const payload = dataPart.data;
+
+ if (payload && typeof payload === "object" && (payload as any).type === TOOL_CALL_PART_TYPE) {
+ const toolCallId = (payload as any).id ?? randomUUID();
+ const toolCallName = (payload as any).name ?? "unknown_tool";
+ const args = (payload as any).arguments;
+
+ const startEvent: ToolCallStartEvent = {
+ type: EventType.TOOL_CALL_START,
+ toolCallId,
+ toolCallName,
+ parentMessageId: mappedId,
+ };
+ events.push(startEvent);
+
+ if (args !== undefined) {
+ const argsEvent: ToolCallArgsEvent = {
+ type: EventType.TOOL_CALL_ARGS,
+ toolCallId,
+ delta: JSON.stringify(args),
+ };
+ events.push(argsEvent);
+ }
+
+ openToolCalls.add(toolCallId);
+ continue;
+ }
+
+ if (
+ payload &&
+ typeof payload === "object" &&
+ (payload as any).type === TOOL_RESULT_PART_TYPE &&
+ (payload as any).toolCallId
+ ) {
+ const toolCallId = (payload as any).toolCallId;
+ const toolResultEvent: ToolCallResultEvent = {
+ type: EventType.TOOL_CALL_RESULT,
+ toolCallId,
+ content: JSON.stringify((payload as any).payload ?? payload),
+ messageId: randomUUID(),
+ role: "tool",
+ };
+ events.push(toolResultEvent);
+
+ if (openToolCalls.has(toolCallId)) {
+ const endEvent: ToolCallEndEvent = {
+ type: EventType.TOOL_CALL_END,
+ toolCallId,
+ };
+ events.push(endEvent);
+ openToolCalls.delete(toolCallId);
+ }
+
+ continue;
+ }
+
+ const surfaceOperation = extractSurfaceOperation(payload);
+ if (surfaceOperation && options.surfaceTracker) {
+ const tracker = options.surfaceTracker;
+ const { surfaceId, operation } = surfaceOperation;
+ const hasSeenSurface = tracker.has(surfaceId);
+
+ if (!hasSeenSurface) {
+ tracker.add(surfaceId);
+ events.push({
+ type: EventType.ACTIVITY_SNAPSHOT,
+ messageId: surfaceId,
+ activityType: "a2ui-surface",
+ content: { operations: [] },
+ replace: false,
+ } as BaseEvent);
+ }
+
+ events.push({
+ type: EventType.ACTIVITY_DELTA,
+ messageId: surfaceId,
+ activityType: "a2ui-surface",
+ patch: [
+ {
+ op: "add",
+ path: "/operations/-",
+ value: operation,
+ },
+ ],
+ } as BaseEvent);
+
+ continue;
+ }
+
+ continue;
+ }
+
+ // Ignore other part kinds for now.
+ }
+
+ for (const toolCallId of openToolCalls) {
+ const endEvent: ToolCallEndEvent = {
+ type: EventType.TOOL_CALL_END,
+ toolCallId,
+ };
+ events.push(endEvent);
+ }
+
+ return events;
+}
+
+export function convertA2AEventToAGUIEvents(
+ event: A2AStreamEvent,
+ options: ConvertA2AEventOptions,
+): BaseEvent[] {
+ const events: BaseEvent[] = [];
+ const source = options.source ?? "a2a";
+
+ if (isA2AMessage(event)) {
+ return convertMessageToEvents(event, options);
+ }
+
+ if (isA2AStatusUpdate(event)) {
+ const statusMessage = event.status?.message;
+ const statusState = event.status?.state;
+ const aliasKey = statusState && statusState !== "input-required" ? `${event.taskId}:status` : undefined;
+
+ if (statusMessage && statusMessage.kind === "message") {
+ return convertMessageToEvents(statusMessage as A2AMessage, options, aliasKey);
+ }
+ return events;
+ }
+
+ if (isA2ATask(event)) {
+ const rawEvent: RawEvent = {
+ type: EventType.RAW,
+ event,
+ source,
+ };
+ events.push(rawEvent);
+ return events;
+ }
+
+ const fallbackEvent: RawEvent = {
+ type: EventType.RAW,
+ event,
+ source,
+ };
+ events.push(fallbackEvent);
+ return events;
+}
+
+export const sendMessageToA2AAgentTool = {
+ name: "send_message_to_a2a_agent",
+ description:
+ "Sends a task to the agent named `agentName`, including the full conversation context and goal",
+ parameters: {
+ type: "object",
+ properties: {
+ agentName: {
+ type: "string",
+ description: "The name of the A2A agent to send the message to.",
+ },
+ task: {
+ type: "string",
+ description:
+ "The comprehensive conversation-context summary and goal to be achieved regarding the user inquiry.",
+ },
+ },
+ required: ["task"],
+ },
+} as const;
diff --git a/integrations/a2a/typescript/tsconfig.json b/integrations/a2a/typescript/tsconfig.json
new file mode 100644
index 000000000..ceecfd457
--- /dev/null
+++ b/integrations/a2a/typescript/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "target": "es2017",
+ "module": "NodeNext",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "declaration": true,
+ "declarationMap": true,
+ "sourceMap": true,
+ "moduleResolution": "NodeNext",
+ "skipLibCheck": true,
+ "strict": true,
+ "jsx": "react-jsx",
+ "esModuleInterop": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ },
+ "stripInternal": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules", "dist"]
+}
diff --git a/integrations/a2a/typescript/tsup.config.ts b/integrations/a2a/typescript/tsup.config.ts
new file mode 100644
index 000000000..a0ee0a256
--- /dev/null
+++ b/integrations/a2a/typescript/tsup.config.ts
@@ -0,0 +1,13 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+ entry: {
+ index: "src/index.ts",
+ },
+ format: ["cjs", "esm"],
+ dts: true,
+ splitting: false,
+ sourcemap: true,
+ clean: true,
+ minify: true,
+});
diff --git a/integrations/adk-middleware/python/src/ag_ui_adk/event_translator.py b/integrations/adk-middleware/python/src/ag_ui_adk/event_translator.py
index 922bd0279..2bcfbe16d 100644
--- a/integrations/adk-middleware/python/src/ag_ui_adk/event_translator.py
+++ b/integrations/adk-middleware/python/src/ag_ui_adk/event_translator.py
@@ -223,10 +223,16 @@ async def translate(
# Handle state changes
- if hasattr(adk_event, 'actions') and adk_event.actions and hasattr(adk_event.actions, 'state_delta') and adk_event.actions.state_delta:
- yield self._create_state_delta_event(
- adk_event.actions.state_delta, thread_id, run_id
- )
+ if hasattr(adk_event, 'actions') and adk_event.actions:
+ if hasattr(adk_event.actions, 'state_delta') and adk_event.actions.state_delta:
+ yield self._create_state_delta_event(
+ adk_event.actions.state_delta, thread_id, run_id
+ )
+
+ if hasattr(adk_event.actions, 'state_snapshot'):
+ state_snapshot = adk_event.actions.state_snapshot
+ if state_snapshot is not None:
+ yield self._create_state_snapshot_event(state_snapshot)
# Handle custom events or metadata
@@ -583,23 +589,9 @@ def _create_state_snapshot_event(
A StateSnapshotEvent
"""
- FullSnapShot = {
- "context": {
- "conversation": [],
- "user": {
- "name": state_snapshot.get("user_name", ""),
- "timezone": state_snapshot.get("timezone", "UTC")
- },
- "app": {
- "version": state_snapshot.get("app_version", "unknown")
- }
- },
- "state": state_snapshot.get("custom_state", {})
- }
-
return StateSnapshotEvent(
type=EventType.STATE_SNAPSHOT,
- snapshot=FullSnapShot
+ snapshot=state_snapshot
)
async def force_close_streaming_message(self) -> AsyncGenerator[BaseEvent, None]:
diff --git a/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py b/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py
index dd33b7b46..2cef5241d 100644
--- a/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py
+++ b/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py
@@ -8,7 +8,7 @@
from ag_ui.core import (
Message, UserMessage, AssistantMessage, SystemMessage, ToolMessage,
- ToolCall, FunctionCall
+ ToolCall, FunctionCall, TextInputContent, BinaryInputContent
)
from google.adk.events import Event as ADKEvent
from google.genai import types
@@ -38,18 +38,19 @@ def convert_ag_ui_messages_to_adk(messages: List[Message]) -> List[ADKEvent]:
# Convert content based on message type
if isinstance(message, (UserMessage, SystemMessage)):
- if message.content:
+ flattened_content = flatten_message_content(message.content)
+ if flattened_content:
event.content = types.Content(
role=message.role,
- parts=[types.Part(text=message.content)]
+ parts=[types.Part(text=flattened_content)]
)
-
+
elif isinstance(message, AssistantMessage):
parts = []
-
+
# Add text content if present
if message.content:
- parts.append(types.Part(text=message.content))
+ parts.append(types.Part(text=flatten_message_content(message.content)))
# Add tool calls if present
if message.tool_calls:
@@ -205,25 +206,32 @@ def convert_json_patch_to_state(patches: List[Dict[str, Any]]) -> Dict[str, Any]
def extract_text_from_content(content: types.Content) -> str:
- """Extract all text from ADK Content object.
-
- Args:
- content: ADK Content object
-
- Returns:
- Combined text from all text parts
- """
+ """Extract all text from ADK Content object."""
if not content or not content.parts:
return ""
-
+
text_parts = []
for part in content.parts:
if part.text:
text_parts.append(part.text)
-
+
return "\n".join(text_parts)
+def flatten_message_content(content: Any) -> str:
+ if content is None:
+ return ""
+
+ if isinstance(content, str):
+ return content
+
+ if isinstance(content, list):
+ text_parts = [part.text for part in content if isinstance(part, TextInputContent) and part.text]
+ return "\n".join(text_parts)
+
+ return str(content)
+
+
def create_error_message(error: Exception, context: str = "") -> str:
"""Create a user-friendly error message.
@@ -240,4 +248,4 @@ def create_error_message(error: Exception, context: str = "") -> str:
if context:
return f"{context}: {error_type} - {error_msg}"
else:
- return f"{error_type}: {error_msg}"
\ No newline at end of file
+ return f"{error_type}: {error_msg}"
diff --git a/integrations/adk-middleware/python/tests/test_event_translator_comprehensive.py b/integrations/adk-middleware/python/tests/test_event_translator_comprehensive.py
index 8ef9d17ea..7e7ea8d5b 100644
--- a/integrations/adk-middleware/python/tests/test_event_translator_comprehensive.py
+++ b/integrations/adk-middleware/python/tests/test_event_translator_comprehensive.py
@@ -13,7 +13,7 @@
from ag_ui.core import (
EventType, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent,
ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent,
- StateDeltaEvent, CustomEvent
+ StateDeltaEvent, StateSnapshotEvent, CustomEvent
)
from google.adk.events import Event as ADKEvent
from ag_ui_adk.event_translator import EventTranslator
@@ -185,6 +185,7 @@ async def test_translate_state_delta_event(self, translator, mock_adk_event):
# Mock event with state delta
mock_actions = MagicMock()
mock_actions.state_delta = {"key1": "value1", "key2": "value2"}
+ mock_actions.state_snapshot = None
mock_adk_event.actions = mock_actions
events = []
@@ -201,6 +202,55 @@ async def test_translate_state_delta_event(self, translator, mock_adk_event):
assert any(patch["path"] == "/key1" and patch["value"] == "value1" for patch in patches)
assert any(patch["path"] == "/key2" and patch["value"] == "value2" for patch in patches)
+ @pytest.mark.asyncio
+ async def test_translate_state_snapshot_event_passthrough(self, translator, mock_adk_event):
+ """Test state snapshot events preserve the ADK payload."""
+
+ state_snapshot = {
+ "user_name": "Alice",
+ "timezone": "UTC",
+ "custom_state": {
+ "view": {"active_tab": "details"},
+ "progress": 0.75,
+ },
+ "extra_field": [1, 2, 3],
+ }
+
+ mock_adk_event.actions = SimpleNamespace(
+ state_delta=None,
+ state_snapshot=state_snapshot,
+ )
+
+ events = []
+ async for event in translator.translate(mock_adk_event, "thread_1", "run_1"):
+ events.append(event)
+
+ snapshot_events = [event for event in events if isinstance(event, StateSnapshotEvent)]
+ assert snapshot_events, "Expected a StateSnapshotEvent to be emitted"
+
+ snapshot_event = snapshot_events[0]
+ assert snapshot_event.type == EventType.STATE_SNAPSHOT
+ assert snapshot_event.snapshot == state_snapshot
+ assert snapshot_event.snapshot["user_name"] == "Alice"
+ assert snapshot_event.snapshot["custom_state"]["view"]["active_tab"] == "details"
+ assert "extra_field" in snapshot_event.snapshot
+
+ def test_create_state_snapshot_event_passthrough(self, translator):
+ """Direct helper should forward the snapshot unchanged."""
+
+ state_snapshot = {
+ "user_name": "Bob",
+ "custom_state": {"step": 3},
+ "timezone": "PST",
+ }
+
+ event = translator._create_state_snapshot_event(state_snapshot)
+
+ assert isinstance(event, StateSnapshotEvent)
+ assert event.type == EventType.STATE_SNAPSHOT
+ assert event.snapshot == state_snapshot
+ assert set(event.snapshot.keys()) == {"user_name", "custom_state", "timezone"}
+
@pytest.mark.asyncio
async def test_translate_custom_event(self, translator, mock_adk_event):
"""Test custom event creation."""
@@ -857,14 +907,15 @@ async def test_complex_event_with_multiple_features(self, translator, mock_adk_e
async for event in translator.translate(mock_adk_event, "thread_1", "run_1"):
events.append(event)
- # Should have text events, state delta, and custom event
- assert len(events) == 5 # START, CONTENT, STATE_DELTA, CUSTOM , END
+ # Should have text events, state delta, state snapshot, and custom event
+ assert len(events) == 6 # START, CONTENT, STATE_DELTA, STATE_SNAPSHOT, CUSTOM, END
# Check event types
event_types = [type(event) for event in events]
assert TextMessageStartEvent in event_types
assert TextMessageContentEvent in event_types
assert StateDeltaEvent in event_types
+ assert StateSnapshotEvent in event_types
assert CustomEvent in event_types
assert TextMessageEndEvent in event_types
diff --git a/integrations/agno/typescript/package.json b/integrations/agno/typescript/package.json
index 05b9cd0dc..a1747e3ab 100644
--- a/integrations/agno/typescript/package.json
+++ b/integrations/agno/typescript/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/agno",
"author": "Manu Hortet ",
- "version": "0.0.2",
+ "version": "0.0.3",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
diff --git a/integrations/agno/typescript/src/index.ts b/integrations/agno/typescript/src/index.ts
index e3f0db93e..641d5a6bd 100644
--- a/integrations/agno/typescript/src/index.ts
+++ b/integrations/agno/typescript/src/index.ts
@@ -5,4 +5,8 @@
import { HttpAgent } from "@ag-ui/client";
-export class AgnoAgent extends HttpAgent {}
+export class AgnoAgent extends HttpAgent {
+ public override get maxVersion(): string {
+ return "0.0.39";
+ }
+}
diff --git a/integrations/claude-agent-sdk/python/.env.local.example b/integrations/claude-agent-sdk/python/.env.local.example
new file mode 100644
index 000000000..e925bb858
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/.env.local.example
@@ -0,0 +1,10 @@
+# Claude Agent SDK Integration - Environment Variables
+# Copy this file to .env.local and fill in your actual values
+
+# Anthropic API Key (required for real API tests)
+# Get your API key from: https://console.anthropic.com/
+# ANTHROPIC_API_KEY=your-anthropic-api-key-here
+
+# Optional for third party service
+# ANTHROPIC_AUTH_TOKEN=third-party-auth-token
+# ANTHROPIC_BASE_URL=third-party-base-url
diff --git a/integrations/claude-agent-sdk/python/.gitignore b/integrations/claude-agent-sdk/python/.gitignore
new file mode 100644
index 000000000..32319dd4a
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/.gitignore
@@ -0,0 +1,31 @@
+# Environment files
+.env
+.env.local
+.env*.local
+
+# Dependencies
+node_modules/
+
+# Build output
+dist/
+build/
+
+# Logs
+logs
+*.log
+npm-debug.log*
+pnpm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# OS
+.DS_Store
+Thumbs.db
+
+# IDE
+.vscode/
+.idea/
+*.swp
+*.swo
+*~
+
diff --git a/integrations/claude-agent-sdk/python/ARCHITECTURE.md b/integrations/claude-agent-sdk/python/ARCHITECTURE.md
new file mode 100644
index 000000000..1281ee31e
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/ARCHITECTURE.md
@@ -0,0 +1,113 @@
+# Claude Agent SDK Integration Architecture
+
+This document describes the architecture and design of the Claude Agent SDK integration that bridges Claude agents with the AG-UI Protocol.
+
+## High-Level Architecture
+
+```
+AG-UI Protocol Claude Middleware Claude Agent SDK
+ │ │ │
+RunAgentInput ──────> ClaudeAgent.run() ──────> SDK Client/Query
+ │ │ │
+ │ EventTranslator │
+ │ │ │
+BaseEvent[] <──────── translate events <──────── Response[]
+```
+
+## Core Components
+
+### ClaudeAgent (`claude_agent.py`)
+The main orchestrator that:
+- Manages agent lifecycle and session state
+- Handles the bridge between AG-UI Protocol and Claude SDK
+- Coordinates tool execution
+- Supports both persistent sessions and stateless query mode
+
+### EventTranslator (`event_translator.py`)
+Converts between event formats:
+- Claude SDK responses → AG-UI protocol events (16 standard event types)
+- Maintains proper message boundaries
+- Handles streaming text content
+- Per-execution instances for thread safety
+
+### SessionManager (`session_manager.py`)
+Singleton pattern for centralized session control:
+- Automatic session cleanup with configurable timeouts
+- Session isolation per user
+- Message tracking to avoid duplicates
+- State management
+
+### ToolAdapter (`tool_adapter.py`)
+Tool format conversion:
+- AG-UI Tool → Claude SDK tool format
+- Tool call extraction and parsing
+- Long-running tool detection
+
+### ExecutionState (`execution_state.py`)
+Tracks background Claude executions:
+- Manages asyncio tasks running Claude SDK calls
+- Event queue for streaming results
+- Execution timing and completion tracking
+- Tool call state management
+
+## Event Flow
+
+1. **Client Request**: AG-UI Protocol `RunAgentInput` received
+2. **Session Resolution**: SessionManager finds or creates session
+3. **Message Processing**: Unseen messages identified and processed
+4. **Agent Execution**: Claude SDK called with messages and tools
+5. **Event Translation**: Claude responses converted to AG-UI events
+6. **Streaming Response**: Events streamed back via SSE or other transport
+
+## Key Design Patterns
+
+### Session Management
+- **Persistent Mode**: Uses ClaudeSDKClient for session continuity
+- **Stateless Mode**: Uses query() method with manual context management
+
+### Tool Handling
+- **Client Tools**: Long-running tools executed on frontend
+- **Backend Tools**: Synchronous tools executed on backend
+- **Tool Results**: Handled through message routing
+
+### Event Streaming
+- Background execution with event queue
+- Non-blocking async/await throughout
+- Proper cleanup on errors or timeouts
+
+## Thread Safety
+
+- Per-execution EventTranslator instances
+- Singleton SessionManager with proper locking
+- Isolated execution states per thread
+- Thread-safe event queues
+
+## Error Handling
+
+- RunErrorEvent for various failure scenarios
+- Proper async exception handling
+- Resource cleanup on errors
+- Timeout management at multiple levels
+
+## Performance Considerations
+
+- Async/await throughout for non-blocking operations
+- Event streaming for real-time responses
+- Configurable concurrent execution limits
+- Automatic stale execution cleanup
+- Efficient event queue management
+
+## Implementation Notes
+
+✅ **Implementation Complete**: The implementation has been updated based on the actual [Claude Agent SDK API](https://docs.claude.com/zh-CN/api/agent-sdk/python#claudesdkclient).
+
+Key implementation details:
+
+1. **SDK Initialization**: ✅ Implemented `_get_claude_client()` with `ClaudeSDKClient` and `query()` support
+2. **Message Format**: ✅ Implemented prompt extraction (`_extract_user_prompt()`) for Claude SDK string-based API
+3. **Response Handling**: ✅ Implemented `_call_claude_sdk()` supporting both persistent and stateless modes
+4. **Tool Format**: ✅ Implemented `ToolAdapter` with `SdkMcpTool` and `create_sdk_mcp_server()`
+5. **Event Translation**: ✅ Implemented `EventTranslator` handling `Message`, `AssistantMessage`, `TextBlock`, `ToolUseBlock`, `ToolResultBlock`
+
+The implementation follows the actual Claude Agent SDK patterns and should work with the real SDK. Some fine-tuning may be needed based on real-world testing.
+
diff --git a/integrations/claude-agent-sdk/python/README.md b/integrations/claude-agent-sdk/python/README.md
new file mode 100644
index 000000000..38f38e0cf
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/README.md
@@ -0,0 +1,388 @@
+# Claude Agent SDK Middleware for AG-UI Protocol
+
+This Python middleware enables [Anthropic Claude Agent SDK](https://docs.claude.com/api/agent-sdk/python) agents to be used with the AG-UI Protocol, providing a bridge between the two frameworks.
+
+## Prerequisites
+
+- Python 3.9 or higher
+- An [Anthropic API Key](https://console.anthropic.com/). The examples assume that this is exported via the `ANTHROPIC_API_KEY` environment variable.
+
+## Quick Start
+
+To use this integration you need to:
+
+1. Clone the [AG-UI repository](https://github.com/ag-ui-protocol/ag-ui).
+
+ ```bash
+ git clone https://github.com/ag-ui-protocol/ag-ui.git
+ ```
+
+2. Change to the `integrations/claude-agent-sdk/python` directory.
+
+ ```bash
+ cd integrations/claude-agent-sdk/python
+ ```
+
+3. Install the `claude-agent-sdk` middleware package from the local directory. For example,
+
+ ```bash
+ pip install .
+ ```
+
+ or
+
+ ```bash
+ uv pip install .
+ ```
+
+ This installs the package from the current directory which contains:
+ - `src/ag_ui_claude/` - The middleware source code
+ - `examples/` - Example servers and agents
+ - `tests/` - Test suite
+
+4. Set your Anthropic API key:
+
+ ```bash
+ export ANTHROPIC_API_KEY=your-api-key-here
+ ```
+
+5. Run the example FastAPI server:
+
+ ```bash
+ cd examples/server
+ python fastapi_server.py
+ ```
+
+ Or use uvicorn directly:
+
+ ```bash
+ uvicorn examples.server.fastapi_server:app --host 0.0.0.0 --port 8000
+ ```
+
+### Development Setup
+
+If you want to contribute to Claude Agent SDK Middleware development, you can use the following setup:
+
+```bash
+# From the claude-agent-sdk/python directory
+# Create virtual environment
+python -m venv venv
+source venv/bin/activate # On Windows: venv\Scripts\activate
+
+# Install this package in editable mode
+pip install -e .
+
+# For development (includes testing and linting tools)
+pip install -e ".[dev]"
+```
+
+This installs the Claude Agent SDK middleware in editable mode for development.
+
+## Testing
+
+### Environment Configuration
+
+For tests that require API access (like `test_real_api.py`), you can configure authentication credentials using a `.env.local` file:
+
+1. Copy the example file:
+ ```bash
+ cp .env.local.example .env.local
+ ```
+
+2. Edit `.env.local` and add your authentication credentials:
+
+ **Option 1: Using AUTH_TOKEN and BASE_URL (recommended)**
+ ```bash
+ ANTHROPIC_AUTH_TOKEN=your-auth-token-here
+ ANTHROPIC_BASE_URL=https://api.anthropic.com
+ ```
+
+ **Option 2: Using API Key (fallback)**
+ ```bash
+ ANTHROPIC_API_KEY=your-api-key-here
+ ```
+
+3. The `.env.local` file will be automatically loaded when running tests (via `python-dotenv`).
+
+**Note**: `.env.local` is gitignored and should not be committed. The `.env.local.example` file serves as a template.
+
+Alternatively, you can set the environment variables directly:
+```bash
+# Option 1: AUTH_TOKEN and BASE_URL
+export ANTHROPIC_AUTH_TOKEN=your-auth-token-here
+export ANTHROPIC_BASE_URL=https://api.anthropic.com
+
+# Option 2: API Key
+export ANTHROPIC_API_KEY=your-api-key-here
+```
+
+### Running Tests
+
+```bash
+# Run tests (72 comprehensive tests)
+pytest
+
+# With coverage
+pytest --cov=src/ag_ui_claude
+
+# Specific test file
+pytest tests/test_claude_agent.py
+
+# Run only real API tests (requires ANTHROPIC_API_KEY)
+pytest tests/test_real_api.py -m integration
+```
+
+## Usage Options
+
+### Option 1: Direct Usage
+
+```python
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage
+from claude_agent_sdk import ClaudeAgentOptions
+
+# 1. Create the middleware agent
+agent = ClaudeAgent(
+ use_persistent_sessions=True, # Use ClaudeSDKClient for multi-turn conversations
+ app_name="my_app",
+ user_id="user123",
+ claude_options=ClaudeAgentOptions(
+ system_prompt="You are a helpful assistant",
+ permission_mode='acceptEdits'
+ )
+)
+
+# 2. Use directly with AG-UI RunAgentInput
+input_data = RunAgentInput(
+ thread_id="thread_001",
+ run_id="run_001",
+ messages=[
+ UserMessage(id="1", role="user", content="Hello!")
+ ],
+ context=[],
+ state={},
+ tools=[], # AG-UI tools will be converted to Claude SDK tools
+ forwarded_props={}
+)
+
+async for event in agent.run(input_data):
+ print(f"Event: {event.type}")
+ if hasattr(event, 'delta'):
+ print(f"Content: {event.delta}")
+```
+
+### Option 2: FastAPI Server
+
+```python
+from fastapi import FastAPI
+from ag_ui_claude import ClaudeAgent, add_claude_fastapi_endpoint
+from claude_agent_sdk import ClaudeAgentOptions
+
+# 1. Create the middleware agent
+agent = ClaudeAgent(
+ use_persistent_sessions=True,
+ app_name="my_app",
+ claude_options=ClaudeAgentOptions(
+ system_prompt="You are a helpful assistant",
+ permission_mode='acceptEdits'
+ )
+)
+
+# 2. Create FastAPI app
+app = FastAPI()
+add_claude_fastapi_endpoint(app, agent, path="/chat")
+
+# Run with: uvicorn your_module:app --host 0.0.0.0 --port 8000
+```
+
+**Note**: The Claude Agent SDK uses the `ANTHROPIC_API_KEY` environment variable by default. Set it before running:
+
+```bash
+export ANTHROPIC_API_KEY=your-api-key-here
+```
+
+For detailed configuration options, see [CONFIGURATION.md](./CONFIGURATION.md)
+
+## Examples
+
+### Simple Conversation
+
+```python
+import asyncio
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage
+from claude_agent_sdk import ClaudeAgentOptions
+
+async def main():
+ # Setup
+ agent = ClaudeAgent(
+ use_persistent_sessions=True,
+ app_name="demo_app",
+ user_id="demo",
+ claude_options=ClaudeAgentOptions(
+ system_prompt="You are a helpful assistant."
+ )
+ )
+
+ # Create input
+ input = RunAgentInput(
+ thread_id="thread_001",
+ run_id="run_001",
+ messages=[
+ UserMessage(id="1", role="user", content="Hello!")
+ ],
+ context=[],
+ state={},
+ tools=[],
+ forwarded_props={}
+ )
+
+ # Run and handle events
+ async for event in agent.run(input):
+ print(f"Event: {event.type}")
+ if hasattr(event, 'delta'):
+ print(f"Content: {event.delta}")
+
+asyncio.run(main())
+```
+
+### With Tools
+
+```python
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage, Tool, EventType
+
+# Define a tool
+weather_tool = Tool(
+ name="get_current_weather",
+ description="Get the current weather in a given location",
+ parameters={
+ "type": "object",
+ "properties": {
+ "location": {"type": "string", "description": "The city and state"},
+ "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
+ },
+ "required": ["location"]
+ }
+)
+
+agent = ClaudeAgent(
+ use_persistent_sessions=True,
+ app_name="my_app"
+)
+
+input_data = RunAgentInput(
+ thread_id="thread_001",
+ run_id="run_001",
+ messages=[
+ UserMessage(id="1", role="user", content="What's the weather in London?")
+ ],
+ tools=[weather_tool], # Tools are automatically converted to Claude SDK format
+ state={},
+ context=[],
+ forwarded_props={}
+)
+
+async for event in agent.run(input_data):
+ if event.type == EventType.TOOL_CALL_START:
+ print(f"Tool call: {event.tool_call_name}")
+ elif event.type == EventType.TEXT_MESSAGE_CONTENT:
+ print(f"Response: {event.delta}")
+```
+
+### Stateless Mode
+
+```python
+from ag_ui_claude import ClaudeAgent
+
+# Use stateless mode for simple one-off queries
+agent = ClaudeAgent(
+ use_persistent_sessions=False, # Uses query() function
+ app_name="stateless_app"
+)
+
+# Each query is independent, no conversation history
+async for event in agent.run(input_data):
+ print(f"Event: {event.type}")
+```
+
+## Tool Support
+
+The middleware provides complete bidirectional tool support, enabling AG-UI Protocol tools to execute within Claude Agent SDK agents. All tools supplied by the client are currently implemented as long-running tools that emit events to the client for execution and can be combined with backend tools provided by the agent to create a hybrid combined toolset.
+
+AG-UI tools are automatically converted to Claude SDK `SdkMcpTool` format and exposed via MCP servers. When Claude requests a tool, the middleware emits AG-UI `ToolCall` events for client-side execution. Tool results from the client are then formatted and sent back to Claude in subsequent requests.
+
+## Configuration
+
+### ClaudeAgent Parameters
+
+- `api_key`: Claude API key (optional, defaults to `ANTHROPIC_API_KEY` env var)
+- `use_persistent_sessions`: Use `ClaudeSDKClient` for persistent sessions (True) or `query()` for stateless mode (False)
+- `app_name`: Static application name for all requests
+- `user_id`: Static user ID for all requests
+- `claude_options`: `ClaudeAgentOptions` instance for SDK configuration
+- `execution_timeout_seconds`: Timeout for entire execution (default: 600)
+- `max_concurrent_executions`: Maximum concurrent executions (default: 10)
+- `session_timeout_seconds`: Session timeout in seconds (default: 1200)
+- `cleanup_interval_seconds`: Session cleanup interval (default: 300)
+
+**ClaudeAgentOptions** supports many configuration options:
+- `system_prompt`: System prompt for the agent
+- `permission_mode`: Permission mode ('acceptEdits', 'promptEdits', etc.)
+- `allowed_tools`: List of allowed tool names
+- `mcp_servers`: MCP server configurations
+- `cwd`: Working directory for file operations
+- `max_tokens`: Maximum tokens for responses
+- `temperature`: Temperature for response generation
+- And more - see [Claude Agent SDK documentation](https://docs.claude.com/api/agent-sdk/python)
+
+See [CONFIGURATION.md](./CONFIGURATION.md) for detailed configuration options.
+
+## Features
+
+- **Event Streaming**: Real-time streaming of agent responses via Server-Sent Events (SSE)
+- **Tool Support**: Both client-side and backend tool execution via MCP servers
+- **Session Management**: Automatic session cleanup and state management
+- **Message Tracking**: Avoids duplicate message processing
+- **Error Handling**: Comprehensive error handling and reporting
+- **Persistent Sessions**: Support for multi-turn conversations via `ClaudeSDKClient`
+- **Stateless Mode**: Support for one-off queries via `query()` function
+
+## Implementation Status
+
+✅ **Core Implementation Complete**: The integration has been updated based on the [Claude Agent SDK documentation](https://docs.claude.com/api/agent-sdk/python#claudesdkclient).
+
+Key features implemented:
+- ✅ `ClaudeSDKClient` integration for persistent sessions
+- ✅ `query()` function support for stateless mode
+- ✅ Message translation (`AssistantMessage`, `TextBlock`, `ToolUseBlock`, `ToolResultBlock`)
+- ✅ Tool support via MCP servers (`SdkMcpTool`, `create_sdk_mcp_server`)
+- ✅ Streaming response handling
+- ✅ Session management with automatic cleanup
+- ✅ Comprehensive test suite (72 tests, 65% pass rate)
+
+The implementation follows the actual Claude Agent SDK API patterns. Some areas may need fine-tuning based on real-world usage:
+- Tool execution flow (client vs backend tools)
+- Message history handling in persistent sessions
+- Error handling for specific SDK error types
+
+## Architecture
+
+See [ARCHITECTURE.md](./ARCHITECTURE.md) for detailed architecture documentation.
+
+## Additional Documentation
+
+- **[USAGE_GUIDE.md](./USAGE_GUIDE.md)** - Complete usage guide: how to start and test the agent
+- **[CONFIGURATION.md](./CONFIGURATION.md)** - Complete configuration guide
+- **[ARCHITECTURE.md](./ARCHITECTURE.md)** - Technical architecture and design details
+- **[IMPLEMENTATION_STATUS.md](../IMPLEMENTATION_STATUS.md)** - Current implementation status and test results
+- **[IMPLEMENTATION_PLAN.md](../IMPLEMENTATION_PLAN.md)** - Implementation plan and roadmap
+
+## Contributing
+
+Contributions are welcome! Please refer to the main AG-UI contributing guidelines.
+
+## License
+
+MIT License - see LICENSE file for details.
+
diff --git a/integrations/claude-agent-sdk/python/examples/README.md b/integrations/claude-agent-sdk/python/examples/README.md
new file mode 100644
index 000000000..5c7b2c99b
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/examples/README.md
@@ -0,0 +1,45 @@
+# Claude Agent SDK Integration Examples
+
+This directory contains example implementations of the Claude Agent SDK integration with AG-UI Protocol.
+
+## Quick Start
+
+1. Install dependencies:
+```bash
+cd examples
+pip install -r requirements.txt
+# Or using uv:
+uv pip install -r requirements.txt
+```
+
+2. Set your Anthropic API key:
+```bash
+export ANTHROPIC_API_KEY=your-api-key-here
+```
+
+3. Run the example server:
+```bash
+python server/fastapi_server.py
+# Or using uv:
+uv run server/fastapi_server.py
+```
+
+4. The server will be available at `http://localhost:8000/chat`
+
+## Example Usage
+
+The example server demonstrates:
+- Basic Claude Agent configuration
+- FastAPI server setup
+- AG-UI Protocol endpoint integration
+
+## Notes
+
+This implementation is a template based on common patterns. You may need to adjust:
+- Claude SDK client initialization
+- Message format conversion
+- Tool handling
+- Session management
+
+Refer to the Claude Agent SDK documentation for actual API details.
+
diff --git a/integrations/claude-agent-sdk/python/examples/pyproject.toml b/integrations/claude-agent-sdk/python/examples/pyproject.toml
new file mode 100644
index 000000000..5f8dbf538
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/examples/pyproject.toml
@@ -0,0 +1,11 @@
+[project]
+name = "claude-agent-sdk-examples"
+version = "0.1.0"
+requires-python = ">=3.9"
+
+dependencies = [
+ "ag-ui-claude",
+ "fastapi>=0.115.2",
+ "uvicorn>=0.35.0",
+]
+
diff --git a/integrations/claude-agent-sdk/python/examples/server/fastapi_server.py b/integrations/claude-agent-sdk/python/examples/server/fastapi_server.py
new file mode 100644
index 000000000..8c022a1cf
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/examples/server/fastapi_server.py
@@ -0,0 +1,97 @@
+"""Example FastAPI server for Claude Agent SDK integration."""
+
+import os
+from pathlib import Path
+from fastapi import FastAPI
+from ag_ui_claude import ClaudeAgent, add_claude_fastapi_endpoint
+
+# Load environment variables from .env.local if it exists
+try:
+ from dotenv import load_dotenv
+ env_path = Path(__file__).parent.parent.parent / ".env.local"
+ if env_path.exists():
+ load_dotenv(env_path)
+ print(f"✅ Loaded environment variables from {env_path}")
+except ImportError:
+ # python-dotenv not installed, skip
+ pass
+
+# Claude Agent SDK will use ANTHROPIC_API_KEY from environment if not provided
+# No need to explicitly pass api_key unless you want to override
+
+# IMPORTANT: Claude Agent SDK requires @anthropic-ai/claude-code CLI tool to be installed.
+# Install it with: npm install -g @anthropic-ai/claude-code
+# Or set the path via ClaudeAgentOptions(cli_path='/path/to/claude')
+
+# Try to find claude CLI path automatically
+import shutil
+import os
+
+# Try multiple ways to find claude CLI
+claude_path = shutil.which('claude')
+if not claude_path or not os.path.exists(claude_path):
+ # Try common locations
+ home_dir = os.path.expanduser('~')
+ possible_paths = [
+ os.path.join(home_dir, '.claude', 'local', 'claude'),
+ os.path.join(home_dir, 'node_modules', '.bin', 'claude'),
+ '/usr/local/bin/claude',
+ '/opt/homebrew/bin/claude', # macOS Homebrew
+ ]
+ for path in possible_paths:
+ if os.path.exists(path):
+ claude_path = path
+ break
+
+# Log detected CLI path for debugging
+if claude_path and os.path.exists(claude_path):
+ print(f"✅ Detected Claude CLI at: {claude_path}")
+else:
+ print("⚠️ Claude CLI not found. Please install with: npm install -g @anthropic-ai/claude-code")
+
+from claude_agent_sdk import ClaudeAgentOptions
+
+# Example 1: Using persistent sessions (ClaudeSDKClient) - RECOMMENDED
+# Supports multi-turn conversations, interrupts, hooks, custom tools, etc.
+# See: https://docs.claude.com/api/agent-sdk/python#choosing-between-query-and-claudesdkclient
+agent = ClaudeAgent(
+ use_persistent_sessions=True, # Use ClaudeSDKClient for full features
+ app_name="example_app",
+ claude_options=ClaudeAgentOptions(
+ system_prompt="You are a helpful assistant",
+ permission_mode='acceptEdits',
+ cli_path=claude_path if claude_path and os.path.exists(claude_path) else None # Auto-detect CLI path
+ )
+)
+
+# Example 2: Using stateless mode (query()) - limited features
+# Only supports single-turn conversations, no hooks, interrupts, or custom tools
+# agent = ClaudeAgent(
+# use_persistent_sessions=False,
+# app_name="example_app",
+# claude_options=ClaudeAgentOptions(
+# system_prompt="You are a helpful assistant",
+# cli_path=claude_path if claude_path and os.path.exists(claude_path) else None
+# )
+# )
+
+# Create FastAPI app
+app = FastAPI(title="Claude Agent SDK Example")
+
+# Add CORS middleware for CopilotKit integration
+from fastapi.middleware.cors import CORSMiddleware
+app.add_middleware(
+ CORSMiddleware,
+ allow_origins=["http://localhost:3000", "http://localhost:3001"], # Add your frontend URLs
+ allow_credentials=True,
+ allow_methods=["*"],
+ allow_headers=["*"],
+)
+
+# Add AG-UI endpoint
+add_claude_fastapi_endpoint(app, agent, path="/chat")
+
+if __name__ == "__main__":
+ import uvicorn
+ uvicorn.run(app, host="0.0.0.0", port=8000)
+
diff --git a/integrations/claude-agent-sdk/python/examples/test_client.py b/integrations/claude-agent-sdk/python/examples/test_client.py
new file mode 100644
index 000000000..9940b8648
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/examples/test_client.py
@@ -0,0 +1,217 @@
+#!/usr/bin/env python3
+"""Simple test script for Claude Agent SDK integration."""
+
+import asyncio
+import aiohttp
+import json
+import sys
+import os
+
+# Check environment variables
+if not os.getenv("ANTHROPIC_API_KEY") and not os.getenv("ANTHROPIC_AUTH_TOKEN"):
+ print("❌ Error: Please set ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN environment variable")
+ print("\nExample:")
+ print(" export ANTHROPIC_API_KEY=your-api-key-here")
+ sys.exit(1)
+
+SERVER_URL = os.getenv("AG_UI_SERVER_URL", "http://localhost:8000/chat")
+
+
+async def test_basic_conversation():
+ """Test basic conversation functionality"""
+ print(f"📡 Connecting to server: {SERVER_URL}")
+ print("=" * 60)
+
+ url = SERVER_URL
+
+ payload = {
+ "threadId": "test-thread-1",
+ "runId": "test-run-1",
+ "messages": [
+ {
+ "id": "msg-1",
+ "role": "user",
+ "content": "Hello! Can you introduce yourself in one sentence?"
+ }
+ ],
+ "tools": [],
+ "context": [],
+ "state": {},
+ "forwardedProps": {}
+ }
+
+ try:
+ async with aiohttp.ClientSession() as session:
+ async with session.post(url, json=payload) as response:
+ if response.status != 200:
+ print(f"❌ Error: HTTP {response.status}")
+ text = await response.text()
+ print(f"Response: {text}")
+ return
+
+ print("✅ Connection successful! Waiting for response...\n")
+ print("🤖 Assistant: ", end="", flush=True)
+
+ # Read SSE stream
+ buffer = ""
+ async for chunk in response.content.iter_chunked(1024):
+ if chunk:
+ buffer += chunk.decode('utf-8')
+ lines = buffer.split('\n')
+ buffer = lines[-1] # Keep incomplete line
+
+ for line in lines[:-1]:
+ line = line.strip()
+ if line.startswith('data: '):
+ data = line[6:] # Remove 'data: ' prefix
+ try:
+ event = json.loads(data)
+ event_type = event.get('type', 'unknown')
+
+ # Handle text content
+ if 'delta' in event:
+ print(event['delta'], end="", flush=True)
+ elif event_type == 'TEXT_MESSAGE_END':
+ print("\n")
+ elif event_type == 'RUN_FINISHED':
+ print("\n✅ Conversation completed!")
+ elif event_type == 'RUN_ERROR':
+ print(f"\n❌ Error: {event.get('error', 'Unknown error')}")
+
+ except json.JSONDecodeError:
+ pass
+
+ print("\n" + "=" * 60)
+
+ except aiohttp.ClientConnectorError:
+ print(f"❌ Error: Cannot connect to server {SERVER_URL}")
+ print("\nPlease ensure:")
+ print(" 1. Server is running (python examples/server/fastapi_server.py)")
+ print(" 2. Server address is correct")
+ print(" 3. Firewall allows connection")
+ except Exception as e:
+ print(f"❌ Error: {type(e).__name__}: {e}")
+
+
+async def test_interactive_mode():
+ """Interactive test mode"""
+ print(f"📡 Connecting to server: {SERVER_URL}")
+ print("=" * 60)
+ print("💡 Tip: Enter a message and press Enter, type 'quit' to exit")
+ print("=" * 60)
+
+ thread_id = f"interactive-{os.getpid()}"
+ run_counter = 0
+
+ try:
+ while True:
+ user_input = input("\n👤 You: ").strip()
+
+ if not user_input:
+ continue
+
+ if user_input.lower() in ['quit', 'exit', 'q']:
+ print("\n👋 Goodbye!")
+ break
+
+ run_counter += 1
+ url = SERVER_URL
+
+ payload = {
+ "threadId": thread_id,
+ "runId": f"run-{run_counter}",
+ "messages": [
+ {
+ "id": f"msg-{run_counter}",
+ "role": "user",
+ "content": user_input
+ }
+ ],
+ "tools": [],
+ "context": [],
+ "state": {},
+ "forwardedProps": {}
+ }
+
+ async with aiohttp.ClientSession() as session:
+ async with session.post(url, json=payload) as response:
+ if response.status != 200:
+ print(f"❌ Error: HTTP {response.status}")
+ continue
+
+ print("🤖 Assistant: ", end="", flush=True)
+
+ buffer = ""
+ async for chunk in response.content.iter_chunked(1024):
+ if chunk:
+ buffer += chunk.decode('utf-8')
+ lines = buffer.split('\n')
+ buffer = lines[-1]
+
+ for line in lines[:-1]:
+ line = line.strip()
+ if line.startswith('data: '):
+ data = line[6:]
+ try:
+ event = json.loads(data)
+ if 'delta' in event:
+ print(event['delta'], end="", flush=True)
+ elif event.get('type') == 'RUN_ERROR':
+ print(f"\n❌ Error: {event.get('error', 'Unknown error')}")
+ break
+ except json.JSONDecodeError:
+ pass
+
+ print() # New line
+
+ except KeyboardInterrupt:
+ print("\n\n👋 Goodbye!")
+ except Exception as e:
+ print(f"\n❌ Error: {type(e).__name__}: {e}")
+
+
+def main():
+ """Main function"""
+ import argparse
+
+ parser = argparse.ArgumentParser(
+ description="Test Claude Agent SDK integration",
+ formatter_class=argparse.RawDescriptionHelpFormatter,
+ epilog="""
+Examples:
+ # Basic test
+ python test_client.py
+
+ # Interactive mode
+ python test_client.py --interactive
+
+ # Custom server address
+ python test_client.py --server http://localhost:8001/chat
+ """
+ )
+
+ parser.add_argument(
+ '-i', '--interactive',
+ action='store_true',
+ help='Enable interactive mode'
+ )
+
+ parser.add_argument(
+ '-s', '--server',
+ default=SERVER_URL,
+ help=f'Server address (default: {SERVER_URL})'
+ )
+
+ args = parser.parse_args()
+
+ global SERVER_URL
+ SERVER_URL = args.server
+
+ if args.interactive:
+ asyncio.run(test_interactive_mode())
+ else:
+ asyncio.run(test_basic_conversation())
+
+
+if __name__ == "__main__":
+ main()
diff --git a/integrations/claude-agent-sdk/python/pyproject.toml b/integrations/claude-agent-sdk/python/pyproject.toml
new file mode 100644
index 000000000..1a9e4f4c5
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/pyproject.toml
@@ -0,0 +1,33 @@
+[project]
+name = "ag_ui_claude"
+version = "0.1.0"
+readme = "README.md"
+authors = [
+ { name = "AG-UI Contributors" }
+]
+requires-python = ">=3.9, <3.14"
+dependencies = [
+ "ag-ui-protocol>=0.1.7",
+ "claude-agent-sdk>=0.1.0", # Adjust version based on actual availability
+ "fastapi>=0.115.2",
+ "pydantic>=2.11.7",
+ "uvicorn>=0.35.0",
+]
+
+[build-system]
+requires = ["uv_build>=0.8.0,<0.9"]
+build-backend = "uv_build"
+
+[dependency-groups]
+dev = [
+ "black>=25.1.0",
+ "flake8>=7.3.0",
+ "isort>=6.0.1",
+ "mypy>=1.16.1",
+ "pluggy>=1.6.0",
+ "pytest>=8.4.1",
+ "pytest-asyncio>=1.0.0",
+ "pytest-cov>=6.2.1",
+ "python-dotenv>=1.0.0",
+]
+
diff --git a/integrations/claude-agent-sdk/python/pytest.ini b/integrations/claude-agent-sdk/python/pytest.ini
new file mode 100644
index 000000000..774833a2b
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/pytest.ini
@@ -0,0 +1,15 @@
+[pytest]
+# Configure pytest for the Claude Agent SDK middleware project
+pythonpath = src
+testpaths = tests
+python_files = test_*.py
+python_classes = Test*
+python_functions = test_*
+asyncio_mode = auto
+addopts = --tb=short -v
+filterwarnings =
+ ignore::UserWarning
+ ignore::DeprecationWarning
+# Exclude optional real API tests if API key is not available
+norecursedirs = .git __pycache__ .pytest_cache
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__init__.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__init__.py
new file mode 100644
index 000000000..0e61a9c87
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__init__.py
@@ -0,0 +1,19 @@
+"""Claude Agent SDK integration for AG-UI Protocol."""
+
+from __future__ import annotations
+
+from .claude_agent import ClaudeAgent
+from .event_translator import EventTranslator
+from .session_manager import SessionManager
+from .endpoint import add_claude_fastapi_endpoint, create_claude_app
+
+__all__ = [
+ 'ClaudeAgent',
+ 'add_claude_fastapi_endpoint',
+ 'create_claude_app',
+ 'EventTranslator',
+ 'SessionManager'
+]
+
+__version__ = "0.1.0"
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/__init__.cpython-311.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 000000000..058e2f3eb
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/__init__.cpython-311.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/__init__.cpython-312.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/__init__.cpython-312.pyc
new file mode 100644
index 000000000..aa7523879
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/__init__.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/claude_agent.cpython-311.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/claude_agent.cpython-311.pyc
new file mode 100644
index 000000000..02246a3b3
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/claude_agent.cpython-311.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/claude_agent.cpython-312.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/claude_agent.cpython-312.pyc
new file mode 100644
index 000000000..578b65939
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/claude_agent.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/endpoint.cpython-311.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/endpoint.cpython-311.pyc
new file mode 100644
index 000000000..c158975a5
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/endpoint.cpython-311.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/endpoint.cpython-312.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/endpoint.cpython-312.pyc
new file mode 100644
index 000000000..59a94d2c7
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/endpoint.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/event_translator.cpython-311.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/event_translator.cpython-311.pyc
new file mode 100644
index 000000000..4423fb9a6
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/event_translator.cpython-311.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/event_translator.cpython-312.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/event_translator.cpython-312.pyc
new file mode 100644
index 000000000..35008d6af
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/event_translator.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/execution_state.cpython-311.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/execution_state.cpython-311.pyc
new file mode 100644
index 000000000..249f9e4ca
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/execution_state.cpython-311.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/execution_state.cpython-312.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/execution_state.cpython-312.pyc
new file mode 100644
index 000000000..ff0b459c9
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/execution_state.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/session_manager.cpython-311.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/session_manager.cpython-311.pyc
new file mode 100644
index 000000000..b7033eca3
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/session_manager.cpython-311.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/session_manager.cpython-312.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/session_manager.cpython-312.pyc
new file mode 100644
index 000000000..316bffd58
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/session_manager.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/tool_adapter.cpython-311.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/tool_adapter.cpython-311.pyc
new file mode 100644
index 000000000..42c3ec1bd
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/tool_adapter.cpython-311.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/tool_adapter.cpython-312.pyc b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/tool_adapter.cpython-312.pyc
new file mode 100644
index 000000000..ae1a4f073
Binary files /dev/null and b/integrations/claude-agent-sdk/python/src/ag_ui_claude/__pycache__/tool_adapter.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/claude_agent.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/claude_agent.py
new file mode 100644
index 000000000..9958acbc3
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/claude_agent.py
@@ -0,0 +1,906 @@
+"""Main ClaudeAgent implementation for bridging AG-UI Protocol with Claude Agent SDK."""
+
+from typing import Optional, Dict, Callable, Any, AsyncGenerator, List
+import asyncio
+import json
+import logging
+import time
+
+try:
+ from ag_ui.core import (
+ RunAgentInput, BaseEvent, EventType,
+ RunStartedEvent, RunFinishedEvent, RunErrorEvent,
+ ToolCallEndEvent, SystemMessage, ToolCallResultEvent
+ )
+except ImportError:
+ # Type checking fallback - actual dependency will be available at runtime
+ pass
+
+# Claude Agent SDK imports
+try:
+ from claude_agent_sdk import (
+ ClaudeSDKClient,
+ ClaudeAgentOptions,
+ query as claude_query,
+ Message,
+ AssistantMessage,
+ UserMessage as ClaudeUserMessage,
+ SystemMessage as ClaudeSystemMessage,
+ ResultMessage,
+ TextBlock,
+ ToolUseBlock,
+ ToolResultBlock,
+ ThinkingBlock,
+ )
+except ImportError:
+ # Type checking fallback - actual dependency will be available at runtime
+ ClaudeSDKClient = None
+ ClaudeAgentOptions = None
+ claude_query = None
+
+from .event_translator import EventTranslator
+from .session_manager import SessionManager
+from .execution_state import ExecutionState
+
+logger = logging.getLogger(__name__)
+
+
+class ClaudeAgent:
+ """Middleware to bridge AG-UI Protocol with Claude Agent SDK.
+
+ This agent translates between the AG-UI protocol events and Claude SDK responses,
+ managing sessions, state, and the lifecycle of Claude agents.
+
+ Note: This implementation is a template based on common patterns.
+ Adjust based on actual Claude Agent SDK API documentation.
+ """
+
+ def __init__(
+ self,
+ # Claude SDK configuration
+ api_key: Optional[str] = None,
+ use_persistent_sessions: bool = True, # Use ClaudeSDKClient vs query() mode
+
+ # App identification
+ app_name: Optional[str] = None,
+ session_timeout_seconds: Optional[int] = 1200,
+ app_name_extractor: Optional[Callable[[RunAgentInput], str]] = None,
+
+ # User identification
+ user_id: Optional[str] = None,
+ user_id_extractor: Optional[Callable[[RunAgentInput], str]] = None,
+
+ # Configuration
+ execution_timeout_seconds: int = 600, # 10 minutes
+ tool_timeout_seconds: int = 300, # 5 minutes
+ max_concurrent_executions: int = 10,
+
+ # Session cleanup configuration
+ cleanup_interval_seconds: int = 300, # 5 minutes default
+
+ # Claude Agent SDK options
+ claude_options: Optional[Any] = None, # ClaudeAgentOptions instance
+ **claude_kwargs # Additional options for ClaudeAgentOptions
+ ):
+ """Initialize the ClaudeAgent.
+
+ Args:
+ api_key: Claude API key (if None, Claude SDK will use ANTHROPIC_API_KEY env var)
+ use_persistent_sessions: Use ClaudeSDKClient for persistent sessions, or query() for stateless
+ app_name: Static application name for all requests
+ app_name_extractor: Function to extract app name dynamically from input
+ user_id: Static user ID for all requests
+ user_id_extractor: Function to extract user ID dynamically from input
+ execution_timeout_seconds: Timeout for entire execution
+ tool_timeout_seconds: Timeout for individual tool calls
+ max_concurrent_executions: Maximum concurrent background executions
+ cleanup_interval_seconds: Interval between session cleanup cycles
+ claude_options: ClaudeAgentOptions instance (if None, will create from kwargs)
+ **claude_kwargs: Additional options for ClaudeAgentOptions (if claude_options is None)
+ """
+ if app_name and app_name_extractor:
+ raise ValueError("Cannot specify both 'app_name' and 'app_name_extractor'")
+
+ if user_id and user_id_extractor:
+ raise ValueError("Cannot specify both 'user_id' and 'user_id_extractor'")
+
+ # Claude SDK client configuration
+ self._api_key = api_key
+ self._use_persistent_sessions = use_persistent_sessions
+
+ # Create ClaudeAgentOptions if not provided
+ if claude_options is None:
+ if ClaudeAgentOptions:
+ self._claude_options = ClaudeAgentOptions(**claude_kwargs)
+ else:
+ self._claude_options = None
+ logger.warning("ClaudeAgentOptions not available - install claude-agent-sdk")
+ else:
+ self._claude_options = claude_options
+
+ # Store tools for dynamic addition per request
+ self._default_tools: List[Any] = []
+
+ # App/user identification
+ self._static_app_name = app_name
+ self._app_name_extractor = app_name_extractor
+ self._static_user_id = user_id
+ self._user_id_extractor = user_id_extractor
+
+ # Session management
+ self._session_manager = SessionManager.get_instance(
+ session_timeout_seconds=session_timeout_seconds,
+ cleanup_interval_seconds=cleanup_interval_seconds,
+ max_sessions_per_user=None,
+ auto_cleanup=True
+ )
+
+ # Execution tracking
+ self._active_executions: Dict[str, ExecutionState] = {}
+ self._execution_timeout = execution_timeout_seconds
+ self._tool_timeout = tool_timeout_seconds
+ self._max_concurrent = max_concurrent_executions
+ self._execution_lock = asyncio.Lock()
+
+ # Session lookup cache
+ self._session_lookup_cache: Dict[str, Dict[str, str]] = {}
+
+ logger.info(
+ f"Initialized ClaudeAgent - "
+ f"persistent_sessions: {use_persistent_sessions}"
+ )
+
+ def _get_app_name(self, input: RunAgentInput) -> str:
+ """Resolve app name with clear precedence."""
+ if self._static_app_name:
+ return self._static_app_name
+ elif self._app_name_extractor:
+ return self._app_name_extractor(input)
+ else:
+ return "claude-agent"
+
+ def _get_user_id(self, input: RunAgentInput) -> str:
+ """Resolve user ID with clear precedence."""
+ if self._static_user_id:
+ return self._static_user_id
+ elif self._user_id_extractor:
+ return self._user_id_extractor(input)
+ else:
+ return f"thread_user_{input.thread_id}"
+
+ async def run(self, input: RunAgentInput) -> AsyncGenerator[BaseEvent, None]:
+ """Run the Claude agent with client-side tool support.
+
+ Args:
+ input: The AG-UI run input
+
+ Yields:
+ AG-UI protocol events
+ """
+ # Get unseen messages
+ unseen_messages = await self._get_unseen_messages(input)
+
+ if not unseen_messages:
+ # No unseen messages - start new execution
+ async for event in self._start_new_execution(input):
+ yield event
+ return
+
+ # Process messages in batches
+ index = 0
+ total_unseen = len(unseen_messages)
+ app_name = self._get_app_name(input)
+
+ while index < total_unseen:
+ current = unseen_messages[index]
+ role = getattr(current, "role", None)
+
+ if role == "tool":
+ # Tool result batch
+ tool_batch: List[Any] = []
+ while index < total_unseen and getattr(unseen_messages[index], "role", None) == "tool":
+ tool_batch.append(unseen_messages[index])
+ index += 1
+
+ async for event in self._handle_tool_result_submission(
+ input,
+ tool_messages=tool_batch
+ ):
+ yield event
+ else:
+ # Regular message batch
+ message_batch: List[Any] = []
+ assistant_message_ids: List[str] = []
+ processed_message_ids: List[str] = []
+
+ while index < total_unseen and getattr(unseen_messages[index], "role", None) != "tool":
+ candidate = unseen_messages[index]
+ candidate_role = getattr(candidate, "role", None)
+
+ message_id = getattr(candidate, "id", None)
+ if message_id:
+ if candidate_role == "assistant":
+ assistant_message_ids.append(message_id)
+ processed_message_ids.append(message_id)
+
+ if candidate_role != "assistant":
+ message_batch.append(candidate)
+
+ index += 1
+
+ # Mark all processed messages (including user messages)
+ if processed_message_ids:
+ self._session_manager.mark_messages_processed(
+ app_name,
+ input.thread_id,
+ set(processed_message_ids)
+ )
+
+ if message_batch:
+ async for event in self._start_new_execution(input, message_batch=message_batch):
+ yield event
+
+ async def _get_unseen_messages(self, input: RunAgentInput) -> List[Any]:
+ """Return messages that have not yet been processed for this session."""
+ if not input.messages:
+ return []
+
+ app_name = self._get_app_name(input)
+ session_id = input.thread_id
+ processed_ids = self._session_manager.get_processed_message_ids(app_name, session_id)
+
+ unseen_reversed: List[Any] = []
+ for message in reversed(input.messages):
+ message_id = getattr(message, "id", None)
+ if message_id and message_id in processed_ids:
+ break
+ unseen_reversed.append(message)
+
+ unseen_reversed.reverse()
+ return unseen_reversed
+
+ async def _is_tool_result_submission(
+ self,
+ input: RunAgentInput,
+ unseen_messages: Optional[List[Any]] = None,
+ ) -> bool:
+ """Check if the current input is a tool result submission.
+
+ Args:
+ input: RunAgentInput to check
+ unseen_messages: Optional pre-computed unseen messages
+
+ Returns:
+ True if this is a tool result submission, False otherwise
+ """
+ unseen_messages = unseen_messages if unseen_messages is not None else await self._get_unseen_messages(input)
+ if not unseen_messages:
+ return False
+ last_message = unseen_messages[-1]
+ # Check if the last message is a ToolMessage
+ return hasattr(last_message, "role") and last_message.role == "tool"
+
+ async def _handle_tool_result_submission(
+ self,
+ input: RunAgentInput,
+ tool_messages: List[Any]
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Handle tool result submission for existing execution."""
+ # Extract tool results
+ tool_results = await self._extract_tool_results(input, tool_messages)
+
+ if not tool_results:
+ logger.error(f"Tool result submission without tool results for thread {input.thread_id}")
+ yield RunErrorEvent(
+ type=EventType.RUN_ERROR,
+ message="No tool results found in submission",
+ code="NO_TOOL_RESULTS"
+ )
+ return
+
+ # Start new execution with tool results
+ async for event in self._start_new_execution(
+ input,
+ tool_results=tool_results,
+ message_batch=tool_messages
+ ):
+ yield event
+
+ async def _extract_tool_results(
+ self,
+ input: RunAgentInput,
+ candidate_messages: List[Any]
+ ) -> List[Dict]:
+ """Extract tool messages with their names from input."""
+ tool_call_map = {}
+ for message in input.messages:
+ if hasattr(message, 'tool_calls') and message.tool_calls:
+ for tool_call in message.tool_calls:
+ tool_call_map[tool_call.id] = tool_call.function.name
+
+ extracted_results: List[Dict] = []
+ for message in candidate_messages:
+ if hasattr(message, 'role') and message.role == "tool":
+ tool_name = tool_call_map.get(getattr(message, 'tool_call_id', None), "unknown")
+ extracted_results.append({
+ 'tool_name': tool_name,
+ 'message': message
+ })
+
+ return extracted_results
+
+ async def _start_new_execution(
+ self,
+ input: RunAgentInput,
+ *,
+ tool_results: Optional[List[Dict]] = None,
+ message_batch: Optional[List[Any]] = None,
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Start a new Claude execution with tool support."""
+ try:
+ # Emit RUN_STARTED
+ yield RunStartedEvent(
+ type=EventType.RUN_STARTED,
+ thread_id=input.thread_id,
+ run_id=input.run_id
+ )
+
+ # Check concurrent execution limit
+ async with self._execution_lock:
+ if len(self._active_executions) >= self._max_concurrent:
+ await self._cleanup_stale_executions()
+ if len(self._active_executions) >= self._max_concurrent:
+ raise RuntimeError(
+ f"Maximum concurrent executions ({self._max_concurrent}) reached"
+ )
+
+ existing_execution = self._active_executions.get(input.thread_id)
+
+ # Wait for existing execution if needed
+ if existing_execution and not existing_execution.is_complete:
+ logger.debug(f"Waiting for existing execution to complete for thread {input.thread_id}")
+ try:
+ await existing_execution.task
+ except Exception as e:
+ logger.debug(f"Previous execution completed with error: {e}")
+
+ # Start background execution
+ execution = await self._start_background_execution(
+ input,
+ tool_results=tool_results,
+ message_batch=message_batch,
+ )
+
+ # Store execution
+ async with self._execution_lock:
+ self._active_executions[input.thread_id] = execution
+
+ # Stream events
+ has_tool_calls = False
+ tool_call_ids = []
+
+ async for event in self._stream_events(execution):
+ if isinstance(event, ToolCallEndEvent):
+ has_tool_calls = True
+ tool_call_ids.append(event.tool_call_id)
+
+ if isinstance(event, ToolCallResultEvent) and event.tool_call_id in tool_call_ids:
+ tool_call_ids.remove(event.tool_call_id)
+
+ yield event
+
+ # Track pending tool calls
+ if has_tool_calls:
+ app_name = self._get_app_name(input)
+ user_id = self._get_user_id(input)
+ for tool_call_id in tool_call_ids:
+ await self._add_pending_tool_call(input.thread_id, tool_call_id, app_name, user_id)
+
+ # Emit RUN_FINISHED
+ yield RunFinishedEvent(
+ type=EventType.RUN_FINISHED,
+ thread_id=input.thread_id,
+ run_id=input.run_id
+ )
+
+ except Exception as e:
+ logger.error(f"Error in new execution: {e}", exc_info=True)
+ yield RunErrorEvent(
+ type=EventType.RUN_ERROR,
+ message=str(e),
+ code="EXECUTION_ERROR"
+ )
+ finally:
+ # Clean up execution
+ async with self._execution_lock:
+ if input.thread_id in self._active_executions:
+ execution = self._active_executions[input.thread_id]
+ execution.is_complete = True
+ has_pending = await self._has_pending_tool_calls(input.thread_id)
+ if not has_pending:
+ del self._active_executions[input.thread_id]
+
+ async def _start_background_execution(
+ self,
+ input: RunAgentInput,
+ *,
+ tool_results: Optional[List[Dict]] = None,
+ message_batch: Optional[List[Any]] = None,
+ ) -> ExecutionState:
+ """Start Claude execution in background with tool support."""
+ event_queue = asyncio.Queue()
+ user_id = self._get_user_id(input)
+ app_name = self._get_app_name(input)
+
+ # Create background task
+ task = asyncio.create_task(
+ self._run_claude_in_background(
+ input=input,
+ user_id=user_id,
+ app_name=app_name,
+ event_queue=event_queue,
+ tool_results=tool_results,
+ message_batch=message_batch,
+ )
+ )
+
+ return ExecutionState(
+ task=task,
+ thread_id=input.thread_id,
+ event_queue=event_queue
+ )
+
+ async def _run_claude_in_background(
+ self,
+ input: RunAgentInput,
+ user_id: str,
+ app_name: str,
+ event_queue: asyncio.Queue,
+ tool_results: Optional[List[Dict]] = None,
+ message_batch: Optional[List[Any]] = None,
+ ):
+ """Run Claude SDK in background, emitting events to queue.
+
+ TODO: Implement based on actual Claude Agent SDK API.
+ This is a template implementation - adjust based on SDK documentation.
+ """
+ event_translator = EventTranslator()
+
+ try:
+ # Ensure session exists
+ await self._session_manager.get_or_create_session(
+ session_id=input.thread_id,
+ app_name=app_name,
+ user_id=user_id,
+ initial_state=input.state
+ )
+
+ # Update session state
+ await self._session_manager.update_session_state(
+ input.thread_id,
+ app_name,
+ user_id,
+ input.state
+ )
+
+ # Get messages to process
+ unseen_messages = message_batch if message_batch is not None else await self._get_unseen_messages(input)
+
+ # Extract user prompt from messages
+ # Claude SDK uses prompt string (for query()) or sends via client.query()
+ user_prompt = await self._extract_user_prompt(unseen_messages, tool_results)
+
+ if not user_prompt:
+ logger.warning("No user prompt found in messages")
+ await event_queue.put(
+ RunErrorEvent(
+ type=EventType.RUN_ERROR,
+ message="No user message found",
+ code="NO_USER_MESSAGE"
+ )
+ )
+ await event_queue.put(None)
+ return
+
+ # Mark messages as processed before executing
+ # Collect all message IDs from unseen messages
+ message_ids_to_mark = []
+ for msg in unseen_messages:
+ msg_id = getattr(msg, "id", None)
+ if msg_id:
+ message_ids_to_mark.append(msg_id)
+
+ if message_ids_to_mark:
+ self._session_manager.mark_messages_processed(
+ app_name,
+ input.thread_id,
+ set(message_ids_to_mark)
+ )
+
+ # Prepare tools for this request
+ request_options = await self._prepare_request_options(input.tools)
+
+ # Get or create Claude client
+ session_key = self._session_manager._make_session_key(app_name, input.thread_id)
+ claude_client = None
+
+ # Try to get persistent client if enabled
+ if self._use_persistent_sessions:
+ try:
+ claude_client = self._get_claude_client(session_key, request_options)
+ except Exception as e:
+ logger.warning(f"Failed to get persistent client, falling back to stateless mode: {e}")
+ claude_client = None
+
+ # Use client if available and connected, otherwise use stateless mode
+ if claude_client and self._use_persistent_sessions:
+ try:
+ # For persistent sessions, try to use client
+ async for claude_message in self._call_claude_sdk(claude_client, user_prompt, request_options):
+ # Translate Claude message to AG-UI events
+ async for ag_ui_event in event_translator.translate_claude_message(
+ claude_message,
+ input.thread_id,
+ input.run_id
+ ):
+ await event_queue.put(ag_ui_event)
+ except Exception as e:
+ # If persistent client fails, fall back to stateless mode
+ logger.warning(f"Persistent client failed ({e}), falling back to stateless mode")
+ async for claude_message in self._call_claude_sdk(None, user_prompt, request_options):
+ async for ag_ui_event in event_translator.translate_claude_message(
+ claude_message,
+ input.thread_id,
+ input.run_id
+ ):
+ await event_queue.put(ag_ui_event)
+ else:
+ # Stateless mode - use query() function directly
+ async for claude_message in self._call_claude_sdk(None, user_prompt, request_options):
+ async for ag_ui_event in event_translator.translate_claude_message(
+ claude_message,
+ input.thread_id,
+ input.run_id
+ ):
+ await event_queue.put(ag_ui_event)
+
+ # Force close any streaming messages
+ async for event in event_translator.force_close_streaming_message():
+ await event_queue.put(event)
+
+ # Send final state snapshot
+ final_state = await self._session_manager.get_session_state(
+ input.thread_id,
+ app_name,
+ user_id
+ )
+ if final_state:
+ # TODO: Create state snapshot event if needed
+ pass
+
+ # Signal completion
+ await event_queue.put(None)
+
+ except Exception as e:
+ logger.error(f"Background execution error: {e}", exc_info=True)
+ await event_queue.put(
+ RunErrorEvent(
+ type=EventType.RUN_ERROR,
+ message=str(e),
+ code="BACKGROUND_EXECUTION_ERROR"
+ )
+ )
+ await event_queue.put(None)
+
+ async def _prepare_request_options(self, tools: Optional[List[Any]]) -> Optional[Any]:
+ """Prepare ClaudeAgentOptions for this request with tools.
+
+ Args:
+ tools: Optional list of AG-UI tools
+
+ Returns:
+ ClaudeAgentOptions instance (with cli_path preserved) or None to reuse existing client
+ """
+ if ClaudeAgentOptions is None:
+ return None
+
+ # Even if no tools, we should return options with cli_path for stateless mode fallback
+ if not tools:
+ # Return existing options if available (includes cli_path)
+ return self._claude_options
+
+ # Convert AG-UI tools to Claude SDK format
+ from .tool_adapter import ToolAdapter
+
+ try:
+ # Create MCP server for AG-UI tools
+ mcp_server = ToolAdapter.create_mcp_server_for_tools(
+ ag_ui_tools=tools,
+ server_name="ag_ui_client_tools",
+ server_version="1.0.0"
+ )
+
+ # Build options dict, starting with existing options if any
+ options_dict = {}
+
+ # Copy existing options attributes if available
+ if self._claude_options:
+ # Try to copy common options, including cli_path for CLI tool detection
+ common_attrs = [
+ 'system_prompt', 'permission_mode', 'cwd', 'allowed_tools',
+ 'mcp_servers', 'setting_sources', 'max_tokens', 'temperature',
+ 'cli_path' # Important: preserve cli_path for stateless mode fallback
+ ]
+ for attr in common_attrs:
+ if hasattr(self._claude_options, attr):
+ value = getattr(self._claude_options, attr)
+ if value is not None:
+ options_dict[attr] = value
+
+ # Merge MCP servers
+ if 'mcp_servers' not in options_dict:
+ options_dict['mcp_servers'] = {}
+ elif not isinstance(options_dict['mcp_servers'], dict):
+ options_dict['mcp_servers'] = {}
+
+ options_dict['mcp_servers']['ag_ui_client_tools'] = mcp_server
+
+ # Add tool names to allowed_tools
+ tool_names = [f"mcp__ag_ui_client_tools__{tool.name}" for tool in tools]
+ if 'allowed_tools' in options_dict:
+ existing_tools = options_dict['allowed_tools'] or []
+ options_dict['allowed_tools'] = list(set(existing_tools + tool_names))
+ else:
+ options_dict['allowed_tools'] = tool_names
+
+ return ClaudeAgentOptions(**options_dict)
+ except Exception as e:
+ logger.error(f"Failed to prepare tools for request: {e}", exc_info=True)
+ return self._claude_options
+
+ async def _call_claude_sdk(
+ self,
+ claude_client: Any,
+ prompt: str,
+ options: Optional[Any] = None
+ ) -> AsyncGenerator[Message, None]:
+ """Call Claude SDK and yield Message responses.
+
+ Supports both persistent sessions (ClaudeSDKClient) and stateless mode (query()).
+
+ Args:
+ claude_client: ClaudeSDKClient instance or None for stateless mode
+ prompt: User prompt string
+ options: Optional ClaudeAgentOptions for this request
+
+ Yields:
+ Message objects from Claude SDK
+ """
+ request_options = options or self._claude_options
+
+ if claude_client is None:
+ # Stateless mode - use query() function
+ if claude_query is None:
+ raise ImportError("claude-agent-sdk is not installed")
+
+ async for message in claude_query(prompt=prompt, options=request_options):
+ yield message
+ else:
+ # Persistent session mode - use ClaudeSDKClient
+ # ClaudeSDKClient is an async context manager and requires connect() before query()
+ # According to docs: https://docs.claude.com/zh-CN/api/agent-sdk/python
+ if ClaudeSDKClient and isinstance(ClaudeSDKClient, type) and isinstance(claude_client, ClaudeSDKClient):
+ # Real ClaudeSDKClient instance - ensure it's connected
+ # ClaudeSDKClient supports async context manager, but we manage connection manually
+ # to reuse the same client across multiple queries in the same session
+ if hasattr(claude_client, 'connect'):
+ try:
+ # Check if already connected by trying to connect
+ # The connect() method will raise an error if already connected
+ await claude_client.connect()
+ logger.debug("Connected ClaudeSDKClient")
+ except Exception as e:
+ # If already connected, the error message typically contains "already connected"
+ error_msg = str(e).lower()
+ if "already connected" in error_msg or "already_connected" in error_msg:
+ logger.debug("ClaudeSDKClient already connected, reusing connection")
+ else:
+ # Re-raise if it's a different error
+ raise
+ # For Mock objects or when ClaudeSDKClient is not available, just use it directly
+
+ # Send query to client
+ # According to docs, query() sends a prompt and returns immediately
+ await claude_client.query(prompt)
+
+ # Receive response stream
+ # receive_response() yields messages as they arrive
+ async for message in claude_client.receive_response():
+ yield message
+
+ def _get_claude_client(self, session_key: str, request_options: Optional[Any] = None) -> Any:
+ """Get or create Claude SDK client for a session.
+
+ For persistent sessions, returns a ClaudeSDKClient instance.
+ For stateless mode, returns None (will use query() function directly).
+
+ Args:
+ session_key: Session key for lookup
+ request_options: Optional options for this request (used when creating new client)
+ """
+ if not self._use_persistent_sessions:
+ # Stateless mode - use query() function directly
+ return None
+
+ # Check if we have a persistent client
+ existing_client = self._session_manager.get_claude_client(session_key)
+
+ # If we have request-specific options with tools, consider recreating client
+ # For now, reuse existing client if available and no request-specific options
+ if existing_client and not request_options:
+ return existing_client
+
+ # Create new ClaudeSDKClient
+ if ClaudeSDKClient is None:
+ raise ImportError("claude-agent-sdk is not installed. Install it with: pip install claude-agent-sdk")
+
+ # Use request-specific options if provided, otherwise use default
+ options = request_options or self._claude_options
+
+ # If we have an existing client but need new options, replace it
+ if existing_client and request_options:
+ logger.debug(f"Recreating ClaudeSDKClient for session {session_key} with new options")
+
+ # Create client with options
+ client = ClaudeSDKClient(options=options)
+ self._session_manager.set_claude_client(session_key, client)
+ logger.debug(f"Created new ClaudeSDKClient for session {session_key}")
+ return client
+
+ async def _extract_user_prompt(
+ self,
+ messages: List[Any],
+ tool_results: Optional[List[Dict]] = None
+ ) -> str:
+ """Extract user prompt from AG-UI messages.
+
+ Claude SDK query() and client.query() accept a prompt string.
+ For multi-turn conversations with persistent sessions, we combine
+ the conversation history into the prompt.
+
+ Args:
+ messages: List of AG-UI messages
+ tool_results: Optional tool result messages
+
+ Returns:
+ Combined prompt string
+ """
+ if not messages:
+ return ""
+
+ # Extract text from user messages
+ user_texts = []
+ for message in messages:
+ if hasattr(message, 'role') and message.role == "user":
+ content = getattr(message, 'content', '')
+ if content:
+ user_texts.append(str(content))
+
+ # Add tool results if provided
+ if tool_results:
+ for tool_result in tool_results:
+ tool_msg = tool_result['message']
+ tool_content = getattr(tool_msg, 'content', '')
+ if tool_content:
+ user_texts.append(f"[Tool result]: {tool_content}")
+
+ # Combine into single prompt
+ # For persistent sessions, Claude SDK maintains conversation history
+ # So we mainly need the latest user message
+ if user_texts:
+ # Use the latest user message as the prompt
+ return user_texts[-1]
+
+ return ""
+
+ async def _stream_events(
+ self,
+ execution: ExecutionState
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Stream events from execution queue."""
+ while True:
+ try:
+ event = await asyncio.wait_for(
+ execution.event_queue.get(),
+ timeout=1.0
+ )
+
+ if event is None:
+ execution.is_complete = True
+ break
+
+ yield event
+
+ except asyncio.TimeoutError:
+ if execution.is_stale(self._execution_timeout):
+ yield RunErrorEvent(
+ type=EventType.RUN_ERROR,
+ message="Execution timed out",
+ code="EXECUTION_TIMEOUT"
+ )
+ break
+
+ if execution.task.done():
+ if execution.event_queue.qsize() > 0:
+ continue
+ break
+
+ async def _add_pending_tool_call(
+ self,
+ session_id: str,
+ tool_call_id: str,
+ app_name: str,
+ user_id: str
+ ):
+ """Add a tool call to the session's pending list."""
+ try:
+ pending_calls = await self._session_manager.get_session_state(
+ session_id, app_name, user_id
+ ) or {}
+ pending_calls = pending_calls.get("pending_tool_calls", [])
+
+ if tool_call_id not in pending_calls:
+ pending_calls.append(tool_call_id)
+ await self._session_manager.update_session_state(
+ session_id,
+ app_name,
+ user_id,
+ {"pending_tool_calls": pending_calls}
+ )
+ except Exception as e:
+ logger.error(f"Failed to add pending tool call: {e}")
+
+ async def _has_pending_tool_calls(self, session_id: str) -> bool:
+ """Check if session has pending tool calls."""
+ try:
+ metadata = self._get_session_metadata(session_id)
+ if metadata:
+ state = await self._session_manager.get_session_state(
+ session_id,
+ metadata["app_name"],
+ metadata["user_id"]
+ )
+ if state:
+ return len(state.get("pending_tool_calls", [])) > 0
+ except Exception as e:
+ logger.error(f"Failed to check pending tool calls: {e}")
+ return False
+
+ def _get_session_metadata(self, session_id: str) -> Optional[Dict[str, str]]:
+ """Get session metadata."""
+ if session_id in self._session_lookup_cache:
+ return self._session_lookup_cache[session_id]
+ return None
+
+ async def _cleanup_stale_executions(self):
+ """Clean up stale executions."""
+ stale_threads = []
+ for thread_id, execution in self._active_executions.items():
+ if execution.is_stale(self._execution_timeout):
+ stale_threads.append(thread_id)
+
+ for thread_id in stale_threads:
+ execution = self._active_executions.pop(thread_id)
+ await execution.cancel()
+ logger.info(f"Cleaned up stale execution for thread {thread_id}")
+
+ async def close(self):
+ """Clean up resources."""
+ async with self._execution_lock:
+ for execution in self._active_executions.values():
+ await execution.cancel()
+ self._active_executions.clear()
+
+ self._session_lookup_cache.clear()
+ await self._session_manager.stop_cleanup_task()
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/endpoint.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/endpoint.py
new file mode 100644
index 000000000..4e0a25ed3
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/endpoint.py
@@ -0,0 +1,88 @@
+"""FastAPI endpoint for Claude Agent SDK middleware."""
+
+from fastapi import FastAPI, Request
+from fastapi.responses import StreamingResponse
+from ag_ui.core import RunAgentInput
+from ag_ui.encoder import EventEncoder
+from .claude_agent import ClaudeAgent
+
+import logging
+logger = logging.getLogger(__name__)
+
+
+def add_claude_fastapi_endpoint(app: FastAPI, agent: ClaudeAgent, path: str = "/"):
+ """Add Claude Agent SDK middleware endpoint to FastAPI app.
+
+ Args:
+ app: FastAPI application instance
+ agent: Configured ClaudeAgent instance
+ path: API endpoint path
+ """
+
+ @app.post(path)
+ async def claude_endpoint(input_data: RunAgentInput, request: Request):
+ """Claude Agent SDK middleware endpoint."""
+
+ # Get the accept header from the request
+ accept_header = request.headers.get("accept")
+
+ # Create an event encoder to properly format SSE events
+ encoder = EventEncoder(accept=accept_header)
+
+ async def event_generator():
+ """Generate events from Claude agent."""
+ try:
+ async for event in agent.run(input_data):
+ try:
+ encoded = encoder.encode(event)
+ logger.debug(f"HTTP Response: {encoded}")
+ yield encoded
+ except Exception as encoding_error:
+ # Handle encoding-specific errors
+ logger.error(f"Event encoding error: {encoding_error}", exc_info=True)
+ from ag_ui.core import RunErrorEvent, EventType
+ error_event = RunErrorEvent(
+ type=EventType.RUN_ERROR,
+ message=f"Event encoding failed: {str(encoding_error)}",
+ code="ENCODING_ERROR"
+ )
+ try:
+ error_encoded = encoder.encode(error_event)
+ yield error_encoded
+ except Exception:
+ logger.error("Failed to encode error event, yielding basic SSE error")
+ yield "event: error\ndata: {\"error\": \"Event encoding failed\"}\n\n"
+ break
+ except Exception as agent_error:
+ # Handle errors from ClaudeAgent.run() itself
+ logger.error(f"ClaudeAgent error: {agent_error}", exc_info=True)
+ try:
+ from ag_ui.core import RunErrorEvent, EventType
+ error_event = RunErrorEvent(
+ type=EventType.RUN_ERROR,
+ message=f"Agent execution failed: {str(agent_error)}",
+ code="AGENT_ERROR"
+ )
+ error_encoded = encoder.encode(error_event)
+ yield error_encoded
+ except Exception:
+ logger.error("Failed to encode agent error event, yielding basic SSE error")
+ yield "event: error\ndata: {\"error\": \"Agent execution failed\"}\n\n"
+
+ return StreamingResponse(event_generator(), media_type=encoder.get_content_type())
+
+
+def create_claude_app(agent: ClaudeAgent, path: str = "/") -> FastAPI:
+ """Create a FastAPI app with Claude Agent SDK middleware endpoint.
+
+ Args:
+ agent: Configured ClaudeAgent instance
+ path: API endpoint path
+
+ Returns:
+ FastAPI application instance
+ """
+ app = FastAPI(title="Claude Agent SDK Middleware for AG-UI Protocol")
+ add_claude_fastapi_endpoint(app, agent, path)
+ return app
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/event_translator.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/event_translator.py
new file mode 100644
index 000000000..50907c32f
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/event_translator.py
@@ -0,0 +1,315 @@
+"""Event translator for converting Claude SDK responses to AG-UI protocol events."""
+
+import json
+import uuid
+from typing import AsyncGenerator, Optional, Dict, Any, List
+import logging
+
+try:
+ from ag_ui.core import (
+ BaseEvent, EventType,
+ TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent,
+ ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent,
+ ToolCallResultEvent, StateSnapshotEvent, StateDeltaEvent,
+ CustomEvent
+ )
+except ImportError:
+ pass
+
+# Claude SDK imports
+try:
+ from claude_agent_sdk import (
+ Message,
+ AssistantMessage,
+ UserMessage,
+ SystemMessage,
+ ResultMessage,
+ TextBlock,
+ ToolUseBlock,
+ ToolResultBlock,
+ ThinkingBlock,
+ )
+except ImportError:
+ # Type checking fallback
+ Message = None
+ AssistantMessage = None
+ TextBlock = None
+ ToolUseBlock = None
+ ToolResultBlock = None
+ ThinkingBlock = None
+
+logger = logging.getLogger(__name__)
+
+
+class EventTranslator:
+ """Translates Claude SDK responses to AG-UI protocol events.
+
+ This class handles the conversion between Claude SDK responses and AG-UI events,
+ managing streaming sequences and maintaining event consistency.
+
+ Note: This implementation is based on common Anthropic SDK patterns.
+ Actual API may vary - adjust based on Claude Agent SDK documentation.
+ """
+
+ def __init__(self):
+ """Initialize the event translator."""
+ # Track tool call IDs for consistency
+ self._active_tool_calls: Dict[str, str] = {}
+ # Track streaming message state
+ self._streaming_message_id: Optional[str] = None
+ self._is_streaming: bool = False
+ self._current_stream_text: str = ""
+ self._last_streamed_text: Optional[str] = None
+ self._last_streamed_run_id: Optional[str] = None
+ self.long_running_tool_ids: List[str] = []
+
+ async def translate_claude_message(
+ self,
+ claude_message: Message,
+ thread_id: str,
+ run_id: str
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Translate a Claude SDK Message to AG-UI protocol events.
+
+ Args:
+ claude_message: The Claude SDK Message object
+ thread_id: The AG-UI thread ID
+ run_id: The AG-UI run ID
+
+ Yields:
+ One or more AG-UI protocol events
+ """
+ try:
+ # Handle different message types
+ # Use hasattr to check for content attribute (AssistantMessage) or subtype (ResultMessage)
+ # This works with both real types and Mock objects
+ if hasattr(claude_message, 'content') and claude_message.content is not None:
+ # Treat as AssistantMessage
+ async for event in self._translate_assistant_message(
+ claude_message, thread_id, run_id
+ ):
+ yield event
+ elif hasattr(claude_message, 'subtype') or (AssistantMessage is not None and isinstance(claude_message, ResultMessage)):
+ # ResultMessage indicates completion or error
+ # Close any active streaming message
+ async for event in self.force_close_streaming_message():
+ yield event
+
+ # Check subtype for success/error
+ subtype = getattr(claude_message, 'subtype', None)
+ if subtype == 'error':
+ # Handle error - should already be handled by agent
+ logger.warning(f"Received error result: {claude_message}")
+ # UserMessage, SystemMessage are typically input, not output
+ # They don't need translation to AG-UI events
+
+ except Exception as e:
+ logger.error(f"Error translating Claude message: {e}", exc_info=True)
+
+ async def _translate_assistant_message(
+ self,
+ message: AssistantMessage,
+ thread_id: str,
+ run_id: str
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Translate AssistantMessage content blocks to AG-UI events."""
+ if not hasattr(message, 'content') or not message.content:
+ return
+
+ # Process each content block
+ # Use hasattr checks to support both real types and Mock objects
+ for block in message.content:
+ if hasattr(block, 'text'):
+ # TextBlock has 'text' attribute
+ async for event in self._translate_text_block(block, thread_id, run_id):
+ yield event
+ elif hasattr(block, 'id') and hasattr(block, 'name') and hasattr(block, 'input'):
+ # ToolUseBlock has 'id', 'name', and 'input' attributes
+ async for event in self._translate_tool_use_block(block):
+ yield event
+ elif hasattr(block, 'tool_use_id') or (hasattr(block, 'id') and hasattr(block, 'content') and not hasattr(block, 'text')):
+ # ToolResultBlock has 'tool_use_id' or 'id' with 'content' but no 'text'
+ async for event in self._translate_tool_result_block(block):
+ yield event
+ elif isinstance(block, ThinkingBlock) if ThinkingBlock else False:
+ # Thinking blocks can be translated to thinking events if needed
+ # For now, we'll skip them or convert to text
+ logger.debug(f"Received ThinkingBlock: {block}")
+
+ async def _translate_text_block(
+ self,
+ block: TextBlock,
+ thread_id: str,
+ run_id: str
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Translate TextBlock to AG-UI text message events."""
+ text = getattr(block, 'text', '') or ''
+ if not text:
+ return
+
+ # Check if this is a complete message or streaming chunk
+ # Claude SDK streams TextBlocks, so we treat each as a content chunk
+ if not self._is_streaming:
+ # Start new message
+ self._streaming_message_id = str(uuid.uuid4())
+ self._is_streaming = True
+ self._current_stream_text = ""
+
+ yield TextMessageStartEvent(
+ type=EventType.TEXT_MESSAGE_START,
+ message_id=self._streaming_message_id,
+ role="assistant"
+ )
+
+ # Add text content
+ self._current_stream_text += text
+ yield TextMessageContentEvent(
+ type=EventType.TEXT_MESSAGE_CONTENT,
+ message_id=self._streaming_message_id,
+ delta=text
+ )
+
+ async def _translate_tool_use_block(
+ self,
+ block: ToolUseBlock
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Translate ToolUseBlock to AG-UI tool call events."""
+ # Close any active text stream before tool calls
+ async for event in self.force_close_streaming_message():
+ yield event
+
+ tool_call_id = getattr(block, 'id', None) or str(uuid.uuid4())
+ tool_name = getattr(block, 'name', 'unknown')
+ tool_input = getattr(block, 'input', {})
+
+ # Check if this is a long-running tool
+ # This depends on tool configuration - for now, assume client tools are LRO
+ is_long_running = True # TODO: Determine from tool configuration
+
+ if is_long_running:
+ self.long_running_tool_ids.append(tool_call_id)
+
+ self._active_tool_calls[tool_call_id] = tool_call_id
+
+ yield ToolCallStartEvent(
+ type=EventType.TOOL_CALL_START,
+ tool_call_id=tool_call_id,
+ tool_call_name=tool_name,
+ parent_message_id=None
+ )
+
+ if tool_input:
+ args_str = json.dumps(tool_input) if isinstance(tool_input, dict) else str(tool_input)
+ yield ToolCallArgsEvent(
+ type=EventType.TOOL_CALL_ARGS,
+ tool_call_id=tool_call_id,
+ delta=args_str
+ )
+
+ yield ToolCallEndEvent(
+ type=EventType.TOOL_CALL_END,
+ tool_call_id=tool_call_id
+ )
+
+ self._active_tool_calls.pop(tool_call_id, None)
+
+ async def _translate_tool_result_block(
+ self,
+ block: ToolResultBlock
+ ) -> AsyncGenerator[BaseEvent, None]:
+ """Translate ToolResultBlock to AG-UI tool result events."""
+ tool_call_id = getattr(block, 'tool_use_id', None) or getattr(block, 'id', None)
+
+ if not tool_call_id:
+ logger.warning("ToolResultBlock missing tool_call_id")
+ return
+
+ # Skip long-running tools (handled by frontend)
+ if tool_call_id in self.long_running_tool_ids:
+ logger.debug(f"Skipping ToolCallResultEvent for long-running tool: {tool_call_id}")
+ return
+
+ # Extract content from tool result
+ content = getattr(block, 'content', None)
+ is_error = getattr(block, 'is_error', False)
+
+ # Convert content to string
+ if isinstance(content, list):
+ # Content is list of content blocks
+ content_str = json.dumps([self._extract_text_from_block(cb) for cb in content])
+ elif isinstance(content, str):
+ content_str = content
+ else:
+ content_str = json.dumps(content) if content else ""
+
+ if is_error:
+ # Mark as error in content
+ content_str = json.dumps({"error": True, "content": content_str})
+
+ yield ToolCallResultEvent(
+ message_id=str(uuid.uuid4()),
+ type=EventType.TOOL_CALL_RESULT,
+ tool_call_id=tool_call_id,
+ content=content_str
+ )
+
+ def _extract_text_from_block(self, block: Any) -> str:
+ """Extract text from a content block."""
+ if isinstance(block, dict):
+ return block.get('text', '') or block.get('content', '')
+ elif hasattr(block, 'text'):
+ return block.text
+ elif hasattr(block, 'content'):
+ return block.content
+ else:
+ return str(block)
+
+
+ def _create_state_delta_event(
+ self,
+ state_delta: Dict[str, Any],
+ thread_id: str,
+ run_id: str
+ ) -> StateDeltaEvent:
+ """Create a state delta event from state changes."""
+ # Convert to JSON Patch format (RFC 6902)
+ patches = []
+ for key, value in state_delta.items():
+ patches.append({
+ "op": "add",
+ "path": f"/{key}",
+ "value": value
+ })
+
+ return StateDeltaEvent(
+ type=EventType.STATE_DELTA,
+ delta=patches
+ )
+
+ async def force_close_streaming_message(self) -> AsyncGenerator[BaseEvent, None]:
+ """Force close any open streaming message."""
+ if self._is_streaming and self._streaming_message_id:
+ logger.warning(f"Force-closing unterminated streaming message: {self._streaming_message_id}")
+ yield TextMessageEndEvent(
+ type=EventType.TEXT_MESSAGE_END,
+ message_id=self._streaming_message_id
+ )
+ self._reset_streaming_state()
+
+ def _reset_streaming_state(self):
+ """Reset streaming state."""
+ if self._current_stream_text:
+ self._last_streamed_text = self._current_stream_text
+ self._current_stream_text = ""
+ self._streaming_message_id = None
+ self._is_streaming = False
+
+ def reset(self):
+ """Reset the translator state."""
+ self._active_tool_calls.clear()
+ self._reset_streaming_state()
+ self._last_streamed_text = None
+ self._last_streamed_run_id = None
+ self.long_running_tool_ids.clear()
+ logger.debug("Reset EventTranslator state")
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/execution_state.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/execution_state.py
new file mode 100644
index 000000000..2079a4067
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/execution_state.py
@@ -0,0 +1,124 @@
+"""Execution state management for background Claude SDK runs with tool support."""
+
+import asyncio
+import time
+from typing import Optional, Set
+import logging
+
+logger = logging.getLogger(__name__)
+
+
+class ExecutionState:
+ """Manages the state of a background Claude SDK execution.
+
+ This class tracks:
+ - The background asyncio task running the Claude SDK client
+ - Event queue for streaming results to the client
+ - Execution timing and completion state
+ """
+
+ def __init__(
+ self,
+ task: asyncio.Task,
+ thread_id: str,
+ event_queue: asyncio.Queue
+ ):
+ """Initialize execution state.
+
+ Args:
+ task: The asyncio task running the Claude SDK client
+ thread_id: The thread ID for this execution
+ event_queue: Queue containing events to stream to client
+ """
+ self.task = task
+ self.thread_id = thread_id
+ self.event_queue = event_queue
+ self.start_time = time.time()
+ self.is_complete = False
+ self.pending_tool_calls: Set[str] = set() # Track outstanding tool call IDs for HITL
+
+ logger.debug(f"Created execution state for thread {thread_id}")
+
+ def is_stale(self, timeout_seconds: int) -> bool:
+ """Check if this execution has been running too long.
+
+ Args:
+ timeout_seconds: Maximum execution time in seconds
+
+ Returns:
+ True if execution has exceeded timeout
+ """
+ return time.time() - self.start_time > timeout_seconds
+
+ async def cancel(self):
+ """Cancel the execution and clean up resources."""
+ logger.info(f"Cancelling execution for thread {self.thread_id}")
+
+ # Cancel the background task
+ if not self.task.done():
+ self.task.cancel()
+ try:
+ await self.task
+ except asyncio.CancelledError:
+ pass
+
+ self.is_complete = True
+
+ def get_execution_time(self) -> float:
+ """Get the total execution time in seconds.
+
+ Returns:
+ Time in seconds since execution started
+ """
+ return time.time() - self.start_time
+
+ def add_pending_tool_call(self, tool_call_id: str):
+ """Add a tool call ID to the pending set.
+
+ Args:
+ tool_call_id: The tool call ID to track
+ """
+ self.pending_tool_calls.add(tool_call_id)
+ logger.debug(f"Added pending tool call {tool_call_id} to thread {self.thread_id}")
+
+ def remove_pending_tool_call(self, tool_call_id: str):
+ """Remove a tool call ID from the pending set.
+
+ Args:
+ tool_call_id: The tool call ID to remove
+ """
+ self.pending_tool_calls.discard(tool_call_id)
+ logger.debug(f"Removed pending tool call {tool_call_id} from thread {self.thread_id}")
+
+ def has_pending_tool_calls(self) -> bool:
+ """Check if there are outstanding tool calls waiting for responses.
+
+ Returns:
+ True if there are pending tool calls (HITL scenario)
+ """
+ return len(self.pending_tool_calls) > 0
+
+ def get_status(self) -> str:
+ """Get a human-readable status of the execution.
+
+ Returns:
+ Status string describing the current state
+ """
+ if self.is_complete:
+ if self.has_pending_tool_calls():
+ return "complete_awaiting_tools"
+ else:
+ return "complete"
+ elif self.task.done():
+ return "task_done"
+ else:
+ return "running"
+
+ def __repr__(self) -> str:
+ """String representation of the execution state."""
+ return (
+ f"ExecutionState(thread_id='{self.thread_id}', "
+ f"status='{self.get_status()}', "
+ f"runtime={self.get_execution_time():.1f}s)"
+ )
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/session_manager.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/session_manager.py
new file mode 100644
index 000000000..bb96b9810
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/session_manager.py
@@ -0,0 +1,453 @@
+"""Session manager for Claude SDK integration."""
+
+from typing import Dict, Optional, Set, Any, List, Union
+import asyncio
+import logging
+import time
+
+logger = logging.getLogger(__name__)
+
+
+class SessionManager:
+ """Session manager for Claude SDK sessions.
+
+ Manages conversation sessions, message tracking, and state management.
+ Supports both persistent client sessions and stateless query mode.
+ """
+
+ _instance = None
+ _initialized = False
+
+ def __new__(cls, **kwargs):
+ """Ensure singleton instance."""
+ if cls._instance is None:
+ cls._instance = super().__new__(cls)
+ return cls._instance
+
+ def __init__(
+ self,
+ session_timeout_seconds: int = 1200, # 20 minutes default
+ cleanup_interval_seconds: int = 300, # 5 minutes
+ max_sessions_per_user: Optional[int] = None,
+ auto_cleanup: bool = True
+ ):
+ """Initialize the session manager.
+
+ Args:
+ session_timeout_seconds: Time before a session is considered expired
+ cleanup_interval_seconds: Interval between cleanup cycles
+ max_sessions_per_user: Maximum concurrent sessions per user (None = unlimited)
+ auto_cleanup: Enable automatic session cleanup task
+ """
+ if self._initialized:
+ return
+
+ self._timeout = session_timeout_seconds
+ self._cleanup_interval = cleanup_interval_seconds
+ self._max_per_user = max_sessions_per_user
+ self._auto_cleanup = auto_cleanup
+
+ # Session tracking
+ self._sessions: Dict[str, Dict[str, Any]] = {} # session_key -> session_data
+ self._session_keys: Set[str] = set() # "app_name:session_id" keys
+ self._user_sessions: Dict[str, Set[str]] = {} # user_id -> set of session_keys
+ self._processed_message_ids: Dict[str, Set[str]] = {} # session_key -> set of message_ids
+ self._claude_clients: Dict[str, Any] = {} # session_key -> Claude SDK client (if using persistent mode)
+
+ self._cleanup_task: Optional[asyncio.Task] = None
+ self._initialized = True
+
+ logger.info(
+ f"Initialized SessionManager - "
+ f"timeout: {session_timeout_seconds}s, "
+ f"cleanup: {cleanup_interval_seconds}s, "
+ f"max/user: {max_sessions_per_user or 'unlimited'}"
+ )
+
+ @classmethod
+ def get_instance(cls, **kwargs):
+ """Get the singleton instance."""
+ return cls(**kwargs)
+
+ @classmethod
+ def reset_instance(cls):
+ """Reset singleton for testing."""
+ if cls._instance and hasattr(cls._instance, '_cleanup_task'):
+ task = cls._instance._cleanup_task
+ if task:
+ try:
+ task.cancel()
+ except RuntimeError:
+ pass
+ cls._instance = None
+ cls._initialized = False
+
+ def _make_session_key(self, app_name: str, session_id: str) -> str:
+ """Create a session key."""
+ return f"{app_name}:{session_id}"
+
+ def _track_session(self, session_key: str, user_id: str):
+ """Track a session key."""
+ self._session_keys.add(session_key)
+ if user_id not in self._user_sessions:
+ self._user_sessions[user_id] = set()
+ self._user_sessions[user_id].add(session_key)
+
+ def _untrack_session(self, session_key: str, user_id: str):
+ """Remove session tracking."""
+ self._session_keys.discard(session_key)
+ self._sessions.pop(session_key, None)
+ self._processed_message_ids.pop(session_key, None)
+ self._claude_clients.pop(session_key, None)
+
+ if user_id in self._user_sessions:
+ self._user_sessions[user_id].discard(session_key)
+ if not self._user_sessions[user_id]:
+ del self._user_sessions[user_id]
+
+ async def get_or_create_session(
+ self,
+ session_id: str,
+ app_name: str,
+ user_id: str,
+ initial_state: Optional[Dict[str, Any]] = None
+ ) -> Dict[str, Any]:
+ """Get existing session or create new one.
+
+ Returns session data dictionary.
+ """
+ session_key = self._make_session_key(app_name, session_id)
+
+ # Check user limits before creating
+ if session_key not in self._session_keys and self._max_per_user:
+ user_count = len(self._user_sessions.get(user_id, set()))
+ if user_count >= self._max_per_user:
+ await self._remove_oldest_user_session(user_id)
+
+ if session_key not in self._sessions:
+ # Create new session
+ self._sessions[session_key] = {
+ "session_id": session_id,
+ "app_name": app_name,
+ "user_id": user_id,
+ "state": initial_state or {},
+ "created_at": time.time(),
+ "last_update_time": time.time(),
+ "messages": []
+ }
+ logger.info(f"Created new session: {session_key}")
+ else:
+ # Update last access time
+ self._sessions[session_key]["last_update_time"] = time.time()
+ logger.debug(f"Retrieved existing session: {session_key}")
+
+ # Track the session
+ self._track_session(session_key, user_id)
+
+ # Start cleanup if needed
+ if self._auto_cleanup and not self._cleanup_task:
+ self._start_cleanup_task()
+
+ return self._sessions[session_key]
+
+ def get_processed_message_ids(self, app_name: str, session_id: str) -> Set[str]:
+ """Get processed message IDs for a session."""
+ session_key = self._make_session_key(app_name, session_id)
+ return set(self._processed_message_ids.get(session_key, set()))
+
+ def mark_messages_processed(
+ self,
+ app_name: str,
+ session_id: str,
+ message_ids: Set[str],
+ ) -> None:
+ """Mark messages as processed."""
+ session_key = self._make_session_key(app_name, session_id)
+ processed_ids = self._processed_message_ids.setdefault(session_key, set())
+ processed_ids.update(message_ids)
+
+ async def update_session_state(
+ self,
+ session_id: str,
+ app_name: str,
+ user_id: str,
+ state_updates: Dict[str, Any],
+ merge: bool = True
+ ) -> bool:
+ """Update session state.
+
+ Args:
+ session_id: Session identifier
+ app_name: Application name
+ user_id: User identifier
+ state_updates: Dictionary of state key-value pairs to update
+ merge: If True, merge with existing state; if False, replace completely
+
+ Returns:
+ True if successful, False otherwise
+ """
+ try:
+ session_key = self._make_session_key(app_name, session_id)
+ if session_key not in self._sessions:
+ logger.debug(f"Session not found for update: {session_key}")
+ return False
+
+ if merge:
+ self._sessions[session_key]["state"].update(state_updates)
+ else:
+ self._sessions[session_key]["state"] = state_updates
+
+ self._sessions[session_key]["last_update_time"] = time.time()
+ logger.debug(f"Updated state for session {session_key}")
+ return True
+ except Exception as e:
+ logger.error(f"Failed to update session state: {e}", exc_info=True)
+ return False
+
+ async def get_session_state(
+ self,
+ session_id: str,
+ app_name: str,
+ user_id: str
+ ) -> Optional[Dict[str, Any]]:
+ """Get current session state."""
+ try:
+ session_key = self._make_session_key(app_name, session_id)
+ if session_key not in self._sessions:
+ return None
+ return self._sessions[session_key].get("state", {})
+ except Exception as e:
+ logger.error(f"Failed to get session state: {e}", exc_info=True)
+ return None
+
+ async def get_state_value(
+ self,
+ session_id: str,
+ app_name: str,
+ user_id: str,
+ key: str,
+ default: Any = None
+ ) -> Any:
+ """Get a specific state value by key.
+
+ Args:
+ session_id: Session identifier
+ app_name: Application name
+ user_id: User identifier
+ key: State key to retrieve
+ default: Default value if key not found
+
+ Returns:
+ State value or default
+ """
+ state = await self.get_session_state(session_id, app_name, user_id)
+ if state is None:
+ return default
+ return state.get(key, default)
+
+ async def set_state_value(
+ self,
+ session_id: str,
+ app_name: str,
+ user_id: str,
+ key: str,
+ value: Any
+ ) -> bool:
+ """Set a specific state value by key.
+
+ Args:
+ session_id: Session identifier
+ app_name: Application name
+ user_id: User identifier
+ key: State key to set
+ value: Value to set
+
+ Returns:
+ True if successful, False otherwise
+ """
+ return await self.update_session_state(
+ session_id=session_id,
+ app_name=app_name,
+ user_id=user_id,
+ state_updates={key: value}
+ )
+
+ async def remove_state_keys(
+ self,
+ session_id: str,
+ app_name: str,
+ user_id: str,
+ keys: Union[str, List[str]]
+ ) -> bool:
+ """Remove one or more state keys.
+
+ Args:
+ session_id: Session identifier
+ app_name: Application name
+ user_id: User identifier
+ keys: Key or list of keys to remove
+
+ Returns:
+ True if successful, False otherwise
+ """
+ try:
+ session_key = self._make_session_key(app_name, session_id)
+ if session_key not in self._sessions:
+ return False
+
+ if isinstance(keys, str):
+ keys = [keys]
+
+ state = self._sessions[session_key].get("state", {})
+ for key in keys:
+ state.pop(key, None)
+
+ self._sessions[session_key]["last_update_time"] = time.time()
+ logger.debug(f"Removed state keys {keys} from session {session_key}")
+ return True
+ except Exception as e:
+ logger.error(f"Failed to remove state keys: {e}", exc_info=True)
+ return False
+
+ async def clear_session_state(
+ self,
+ session_id: str,
+ app_name: str,
+ user_id: str,
+ preserve_prefixes: Optional[List[str]] = None
+ ) -> bool:
+ """Clear session state, optionally preserving keys with specific prefixes.
+
+ Args:
+ session_id: Session identifier
+ app_name: Application name
+ user_id: User identifier
+ preserve_prefixes: List of prefixes to preserve (e.g., ["user_", "app_"])
+
+ Returns:
+ True if successful, False otherwise
+ """
+ try:
+ session_key = self._make_session_key(app_name, session_id)
+ if session_key not in self._sessions:
+ return False
+
+ state = self._sessions[session_key].get("state", {})
+ preserve_prefixes = preserve_prefixes or []
+
+ # Build new state with preserved keys
+ new_state = {}
+ for key, value in state.items():
+ should_preserve = any(key.startswith(prefix) for prefix in preserve_prefixes)
+ if should_preserve:
+ new_state[key] = value
+
+ self._sessions[session_key]["state"] = new_state
+ self._sessions[session_key]["last_update_time"] = time.time()
+ logger.debug(f"Cleared session state for {session_key}, preserved {len(new_state)} keys")
+ return True
+ except Exception as e:
+ logger.error(f"Failed to clear session state: {e}", exc_info=True)
+ return False
+
+ def get_session_count(self) -> int:
+ """Get total number of active sessions.
+
+ Returns:
+ Number of active sessions
+ """
+ return len(self._session_keys)
+
+ def get_user_session_count(self, user_id: str) -> int:
+ """Get number of active sessions for a specific user.
+
+ Args:
+ user_id: User identifier
+
+ Returns:
+ Number of active sessions for the user
+ """
+ return len(self._user_sessions.get(user_id, set()))
+
+ def get_claude_client(self, session_key: str) -> Optional[Any]:
+ """Get Claude SDK client for a session (if using persistent mode)."""
+ return self._claude_clients.get(session_key)
+
+ def set_claude_client(self, session_key: str, client: Any):
+ """Set Claude SDK client for a session."""
+ self._claude_clients[session_key] = client
+
+ def _start_cleanup_task(self):
+ """Start the cleanup task if not already running."""
+ try:
+ loop = asyncio.get_running_loop()
+ self._cleanup_task = loop.create_task(self._cleanup_loop())
+ logger.debug(f"Started session cleanup task")
+ except RuntimeError:
+ logger.debug("No event loop, cleanup will start later")
+
+ async def _cleanup_loop(self):
+ """Periodically clean up expired sessions."""
+ logger.debug("Cleanup loop started")
+ while True:
+ try:
+ await asyncio.sleep(self._cleanup_interval)
+ await self._cleanup_expired_sessions()
+ except asyncio.CancelledError:
+ logger.info("Cleanup task cancelled")
+ break
+ except Exception as e:
+ logger.error(f"Cleanup error: {e}", exc_info=True)
+
+ async def _cleanup_expired_sessions(self):
+ """Clean up expired sessions and disconnect ClaudeSDKClient connections."""
+ current_time = time.time()
+ expired_count = 0
+
+ for session_key in list(self._session_keys):
+ session = self._sessions.get(session_key)
+ if not session:
+ continue
+
+ age = current_time - session["last_update_time"]
+ if age > self._timeout:
+ # Check for pending tool calls before deletion (HITL scenarios)
+ pending_calls = session.get("state", {}).get("pending_tool_calls", [])
+ if pending_calls:
+ logger.info(f"Preserving expired session {session_key} - has {len(pending_calls)} pending tool calls")
+ else:
+ user_id = session["user_id"]
+ self._untrack_session(session_key, user_id)
+ expired_count += 1
+
+ if expired_count > 0:
+ logger.info(f"Cleaned up {expired_count} expired sessions")
+
+ async def _remove_oldest_user_session(self, user_id: str):
+ """Remove the oldest session for a user."""
+ if user_id not in self._user_sessions:
+ return
+
+ oldest_session_key = None
+ oldest_time = float('inf')
+
+ for session_key in self._user_sessions[user_id]:
+ session = self._sessions.get(session_key)
+ if session and session["last_update_time"] < oldest_time:
+ oldest_time = session["last_update_time"]
+ oldest_session_key = session_key
+
+ if oldest_session_key:
+ self._untrack_session(oldest_session_key, user_id)
+ logger.info(f"Removed oldest session for user {user_id}: {oldest_session_key}")
+
+ async def stop_cleanup_task(self):
+ """Stop the cleanup task."""
+ if self._cleanup_task:
+ self._cleanup_task.cancel()
+ try:
+ await self._cleanup_task
+ except asyncio.CancelledError:
+ pass
+ self._cleanup_task = None
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/tool_adapter.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/tool_adapter.py
new file mode 100644
index 000000000..a968aa2e4
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/tool_adapter.py
@@ -0,0 +1,182 @@
+"""Tool adapter for converting AG-UI tools to Claude SDK format."""
+
+import json
+from typing import List, Dict, Any, Optional
+import logging
+
+try:
+ from ag_ui.core import Tool as AGUITool
+except ImportError:
+ AGUITool = None
+
+try:
+ from claude_agent_sdk import SdkMcpTool, create_sdk_mcp_server
+except ImportError:
+ SdkMcpTool = None
+ create_sdk_mcp_server = None
+
+logger = logging.getLogger(__name__)
+
+
+class ToolAdapter:
+ """Adapter for converting AG-UI tools to Claude SDK tool format.
+
+ Note: This implementation is based on common Anthropic SDK patterns.
+ Adjust based on actual Claude Agent SDK tool format (e.g., SdkMcpTool).
+ """
+
+ @staticmethod
+ def convert_ag_ui_tool_to_claude(ag_ui_tool: AGUITool) -> Any:
+ """Convert an AG-UI tool to Claude SDK SdkMcpTool format.
+
+ Args:
+ ag_ui_tool: AG-UI tool definition
+
+ Returns:
+ SdkMcpTool instance
+
+ Note: For client-side tools (long-running), we create a placeholder handler.
+ The actual tool execution is handled by the frontend via AG-UI events.
+ For backend tools, implement the actual handler logic.
+ """
+ if SdkMcpTool is None:
+ raise ImportError("claude-agent-sdk is not installed. Install it with: pip install claude-agent-sdk")
+
+ # Convert AG-UI parameters (JSON Schema) to Claude format
+ parameters = ag_ui_tool.parameters
+
+ # Ensure it's a proper object schema
+ if not isinstance(parameters, dict):
+ parameters = {"type": "object", "properties": {}}
+ logger.warning(f"Tool {ag_ui_tool.name} had non-dict parameters, using empty schema")
+
+ # For client-side tools (long-running), create a placeholder handler
+ # The tool will emit events to frontend, which executes it
+ async def placeholder_handler(args: Dict[str, Any]) -> Dict[str, Any]:
+ """Placeholder handler for client-side long-running tools.
+
+ This handler should not be called for client-side tools.
+ The tool execution happens on the frontend via AG-UI events.
+ If this is called, it indicates a configuration issue.
+ """
+ logger.warning(
+ f"Placeholder handler called for client-side tool '{ag_ui_tool.name}'. "
+ f"This should not happen - tool execution should be handled by frontend."
+ )
+ return {
+ "content": [{
+ "type": "text",
+ "text": "Tool execution handled by frontend"
+ }]
+ }
+
+ # Create SdkMcpTool with placeholder handler
+ # Note: The actual tool execution flow:
+ # 1. Claude SDK calls tool -> ToolUseBlock emitted
+ # 2. EventTranslator converts to AG-UI TOOL_CALL_* events
+ # 3. Frontend receives events and executes tool
+ # 4. Frontend sends ToolMessage back
+ # 5. Tool result processed and sent to Claude SDK
+ claude_tool = SdkMcpTool(
+ name=ag_ui_tool.name,
+ description=ag_ui_tool.description or "",
+ input_schema=parameters,
+ handler=placeholder_handler
+ )
+
+ logger.debug(f"Converted AG-UI tool '{ag_ui_tool.name}' to SdkMcpTool (client-side)")
+ return claude_tool
+
+ @staticmethod
+ def convert_ag_ui_tools_to_claude(ag_ui_tools: List[AGUITool]) -> List[Any]:
+ """Convert a list of AG-UI tools to Claude SDK format.
+
+ Args:
+ ag_ui_tools: List of AG-UI tool definitions
+
+ Returns:
+ List of SdkMcpTool instances
+ """
+ return [
+ ToolAdapter.convert_ag_ui_tool_to_claude(tool)
+ for tool in ag_ui_tools
+ ]
+
+ @staticmethod
+ def create_mcp_server_for_tools(
+ ag_ui_tools: List[AGUITool],
+ server_name: str = "ag_ui_tools",
+ server_version: str = "1.0.0"
+ ) -> Any:
+ """Create an MCP server for AG-UI tools.
+
+ Args:
+ ag_ui_tools: List of AG-UI tool definitions
+ server_name: Name for the MCP server
+ server_version: Version for the MCP server
+
+ Returns:
+ MCP server instance
+ """
+ if create_sdk_mcp_server is None:
+ raise ImportError("claude-agent-sdk is not installed")
+
+ claude_tools = ToolAdapter.convert_ag_ui_tools_to_claude(ag_ui_tools)
+
+ return create_sdk_mcp_server(
+ name=server_name,
+ version=server_version,
+ tools=claude_tools
+ )
+
+ @staticmethod
+ def is_long_running_tool(ag_ui_tool: AGUITool) -> bool:
+ """Check if a tool should be treated as long-running (client-side execution).
+
+ Args:
+ ag_ui_tool: AG-UI tool definition
+
+ Returns:
+ True if tool should be executed on client side
+ """
+ # TODO: Determine logic for long-running tools
+ # For now, assume all client-provided tools are long-running
+ # Backend tools should be handled separately
+ return True
+
+ @staticmethod
+ def extract_tool_call_id(tool_call: Any) -> Optional[str]:
+ """Extract tool call ID from Claude SDK ToolUseBlock.
+
+ Args:
+ tool_call: Claude SDK ToolUseBlock object
+
+ Returns:
+ Tool call ID or None
+ """
+ return getattr(tool_call, 'id', None)
+
+ @staticmethod
+ def extract_tool_name(tool_call: Any) -> Optional[str]:
+ """Extract tool name from Claude SDK ToolUseBlock.
+
+ Args:
+ tool_call: Claude SDK ToolUseBlock object
+
+ Returns:
+ Tool name or None
+ """
+ return getattr(tool_call, 'name', None)
+
+ @staticmethod
+ def extract_tool_args(tool_call: Any) -> Dict[str, Any]:
+ """Extract tool arguments from Claude SDK ToolUseBlock.
+
+ Args:
+ tool_call: Claude SDK ToolUseBlock object
+
+ Returns:
+ Dictionary of tool arguments
+ """
+ return getattr(tool_call, 'input', {}) or {}
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/utils/__init__.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/utils/__init__.py
new file mode 100644
index 000000000..557443e64
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/utils/__init__.py
@@ -0,0 +1,2 @@
+"""Utility functions for Claude Agent SDK integration."""
+
diff --git a/integrations/claude-agent-sdk/python/src/ag_ui_claude/utils/converters.py b/integrations/claude-agent-sdk/python/src/ag_ui_claude/utils/converters.py
new file mode 100644
index 000000000..054ba5e36
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/src/ag_ui_claude/utils/converters.py
@@ -0,0 +1,203 @@
+"""Conversion utilities between AG-UI and Claude SDK formats."""
+
+from typing import List, Dict, Any, Optional
+import json
+import logging
+
+from ag_ui.core import (
+ Message, UserMessage, AssistantMessage, SystemMessage, ToolMessage,
+ ToolCall, FunctionCall
+)
+
+logger = logging.getLogger(__name__)
+
+
+def convert_ag_ui_messages_to_claude(messages: List[Message]) -> List[Dict[str, Any]]:
+ """Convert AG-UI messages to Claude SDK message format.
+
+ Args:
+ messages: List of AG-UI messages
+
+ Returns:
+ List of Claude SDK message dictionaries
+
+ TODO: Adjust based on actual Claude SDK message format.
+ Example format might be:
+ [
+ {"role": "user", "content": "..."},
+ {"role": "assistant", "content": "..."},
+ {"role": "tool", "tool_call_id": "...", "content": "..."}
+ ]
+ """
+ claude_messages = []
+
+ for message in messages:
+ try:
+ role = message.role
+
+ if isinstance(message, (UserMessage, SystemMessage)):
+ claude_messages.append({
+ "role": role,
+ "content": message.content or ""
+ })
+
+ elif isinstance(message, AssistantMessage):
+ content_parts = []
+
+ # Add text content if present
+ if message.content:
+ content_parts.append({
+ "type": "text",
+ "text": message.content
+ })
+
+ # Add tool calls if present
+ if message.tool_calls:
+ for tool_call in message.tool_calls:
+ content_parts.append({
+ "type": "tool_use",
+ "id": tool_call.id,
+ "name": tool_call.function.name,
+ "input": json.loads(tool_call.function.arguments) if isinstance(tool_call.function.arguments, str) else tool_call.function.arguments
+ })
+
+ claude_messages.append({
+ "role": "assistant",
+ "content": content_parts if content_parts else [{"type": "text", "text": ""}]
+ })
+
+ elif isinstance(message, ToolMessage):
+ claude_messages.append({
+ "role": "tool",
+ "tool_call_id": message.tool_call_id,
+ "content": message.content or ""
+ })
+
+ except Exception as e:
+ logger.error(f"Error converting message {getattr(message, 'id', 'unknown')}: {e}")
+ continue
+
+ return claude_messages
+
+
+def convert_claude_message_to_ag_ui(claude_message: Dict[str, Any]) -> Optional[Message]:
+ """Convert a Claude SDK message to an AG-UI message.
+
+ Args:
+ claude_message: Claude SDK message dictionary
+
+ Returns:
+ AG-UI message or None if not convertible
+
+ TODO: Adjust based on actual Claude SDK message format.
+ """
+ try:
+ role = claude_message.get("role")
+ content = claude_message.get("content", "")
+
+ if role == "user":
+ # Handle string or array content
+ if isinstance(content, str):
+ text = content
+ elif isinstance(content, list):
+ text = " ".join(
+ item.get("text", "") if isinstance(item, dict) else str(item)
+ for item in content
+ )
+ else:
+ text = str(content)
+
+ return UserMessage(
+ id=claude_message.get("id"),
+ role="user",
+ content=text
+ )
+
+ elif role == "assistant":
+ # Extract text and tool calls
+ text_parts = []
+ tool_calls = []
+
+ if isinstance(content, list):
+ for part in content:
+ if isinstance(part, dict):
+ if part.get("type") == "text":
+ text_parts.append(part.get("text", ""))
+ elif part.get("type") == "tool_use":
+ tool_calls.append(ToolCall(
+ id=part.get("id"),
+ type="function",
+ function=FunctionCall(
+ name=part.get("name", ""),
+ arguments=json.dumps(part.get("input", {}))
+ )
+ ))
+ elif isinstance(content, str):
+ text_parts.append(content)
+
+ return AssistantMessage(
+ id=claude_message.get("id"),
+ role="assistant",
+ content="\n".join(text_parts) if text_parts else None,
+ tool_calls=tool_calls if tool_calls else None
+ )
+
+ elif role == "tool":
+ return ToolMessage(
+ id=claude_message.get("id"),
+ role="tool",
+ tool_call_id=claude_message.get("tool_call_id"),
+ content=claude_message.get("content", "")
+ )
+
+ except Exception as e:
+ logger.error(f"Error converting Claude message: {e}")
+
+ return None
+
+
+def convert_state_to_json_patch(state_delta: Dict[str, Any]) -> List[Dict[str, Any]]:
+ """Convert a state delta to JSON Patch format (RFC 6902).
+
+ Args:
+ state_delta: Dictionary of state changes
+
+ Returns:
+ List of JSON Patch operations
+ """
+ patches = []
+
+ for key, value in state_delta.items():
+ if value is None:
+ patches.append({
+ "op": "remove",
+ "path": f"/{key}"
+ })
+ else:
+ patches.append({
+ "op": "add",
+ "path": f"/{key}",
+ "value": value
+ })
+
+ return patches
+
+
+def create_error_message(error: Exception, context: str = "") -> str:
+ """Create a user-friendly error message.
+
+ Args:
+ error: The exception
+ context: Additional context about where the error occurred
+
+ Returns:
+ Formatted error message
+ """
+ error_type = type(error).__name__
+ error_msg = str(error)
+
+ if context:
+ return f"{context}: {error_type} - {error_msg}"
+ else:
+ return f"{error_type}: {error_msg}"
+
diff --git a/integrations/claude-agent-sdk/python/tests/__init__.py b/integrations/claude-agent-sdk/python/tests/__init__.py
new file mode 100644
index 000000000..1bd6ff3e8
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/__init__.py
@@ -0,0 +1,2 @@
+"""Tests for Claude Agent SDK integration."""
+
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/__init__.cpython-312.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/__init__.cpython-312.pyc
new file mode 100644
index 000000000..40f07dde3
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/__init__.cpython-312.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..eea1b6f11
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_claude_agent.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_claude_agent.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..bbb9da072
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_claude_agent.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_endpoint.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_endpoint.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..b0e21f9de
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_endpoint.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_event_translator.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_event_translator.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..3e0fe14b4
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_event_translator.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_basic.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_basic.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..d5cece3a8
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_basic.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_sessions.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_sessions.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..db57a31b0
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_sessions.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_tools.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_tools.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..e382c6c38
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_integration_tools.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_real_api.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_real_api.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..1374019e9
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_real_api.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_session_manager.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_session_manager.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..4a5c15317
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_session_manager.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/__pycache__/test_tool_adapter.cpython-312-pytest-8.4.2.pyc b/integrations/claude-agent-sdk/python/tests/__pycache__/test_tool_adapter.cpython-312-pytest-8.4.2.pyc
new file mode 100644
index 000000000..7d1d6685c
Binary files /dev/null and b/integrations/claude-agent-sdk/python/tests/__pycache__/test_tool_adapter.cpython-312-pytest-8.4.2.pyc differ
diff --git a/integrations/claude-agent-sdk/python/tests/conftest.py b/integrations/claude-agent-sdk/python/tests/conftest.py
new file mode 100644
index 000000000..2d0f5f900
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/conftest.py
@@ -0,0 +1,219 @@
+"""Pytest configuration and shared fixtures for Claude Agent SDK tests."""
+
+import os
+import pytest
+from pathlib import Path
+from unittest.mock import Mock, MagicMock, AsyncMock
+from types import SimpleNamespace
+
+# Load environment variables from .env.local if it exists
+try:
+ from dotenv import load_dotenv
+
+ # Get the project root directory (integrations/claude-agent-sdk/python)
+ project_root = Path(__file__).parent.parent
+
+ # Try to load .env.local first, then fall back to .env
+ env_local = project_root / ".env.local"
+ env_file = project_root / ".env"
+
+ if env_local.exists():
+ load_dotenv(env_local, override=True)
+ print(f"Loaded environment variables from {env_local}")
+ elif env_file.exists():
+ load_dotenv(env_file, override=True)
+ print(f"Loaded environment variables from {env_file}")
+except ImportError:
+ # python-dotenv not installed, skip loading
+ pass
+
+try:
+ from ag_ui.core import RunAgentInput, UserMessage, Tool as AGUITool
+except ImportError:
+ pass
+
+try:
+ from claude_agent_sdk import (
+ ClaudeSDKClient,
+ ClaudeAgentOptions,
+ AssistantMessage,
+ TextBlock,
+ ToolUseBlock,
+ ResultMessage,
+ )
+except ImportError:
+ # Type checking fallback
+ pass
+
+
+@pytest.fixture(autouse=True)
+def reset_session_manager():
+ """Reset session manager before and after each test."""
+ from ag_ui_claude.session_manager import SessionManager
+
+ try:
+ SessionManager.reset_instance()
+ except (RuntimeError, AttributeError):
+ # Event loop may be closed or instance not initialized - ignore
+ pass
+
+ yield
+
+ # Cleanup after test
+ try:
+ SessionManager.reset_instance()
+ except (RuntimeError, AttributeError):
+ pass
+
+
+@pytest.fixture
+def mock_claude_sdk_client():
+ """Create a mock ClaudeSDKClient."""
+ client = AsyncMock(spec=ClaudeSDKClient)
+
+ # Mock the query method
+ async def mock_query(prompt: str):
+ pass
+
+ # Mock the receive_response method
+ async def mock_receive_response():
+ # Return empty generator by default
+ if False:
+ yield
+
+ client.query = AsyncMock(side_effect=mock_query)
+ client.receive_response = AsyncMock(side_effect=mock_receive_response)
+
+ return client
+
+
+@pytest.fixture
+def mock_claude_agent_options():
+ """Create a mock ClaudeAgentOptions."""
+ options = Mock(spec=ClaudeAgentOptions)
+ options.system_prompt = None
+ options.permission_mode = None
+ options.allowed_tools = None
+ options.mcp_servers = None
+ return options
+
+
+@pytest.fixture
+def sample_run_agent_input():
+ """Create a sample RunAgentInput for testing."""
+ return RunAgentInput(
+ thread_id="test_thread_001",
+ run_id="test_run_001",
+ messages=[
+ UserMessage(
+ id="msg_1",
+ role="user",
+ content="Hello, Claude!"
+ )
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+
+@pytest.fixture
+def sample_ag_ui_tool():
+ """Create a sample AG-UI Tool for testing."""
+ return AGUITool(
+ name="get_weather",
+ description="Get the current weather",
+ parameters={
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The city and state"
+ }
+ },
+ "required": ["location"]
+ }
+ )
+
+
+@pytest.fixture
+def mock_assistant_message_with_text():
+ """Create a mock AssistantMessage with TextBlock."""
+ text_block = SimpleNamespace()
+ text_block.text = "Hello! How can I help you?"
+
+ # Create a class that mimics AssistantMessage
+ class MockAssistantMessage:
+ def __init__(self):
+ self.content = [text_block]
+
+ message = MockAssistantMessage()
+ return message
+
+
+@pytest.fixture
+def mock_assistant_message_with_tool():
+ """Create a mock AssistantMessage with ToolUseBlock."""
+ tool_block = SimpleNamespace()
+ tool_block.id = "tool_call_123"
+ tool_block.name = "get_weather"
+ tool_block.input = {"location": "San Francisco"}
+
+ class MockAssistantMessage:
+ def __init__(self):
+ self.content = [tool_block]
+
+ message = MockAssistantMessage()
+ return message
+
+
+@pytest.fixture
+def mock_result_message_success():
+ """Create a mock ResultMessage indicating success."""
+ class MockResultMessage:
+ def __init__(self):
+ self.subtype = "success"
+
+ message = MockResultMessage()
+ return message
+
+
+@pytest.fixture
+def mock_result_message_error():
+ """Create a mock ResultMessage indicating error."""
+ class MockResultMessage:
+ def __init__(self):
+ self.subtype = "error"
+
+ message = MockResultMessage()
+ return message
+
+
+@pytest.fixture
+def claude_agent_persistent():
+ """Create a ClaudeAgent instance with persistent sessions."""
+ from ag_ui_claude import ClaudeAgent
+
+ return ClaudeAgent(
+ use_persistent_sessions=True,
+ app_name="test_app",
+ user_id="test_user",
+ execution_timeout_seconds=60,
+ max_concurrent_executions=5
+ )
+
+
+@pytest.fixture
+def claude_agent_stateless():
+ """Create a ClaudeAgent instance with stateless mode."""
+ from ag_ui_claude import ClaudeAgent
+
+ return ClaudeAgent(
+ use_persistent_sessions=False,
+ app_name="test_app",
+ user_id="test_user",
+ execution_timeout_seconds=60,
+ max_concurrent_executions=5
+ )
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_claude_agent.py b/integrations/claude-agent-sdk/python/tests/test_claude_agent.py
new file mode 100644
index 000000000..79f5aa765
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_claude_agent.py
@@ -0,0 +1,264 @@
+"""Tests for ClaudeAgent middleware."""
+
+import pytest
+import asyncio
+from unittest.mock import Mock, MagicMock, AsyncMock, patch, call
+from types import SimpleNamespace
+
+from ag_ui_claude import ClaudeAgent, SessionManager
+from ag_ui.core import (
+ RunAgentInput, EventType, UserMessage, SystemMessage,
+ RunStartedEvent, RunFinishedEvent, RunErrorEvent,
+ TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent,
+ ToolCallStartEvent, ToolCallEndEvent
+)
+
+
+class TestClaudeAgent:
+ """Test cases for ClaudeAgent."""
+
+ @pytest.fixture(autouse=True)
+ def reset_session_manager(self):
+ """Reset session manager before each test."""
+ SessionManager.reset_instance()
+ yield
+ SessionManager.reset_instance()
+
+ @pytest.fixture
+ def claude_agent_persistent(self):
+ """Create ClaudeAgent with persistent sessions."""
+ return ClaudeAgent(
+ use_persistent_sessions=True,
+ app_name="test_app",
+ user_id="test_user",
+ execution_timeout_seconds=60,
+ max_concurrent_executions=5
+ )
+
+ @pytest.fixture
+ def claude_agent_stateless(self):
+ """Create ClaudeAgent with stateless mode."""
+ return ClaudeAgent(
+ use_persistent_sessions=False,
+ app_name="test_app",
+ user_id="test_user",
+ execution_timeout_seconds=60,
+ max_concurrent_executions=5
+ )
+
+ @pytest.fixture
+ def sample_input(self):
+ """Create a sample RunAgentInput."""
+ return RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(
+ id="msg_1",
+ role="user",
+ content="Hello!"
+ )
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ def test_initialization_persistent(self):
+ """Test ClaudeAgent initialization with persistent sessions."""
+ agent = ClaudeAgent(
+ use_persistent_sessions=True,
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ assert agent._use_persistent_sessions is True
+ assert agent._static_app_name == "test_app"
+ assert agent._static_user_id == "test_user"
+
+ def test_initialization_stateless(self):
+ """Test ClaudeAgent initialization with stateless mode."""
+ agent = ClaudeAgent(
+ use_persistent_sessions=False,
+ app_name="test_app"
+ )
+
+ assert agent._use_persistent_sessions is False
+
+ def test_initialization_with_claude_options(self):
+ """Test initialization with ClaudeAgentOptions."""
+ from claude_agent_sdk import ClaudeAgentOptions
+
+ options = ClaudeAgentOptions(system_prompt="Test prompt")
+ agent = ClaudeAgent(
+ claude_options=options,
+ app_name="test_app"
+ )
+
+ assert agent._claude_options == options
+
+ def test_app_name_extraction(self, claude_agent_persistent, sample_input):
+ """Test app name extraction."""
+ app_name = claude_agent_persistent._get_app_name(sample_input)
+ assert app_name == "test_app"
+
+ def test_user_id_extraction(self, claude_agent_persistent, sample_input):
+ """Test user ID extraction."""
+ user_id = claude_agent_persistent._get_user_id(sample_input)
+ assert user_id == "test_user"
+
+ @pytest.mark.asyncio
+ async def test_get_unseen_messages(self, claude_agent_persistent, sample_input):
+ """Test unseen messages extraction."""
+ unseen = await claude_agent_persistent._get_unseen_messages(sample_input)
+ assert len(unseen) == 1
+ assert unseen[0].content == "Hello!"
+
+ @pytest.mark.asyncio
+ async def test_get_unseen_messages_with_processed(self, claude_agent_persistent, sample_input):
+ """Test unseen messages with processed message IDs."""
+ # Mark message as processed
+ claude_agent_persistent._session_manager.mark_messages_processed(
+ "test_app",
+ "test_thread",
+ ["msg_1"]
+ )
+
+ unseen = await claude_agent_persistent._get_unseen_messages(sample_input)
+ assert len(unseen) == 0
+
+ @pytest.mark.asyncio
+ async def test_extract_user_prompt(self, claude_agent_persistent):
+ """Test user prompt extraction."""
+ messages = [
+ UserMessage(id="1", role="user", content="First message"),
+ UserMessage(id="2", role="user", content="Second message")
+ ]
+
+ prompt = await claude_agent_persistent._extract_user_prompt(messages)
+ assert prompt == "Second message"
+
+ @pytest.mark.asyncio
+ async def test_extract_user_prompt_empty(self, claude_agent_persistent):
+ """Test user prompt extraction with empty messages."""
+ prompt = await claude_agent_persistent._extract_user_prompt([])
+ assert prompt == ""
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.ClaudeSDKClient')
+ async def test_get_claude_client_persistent(self, mock_client_class, claude_agent_persistent):
+ """Test getting Claude client in persistent mode."""
+ mock_client = AsyncMock()
+ mock_client_class.return_value = mock_client
+
+ session_key = "test_app:test_thread"
+ client = claude_agent_persistent._get_claude_client(session_key)
+
+ assert client is not None
+ mock_client_class.assert_called_once()
+
+ @pytest.mark.asyncio
+ async def test_get_claude_client_stateless(self, claude_agent_stateless):
+ """Test getting Claude client in stateless mode."""
+ session_key = "test_app:test_thread"
+ client = claude_agent_stateless._get_claude_client(session_key)
+
+ assert client is None
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.claude_query')
+ async def test_call_claude_sdk_stateless(self, mock_query, claude_agent_stateless):
+ """Test calling Claude SDK in stateless mode."""
+ # Mock messages - use MagicMock instead of SimpleNamespace with __class__ assignment
+ mock_message = MagicMock()
+
+ async def mock_query_gen():
+ yield mock_message
+
+ mock_query.return_value = mock_query_gen()
+
+ messages = []
+ async for msg in claude_agent_stateless._call_claude_sdk(None, "test prompt", None):
+ messages.append(msg)
+
+ assert len(messages) == 1
+ mock_query.assert_called_once()
+
+ @pytest.mark.asyncio
+ async def test_is_tool_result_submission_true(self, claude_agent_persistent):
+ """Test detecting tool result submission."""
+ from ag_ui.core import ToolMessage
+
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(id="1", role="user", content="Hello"),
+ ToolMessage(id="2", role="tool", tool_call_id="tool_1", content="result")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ is_tool_result = await claude_agent_persistent._is_tool_result_submission(input_data)
+ assert is_tool_result is True
+
+ @pytest.mark.asyncio
+ async def test_is_tool_result_submission_false(self, claude_agent_persistent, sample_input):
+ """Test detecting non-tool result submission."""
+ is_tool_result = await claude_agent_persistent._is_tool_result_submission(sample_input)
+ assert is_tool_result is False
+
+ @pytest.mark.asyncio
+ async def test_prepare_request_options_no_tools(self, claude_agent_persistent):
+ """Test preparing request options without tools."""
+ options = await claude_agent_persistent._prepare_request_options(None)
+ assert options is None # Should return None when no tools provided
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.ClaudeAgentOptions')
+ @patch('ag_ui_claude.tool_adapter.ToolAdapter')
+ async def test_prepare_request_options_with_tools(
+ self, mock_tool_adapter, mock_options_class, claude_agent_persistent, sample_ag_ui_tool
+ ):
+ """Test preparing request options with tools."""
+ # Mock MCP server
+ mock_mcp_server = Mock()
+ mock_tool_adapter.create_mcp_server_for_tools.return_value = mock_mcp_server
+
+ # Mock options
+ mock_options = Mock()
+ mock_options_class.return_value = mock_options
+
+ tools = [sample_ag_ui_tool]
+ options = await claude_agent_persistent._prepare_request_options(tools)
+
+ assert options is not None
+ mock_tool_adapter.create_mcp_server_for_tools.assert_called_once()
+
+ @pytest.mark.asyncio
+ async def test_run_error_on_no_user_message(self, claude_agent_persistent):
+ """Test run() handles missing user message."""
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[], # No user messages
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ events = []
+ async for event in claude_agent_persistent.run(input_data):
+ events.append(event)
+
+ # Should emit RUN_STARTED and then handle the error
+ assert len(events) > 0
+ # Check if we got an error or finished event
+ event_types = [e.type for e in events]
+ assert EventType.RUN_STARTED in event_types
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_endpoint.py b/integrations/claude-agent-sdk/python/tests/test_endpoint.py
new file mode 100644
index 000000000..e46771d10
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_endpoint.py
@@ -0,0 +1,165 @@
+"""Tests for FastAPI endpoint integration."""
+
+import pytest
+from unittest.mock import Mock, AsyncMock, patch
+from fastapi.testclient import TestClient
+
+from ag_ui_claude.endpoint import add_claude_fastapi_endpoint, create_claude_app
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage, EventType, RunStartedEvent, RunFinishedEvent
+
+
+class TestAddClaudeFastAPIEndpoint:
+ """Test cases for add_claude_fastapi_endpoint."""
+
+ @pytest.fixture
+ def mock_agent(self):
+ """Create a mock ClaudeAgent."""
+ agent = AsyncMock(spec=ClaudeAgent)
+
+ async def mock_run(input_data):
+ yield RunStartedEvent(
+ type=EventType.RUN_STARTED,
+ thread_id=input_data.thread_id,
+ run_id=input_data.run_id
+ )
+ yield RunFinishedEvent(
+ type=EventType.RUN_FINISHED,
+ thread_id=input_data.thread_id,
+ run_id=input_data.run_id
+ )
+
+ agent.run = AsyncMock(side_effect=mock_run)
+ return agent
+
+ @pytest.fixture
+ def app(self, mock_agent):
+ """Create a FastAPI app with Claude endpoint."""
+ from fastapi import FastAPI
+
+ app = FastAPI()
+ add_claude_fastapi_endpoint(app, mock_agent, path="/chat")
+ return app
+
+ @pytest.fixture
+ def client(self, app):
+ """Create a test client."""
+ return TestClient(app)
+
+ def test_endpoint_exists(self, client):
+ """Test that the endpoint exists."""
+ # Test with invalid request to check endpoint exists
+ response = client.post("/chat", json={})
+ # Should not be 404
+ assert response.status_code != 404
+
+ def test_endpoint_accepts_run_agent_input(self, client, mock_agent):
+ """Test that endpoint accepts RunAgentInput."""
+ input_data = {
+ "thread_id": "test_thread",
+ "run_id": "test_run",
+ "messages": [
+ {
+ "id": "msg_1",
+ "role": "user",
+ "content": "Hello!"
+ }
+ ],
+ "state": {},
+ "context": [],
+ "tools": [],
+ "forwarded_props": {}
+ }
+
+ response = client.post("/chat", json=input_data)
+
+ # Should process the request (may return 200 or streaming response)
+ assert response.status_code in [200, 200] # Streaming may return 200
+
+ # Verify agent.run was called
+ assert mock_agent.run.called
+
+ def test_endpoint_streaming_response(self, client, mock_agent):
+ """Test that endpoint returns streaming response."""
+ input_data = {
+ "thread_id": "test_thread",
+ "run_id": "test_run",
+ "messages": [
+ {
+ "id": "msg_1",
+ "role": "user",
+ "content": "Hello!"
+ }
+ ],
+ "state": {},
+ "context": [],
+ "tools": [],
+ "forwarded_props": {}
+ }
+
+ response = client.post(
+ "/chat",
+ json=input_data,
+ headers={"Accept": "text/event-stream"}
+ )
+
+ # Should return streaming response
+ assert response.status_code == 200
+ # Content type should be for SSE
+ assert "text/event-stream" in response.headers.get("content-type", "").lower() or \
+ "application/x-ndjson" in response.headers.get("content-type", "").lower()
+
+ def test_endpoint_error_handling(self, client):
+ """Test endpoint error handling."""
+ # Create agent that raises error
+ error_agent = AsyncMock(spec=ClaudeAgent)
+
+ async def error_run(input_data):
+ raise Exception("Test error")
+
+ error_agent.run = AsyncMock(side_effect=error_run)
+
+ from fastapi import FastAPI
+ app = FastAPI()
+ add_claude_fastapi_endpoint(app, error_agent, path="/chat")
+
+ client = TestClient(app)
+
+ input_data = {
+ "thread_id": "test_thread",
+ "run_id": "test_run",
+ "messages": [],
+ "state": {},
+ "context": [],
+ "tools": [],
+ "forwarded_props": {}
+ }
+
+ response = client.post("/chat", json=input_data)
+
+ # Should handle error gracefully
+ assert response.status_code in [200, 500] # May return error event or 500
+
+
+class TestCreateClaudeApp:
+ """Test cases for create_claude_app."""
+
+ @pytest.fixture
+ def mock_agent(self):
+ """Create a mock ClaudeAgent."""
+ return AsyncMock(spec=ClaudeAgent)
+
+ def test_create_claude_app(self, mock_agent):
+ """Test creating Claude app."""
+ app = create_claude_app(mock_agent, path="/claude-chat")
+
+ assert app is not None
+ # Verify it's a FastAPI app
+ assert hasattr(app, "post")
+
+ def test_create_claude_app_default_path(self, mock_agent):
+ """Test creating Claude app with default path."""
+ app = create_claude_app(mock_agent)
+
+ assert app is not None
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_event_translator.py b/integrations/claude-agent-sdk/python/tests/test_event_translator.py
new file mode 100644
index 000000000..f93b02bab
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_event_translator.py
@@ -0,0 +1,241 @@
+"""Tests for EventTranslator."""
+
+import pytest
+from unittest.mock import Mock, MagicMock
+from types import SimpleNamespace
+
+from ag_ui_claude.event_translator import EventTranslator
+from ag_ui.core import (
+ EventType,
+ TextMessageStartEvent,
+ TextMessageContentEvent,
+ TextMessageEndEvent,
+ ToolCallStartEvent,
+ ToolCallArgsEvent,
+ ToolCallEndEvent,
+ ToolCallResultEvent,
+)
+
+
+class TestEventTranslator:
+ """Test cases for EventTranslator."""
+
+ @pytest.fixture
+ def translator(self):
+ """Create an EventTranslator instance."""
+ return EventTranslator()
+
+ def test_initialization(self, translator):
+ """Test EventTranslator initialization."""
+ assert translator._active_tool_calls == {}
+ assert translator._streaming_message_id is None
+ assert translator._is_streaming is False
+ assert translator._current_stream_text == ""
+
+ @pytest.mark.asyncio
+ async def test_translate_text_block(self, translator):
+ """Test translating TextBlock to AG-UI events."""
+ text_block = SimpleNamespace()
+ text_block.text = "Hello, world!"
+
+ events = []
+ async for event in translator._translate_text_block(text_block, "thread_1", "run_1"):
+ events.append(event)
+
+ assert len(events) == 2 # START + CONTENT
+ assert isinstance(events[0], TextMessageStartEvent)
+ assert isinstance(events[1], TextMessageContentEvent)
+ assert events[1].delta == "Hello, world!"
+
+ @pytest.mark.asyncio
+ async def test_translate_text_block_streaming(self, translator):
+ """Test translating multiple TextBlocks in sequence."""
+ # First block
+ block1 = SimpleNamespace()
+ block1.text = "Hello, "
+
+ events1 = []
+ async for event in translator._translate_text_block(block1, "thread_1", "run_1"):
+ events1.append(event)
+
+ # Second block
+ block2 = SimpleNamespace()
+ block2.text = "world!"
+
+ events2 = []
+ async for event in translator._translate_text_block(block2, "thread_1", "run_1"):
+ events2.append(event)
+
+ # Should have START from first, CONTENT from both
+ assert len(events1) == 2
+ assert len(events2) == 1 # Only CONTENT, reusing message_id
+ assert events2[0].delta == "world!"
+
+ @pytest.mark.asyncio
+ async def test_translate_tool_use_block(self, translator):
+ """Test translating ToolUseBlock to AG-UI events."""
+ tool_block = SimpleNamespace()
+ tool_block.id = "tool_call_123"
+ tool_block.name = "get_weather"
+ tool_block.input = {"location": "San Francisco"}
+
+ events = []
+ async for event in translator._translate_tool_use_block(tool_block):
+ events.append(event)
+
+ assert len(events) >= 3 # START, ARGS, END
+ assert isinstance(events[0], ToolCallStartEvent)
+ assert events[0].tool_call_id == "tool_call_123"
+ assert events[0].tool_call_name == "get_weather"
+ assert isinstance(events[-1], ToolCallEndEvent)
+
+ @pytest.mark.asyncio
+ async def test_translate_tool_result_block(self, translator):
+ """Test translating ToolResultBlock to AG-UI events."""
+ tool_result_block = SimpleNamespace()
+ tool_result_block.tool_use_id = "tool_call_123"
+ tool_result_block.content = "Sunny, 72°F"
+ tool_result_block.is_error = False
+
+ events = []
+ async for event in translator._translate_tool_result_block(tool_result_block):
+ events.append(event)
+
+ assert len(events) == 1
+ assert isinstance(events[0], ToolCallResultEvent)
+ assert events[0].tool_call_id == "tool_call_123"
+
+ @pytest.mark.asyncio
+ async def test_translate_tool_result_block_error(self, translator):
+ """Test translating ToolResultBlock with error."""
+ tool_result_block = SimpleNamespace()
+ tool_result_block.tool_use_id = "tool_call_123"
+ tool_result_block.content = "Error occurred"
+ tool_result_block.is_error = True
+
+ events = []
+ async for event in translator._translate_tool_result_block(tool_result_block):
+ events.append(event)
+
+ assert len(events) == 1
+ assert isinstance(events[0], ToolCallResultEvent)
+ # Error should be marked in content
+ assert "error" in events[0].content.lower() or "true" in events[0].content.lower()
+
+ @pytest.mark.asyncio
+ async def test_translate_assistant_message_text(self, translator):
+ """Test translating AssistantMessage with TextBlock."""
+ text_block = SimpleNamespace()
+ text_block.text = "Hello!"
+
+ message = SimpleNamespace()
+ message.content = [text_block]
+
+ events = []
+ async for event in translator._translate_assistant_message(message, "thread_1", "run_1"):
+ events.append(event)
+
+ assert len(events) >= 1
+ assert any(isinstance(e, TextMessageStartEvent) for e in events)
+ assert any(isinstance(e, TextMessageContentEvent) for e in events)
+
+ @pytest.mark.asyncio
+ async def test_translate_assistant_message_tool(self, translator):
+ """Test translating AssistantMessage with ToolUseBlock."""
+ tool_block = SimpleNamespace()
+ tool_block.id = "tool_1"
+ tool_block.name = "test_tool"
+ tool_block.input = {}
+
+ message = SimpleNamespace()
+ message.content = [tool_block]
+
+ events = []
+ async for event in translator._translate_assistant_message(message, "thread_1", "run_1"):
+ events.append(event)
+
+ assert len(events) >= 1
+ assert any(isinstance(e, ToolCallStartEvent) for e in events)
+
+ @pytest.mark.asyncio
+ async def test_translate_result_message_success(self, translator):
+ """Test translating ResultMessage with success."""
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+
+ events = []
+ async for event in translator.translate_claude_message(result_message, "thread_1", "run_1"):
+ events.append(event)
+
+ # Should close any streaming messages
+ assert len(events) >= 0 # May have force_close_streaming_message events
+
+ @pytest.mark.asyncio
+ async def test_force_close_streaming_message(self, translator):
+ """Test force closing streaming message."""
+ # Start streaming
+ text_block = SimpleNamespace()
+ text_block.text = "Hello"
+
+ async for _ in translator._translate_text_block(text_block, "thread_1", "run_1"):
+ pass
+
+ # Force close
+ events = []
+ async for event in translator.force_close_streaming_message():
+ events.append(event)
+
+ assert len(events) == 1
+ assert isinstance(events[0], TextMessageEndEvent)
+ assert translator._is_streaming is False
+
+ @pytest.mark.asyncio
+ async def test_force_close_no_streaming(self, translator):
+ """Test force close when not streaming."""
+ events = []
+ async for event in translator.force_close_streaming_message():
+ events.append(event)
+
+ assert len(events) == 0
+
+ def test_reset(self, translator):
+ """Test resetting translator state."""
+ # Set some state
+ translator._streaming_message_id = "msg_123"
+ translator._is_streaming = True
+ translator._active_tool_calls["tool_1"] = "tool_1"
+
+ translator.reset()
+
+ assert translator._streaming_message_id is None
+ assert translator._is_streaming is False
+ assert translator._active_tool_calls == {}
+
+ @pytest.mark.asyncio
+ async def test_translate_claude_message_assistant(self, translator):
+ """Test translating AssistantMessage."""
+ text_block = SimpleNamespace()
+ text_block.text = "Response"
+
+ message = SimpleNamespace()
+ message.content = [text_block]
+
+ events = []
+ async for event in translator.translate_claude_message(message, "thread_1", "run_1"):
+ events.append(event)
+
+ assert len(events) > 0
+
+ @pytest.mark.asyncio
+ async def test_translate_claude_message_result(self, translator):
+ """Test translating ResultMessage."""
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+
+ events = []
+ async for event in translator.translate_claude_message(result_message, "thread_1", "run_1"):
+ events.append(event)
+
+ # Should handle result message
+ assert isinstance(events, list)
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_integration_basic.py b/integrations/claude-agent-sdk/python/tests/test_integration_basic.py
new file mode 100644
index 000000000..d91762248
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_integration_basic.py
@@ -0,0 +1,170 @@
+"""Integration tests for basic Claude Agent SDK functionality."""
+
+import pytest
+from unittest.mock import Mock, AsyncMock, patch
+from types import SimpleNamespace
+
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage, EventType, RunStartedEvent, RunFinishedEvent
+
+
+class TestBasicIntegration:
+ """Basic integration tests."""
+
+ @pytest.fixture(autouse=True)
+ def reset_session_manager(self):
+ """Reset session manager."""
+ from ag_ui_claude.session_manager import SessionManager
+ SessionManager.reset_instance()
+ yield
+ SessionManager.reset_instance()
+
+ @pytest.fixture
+ def claude_agent(self):
+ """Create ClaudeAgent instance."""
+ return ClaudeAgent(
+ use_persistent_sessions=False, # Use stateless for simpler testing
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.claude_query')
+ async def test_basic_conversation_flow(self, mock_query, claude_agent):
+ """Test basic conversation flow."""
+ # Mock Claude SDK response
+ text_block = SimpleNamespace()
+ text_block.text = "Hello! How can I help you?"
+
+ assistant_message = SimpleNamespace()
+ assistant_message.content = [text_block]
+
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+
+ async def mock_query_gen():
+ yield assistant_message
+ yield result_message
+
+ mock_query.return_value = mock_query_gen()
+
+ # Create input
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="Hello!")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ # Run agent
+ events = []
+ async for event in claude_agent.run(input_data):
+ events.append(event)
+
+ # Verify events
+ assert len(events) > 0
+
+ # Should have RUN_STARTED
+ event_types = [e.type for e in events]
+ assert EventType.RUN_STARTED in event_types
+
+ # Should have RUN_FINISHED
+ assert EventType.RUN_FINISHED in event_types
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.ClaudeSDKClient')
+ async def test_persistent_session_flow(self, mock_client_class, claude_agent):
+ """Test persistent session flow."""
+ # Switch to persistent mode
+ claude_agent._use_persistent_sessions = True
+
+ # Mock client
+ mock_client = AsyncMock()
+ mock_client.query = AsyncMock()
+
+ async def mock_receive():
+ text_block = SimpleNamespace()
+ text_block.text = "Response"
+
+ message = SimpleNamespace()
+ message.__class__ = type('AssistantMessage', (), {})
+ message.content = [text_block]
+
+ result_message = SimpleNamespace()
+ result_message.__class__ = type('ResultMessage', (), {})
+ result_message.subtype = "success"
+
+ yield message
+ yield result_message
+
+ mock_client.receive_response = AsyncMock(side_effect=mock_receive)
+ mock_client_class.return_value = mock_client
+
+ # Create input
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="Hello!")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ # Run agent
+ events = []
+ async for event in claude_agent.run(input_data):
+ events.append(event)
+
+ # Verify client was used
+ assert mock_client.query.called
+
+ @pytest.mark.asyncio
+ async def test_event_sequence(self, claude_agent):
+ """Test that events are emitted in correct sequence."""
+ with patch('ag_ui_claude.claude_agent.claude_query') as mock_query:
+ # Mock response
+ text_block = SimpleNamespace()
+ text_block.text = "Test"
+
+ message = SimpleNamespace()
+ message.content = [text_block]
+
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+
+ async def mock_gen():
+ yield message
+ yield result_message
+
+ mock_query.return_value = mock_gen()
+
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="Test")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ events = []
+ async for event in claude_agent.run(input_data):
+ events.append(event)
+
+ # Check sequence: RUN_STARTED should come first
+ assert events[0].type == EventType.RUN_STARTED
+
+ # RUN_FINISHED should come last
+ assert events[-1].type == EventType.RUN_FINISHED
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_integration_sessions.py b/integrations/claude-agent-sdk/python/tests/test_integration_sessions.py
new file mode 100644
index 000000000..1fdbf84a1
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_integration_sessions.py
@@ -0,0 +1,162 @@
+"""Integration tests for session management."""
+
+import pytest
+from unittest.mock import Mock, AsyncMock, patch
+from types import SimpleNamespace
+
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage, EventType
+
+
+class TestSessionIntegration:
+ """Session integration tests."""
+
+ @pytest.fixture(autouse=True)
+ def reset_session_manager(self):
+ """Reset session manager."""
+ from ag_ui_claude.session_manager import SessionManager
+ SessionManager.reset_instance()
+ yield
+ SessionManager.reset_instance()
+
+ @pytest.fixture
+ def claude_agent_persistent(self):
+ """Create ClaudeAgent with persistent sessions."""
+ return ClaudeAgent(
+ use_persistent_sessions=True,
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.ClaudeSDKClient')
+ async def test_persistent_session_reuse(self, mock_client_class, claude_agent_persistent):
+ """Test that persistent sessions reuse clients."""
+ mock_client = AsyncMock()
+ mock_client.query = AsyncMock()
+
+ async def mock_receive():
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+ yield result_message
+
+ mock_client.receive_response = mock_receive
+ mock_client_class.return_value = mock_client
+
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run_1",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="First message")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ # First run
+ events1 = []
+ async for event in claude_agent_persistent.run(input_data):
+ events1.append(event)
+
+ # Second run with same thread_id
+ input_data2 = RunAgentInput(
+ thread_id="test_thread", # Same thread
+ run_id="test_run_2",
+ messages=[
+ UserMessage(id="msg_2", role="user", content="Second message")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ events2 = []
+ async for event in claude_agent_persistent.run(input_data2):
+ events2.append(event)
+
+ # Client should be reused (created once)
+ assert mock_client_class.call_count == 1
+
+ @pytest.mark.asyncio
+ async def test_stateless_session_no_reuse(self, claude_agent_persistent):
+ """Test that stateless mode doesn't reuse sessions."""
+ claude_agent_persistent._use_persistent_sessions = False
+
+ with patch('ag_ui_claude.claude_agent.claude_query') as mock_query:
+ async def mock_gen():
+ result_message = SimpleNamespace()
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+ yield result_message
+
+ mock_query.return_value = mock_gen()
+
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="Hello")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ events = []
+ async for event in claude_agent_persistent.run(input_data):
+ events.append(event)
+
+ # Should use query() function directly
+ assert mock_query.called
+
+ @pytest.mark.asyncio
+ async def test_message_deduplication(self, claude_agent_persistent):
+ """Test message deduplication across runs."""
+ with patch('ag_ui_claude.claude_agent.claude_query') as mock_query:
+ async def mock_gen():
+ result_message = SimpleNamespace()
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+ yield result_message
+
+ mock_query.return_value = mock_gen()
+
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run_1",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="First")
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ # First run
+ async for _ in claude_agent_persistent.run(input_data):
+ pass
+
+ # Second run with same message
+ input_data2 = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run_2",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="First"), # Same message
+ UserMessage(id="msg_2", role="user", content="Second") # New message
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ # Should only process unseen messages
+ unseen = await claude_agent_persistent._get_unseen_messages(input_data2)
+ assert len(unseen) == 1 # Only msg_2 should be unseen
+ assert unseen[0].id == "msg_2"
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_integration_tools.py b/integrations/claude-agent-sdk/python/tests/test_integration_tools.py
new file mode 100644
index 000000000..ce2712653
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_integration_tools.py
@@ -0,0 +1,150 @@
+"""Integration tests for tool calling functionality."""
+
+import pytest
+from unittest.mock import Mock, AsyncMock, patch
+from types import SimpleNamespace
+
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage, Tool as AGUITool, ToolMessage, EventType
+
+
+class TestToolIntegration:
+ """Tool integration tests."""
+
+ @pytest.fixture(autouse=True)
+ def reset_session_manager(self):
+ """Reset session manager."""
+ from ag_ui_claude.session_manager import SessionManager
+ SessionManager.reset_instance()
+ yield
+ SessionManager.reset_instance()
+
+ @pytest.fixture
+ def claude_agent(self):
+ """Create ClaudeAgent instance."""
+ return ClaudeAgent(
+ use_persistent_sessions=False,
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ @pytest.fixture
+ def sample_tool(self):
+ """Create a sample tool."""
+ return AGUITool(
+ name="get_weather",
+ description="Get weather",
+ parameters={
+ "type": "object",
+ "properties": {
+ "location": {"type": "string"}
+ },
+ "required": ["location"]
+ }
+ )
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.claude_query')
+ async def test_tool_call_flow(self, mock_query, claude_agent, sample_tool):
+ """Test tool call flow."""
+ # Mock tool use block
+ tool_block = SimpleNamespace()
+ tool_block.id = "tool_call_123"
+ tool_block.name = "get_weather"
+ tool_block.input = {"location": "San Francisco"}
+
+ message = SimpleNamespace()
+ message.content = [tool_block]
+
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+
+ async def mock_gen():
+ yield message
+ yield result_message
+
+ mock_query.return_value = mock_gen()
+
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="What's the weather?")
+ ],
+ state={},
+ context=[],
+ tools=[sample_tool],
+ forwarded_props={}
+ )
+
+ events = []
+ async for event in claude_agent.run(input_data):
+ events.append(event)
+
+ # Should have tool call events
+ event_types = [e.type for e in events]
+ assert EventType.TOOL_CALL_START in event_types
+ assert EventType.TOOL_CALL_END in event_types
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.claude_agent.claude_query')
+ async def test_tool_result_submission(self, mock_query, claude_agent, sample_tool):
+ """Test tool result submission flow."""
+ # Mock response after tool result
+ text_block = SimpleNamespace()
+ text_block.text = "The weather is sunny."
+
+ message = SimpleNamespace()
+ message.content = [text_block]
+
+ result_message = SimpleNamespace()
+ result_message.subtype = "success"
+
+ async def mock_gen():
+ yield message
+ yield result_message
+
+ mock_query.return_value = mock_gen()
+
+ # Input with tool result
+ from ag_ui.core import AssistantMessage as AGUIAssistantMessage, ToolCall, FunctionCall
+
+ input_data = RunAgentInput(
+ thread_id="test_thread",
+ run_id="test_run",
+ messages=[
+ UserMessage(id="msg_1", role="user", content="What's the weather?"),
+ AGUIAssistantMessage(
+ id="msg_2",
+ role="assistant",
+ content="",
+ tool_calls=[
+ ToolCall(
+ id="tool_call_123",
+ function=FunctionCall(
+ name="get_weather",
+ arguments='{"location": "San Francisco"}'
+ )
+ )
+ ]
+ ),
+ ToolMessage(
+ id="msg_3",
+ role="tool",
+ tool_call_id="tool_call_123",
+ content="Sunny, 72°F"
+ )
+ ],
+ state={},
+ context=[],
+ tools=[sample_tool],
+ forwarded_props={}
+ )
+
+ events = []
+ async for event in claude_agent.run(input_data):
+ events.append(event)
+
+ # Should process tool result and continue
+ assert len(events) > 0
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_real_api.py b/integrations/claude-agent-sdk/python/tests/test_real_api.py
new file mode 100644
index 000000000..4427a235e
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_real_api.py
@@ -0,0 +1,110 @@
+"""Optional real API tests for Claude Agent SDK integration.
+
+These tests require authentication credentials (ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY).
+Skip if not available.
+"""
+
+import pytest
+import os
+
+from ag_ui_claude import ClaudeAgent
+from ag_ui.core import RunAgentInput, UserMessage
+
+
+def has_auth_credentials():
+ """Check if any authentication credentials are available."""
+ return bool(os.getenv("ANTHROPIC_AUTH_TOKEN") or os.getenv("ANTHROPIC_API_KEY"))
+
+
+@pytest.mark.skipif(
+ not has_auth_credentials(),
+ reason="No authentication credentials found (ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY) - skipping real API tests"
+)
+class TestRealAPI:
+ """Real API integration tests (optional)."""
+
+ @pytest.fixture(autouse=True)
+ def reset_session_manager(self):
+ """Reset session manager."""
+ from ag_ui_claude.session_manager import SessionManager
+ SessionManager.reset_instance()
+ yield
+ SessionManager.reset_instance()
+
+ @pytest.fixture
+ def claude_agent(self):
+ """Create ClaudeAgent with real API."""
+ return ClaudeAgent(
+ use_persistent_sessions=False, # Use stateless for simpler testing
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ @pytest.mark.asyncio
+ @pytest.mark.integration
+ async def test_real_api_basic_conversation(self, claude_agent):
+ """Test basic conversation with real API."""
+ input_data = RunAgentInput(
+ thread_id="test_thread_real",
+ run_id="test_run_real",
+ messages=[
+ UserMessage(
+ id="msg_1",
+ role="user",
+ content="Say hello in exactly 3 words."
+ )
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ events = []
+ try:
+ async for event in claude_agent.run(input_data):
+ events.append(event)
+ print(f"Event: {event.type}")
+ except Exception as e:
+ pytest.fail(f"Real API test failed: {e}")
+
+ # Should have events
+ assert len(events) > 0
+
+ # Should have RUN_STARTED and RUN_FINISHED
+ event_types = [e.type for e in events]
+ assert "RUN_STARTED" in str(event_types)
+ assert "RUN_FINISHED" in str(event_types)
+
+ @pytest.mark.asyncio
+ @pytest.mark.integration
+ async def test_real_api_with_system_message(self, claude_agent):
+ """Test with system message."""
+ from ag_ui.core import SystemMessage
+
+ input_data = RunAgentInput(
+ thread_id="test_thread_system",
+ run_id="test_run_system",
+ messages=[
+ SystemMessage(id="sys_msg_1", content="You are a helpful assistant."),
+ UserMessage(
+ id="msg_1",
+ role="user",
+ content="What is 2+2?"
+ )
+ ],
+ state={},
+ context=[],
+ tools=[],
+ forwarded_props={}
+ )
+
+ events = []
+ try:
+ async for event in claude_agent.run(input_data):
+ events.append(event)
+ except Exception as e:
+ pytest.fail(f"Real API test with system message failed: {e}")
+
+ assert len(events) > 0
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_session_manager.py b/integrations/claude-agent-sdk/python/tests/test_session_manager.py
new file mode 100644
index 000000000..fbff235d9
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_session_manager.py
@@ -0,0 +1,301 @@
+"""Tests for SessionManager."""
+
+import pytest
+import asyncio
+from ag_ui_claude.session_manager import SessionManager
+
+
+class TestSessionManager:
+ """Test cases for SessionManager."""
+
+ @pytest.fixture(autouse=True)
+ def reset_session_manager(self):
+ """Reset session manager before and after each test."""
+ SessionManager.reset_instance()
+ yield
+ SessionManager.reset_instance()
+
+ @pytest.mark.asyncio
+ async def test_get_or_create_session_new(self):
+ """Test creating a new session."""
+ manager = SessionManager.get_instance()
+
+ session_state = await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ initial_state={"key": "value"}
+ )
+
+ assert session_state is not None
+ assert isinstance(session_state, dict)
+
+ @pytest.mark.asyncio
+ async def test_get_or_create_session_existing(self):
+ """Test getting an existing session."""
+ manager = SessionManager.get_instance()
+
+ # Create session
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ initial_state={"key": "value"}
+ )
+
+ # Get existing session
+ session_state = await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ assert session_state is not None
+
+ @pytest.mark.asyncio
+ async def test_update_session_state(self):
+ """Test updating session state."""
+ manager = SessionManager.get_instance()
+
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ success = await manager.update_session_state(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ state_updates={"new_key": "new_value"}
+ )
+
+ assert success is True
+
+ state = await manager.get_session_state(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ assert state is not None
+ assert state.get("new_key") == "new_value"
+
+ @pytest.mark.asyncio
+ async def test_get_state_value(self):
+ """Test getting a specific state value."""
+ manager = SessionManager.get_instance()
+
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ initial_state={"key": "value"}
+ )
+
+ value = await manager.get_state_value(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ key="key"
+ )
+
+ assert value == "value"
+
+ @pytest.mark.asyncio
+ async def test_get_state_value_default(self):
+ """Test getting state value with default."""
+ manager = SessionManager.get_instance()
+
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ value = await manager.get_state_value(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ key="nonexistent",
+ default="default_value"
+ )
+
+ assert value == "default_value"
+
+ @pytest.mark.asyncio
+ async def test_set_state_value(self):
+ """Test setting a specific state value."""
+ manager = SessionManager.get_instance()
+
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ success = await manager.set_state_value(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ key="test_key",
+ value="test_value"
+ )
+
+ assert success is True
+
+ value = await manager.get_state_value(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ key="test_key"
+ )
+
+ assert value == "test_value"
+
+ @pytest.mark.asyncio
+ async def test_remove_state_keys(self):
+ """Test removing state keys."""
+ manager = SessionManager.get_instance()
+
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ initial_state={"key1": "value1", "key2": "value2"}
+ )
+
+ success = await manager.remove_state_keys(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ keys=["key1"]
+ )
+
+ assert success is True
+
+ value = await manager.get_state_value(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ key="key1"
+ )
+
+ assert value is None
+
+ @pytest.mark.asyncio
+ async def test_mark_messages_processed(self):
+ """Test marking messages as processed."""
+ manager = SessionManager.get_instance()
+
+ manager.mark_messages_processed(
+ app_name="test_app",
+ session_id="test_session",
+ message_ids=["msg_1", "msg_2"]
+ )
+
+ processed = manager.get_processed_message_ids("test_app", "test_session")
+ assert "msg_1" in processed
+ assert "msg_2" in processed
+
+ @pytest.mark.asyncio
+ async def test_get_processed_message_ids(self):
+ """Test getting processed message IDs."""
+ manager = SessionManager.get_instance()
+
+ manager.mark_messages_processed(
+ app_name="test_app",
+ session_id="test_session",
+ message_ids=["msg_1"]
+ )
+
+ processed = manager.get_processed_message_ids("test_app", "test_session")
+ assert "msg_1" in processed
+
+ def test_make_session_key(self):
+ """Test session key generation."""
+ manager = SessionManager.get_instance()
+
+ key = manager._make_session_key("test_app", "test_session")
+ assert key == "test_app:test_session"
+
+ def test_get_session_count(self):
+ """Test getting session count."""
+ manager = SessionManager.get_instance()
+
+ # Initially should be 0
+ count = manager.get_session_count()
+ assert count == 0
+
+ def test_get_user_session_count(self):
+ """Test getting user session count."""
+ manager = SessionManager.get_instance()
+
+ count = manager.get_user_session_count("test_user")
+ assert count == 0
+
+ @pytest.mark.asyncio
+ async def test_clear_session_state(self):
+ """Test clearing session state."""
+ manager = SessionManager.get_instance()
+
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ initial_state={"key1": "value1", "key2": "value2"}
+ )
+
+ success = await manager.clear_session_state(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ assert success is True
+
+ state = await manager.get_session_state(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user"
+ )
+
+ # State should be cleared or minimal
+ assert state is None or len(state) == 0
+
+ @pytest.mark.asyncio
+ async def test_clear_session_state_preserve_prefixes(self):
+ """Test clearing session state with preserved prefixes."""
+ manager = SessionManager.get_instance()
+
+ await manager.get_or_create_session(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ initial_state={"keep_this": "value", "remove_this": "value"}
+ )
+
+ success = await manager.clear_session_state(
+ session_id="test_session",
+ app_name="test_app",
+ user_id="test_user",
+ preserve_prefixes=["keep_"]
+ )
+
+ assert success is True
+
+ def test_singleton_pattern(self):
+ """Test that SessionManager is a singleton."""
+ manager1 = SessionManager.get_instance()
+ manager2 = SessionManager.get_instance()
+
+ assert manager1 is manager2
+
+ def test_reset_instance(self):
+ """Test resetting the singleton instance."""
+ manager1 = SessionManager.get_instance()
+ SessionManager.reset_instance()
+ manager2 = SessionManager.get_instance()
+
+ assert manager1 is not manager2
+
diff --git a/integrations/claude-agent-sdk/python/tests/test_tool_adapter.py b/integrations/claude-agent-sdk/python/tests/test_tool_adapter.py
new file mode 100644
index 000000000..ee7eb0230
--- /dev/null
+++ b/integrations/claude-agent-sdk/python/tests/test_tool_adapter.py
@@ -0,0 +1,136 @@
+"""Tests for ToolAdapter."""
+
+import pytest
+from unittest.mock import Mock, patch, MagicMock
+
+from ag_ui_claude.tool_adapter import ToolAdapter
+from ag_ui.core import Tool as AGUITool
+
+
+class TestToolAdapter:
+ """Test cases for ToolAdapter."""
+
+ @pytest.fixture
+ def sample_ag_ui_tool(self):
+ """Create a sample AG-UI Tool."""
+ return AGUITool(
+ name="get_weather",
+ description="Get the current weather",
+ parameters={
+ "type": "object",
+ "properties": {
+ "location": {
+ "type": "string",
+ "description": "The city and state"
+ },
+ "unit": {
+ "type": "string",
+ "enum": ["celsius", "fahrenheit"]
+ }
+ },
+ "required": ["location"]
+ }
+ )
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.tool_adapter.SdkMcpTool')
+ @patch('ag_ui_claude.tool_adapter.create_sdk_mcp_server')
+ async def test_convert_ag_ui_tool_to_claude(self, mock_sdk_tool, mock_mcp_server, sample_ag_ui_tool):
+ """Test converting AG-UI tool to Claude SDK format."""
+ # Mock SdkMcpTool
+ mock_tool_instance = Mock()
+ mock_sdk_tool.return_value = mock_tool_instance
+
+ try:
+ result = ToolAdapter.convert_ag_ui_tool_to_claude(sample_ag_ui_tool)
+ assert result is not None
+ except ImportError:
+ # If claude-agent-sdk is not installed, skip this test
+ pytest.skip("claude-agent-sdk not installed")
+
+ @pytest.mark.asyncio
+ async def test_convert_ag_ui_tools_to_claude(self, sample_ag_ui_tool):
+ """Test converting multiple AG-UI tools."""
+ tools = [sample_ag_ui_tool]
+
+ try:
+ result = ToolAdapter.convert_ag_ui_tools_to_claude(tools)
+ assert len(result) == 1
+ except ImportError:
+ pytest.skip("claude-agent-sdk not installed")
+
+ @pytest.mark.asyncio
+ @patch('ag_ui_claude.tool_adapter.create_sdk_mcp_server')
+ async def test_create_mcp_server_for_tools(self, mock_create_server, sample_ag_ui_tool):
+ """Test creating MCP server for tools."""
+ mock_server = Mock()
+ mock_create_server.return_value = mock_server
+
+ tools = [sample_ag_ui_tool]
+
+ try:
+ server = ToolAdapter.create_mcp_server_for_tools(
+ ag_ui_tools=tools,
+ server_name="test_server",
+ server_version="1.0.0"
+ )
+
+ assert server is not None
+ mock_create_server.assert_called_once()
+ except ImportError:
+ pytest.skip("claude-agent-sdk not installed")
+
+ def test_extract_tool_call_id(self):
+ """Test extracting tool call ID from ToolUseBlock."""
+ tool_block = Mock()
+ tool_block.id = "tool_call_123"
+
+ tool_id = ToolAdapter.extract_tool_call_id(tool_block)
+ assert tool_id == "tool_call_123"
+
+ def test_extract_tool_name(self):
+ """Test extracting tool name from ToolUseBlock."""
+ tool_block = Mock()
+ tool_block.name = "get_weather"
+
+ tool_name = ToolAdapter.extract_tool_name(tool_block)
+ assert tool_name == "get_weather"
+
+ def test_extract_tool_args(self):
+ """Test extracting tool arguments from ToolUseBlock."""
+ tool_block = Mock()
+ tool_block.input = {"location": "San Francisco"}
+
+ args = ToolAdapter.extract_tool_args(tool_block)
+ assert args == {"location": "San Francisco"}
+
+ def test_extract_tool_args_empty(self):
+ """Test extracting tool arguments when input is empty."""
+ tool_block = Mock()
+ tool_block.input = {}
+
+ args = ToolAdapter.extract_tool_args(tool_block)
+ assert args == {}
+
+ def test_is_long_running_tool(self, sample_ag_ui_tool):
+ """Test checking if tool is long-running."""
+ is_lro = ToolAdapter.is_long_running_tool(sample_ag_ui_tool)
+ # Currently all client tools are treated as long-running
+ assert is_lro is True
+
+ @pytest.mark.asyncio
+ async def test_convert_ag_ui_tool_with_invalid_parameters(self):
+ """Test converting tool with invalid parameters."""
+ tool = AGUITool(
+ name="test_tool",
+ description="Test",
+ parameters="invalid" # Not a dict
+ )
+
+ try:
+ result = ToolAdapter.convert_ag_ui_tool_to_claude(tool)
+ # Should handle gracefully with empty schema
+ assert result is not None
+ except ImportError:
+ pytest.skip("claude-agent-sdk not installed")
+
diff --git a/integrations/claude-agent-sdk/typescript/.env.local.example b/integrations/claude-agent-sdk/typescript/.env.local.example
new file mode 100644
index 000000000..e925bb858
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/.env.local.example
@@ -0,0 +1,10 @@
+# Claude Agent SDK Integration - Environment Variables
+# Copy this file to .env.local and fill in your actual values
+
+# Anthropic API Key (required for real API tests)
+# Get your API key from: https://console.anthropic.com/
+# ANTHROPIC_API_KEY=your-anthropic-api-key-here
+
+# Optional for third party service
+# ANTHROPIC_AUTH_TOKEN=third-party-auth-token
+# ANTHROPIC_BASE_URL=third-party-base-url
diff --git a/integrations/claude-agent-sdk/typescript/README.md b/integrations/claude-agent-sdk/typescript/README.md
new file mode 100644
index 000000000..cbe780889
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/README.md
@@ -0,0 +1,350 @@
+# @ag-ui/claude
+
+Integration of Claude Agent SDK with AG-UI Protocol, enabling Claude agents to work seamlessly in AG-UI applications.
+
+## Features
+
+- ✅ **Full AG-UI Protocol Support** - Implements all standard event types
+- ✅ **Persistent Session Management** - Supports multi-turn conversations and session state maintenance
+- ✅ **Tool Integration** - Supports both client-side and backend tools
+- ✅ **Streaming Responses** - Real-time streaming of AI responses
+- ✅ **Stateless Mode** - Optional stateless execution mode
+- ✅ **TypeScript Support** - Complete type definitions
+- ✅ **Observable API** - RxJS Observable-based event streams
+- ✅ **Automatic Session Cleanup** - Automatically cleans up expired sessions
+
+## Installation
+
+```bash
+npm install @ag-ui/claude @ag-ui/client @ag-ui/core
+```
+
+You also need to install Claude Agent SDK:
+
+```bash
+npm install @anthropic-ai/claude-agent-sdk
+```
+
+## Quick Start
+
+### Basic Usage
+
+```typescript
+import { ClaudeAgent } from '@ag-ui/claude';
+import type { RunAgentInput } from '@ag-ui/client';
+
+// Initialize agent
+const agent = new ClaudeAgent({
+ apiKey: process.env.ANTHROPIC_API_KEY,
+ enablePersistentSessions: true,
+});
+
+// Prepare input
+const input: RunAgentInput = {
+ agentId: 'my_agent',
+ threadId: 'thread_123',
+ messages: [
+ { id: 'msg_1', role: 'user', content: 'Hello!' },
+ ],
+ context: {},
+};
+
+// Run agent and subscribe to events
+agent.run(input).subscribe({
+ next: (event) => {
+ console.log('Event:', event);
+ },
+ error: (error) => {
+ console.error('Error:', error);
+ },
+ complete: () => {
+ console.log('Done!');
+ },
+});
+```
+
+### Using Tools
+
+```typescript
+import { ClaudeAgent } from '@ag-ui/claude';
+
+const agent = new ClaudeAgent({
+ apiKey: process.env.ANTHROPIC_API_KEY,
+});
+
+const input: RunAgentInput = {
+ agentId: 'my_agent',
+ messages: [
+ { id: 'msg_1', role: 'user', content: 'Calculate 42 + 58' },
+ ],
+ context: {
+ tools: [
+ {
+ name: 'calculator',
+ description: 'Performs calculations',
+ parameters: {
+ type: 'object',
+ properties: {
+ operation: { type: 'string' },
+ a: { type: 'number' },
+ b: { type: 'number' },
+ },
+ required: ['operation', 'a', 'b'],
+ },
+ handler: async ({ operation, a, b }) => {
+ // Backend tool implementation
+ if (operation === 'add') return a + b;
+ // ...
+ },
+ },
+ ],
+ },
+};
+
+agent.run(input).subscribe({
+ next: (event) => {
+ if (event.type === 'tool_call_start') {
+ console.log('Tool called:', event.toolName);
+ }
+ },
+});
+```
+
+### Express Server Example
+
+```typescript
+import express from 'express';
+import { ClaudeAgent } from '@ag-ui/claude';
+
+const app = express();
+app.use(express.json());
+
+const agent = new ClaudeAgent({
+ apiKey: process.env.ANTHROPIC_API_KEY,
+});
+
+app.post('/api/run-agent', async (req, res) => {
+ const input: RunAgentInput = req.body;
+
+ res.setHeader('Content-Type', 'text/event-stream');
+ res.setHeader('Cache-Control', 'no-cache');
+
+ agent.run(input).subscribe({
+ next: (event) => {
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
+ },
+ error: (error) => {
+ res.write(`data: ${JSON.stringify({ type: 'error', error: error.message })}\n\n`);
+ res.end();
+ },
+ complete: () => {
+ res.end();
+ },
+ });
+});
+
+app.listen(3000);
+```
+
+## API Documentation
+
+### ClaudeAgent
+
+Main agent class that extends `AbstractAgent`.
+
+#### Constructor
+
+```typescript
+constructor(config: ClaudeAgentConfig)
+```
+
+**Configuration Options:**
+
+- `apiKey?: string` - Anthropic API key (defaults to `ANTHROPIC_API_KEY` environment variable)
+- `baseUrl?: string` - API base URL (defaults to `ANTHROPIC_BASE_URL` environment variable)
+- `enablePersistentSessions?: boolean` - Whether to enable persistent sessions (default: `true`)
+- `sessionTimeout?: number` - Session timeout in milliseconds (default: 30 minutes)
+- `permissionMode?: 'ask' | 'auto' | 'none'` - Permission mode (default: `'ask'`)
+
+#### Methods
+
+##### `run(input: RunAgentInput): Observable`
+
+Runs the agent and returns an Observable of event streams.
+
+**Parameters:**
+- `input.agentId: string` - Agent ID
+- `input.threadId?: string` - Session ID (for persistent sessions)
+- `input.messages: Message[]` - Message history
+- `input.context?: { tools?: Tool[] }` - Context (including tool definitions)
+
+**Returns:** Observable that emits AG-UI Protocol events
+
+##### `abortExecution(runId: string): void`
+
+Aborts a running execution.
+
+##### `cleanup(): Promise`
+
+Cleans up all sessions and resources.
+
+### SessionManager
+
+Session manager using singleton pattern.
+
+#### Methods
+
+- `getInstance(sessionTimeout?: number): SessionManager` - Get singleton instance
+- `getSession(sessionId: string, userId?: string): Session` - Get or create session
+- `hasSession(sessionId: string): boolean` - Check if session exists
+- `deleteSession(sessionId: string): boolean` - Delete session
+- `trackMessage(sessionId: string, messageId: string): void` - Mark message as processed
+- `getUnseenMessages(sessionId: string, messages: Message[]): Message[]` - Get unprocessed messages
+- `getStateValue(sessionId: string, key: string): any` - Get session state value
+- `setStateValue(sessionId: string, key: string, value: any): void` - Set session state value
+
+### EventTranslator
+
+Event translator that converts Claude SDK messages to AG-UI events.
+
+#### Methods
+
+- `translateMessage(message: SDKMessage): ProcessedEvents[]` - Translate a single message
+
+### ToolAdapter
+
+Tool adapter that handles tool format conversion.
+
+#### Static Methods
+
+- `convertAgUiToolsToSdk(tools: Tool[]): SdkMcpToolDefinition[]` - Convert tools to SDK format
+- `createMcpServerForTools(tools: Tool[]): McpSdkServerConfigWithInstance` - Create MCP server
+- `formatToolNameForSdk(toolName: string, serverName?: string): string` - Format tool name
+- `parseToolNameFromSdk(sdkToolName: string): string` - Parse tool name
+
+## Event Types
+
+The agent emits the following AG-UI Protocol events:
+
+- `RunStartedEvent` - Execution started
+- `RunFinishedEvent` - Execution completed
+- `RunErrorEvent` - Execution error
+- `StepStartedEvent` - Step started
+- `StepFinishedEvent` - Step completed
+- `TextMessageStartEvent` - Text message started
+- `TextMessageContentEvent` - Text message content (streaming)
+- `TextMessageEndEvent` - Text message ended
+- `ToolCallStartEvent` - Tool call started
+- `ToolCallArgsEvent` - Tool arguments
+- `ToolCallEndEvent` - Tool call ended
+- `ToolCallResultEvent` - Tool execution result
+
+## Tool Support
+
+### Backend Tools
+
+Backend tools are executed on the server side:
+
+```typescript
+{
+ name: 'calculator',
+ description: 'Performs calculations',
+ parameters: { /* JSON Schema */ },
+ handler: async (args) => {
+ // Tool logic
+ return result;
+ }
+}
+```
+
+### Client Tools
+
+Client tools are executed on the frontend. Set `client: true`:
+
+```typescript
+{
+ name: 'file_reader',
+ description: 'Reads files',
+ client: true,
+ parameters: { /* JSON Schema */ }
+}
+```
+
+## Session Management
+
+### Persistent Session Mode
+
+When persistent sessions are enabled, the agent maintains independent sessions for each `threadId`:
+
+```typescript
+const agent = new ClaudeAgent({
+ apiKey: 'your_key',
+ enablePersistentSessions: true,
+ sessionTimeout: 30 * 60 * 1000, // 30 minutes
+});
+```
+
+### Stateless Mode
+
+When persistent sessions are disabled, each call is independent:
+
+```typescript
+const agent = new ClaudeAgent({
+ apiKey: 'your_key',
+ enablePersistentSessions: false,
+});
+```
+
+## Testing
+
+Run unit tests:
+
+```bash
+npm test
+```
+
+Run specific tests:
+
+```bash
+npm test -- agent.test.ts
+```
+
+## Examples
+
+See the `examples/` directory for complete examples:
+
+- **Express Server** - Complete Express.js server example
+- **Tool Integration** - Backend and client tool examples
+- **Session Management** - Multi-turn conversation examples
+
+## Architecture
+
+The integration architecture is based on the Python version:
+
+```
+AG-UI Protocol Claude Middleware Claude Agent SDK
+ │ │ │
+RunAgentInput ──────> ClaudeAgent.run() ──────> SDK Client/Query
+ │ │ │
+ │ EventTranslator │
+ │ │ │
+BaseEvent[] <──────── translate events <──────── Response[]
+```
+
+Key Components:
+
+- **ClaudeAgent**: Main coordinator, manages execution flow
+- **EventTranslator**: Event translation (Claude SDK → AG-UI)
+- **SessionManager**: Session lifecycle management
+- **ToolAdapter**: Tool format conversion
+- **ExecutionState**: Execution state tracking
+
+## References
+
+- [Python Implementation](../python/) - Python SDK implementation reference
+- [Claude Agent SDK Documentation](https://docs.claude.com/api/agent-sdk/typescript)
+- [AG-UI Protocol Documentation](https://docs.ag-ui.com/)
+
+## License
+
+Apache-2.0
diff --git a/integrations/claude-agent-sdk/typescript/__mocks__/@ag-ui/client.ts b/integrations/claude-agent-sdk/typescript/__mocks__/@ag-ui/client.ts
new file mode 100644
index 000000000..f6f32866a
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__mocks__/@ag-ui/client.ts
@@ -0,0 +1,92 @@
+/**
+ * Mock for @ag-ui/client
+ */
+
+export class AbstractAgent {
+ run() {}
+ cleanup() {}
+}
+
+export class TextMessageStartEvent {
+ type = 'text_message_start';
+ constructor(public messageId: string) {}
+}
+
+export class TextMessageContentEvent {
+ type = 'text_message_content';
+ constructor(public text: string) {}
+}
+
+export class TextMessageEndEvent {
+ type = 'text_message_end';
+ constructor(public messageId: string) {}
+}
+
+export class ToolCallStartEvent {
+ type = 'tool_call_start';
+ constructor(public toolCallId: string, public toolName: string) {}
+}
+
+export class ToolCallArgsEvent {
+ type = 'tool_call_args';
+ constructor(public args: any) {}
+}
+
+export class ToolCallEndEvent {
+ type = 'tool_call_end';
+ constructor(public toolCallId: string) {}
+}
+
+export class ToolCallResultEvent {
+ type = 'tool_call_result';
+ constructor(public result: any) {}
+}
+
+export class RunStartedEvent {
+ type = 'run_started';
+ constructor(public runId: string) {}
+}
+
+export class RunFinishedEvent {
+ type = 'run_finished';
+}
+
+export class RunErrorEvent {
+ type = 'run_error';
+ constructor(public error: Error) {}
+}
+
+export interface RunAgentInput {
+ agentId: string;
+ threadId?: string;
+ messages: Message[];
+ context: any;
+}
+
+export interface Message {
+ id: string;
+ role: string;
+ content: string | any[];
+}
+
+export interface Tool {
+ name: string;
+ description: string;
+ parameters?: any;
+ handler?: (...args: any[]) => any;
+ client?: boolean;
+}
+
+export enum EventType {
+ RUN_STARTED = 'run_started',
+ RUN_FINISHED = 'run_finished',
+ RUN_ERROR = 'run_error',
+ TEXT_MESSAGE_START = 'text_message_start',
+ TEXT_MESSAGE_CONTENT = 'text_message_content',
+ TEXT_MESSAGE_END = 'text_message_end',
+ TOOL_CALL_START = 'tool_call_start',
+ TOOL_CALL_ARGS = 'tool_call_args',
+ TOOL_CALL_END = 'tool_call_end',
+ TOOL_CALL_RESULT = 'tool_call_result',
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/__mocks__/@ag-ui/core.ts b/integrations/claude-agent-sdk/typescript/__mocks__/@ag-ui/core.ts
new file mode 100644
index 000000000..8143fc2a9
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__mocks__/@ag-ui/core.ts
@@ -0,0 +1,21 @@
+/**
+ * Mock for @ag-ui/core
+ */
+
+export class BaseEvent {
+ type: string = '';
+}
+
+export enum EventType {
+ RUN_STARTED = 'run_started',
+ RUN_FINISHED = 'run_finished',
+ RUN_ERROR = 'run_error',
+ TEXT_MESSAGE_START = 'text_message_start',
+ TEXT_MESSAGE_CONTENT = 'text_message_content',
+ TEXT_MESSAGE_END = 'text_message_end',
+ TOOL_CALL_START = 'tool_call_start',
+ TOOL_CALL_ARGS = 'tool_call_args',
+ TOOL_CALL_END = 'tool_call_end',
+ TOOL_CALL_RESULT = 'tool_call_result',
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/__mocks__/@anthropic-ai/claude-agent-sdk.ts b/integrations/claude-agent-sdk/typescript/__mocks__/@anthropic-ai/claude-agent-sdk.ts
new file mode 100644
index 000000000..9d779dfda
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__mocks__/@anthropic-ai/claude-agent-sdk.ts
@@ -0,0 +1,41 @@
+/**
+ * Mock for @anthropic-ai/claude-agent-sdk
+ */
+
+export const ClaudeSDKClient = jest.fn().mockImplementation(() => ({
+ query: jest.fn().mockResolvedValue(undefined),
+ receiveResponse: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Hello from mock' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ }),
+ close: jest.fn().mockResolvedValue(undefined),
+}));
+
+export const query = jest.fn().mockImplementation(async function* () {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Hello from mock query' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+});
+
+export const createSdkMcpServer = jest.fn().mockResolvedValue({
+ name: 'mock-server',
+ version: '1.0.0',
+});
+
+export class SdkMcpTool {
+ constructor(public config: any) {}
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/agent.test.ts b/integrations/claude-agent-sdk/typescript/__tests__/agent.test.ts
new file mode 100644
index 000000000..191d904b5
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/agent.test.ts
@@ -0,0 +1,265 @@
+/**
+ * Claude Agent tests
+ */
+
+import { ClaudeAgent } from '../src/agent';
+import { SessionManager } from '../src/session-manager';
+import type { RunAgentInput } from '@ag-ui/client';
+
+// Mock the Claude SDK
+jest.mock('@anthropic-ai/claude-agent-sdk', () => ({
+ ClaudeSDKClient: jest.fn().mockImplementation(() => ({
+ query: jest.fn().mockResolvedValue(undefined),
+ receiveResponse: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Hello' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ }),
+ close: jest.fn().mockResolvedValue(undefined),
+ })),
+ query: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Hello' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ }),
+}));
+
+describe('ClaudeAgent', () => {
+ let agent: ClaudeAgent;
+
+ beforeEach(() => {
+ SessionManager.resetInstance();
+ agent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: true,
+ });
+ });
+
+ afterEach(() => {
+ SessionManager.resetInstance();
+ });
+
+ describe('constructor', () => {
+ it('should initialize with config', () => {
+ expect(agent).toBeDefined();
+ expect(agent.getSessionManager()).toBeDefined();
+ expect(agent.getExecutionStateManager()).toBeDefined();
+ });
+
+ it('should use environment variables for API key', () => {
+ process.env.ANTHROPIC_API_KEY = 'env_api_key';
+ const envAgent = new ClaudeAgent({});
+ expect(envAgent).toBeDefined();
+ delete process.env.ANTHROPIC_API_KEY;
+ });
+ });
+
+ describe('run', () => {
+ it('should return an observable', () => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ const observable = agent.run(input);
+ expect(observable).toBeDefined();
+ expect(typeof observable.subscribe).toBe('function');
+ });
+
+ it('should emit run started event', (done) => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ const events: any[] = [];
+
+ agent.run(input).subscribe({
+ next: (event) => {
+ events.push(event);
+ },
+ complete: () => {
+ expect(events.length).toBeGreaterThan(0);
+ expect(events[0].type).toBe('run_started');
+ done();
+ },
+ error: done,
+ });
+ });
+
+ it('should emit run finished event', (done) => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ const events: any[] = [];
+
+ agent.run(input).subscribe({
+ next: (event) => {
+ events.push(event);
+ },
+ complete: () => {
+ const finishedEvent = events.find((e) => e.type === 'run_finished');
+ expect(finishedEvent).toBeDefined();
+ done();
+ },
+ error: done,
+ });
+ });
+
+ it('should handle tools', (done) => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {
+ tools: [
+ {
+ name: 'test_tool',
+ description: 'A test tool',
+ parameters: {
+ type: 'object',
+ properties: {
+ query: { type: 'string' },
+ },
+ },
+ },
+ ],
+ },
+ };
+
+ agent.run(input).subscribe({
+ complete: done,
+ error: done,
+ });
+ });
+ });
+
+ describe('abortExecution', () => {
+ it('should abort running execution', (done) => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ let runId: string;
+
+ agent.run(input).subscribe({
+ next: (event: any) => {
+ if (event.type === 'run_started') {
+ runId = event.runId;
+ agent.abortExecution(runId);
+ }
+ },
+ complete: () => {
+ if (runId) {
+ const execution = agent.getExecutionState(runId);
+ expect(execution?.isAborted()).toBe(true);
+ }
+ done();
+ },
+ error: done,
+ });
+ });
+ });
+
+ describe('cleanup', () => {
+ it('should cleanup resources', async () => {
+ await agent.cleanup();
+
+ expect(agent.getSessionManager().getSessionCount()).toBe(0);
+ expect(agent.getExecutionStateManager().getExecutionCount()).toBe(0);
+ });
+ });
+
+ describe('persistent sessions', () => {
+ it('should reuse session for same thread', (done) => {
+ const input1: RunAgentInput = {
+ agentId: 'test_agent',
+ threadId: 'thread1',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ const input2: RunAgentInput = {
+ agentId: 'test_agent',
+ threadId: 'thread1',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ { id: 'msg2', role: 'assistant', content: 'Hi' },
+ { id: 'msg3', role: 'user', content: 'How are you?' },
+ ],
+ context: {},
+ };
+
+ agent.run(input1).subscribe({
+ complete: () => {
+ const sessionCount1 = agent.getSessionManager().getSessionCount();
+
+ agent.run(input2).subscribe({
+ complete: () => {
+ const sessionCount2 = agent.getSessionManager().getSessionCount();
+ expect(sessionCount2).toBe(sessionCount1);
+ done();
+ },
+ error: done,
+ });
+ },
+ error: done,
+ });
+ });
+ });
+
+ describe('stateless mode', () => {
+ it('should work in stateless mode', (done) => {
+ const statelessAgent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: false,
+ });
+
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ statelessAgent.run(input).subscribe({
+ complete: done,
+ error: done,
+ });
+ });
+ });
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/event-translator.test.ts b/integrations/claude-agent-sdk/typescript/__tests__/event-translator.test.ts
new file mode 100644
index 000000000..9857481bd
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/event-translator.test.ts
@@ -0,0 +1,276 @@
+/**
+ * Event translator tests
+ */
+
+import { EventTranslator } from '../src/event-translator';
+import { EventType } from '@ag-ui/client';
+import type {
+ SDKAssistantMessage,
+ SDKResultMessage,
+ TextBlock,
+ ToolUseBlock,
+ ToolResultBlock,
+} from '../src/types';
+
+describe('EventTranslator', () => {
+ let translator: EventTranslator;
+ const runId = 'test_run_1';
+
+ beforeEach(() => {
+ translator = new EventTranslator(runId);
+ });
+
+ describe('translateMessage', () => {
+ it('should translate assistant message with text block', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'text',
+ text: 'Hello, world!',
+ } as TextBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(3);
+ expect(events[0].type).toBe(EventType.TEXT_MESSAGE_START);
+ expect(events[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
+ expect(events[2].type).toBe(EventType.TEXT_MESSAGE_END);
+ });
+
+ it('should translate assistant message with tool use block', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_use',
+ id: 'tool_1',
+ name: 'search',
+ input: { query: 'test' },
+ } as ToolUseBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(3);
+ expect(events[0].type).toBe(EventType.TOOL_CALL_START);
+ expect(events[1].type).toBe(EventType.TOOL_CALL_ARGS);
+ expect(events[2].type).toBe(EventType.TOOL_CALL_END);
+ });
+
+ it('should translate assistant message with tool result block', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_result',
+ tool_use_id: 'tool_1',
+ content: 'Result data',
+ is_error: false,
+ } as ToolResultBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(1);
+ expect(events[0].type).toBe(EventType.TOOL_CALL_RESULT);
+ });
+
+ it('should translate result message (success)', () => {
+ const message: SDKResultMessage = {
+ type: 'result',
+ subtype: 'success',
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(1);
+ expect(events[0].type).toBe(EventType.RUN_FINISHED);
+ });
+
+ it('should translate result message (error)', () => {
+ const message: SDKResultMessage = {
+ type: 'result',
+ subtype: 'error',
+ error: {
+ type: 'Error',
+ message: 'Something went wrong',
+ },
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(1);
+ expect(events[0].type).toBe(EventType.RUN_ERROR);
+ });
+ });
+
+ describe('translateTextBlock', () => {
+ it('should generate text message events', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'text',
+ text: 'Test content',
+ } as TextBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(3);
+
+ const startEvent = events[0] as any;
+ expect(startEvent.type).toBe(EventType.TEXT_MESSAGE_START);
+ expect(startEvent.messageId).toBeDefined();
+
+ const contentEvent = events[1] as any;
+ expect(contentEvent.type).toBe(EventType.TEXT_MESSAGE_CONTENT);
+ expect(contentEvent.content).toBe('Test content');
+
+ const endEvent = events[2] as any;
+ expect(endEvent.type).toBe(EventType.TEXT_MESSAGE_END);
+ });
+ });
+
+ describe('translateToolUseBlock', () => {
+ it('should generate tool call events', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_use',
+ id: 'call_123',
+ name: 'calculator',
+ input: { operation: 'add', numbers: [1, 2] },
+ } as ToolUseBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(3);
+
+ const startEvent = events[0] as any;
+ expect(startEvent.type).toBe(EventType.TOOL_CALL_START);
+ expect(startEvent.toolCallId).toBe('call_123');
+ expect(startEvent.toolName).toBe('calculator');
+
+ const argsEvent = events[1] as any;
+ expect(argsEvent.type).toBe(EventType.TOOL_CALL_ARGS);
+ expect(argsEvent.toolCallId).toBe('call_123');
+ expect(argsEvent.args).toBe(JSON.stringify({ operation: 'add', numbers: [1, 2] }));
+
+ const endEvent = events[2] as any;
+ expect(endEvent.type).toBe(EventType.TOOL_CALL_END);
+ expect(endEvent.toolCallId).toBe('call_123');
+ });
+ });
+
+ describe('translateToolResultBlock', () => {
+ it('should generate tool result event with string content', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_result',
+ tool_use_id: 'call_123',
+ content: 'Result: 3',
+ is_error: false,
+ } as ToolResultBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(1);
+
+ const resultEvent = events[0] as any;
+ expect(resultEvent.type).toBe(EventType.TOOL_CALL_RESULT);
+ expect(resultEvent.toolCallId).toBe('call_123');
+ expect(resultEvent.result).toBe('Result: 3');
+ expect(resultEvent.isError).toBe(false);
+ });
+
+ it('should generate tool result event with array content', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_result',
+ tool_use_id: 'call_123',
+ content: [
+ { type: 'text', text: 'Part 1' },
+ { type: 'text', text: 'Part 2' },
+ ],
+ is_error: false,
+ } as ToolResultBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(1);
+
+ const resultEvent = events[0] as any;
+ expect(resultEvent.type).toBe(EventType.TOOL_CALL_RESULT);
+ expect(resultEvent.result).toContain('Part 1');
+ expect(resultEvent.result).toContain('Part 2');
+ });
+
+ it('should mark error results', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_result',
+ tool_use_id: 'call_123',
+ content: 'Error occurred',
+ is_error: true,
+ } as ToolResultBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ expect(events).toHaveLength(1);
+
+ const resultEvent = events[0] as any;
+ expect(resultEvent.isError).toBe(true);
+ });
+ });
+
+ describe('reset', () => {
+ it('should reset translator state', () => {
+ translator.setCurrentMessageId('msg_1');
+ translator.reset();
+
+ expect(translator.getCurrentMessageId()).toBeNull();
+ });
+ });
+
+ describe('generateMessageId', () => {
+ it('should generate unique message IDs', () => {
+ const message: SDKAssistantMessage = {
+ type: 'assistant',
+ content: [
+ { type: 'text', text: 'Text 1' } as TextBlock,
+ { type: 'text', text: 'Text 2' } as TextBlock,
+ ],
+ };
+
+ const events = translator.translateMessage(message);
+
+ const messageId1 = (events[0] as any).messageId;
+ const messageId2 = (events[3] as any).messageId;
+
+ expect(messageId1).not.toBe(messageId2);
+ });
+ });
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/integration/basic.test.ts b/integrations/claude-agent-sdk/typescript/__tests__/integration/basic.test.ts
new file mode 100644
index 000000000..0dd1f076d
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/integration/basic.test.ts
@@ -0,0 +1,166 @@
+/**
+ * Basic integration tests
+ */
+
+import { ClaudeAgent } from '../../src/agent';
+import { SessionManager } from '../../src/session-manager';
+import type { RunAgentInput } from '@ag-ui/client';
+
+// Mock the Claude SDK
+jest.mock('@anthropic-ai/claude-agent-sdk');
+
+describe('Basic Integration', () => {
+ let agent: ClaudeAgent;
+
+ beforeEach(() => {
+ SessionManager.resetInstance();
+
+ const { ClaudeSDKClient, query } = require('@anthropic-ai/claude-agent-sdk');
+
+ ClaudeSDKClient.mockImplementation(() => ({
+ query: jest.fn().mockResolvedValue(undefined),
+ receiveResponse: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Hello! How can I help you?' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ }),
+ close: jest.fn().mockResolvedValue(undefined),
+ }));
+
+ query.mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Hello! How can I help you?' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ });
+
+ agent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: true,
+ });
+ });
+
+ afterEach(() => {
+ SessionManager.resetInstance();
+ jest.clearAllMocks();
+ });
+
+ it('should handle simple conversation', (done) => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ const events: any[] = [];
+
+ agent.run(input).subscribe({
+ next: (event) => {
+ events.push(event);
+ },
+ complete: () => {
+ // Check that we received key events
+ expect(events.some((e) => e.type === 'run_started')).toBe(true);
+ expect(events.some((e) => e.type === 'text_message_start')).toBe(true);
+ expect(events.some((e) => e.type === 'text_message_content')).toBe(true);
+ expect(events.some((e) => e.type === 'text_message_end')).toBe(true);
+ expect(events.some((e) => e.type === 'run_finished')).toBe(true);
+ done();
+ },
+ error: done,
+ });
+ });
+
+ it('should handle multi-turn conversation', (done) => {
+ const input1: RunAgentInput = {
+ agentId: 'test_agent',
+ threadId: 'thread1',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ agent.run(input1).subscribe({
+ complete: () => {
+ const input2: RunAgentInput = {
+ agentId: 'test_agent',
+ threadId: 'thread1',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ { id: 'msg2', role: 'assistant', content: 'Hello! How can I help you?' },
+ { id: 'msg3', role: 'user', content: 'Tell me a joke' },
+ ],
+ context: {},
+ };
+
+ agent.run(input2).subscribe({
+ complete: () => {
+ // Verify session was reused
+ expect(agent.getSessionManager().getSessionCount()).toBe(1);
+ done();
+ },
+ error: done,
+ });
+ },
+ error: done,
+ });
+ });
+
+ it('should handle errors gracefully', (done) => {
+ const { ClaudeSDKClient } = require('@anthropic-ai/claude-agent-sdk');
+
+ ClaudeSDKClient.mockImplementation(() => ({
+ query: jest.fn().mockRejectedValue(new Error('API Error')),
+ receiveResponse: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ throw new Error('API Error');
+ },
+ }),
+ close: jest.fn().mockResolvedValue(undefined),
+ }));
+
+ const errorAgent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: true,
+ });
+
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ const events: any[] = [];
+
+ errorAgent.run(input).subscribe({
+ next: (event) => {
+ events.push(event);
+ },
+ complete: () => {
+ // Should have error event
+ expect(events.some((e) => e.type === 'run_error')).toBe(true);
+ done();
+ },
+ error: done,
+ });
+ });
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/integration/sessions.test.ts b/integrations/claude-agent-sdk/typescript/__tests__/integration/sessions.test.ts
new file mode 100644
index 000000000..d4bd4ca4e
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/integration/sessions.test.ts
@@ -0,0 +1,138 @@
+/**
+ * Sessions integration tests
+ */
+
+import { ClaudeAgent } from '../../src/agent';
+import { SessionManager } from '../../src/session-manager';
+import type { RunAgentInput } from '@ag-ui/client';
+
+// Mock the Claude SDK
+jest.mock('@anthropic-ai/claude-agent-sdk');
+
+describe('Sessions Integration', () => {
+ beforeEach(() => {
+ SessionManager.resetInstance();
+
+ const { ClaudeSDKClient, query } = require('@anthropic-ai/claude-agent-sdk');
+
+ ClaudeSDKClient.mockImplementation(() => ({
+ query: jest.fn().mockResolvedValue(undefined),
+ receiveResponse: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Response' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ }),
+ close: jest.fn().mockResolvedValue(undefined),
+ }));
+
+ query.mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [{ type: 'text', text: 'Response' }],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ });
+ });
+
+ afterEach(() => {
+ SessionManager.resetInstance();
+ jest.clearAllMocks();
+ });
+
+ it('should maintain persistent sessions', (done) => {
+ const agent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: true,
+ });
+
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ threadId: 'thread1',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ agent.run(input).subscribe({
+ complete: () => {
+ expect(agent.getSessionManager().hasSession('thread1')).toBe(true);
+ done();
+ },
+ error: done,
+ });
+ });
+
+ it('should work in stateless mode', (done) => {
+ const agent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: false,
+ });
+
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ ],
+ context: {},
+ };
+
+ agent.run(input).subscribe({
+ complete: done,
+ error: done,
+ });
+ });
+
+ it('should isolate sessions by thread ID', (done) => {
+ const agent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: true,
+ });
+
+ const input1: RunAgentInput = {
+ agentId: 'test_agent',
+ threadId: 'thread1',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Hello thread 1' },
+ ],
+ context: {},
+ };
+
+ const input2: RunAgentInput = {
+ agentId: 'test_agent',
+ threadId: 'thread2',
+ messages: [
+ { id: 'msg2', role: 'user', content: 'Hello thread 2' },
+ ],
+ context: {},
+ };
+
+ agent.run(input1).subscribe({
+ complete: () => {
+ agent.run(input2).subscribe({
+ complete: () => {
+ expect(agent.getSessionManager().hasSession('thread1')).toBe(true);
+ expect(agent.getSessionManager().hasSession('thread2')).toBe(true);
+ expect(agent.getSessionManager().getSessionCount()).toBe(2);
+ done();
+ },
+ error: done,
+ });
+ },
+ error: done,
+ });
+ });
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/integration/tools.test.ts b/integrations/claude-agent-sdk/typescript/__tests__/integration/tools.test.ts
new file mode 100644
index 000000000..de3a349df
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/integration/tools.test.ts
@@ -0,0 +1,189 @@
+/**
+ * Tools integration tests
+ */
+
+import { ClaudeAgent } from '../../src/agent';
+import { SessionManager } from '../../src/session-manager';
+import type { RunAgentInput } from '@ag-ui/client';
+
+// Mock the Claude SDK
+jest.mock('@anthropic-ai/claude-agent-sdk');
+
+describe('Tools Integration', () => {
+ let agent: ClaudeAgent;
+
+ beforeEach(() => {
+ SessionManager.resetInstance();
+
+ const { ClaudeSDKClient } = require('@anthropic-ai/claude-agent-sdk');
+
+ ClaudeSDKClient.mockImplementation(() => ({
+ query: jest.fn().mockResolvedValue(undefined),
+ receiveResponse: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_use',
+ id: 'tool_call_1',
+ name: 'calculator',
+ input: { operation: 'add', numbers: [1, 2] },
+ },
+ ],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ }),
+ close: jest.fn().mockResolvedValue(undefined),
+ }));
+
+ agent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: true,
+ });
+ });
+
+ afterEach(() => {
+ SessionManager.resetInstance();
+ jest.clearAllMocks();
+ });
+
+ it('should handle tool calls', (done) => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Calculate 1 + 2' },
+ ],
+ context: {
+ tools: [
+ {
+ name: 'calculator',
+ description: 'Performs calculations',
+ parameters: {
+ type: 'object',
+ properties: {
+ operation: { type: 'string' },
+ numbers: { type: 'array', items: { type: 'number' } },
+ },
+ required: ['operation', 'numbers'],
+ },
+ },
+ ],
+ },
+ };
+
+ const events: any[] = [];
+
+ agent.run(input).subscribe({
+ next: (event) => {
+ events.push(event);
+ },
+ complete: () => {
+ // Check for tool call events
+ expect(events.some((e) => e.type === 'tool_call_start')).toBe(true);
+ expect(events.some((e) => e.type === 'tool_call_args')).toBe(true);
+ expect(events.some((e) => e.type === 'tool_call_end')).toBe(true);
+ done();
+ },
+ error: done,
+ });
+ });
+
+ it('should handle tool results', (done) => {
+ const { ClaudeSDKClient } = require('@anthropic-ai/claude-agent-sdk');
+
+ ClaudeSDKClient.mockImplementation(() => ({
+ query: jest.fn().mockResolvedValue(undefined),
+ receiveResponse: jest.fn().mockReturnValue({
+ async *[Symbol.asyncIterator]() {
+ yield {
+ type: 'assistant',
+ content: [
+ {
+ type: 'tool_result',
+ tool_use_id: 'tool_call_1',
+ content: 'The result is 3',
+ is_error: false,
+ },
+ ],
+ };
+ yield {
+ type: 'result',
+ subtype: 'success',
+ };
+ },
+ }),
+ close: jest.fn().mockResolvedValue(undefined),
+ }));
+
+ const resultAgent = new ClaudeAgent({
+ apiKey: 'test_api_key',
+ enablePersistentSessions: true,
+ });
+
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'What is 1 + 2?' },
+ ],
+ context: {
+ tools: [
+ {
+ name: 'calculator',
+ description: 'Performs calculations',
+ },
+ ],
+ },
+ };
+
+ const events: any[] = [];
+
+ resultAgent.run(input).subscribe({
+ next: (event) => {
+ events.push(event);
+ },
+ complete: () => {
+ // Check for tool result event
+ const resultEvent = events.find((e) => e.type === 'tool_call_result');
+ expect(resultEvent).toBeDefined();
+ expect(resultEvent?.result).toContain('The result is 3');
+ done();
+ },
+ error: done,
+ });
+ });
+
+ it('should handle client tools', (done) => {
+ const input: RunAgentInput = {
+ agentId: 'test_agent',
+ messages: [
+ { id: 'msg1', role: 'user', content: 'Open a file' },
+ ],
+ context: {
+ tools: [
+ {
+ name: 'file_reader',
+ description: 'Reads files',
+ client: true,
+ parameters: {
+ type: 'object',
+ properties: {
+ path: { type: 'string' },
+ },
+ },
+ },
+ ],
+ },
+ };
+
+ agent.run(input).subscribe({
+ complete: done,
+ error: done,
+ });
+ });
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/session-manager.test.ts b/integrations/claude-agent-sdk/typescript/__tests__/session-manager.test.ts
new file mode 100644
index 000000000..55e5f2029
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/session-manager.test.ts
@@ -0,0 +1,248 @@
+/**
+ * Session manager tests
+ */
+
+import { SessionManager } from '../src/session-manager';
+import type { Message } from '@ag-ui/client';
+
+describe('SessionManager', () => {
+ let sessionManager: SessionManager;
+
+ beforeEach(() => {
+ SessionManager.resetInstance();
+ sessionManager = SessionManager.getInstance();
+ });
+
+ afterEach(() => {
+ SessionManager.resetInstance();
+ });
+
+ describe('getInstance', () => {
+ it('should return singleton instance', () => {
+ const instance1 = SessionManager.getInstance();
+ const instance2 = SessionManager.getInstance();
+
+ expect(instance1).toBe(instance2);
+ });
+ });
+
+ describe('getSession', () => {
+ it('should create new session if not exists', () => {
+ const session = sessionManager.getSession('session1');
+
+ expect(session.id).toBe('session1');
+ expect(session.processedMessageIds).toBeDefined();
+ expect(session.state).toEqual({});
+ });
+
+ it('should return existing session', () => {
+ const session1 = sessionManager.getSession('session1');
+ const session2 = sessionManager.getSession('session1');
+
+ expect(session1).toBe(session2);
+ });
+
+ it('should update last accessed time', () => {
+ const session1 = sessionManager.getSession('session1');
+ const time1 = session1.lastAccessedAt;
+
+ // Wait a bit
+ setTimeout(() => {
+ const session2 = sessionManager.getSession('session1');
+ expect(session2.lastAccessedAt).toBeGreaterThanOrEqual(time1);
+ }, 10);
+ });
+ });
+
+ describe('hasSession', () => {
+ it('should return true for existing session', () => {
+ sessionManager.getSession('session1');
+ expect(sessionManager.hasSession('session1')).toBe(true);
+ });
+
+ it('should return false for non-existing session', () => {
+ expect(sessionManager.hasSession('session1')).toBe(false);
+ });
+ });
+
+ describe('deleteSession', () => {
+ it('should delete session', () => {
+ sessionManager.getSession('session1');
+ expect(sessionManager.hasSession('session1')).toBe(true);
+
+ sessionManager.deleteSession('session1');
+ expect(sessionManager.hasSession('session1')).toBe(false);
+ });
+ });
+
+ describe('trackMessage', () => {
+ it('should track processed message', () => {
+ sessionManager.getSession('session1');
+ sessionManager.trackMessage('session1', 'msg1');
+
+ expect(sessionManager.isMessageProcessed('session1', 'msg1')).toBe(true);
+ });
+ });
+
+ describe('isMessageProcessed', () => {
+ it('should return false for unprocessed message', () => {
+ sessionManager.getSession('session1');
+ expect(sessionManager.isMessageProcessed('session1', 'msg1')).toBe(false);
+ });
+
+ it('should return true for processed message', () => {
+ sessionManager.getSession('session1');
+ sessionManager.trackMessage('session1', 'msg1');
+ expect(sessionManager.isMessageProcessed('session1', 'msg1')).toBe(true);
+ });
+ });
+
+ describe('getUnseenMessages', () => {
+ it('should return all messages for new session', () => {
+ const messages: Message[] = [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ { id: 'msg2', role: 'assistant', content: 'Hi' },
+ ];
+
+ const unseen = sessionManager.getUnseenMessages('session1', messages);
+ expect(unseen).toHaveLength(2);
+ });
+
+ it('should filter out processed messages', () => {
+ sessionManager.getSession('session1');
+ sessionManager.trackMessage('session1', 'msg1');
+
+ const messages: Message[] = [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ { id: 'msg2', role: 'assistant', content: 'Hi' },
+ ];
+
+ const unseen = sessionManager.getUnseenMessages('session1', messages);
+ expect(unseen).toHaveLength(1);
+ expect(unseen[0].id).toBe('msg2');
+ });
+ });
+
+ describe('markMessagesAsProcessed', () => {
+ it('should mark all messages as processed', () => {
+ sessionManager.getSession('session1');
+
+ const messages: Message[] = [
+ { id: 'msg1', role: 'user', content: 'Hello' },
+ { id: 'msg2', role: 'assistant', content: 'Hi' },
+ ];
+
+ sessionManager.markMessagesAsProcessed('session1', messages);
+
+ expect(sessionManager.isMessageProcessed('session1', 'msg1')).toBe(true);
+ expect(sessionManager.isMessageProcessed('session1', 'msg2')).toBe(true);
+ });
+ });
+
+ describe('getStateValue', () => {
+ it('should return state value', () => {
+ sessionManager.getSession('session1');
+ sessionManager.setStateValue('session1', 'key1', 'value1');
+
+ expect(sessionManager.getStateValue('session1', 'key1')).toBe('value1');
+ });
+
+ it('should return undefined for non-existing key', () => {
+ sessionManager.getSession('session1');
+ expect(sessionManager.getStateValue('session1', 'key1')).toBeUndefined();
+ });
+ });
+
+ describe('setStateValue', () => {
+ it('should set state value', () => {
+ sessionManager.getSession('session1');
+ sessionManager.setStateValue('session1', 'key1', 'value1');
+
+ expect(sessionManager.getStateValue('session1', 'key1')).toBe('value1');
+ });
+ });
+
+ describe('removeStateKeys', () => {
+ it('should remove state keys', () => {
+ sessionManager.getSession('session1');
+ sessionManager.setStateValue('session1', 'key1', 'value1');
+ sessionManager.setStateValue('session1', 'key2', 'value2');
+
+ sessionManager.removeStateKeys('session1', ['key1']);
+
+ expect(sessionManager.getStateValue('session1', 'key1')).toBeUndefined();
+ expect(sessionManager.getStateValue('session1', 'key2')).toBe('value2');
+ });
+ });
+
+ describe('clearSessionState', () => {
+ it('should clear all state', () => {
+ sessionManager.getSession('session1');
+ sessionManager.setStateValue('session1', 'key1', 'value1');
+ sessionManager.setStateValue('session1', 'key2', 'value2');
+
+ sessionManager.clearSessionState('session1');
+
+ expect(sessionManager.getStateValue('session1', 'key1')).toBeUndefined();
+ expect(sessionManager.getStateValue('session1', 'key2')).toBeUndefined();
+ });
+ });
+
+ describe('getSessionCount', () => {
+ it('should return session count', () => {
+ expect(sessionManager.getSessionCount()).toBe(0);
+
+ sessionManager.getSession('session1');
+ expect(sessionManager.getSessionCount()).toBe(1);
+
+ sessionManager.getSession('session2');
+ expect(sessionManager.getSessionCount()).toBe(2);
+ });
+ });
+
+ describe('getUserSessionCount', () => {
+ it('should return user session count', () => {
+ sessionManager.getSession('session1', 'user1');
+ sessionManager.getSession('session2', 'user1');
+ sessionManager.getSession('session3', 'user2');
+
+ expect(sessionManager.getUserSessionCount('user1')).toBe(2);
+ expect(sessionManager.getUserSessionCount('user2')).toBe(1);
+ });
+ });
+
+ describe('getAllSessionIds', () => {
+ it('should return all session IDs', () => {
+ sessionManager.getSession('session1');
+ sessionManager.getSession('session2');
+
+ const ids = sessionManager.getAllSessionIds();
+ expect(ids).toHaveLength(2);
+ expect(ids).toContain('session1');
+ expect(ids).toContain('session2');
+ });
+ });
+
+ describe('getUserSessions', () => {
+ it('should return user sessions', () => {
+ sessionManager.getSession('session1', 'user1');
+ sessionManager.getSession('session2', 'user1');
+ sessionManager.getSession('session3', 'user2');
+
+ const userSessions = sessionManager.getUserSessions('user1');
+ expect(userSessions).toHaveLength(2);
+ });
+ });
+
+ describe('clearAllSessions', () => {
+ it('should clear all sessions', () => {
+ sessionManager.getSession('session1');
+ sessionManager.getSession('session2');
+
+ sessionManager.clearAllSessions();
+
+ expect(sessionManager.getSessionCount()).toBe(0);
+ });
+ });
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/setup.ts b/integrations/claude-agent-sdk/typescript/__tests__/setup.ts
new file mode 100644
index 000000000..c1353d90f
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/setup.ts
@@ -0,0 +1,7 @@
+/**
+ * Jest setup file
+ */
+
+// Setup any global test configurations here
+jest.setTimeout(10000); // 10 second timeout for async tests
+
diff --git a/integrations/claude-agent-sdk/typescript/__tests__/tool-adapter.test.ts b/integrations/claude-agent-sdk/typescript/__tests__/tool-adapter.test.ts
new file mode 100644
index 000000000..6a0fd62f3
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/__tests__/tool-adapter.test.ts
@@ -0,0 +1,256 @@
+/**
+ * Tool adapter tests
+ */
+
+import { z } from 'zod';
+import { ToolAdapter } from '../src/tool-adapter';
+import type { Tool } from '@ag-ui/client';
+
+describe('ToolAdapter', () => {
+ describe('convertAgUiToolsToSdk', () => {
+ it('should convert AG-UI tools to SDK format', () => {
+ const tools: Tool[] = [
+ {
+ name: 'test_tool',
+ description: 'A test tool',
+ parameters: {
+ type: 'object',
+ properties: {
+ query: { type: 'string' },
+ count: { type: 'number' },
+ },
+ required: ['query'],
+ },
+ },
+ ];
+
+ const sdkTools = ToolAdapter.convertAgUiToolsToSdk(tools);
+
+ expect(sdkTools).toHaveLength(1);
+ expect(sdkTools[0].name).toBe('test_tool');
+ expect(sdkTools[0].description).toBe('A test tool');
+ expect(sdkTools[0].inputSchema).toBeDefined();
+ expect(sdkTools[0].handler).toBeDefined();
+ });
+
+ it('should handle tools without parameters', () => {
+ const tools: Tool[] = [
+ {
+ name: 'simple_tool',
+ description: 'A simple tool',
+ },
+ ];
+
+ const sdkTools = ToolAdapter.convertAgUiToolsToSdk(tools);
+
+ expect(sdkTools).toHaveLength(1);
+ expect(sdkTools[0].name).toBe('simple_tool');
+ });
+ });
+
+ describe('convertJsonSchemaToZod', () => {
+ it('should convert string type', () => {
+ const tools: Tool[] = [
+ {
+ name: 'string_tool',
+ description: 'Test',
+ parameters: {
+ type: 'object',
+ properties: {
+ text: { type: 'string' },
+ },
+ },
+ },
+ ];
+
+ const sdkTools = ToolAdapter.convertAgUiToolsToSdk(tools);
+ expect(sdkTools[0].inputSchema).toBeDefined();
+ });
+
+ it('should convert number type', () => {
+ const tools: Tool[] = [
+ {
+ name: 'number_tool',
+ description: 'Test',
+ parameters: {
+ type: 'object',
+ properties: {
+ count: { type: 'number', minimum: 0, maximum: 100 },
+ },
+ },
+ },
+ ];
+
+ const sdkTools = ToolAdapter.convertAgUiToolsToSdk(tools);
+ expect(sdkTools[0].inputSchema).toBeDefined();
+ });
+
+ it('should convert boolean type', () => {
+ const tools: Tool[] = [
+ {
+ name: 'boolean_tool',
+ description: 'Test',
+ parameters: {
+ type: 'object',
+ properties: {
+ enabled: { type: 'boolean' },
+ },
+ },
+ },
+ ];
+
+ const sdkTools = ToolAdapter.convertAgUiToolsToSdk(tools);
+ expect(sdkTools[0].inputSchema).toBeDefined();
+ });
+
+ it('should convert array type', () => {
+ const tools: Tool[] = [
+ {
+ name: 'array_tool',
+ description: 'Test',
+ parameters: {
+ type: 'object',
+ properties: {
+ items: {
+ type: 'array',
+ items: { type: 'string' },
+ },
+ },
+ },
+ },
+ ];
+
+ const sdkTools = ToolAdapter.convertAgUiToolsToSdk(tools);
+ expect(sdkTools[0].inputSchema).toBeDefined();
+ });
+
+ it('should handle required fields', () => {
+ const tools: Tool[] = [
+ {
+ name: 'required_tool',
+ description: 'Test',
+ parameters: {
+ type: 'object',
+ properties: {
+ required_field: { type: 'string' },
+ optional_field: { type: 'string' },
+ },
+ required: ['required_field'],
+ },
+ },
+ ];
+
+ const sdkTools = ToolAdapter.convertAgUiToolsToSdk(tools);
+ expect(sdkTools[0].inputSchema).toBeDefined();
+ });
+ });
+
+ describe('createMcpServerForTools', () => {
+ it('should create MCP server configuration', () => {
+ const tools: Tool[] = [
+ {
+ name: 'tool1',
+ description: 'Tool 1',
+ },
+ {
+ name: 'tool2',
+ description: 'Tool 2',
+ },
+ ];
+
+ const mcpServer = ToolAdapter.createMcpServerForTools(tools);
+
+ expect(mcpServer.name).toBe('ag_ui_tools');
+ expect(mcpServer.version).toBe('1.0.0');
+ expect(mcpServer.tools).toHaveLength(2);
+ });
+ });
+
+ describe('extractToolCalls', () => {
+ it('should extract tool calls from message', () => {
+ const message = {
+ content: [
+ { type: 'text', text: 'Hello' },
+ { type: 'tool_use', id: 'tool_1', name: 'search', input: { query: 'test' } },
+ ],
+ };
+
+ const toolCalls = ToolAdapter.extractToolCalls(message);
+
+ expect(toolCalls).toHaveLength(1);
+ expect(toolCalls[0].id).toBe('tool_1');
+ expect(toolCalls[0].name).toBe('search');
+ expect(toolCalls[0].input).toEqual({ query: 'test' });
+ });
+
+ it('should return empty array for non-tool messages', () => {
+ const message = {
+ content: [{ type: 'text', text: 'Hello' }],
+ };
+
+ const toolCalls = ToolAdapter.extractToolCalls(message);
+
+ expect(toolCalls).toHaveLength(0);
+ });
+ });
+
+ describe('isClientTool', () => {
+ it('should identify client tools', () => {
+ const tools: Tool[] = [
+ { name: 'client_tool', description: 'Test', client: true },
+ { name: 'backend_tool', description: 'Test', client: false },
+ ];
+
+ expect(ToolAdapter.isClientTool('client_tool', tools)).toBe(true);
+ expect(ToolAdapter.isClientTool('backend_tool', tools)).toBe(false);
+ expect(ToolAdapter.isClientTool('unknown_tool', tools)).toBe(false);
+ });
+ });
+
+ describe('isLongRunningTool', () => {
+ it('should identify long-running tools', () => {
+ const tools: Tool[] = [
+ { name: 'client_tool', description: 'Test', client: true },
+ { name: 'long_tool', description: 'Test', longRunning: true },
+ { name: 'normal_tool', description: 'Test' },
+ ];
+
+ expect(ToolAdapter.isLongRunningTool('client_tool', tools)).toBe(true);
+ expect(ToolAdapter.isLongRunningTool('long_tool', tools)).toBe(true);
+ expect(ToolAdapter.isLongRunningTool('normal_tool', tools)).toBe(false);
+ });
+ });
+
+ describe('formatToolNameForSdk', () => {
+ it('should format tool name with MCP prefix', () => {
+ expect(ToolAdapter.formatToolNameForSdk('my_tool')).toBe('mcp__ag_ui_tools__my_tool');
+ expect(ToolAdapter.formatToolNameForSdk('my_tool', 'custom_server')).toBe(
+ 'mcp__custom_server__my_tool'
+ );
+ });
+ });
+
+ describe('parseToolNameFromSdk', () => {
+ it('should parse tool name from SDK format', () => {
+ expect(ToolAdapter.parseToolNameFromSdk('mcp__ag_ui_tools__my_tool')).toBe('my_tool');
+ expect(ToolAdapter.parseToolNameFromSdk('mcp__custom__nested__tool')).toBe('nested__tool');
+ expect(ToolAdapter.parseToolNameFromSdk('plain_tool')).toBe('plain_tool');
+ });
+ });
+
+ describe('getAllowedToolsList', () => {
+ it('should generate allowed tools list', () => {
+ const tools: Tool[] = [
+ { name: 'tool1', description: 'Tool 1' },
+ { name: 'tool2', description: 'Tool 2' },
+ ];
+
+ const allowedTools = ToolAdapter.getAllowedToolsList(tools);
+
+ expect(allowedTools).toHaveLength(2);
+ expect(allowedTools).toContain('mcp__ag_ui_tools__tool1');
+ expect(allowedTools).toContain('mcp__ag_ui_tools__tool2');
+ });
+ });
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/dist/index.d.mts b/integrations/claude-agent-sdk/typescript/dist/index.d.mts
new file mode 100644
index 000000000..c15863b58
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/dist/index.d.mts
@@ -0,0 +1,679 @@
+import { Observable } from 'rxjs';
+import { AgentConfig, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, Message, AbstractAgent, RunAgentInput, Tool } from '@ag-ui/client';
+
+/**
+ * Type definitions for Claude Agent SDK integration with AG-UI Protocol
+ */
+
+interface ClaudeSDKClient {
+ query(prompt: string): Promise;
+ receiveResponse(): AsyncIterableIterator;
+ close(): Promise;
+}
+interface Options {
+ apiKey?: string;
+ baseUrl?: string;
+ mcpServers?: Record;
+ allowedTools?: string[];
+ permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';
+ stderr?: (data: string) => void;
+ verbose?: boolean;
+ [key: string]: any;
+}
+interface Query {
+ next(): Promise>;
+ [Symbol.asyncIterator](): AsyncIterableIterator;
+}
+type SDKMessage = SDKAssistantMessage | SDKUserMessage | SDKSystemMessage | SDKResultMessage | SDKPartialAssistantMessage | SDKCompactBoundaryMessage | SDKPermissionDenial;
+interface SDKAssistantMessage {
+ type: 'assistant';
+ message: {
+ id?: string;
+ content: ContentBlock[];
+ [key: string]: any;
+ };
+ parent_tool_use_id?: string | null;
+ uuid?: string;
+ session_id?: string;
+}
+interface SDKUserMessage {
+ type: 'user';
+ content: string;
+ id?: string;
+}
+interface SDKSystemMessage {
+ type: 'system';
+ content: string;
+}
+interface SDKResultMessage {
+ type: 'result';
+ subtype: 'success' | 'error';
+ error?: {
+ type: string;
+ message: string;
+ };
+}
+interface SDKPartialAssistantMessage {
+ type: 'partial_assistant';
+ content: ContentBlock[];
+}
+interface SDKCompactBoundaryMessage {
+ type: 'compact_boundary';
+}
+interface SDKPermissionDenial {
+ type: 'permission_denial';
+ tool: string;
+ reason: string;
+}
+type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock | ThinkingBlock;
+interface TextBlock {
+ type: 'text';
+ text: string;
+}
+interface ToolUseBlock {
+ type: 'tool_use';
+ id: string;
+ name: string;
+ input: Record;
+}
+interface ToolResultBlock {
+ type: 'tool_result';
+ tool_use_id: string;
+ content: string | Array<{
+ type: string;
+ [key: string]: any;
+ }>;
+ is_error?: boolean;
+}
+interface ThinkingBlock {
+ type: 'thinking';
+ thinking: string;
+}
+interface SdkMcpToolDefinition {
+ name: string;
+ description: string;
+ inputSchema: Schema;
+ handler: (args: any, extra?: any) => Promise;
+}
+interface CallToolResult {
+ content: Array<{
+ type: 'text' | 'image' | 'resource';
+ text?: string;
+ data?: string;
+ mimeType?: string;
+ [key: string]: any;
+ }>;
+ isError?: boolean;
+}
+interface McpSdkServerConfigWithInstance {
+ name: string;
+ version?: string;
+ tools?: Array>;
+}
+type ProcessedEvents = TextMessageStartEvent | TextMessageContentEvent | TextMessageEndEvent | ToolCallStartEvent | ToolCallArgsEvent | ToolCallEndEvent | ToolCallResultEvent | RunStartedEvent | RunFinishedEvent | RunErrorEvent | StepStartedEvent | StepFinishedEvent;
+interface Session {
+ id: string;
+ userId?: string;
+ client?: ClaudeSDKClient;
+ processedMessageIds: Set;
+ state: Record;
+ createdAt: number;
+ lastAccessedAt: number;
+}
+interface ClaudeAgentConfig extends AgentConfig {
+ apiKey?: string;
+ baseUrl?: string;
+ sessionTimeout?: number;
+ enablePersistentSessions?: boolean;
+ permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';
+ mcpServers?: Record;
+ stderr?: (data: string) => void;
+ verbose?: boolean;
+}
+interface ExecutionState$1 {
+ id: string;
+ sessionId: string;
+ isRunning: boolean;
+ startTime: number;
+ events: ProcessedEvents[];
+ error?: Error;
+}
+declare function isAssistantMessage(message: SDKMessage): message is SDKAssistantMessage;
+declare function isResultMessage(message: SDKMessage): message is SDKResultMessage;
+declare function isTextBlock(block: ContentBlock): block is TextBlock;
+declare function isToolUseBlock(block: ContentBlock): block is ToolUseBlock;
+declare function isToolResultBlock(block: ContentBlock): block is ToolResultBlock;
+declare function isThinkingBlock(block: ContentBlock): block is ThinkingBlock;
+declare function hasContentProperty(message: SDKMessage): message is SDKAssistantMessage | SDKPartialAssistantMessage;
+interface ToolExecutionContext {
+ toolName: string;
+ toolCallId: string;
+ isClientTool: boolean;
+ isLongRunning: boolean;
+}
+interface ConvertedMessage {
+ role: 'user' | 'assistant' | 'system';
+ content: string | Array<{
+ type: string;
+ [key: string]: any;
+ }>;
+}
+
+/**
+ * Session manager: Manages agent sessions and state
+ */
+
+/**
+ * SessionManager handles session lifecycle, message tracking, and state management
+ * Implements singleton pattern for centralized session control
+ */
+declare class SessionManager {
+ private static instance;
+ private sessions;
+ private cleanupInterval;
+ private sessionTimeout;
+ private constructor();
+ /**
+ * Get the singleton instance
+ */
+ static getInstance(sessionTimeout?: number): SessionManager;
+ /**
+ * Reset the singleton instance (useful for testing)
+ */
+ static resetInstance(): void;
+ /**
+ * Get or create a session
+ */
+ getSession(sessionId: string, userId?: string): Session;
+ /**
+ * Check if a session exists
+ */
+ hasSession(sessionId: string): boolean;
+ /**
+ * Delete a session
+ */
+ deleteSession(sessionId: string): boolean;
+ /**
+ * Track a processed message
+ */
+ trackMessage(sessionId: string, messageId: string): void;
+ /**
+ * Check if a message has been processed
+ */
+ isMessageProcessed(sessionId: string, messageId: string): boolean;
+ /**
+ * Get unseen messages (messages not yet processed)
+ */
+ getUnseenMessages(sessionId: string, messages: Message[]): Message[];
+ /**
+ * Mark messages as processed
+ */
+ markMessagesAsProcessed(sessionId: string, messages: Message[]): void;
+ /**
+ * Get state value from session
+ */
+ getStateValue(sessionId: string, key: string): any;
+ /**
+ * Set state value in session
+ */
+ setStateValue(sessionId: string, key: string, value: any): void;
+ /**
+ * Remove state keys from session
+ */
+ removeStateKeys(sessionId: string, keys: string[]): void;
+ /**
+ * Clear all state for a session
+ */
+ clearSessionState(sessionId: string): void;
+ /**
+ * Set Claude SDK client for a session
+ */
+ setClient(sessionId: string, client: ClaudeSDKClient): void;
+ /**
+ * Get Claude SDK client for a session
+ */
+ getClient(sessionId: string): ClaudeSDKClient | undefined;
+ /**
+ * Get total number of sessions
+ */
+ getSessionCount(): number;
+ /**
+ * Get number of sessions for a specific user
+ */
+ getUserSessionCount(userId: string): number;
+ /**
+ * Get all session IDs
+ */
+ getAllSessionIds(): string[];
+ /**
+ * Get all sessions for a specific user
+ */
+ getUserSessions(userId: string): Session[];
+ /**
+ * Clean up stale sessions
+ */
+ private cleanupStaleSessions;
+ /**
+ * Start the cleanup interval
+ */
+ private startCleanupInterval;
+ /**
+ * Stop the cleanup interval
+ */
+ private stopCleanupInterval;
+ /**
+ * Clear all sessions (useful for testing)
+ */
+ clearAllSessions(): void;
+}
+
+/**
+ * Execution state: Tracks background Claude executions
+ */
+
+/**
+ * ExecutionState manages the state of a Claude SDK execution
+ */
+declare class ExecutionState {
+ readonly id: string;
+ readonly sessionId: string;
+ private _isRunning;
+ private _startTime;
+ private _endTime?;
+ private _events;
+ private _error?;
+ private _abortController;
+ constructor(id: string, sessionId: string);
+ /**
+ * Check if execution is running
+ */
+ get isRunning(): boolean;
+ /**
+ * Get start time
+ */
+ get startTime(): number;
+ /**
+ * Get end time
+ */
+ get endTime(): number | undefined;
+ /**
+ * Get duration in milliseconds
+ */
+ get duration(): number;
+ /**
+ * Get all collected events
+ */
+ get events(): ProcessedEvents[];
+ /**
+ * Get error if any
+ */
+ get error(): Error | undefined;
+ /**
+ * Get abort signal
+ */
+ get signal(): AbortSignal;
+ /**
+ * Add an event to the execution state
+ */
+ addEvent(event: ProcessedEvents): void;
+ /**
+ * Add multiple events
+ */
+ addEvents(events: ProcessedEvents[]): void;
+ /**
+ * Mark execution as completed
+ */
+ complete(): void;
+ /**
+ * Mark execution as failed
+ */
+ fail(error: Error): void;
+ /**
+ * Abort the execution
+ */
+ abort(): void;
+ /**
+ * Get execution statistics
+ */
+ getStats(): {
+ duration: number;
+ eventCount: number;
+ isRunning: boolean;
+ hasError: boolean;
+ };
+ /**
+ * Clear events (useful for memory management)
+ */
+ clearEvents(): void;
+ /**
+ * Get the last N events
+ */
+ getLastEvents(count: number): ProcessedEvents[];
+ /**
+ * Check if execution has been aborted
+ */
+ isAborted(): boolean;
+}
+/**
+ * ExecutionStateManager manages multiple execution states
+ */
+declare class ExecutionStateManager {
+ private executions;
+ private readonly maxExecutions;
+ constructor(maxExecutions?: number);
+ /**
+ * Create a new execution state
+ */
+ createExecution(id: string, sessionId: string): ExecutionState;
+ /**
+ * Get an execution state by ID
+ */
+ getExecution(id: string): ExecutionState | undefined;
+ /**
+ * Check if an execution exists
+ */
+ hasExecution(id: string): boolean;
+ /**
+ * Delete an execution state
+ */
+ deleteExecution(id: string): boolean;
+ /**
+ * Get all executions for a session
+ */
+ getSessionExecutions(sessionId: string): ExecutionState[];
+ /**
+ * Get running executions
+ */
+ getRunningExecutions(): ExecutionState[];
+ /**
+ * Get completed executions
+ */
+ getCompletedExecutions(): ExecutionState[];
+ /**
+ * Abort all running executions for a session
+ */
+ abortSessionExecutions(sessionId: string): void;
+ /**
+ * Clean up old completed executions
+ */
+ private cleanupOldExecutions;
+ /**
+ * Clear all executions
+ */
+ clearAll(): void;
+ /**
+ * Get total execution count
+ */
+ getExecutionCount(): number;
+ /**
+ * Get execution statistics
+ */
+ getStats(): {
+ total: number;
+ running: number;
+ completed: number;
+ failed: number;
+ };
+}
+
+/**
+ * Claude Agent: Main agent class that integrates Claude SDK with AG-UI Protocol
+ */
+
+/**
+ * ClaudeAgent integrates Claude Agent SDK with AG-UI Protocol
+ */
+declare class ClaudeAgent extends AbstractAgent {
+ private sessionManager;
+ private executionStateManager;
+ private apiKey?;
+ private baseUrl?;
+ private sessionTimeout;
+ private enablePersistentSessions;
+ private permissionMode;
+ private stderr?;
+ private verbose?;
+ constructor(config: ClaudeAgentConfig);
+ /**
+ * Map legacy permission modes to new SDK values for backward compatibility
+ */
+ private mapPermissionMode;
+ /**
+ * Run the agent with the given input
+ */
+ run(input: RunAgentInput): Observable;
+ /**
+ * Execute the agent asynchronously
+ */
+ private executeAgent;
+ /**
+ * Prepare Claude SDK options
+ * SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+ * But baseUrl needs to be explicitly passed for third-party APIs
+ */
+ private prepareClaudeOptions;
+ /**
+ * Call Claude SDK
+ * Note: Currently only stateless mode is supported via query() function
+ */
+ private callClaudeSDK;
+ /**
+ * Call Claude SDK in persistent session mode
+ * Note: The current SDK only supports stateless mode via query() function
+ * This method falls back to stateless mode
+ */
+ private callClaudeSDKPersistent;
+ /**
+ * Call Claude SDK in stateless mode
+ */
+ private callClaudeSDKStateless;
+ /**
+ * Dynamically import Claude SDK
+ */
+ private importClaudeSDK;
+ /**
+ * Abort a running execution
+ */
+ abortExecution(runId: string): void;
+ /**
+ * Get execution state
+ */
+ getExecutionState(runId: string): ExecutionState | undefined;
+ /**
+ * Get session manager (for testing)
+ */
+ getSessionManager(): SessionManager;
+ /**
+ * Get execution state manager (for testing)
+ */
+ getExecutionStateManager(): ExecutionStateManager;
+ /**
+ * Cleanup resources
+ */
+ cleanup(): Promise;
+}
+
+/**
+ * Event translator: Converts Claude SDK messages to AG-UI events
+ */
+
+/**
+ * EventTranslator converts Claude SDK messages to AG-UI protocol events
+ *
+ * NOTE: This translator only handles SDK message translation.
+ * Run lifecycle events (RUN_STARTED, RUN_FINISHED, etc.) and step events
+ * are handled by ClaudeAgent.
+ */
+declare class EventTranslator {
+ private messageIdCounter;
+ private currentMessageId;
+ private runId;
+ private threadId;
+ constructor(runId: string, threadId: string);
+ /**
+ * Translate a Claude SDK message to AG-UI events
+ * NOTE: Does not emit RUN_STARTED, RUN_FINISHED, or STEP events - those are handled by ClaudeAgent
+ */
+ translateMessage(message: SDKMessage): ProcessedEvents[];
+ /**
+ * Translate an AssistantMessage with content blocks
+ */
+ private translateAssistantMessage;
+ /**
+ * Translate a TextBlock to text message events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ private translateTextBlock;
+ /**
+ * Translate a ToolUseBlock to tool call events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ private translateToolUseBlock;
+ /**
+ * Translate a ToolResultBlock to tool call result event
+ */
+ private translateToolResultBlock;
+ /**
+ * Generate a unique message ID
+ */
+ private generateMessageId;
+ /**
+ * Reset the translator state for a new execution
+ */
+ reset(): void;
+ /**
+ * Get current message ID
+ */
+ getCurrentMessageId(): string | null;
+ /**
+ * Set current message ID
+ */
+ setCurrentMessageId(messageId: string | null): void;
+}
+
+/**
+ * Tool adapter: Converts AG-UI tools to Claude SDK format
+ */
+
+/**
+ * ToolAdapter handles conversion of AG-UI tools to Claude SDK format
+ */
+declare class ToolAdapter {
+ /**
+ * Convert AG-UI tools to Claude SDK MCP tool definitions
+ */
+ static convertAgUiToolsToSdk(tools: Tool[]): SdkMcpToolDefinition[];
+ /**
+ * Convert a single AG-UI tool to Claude SDK format
+ */
+ private static convertSingleTool;
+ /**
+ * Convert JSON Schema to Zod schema
+ */
+ private static convertJsonSchemaToZod;
+ /**
+ * Convert a single JSON Schema type to Zod type
+ */
+ private static convertJsonSchemaTypeToZod;
+ /**
+ * Create an MCP server configuration for AG-UI tools
+ */
+ static createMcpServerForTools(tools: Tool[]): Promise;
+ /**
+ * Extract tool calls from Claude SDK response
+ */
+ static extractToolCalls(message: any): Array<{
+ id: string;
+ name: string;
+ input: Record;
+ }>;
+ /**
+ * Check if a tool is a long-running client tool
+ */
+ static isClientTool(toolName: string, tools: Tool[]): boolean;
+ /**
+ * Check if a tool is marked as long-running
+ */
+ static isLongRunningTool(toolName: string, tools: Tool[]): boolean;
+ /**
+ * Format tool names for Claude SDK (with MCP server prefix)
+ */
+ static formatToolNameForSdk(toolName: string, serverName?: string): string;
+ /**
+ * Parse tool name from SDK format (remove MCP server prefix)
+ */
+ static parseToolNameFromSdk(sdkToolName: string): string;
+ /**
+ * Get allowed tools list for SDK options
+ */
+ static getAllowedToolsList(tools: Tool[], serverName?: string): string[];
+}
+
+/**
+ * Message format converters
+ */
+
+/**
+ * Convert AG-UI messages to a format suitable for Claude SDK
+ */
+declare function convertAgUiMessagesToPrompt(messages: Message[]): string;
+/**
+ * Extract text content from a message
+ */
+declare function extractMessageContent(message: Message): string;
+/**
+ * Convert AG-UI message to Claude message format
+ */
+declare function convertAgUiMessageToClaude(message: Message): ConvertedMessage;
+/**
+ * Convert multiple AG-UI messages to Claude format
+ */
+declare function convertAgUiMessagesToClaude(messages: Message[]): ConvertedMessage[];
+/**
+ * Check if messages contain tool results
+ */
+declare function hasToolResults(messages: Message[]): boolean;
+/**
+ * Extract tool results from messages
+ */
+declare function extractToolResults(messages: Message[]): Array<{
+ toolCallId: string;
+ result: string;
+}>;
+/**
+ * Generate a unique run ID
+ */
+declare function generateRunId(): string;
+/**
+ * Generate a unique message ID
+ */
+declare function generateMessageId(prefix?: string): string;
+/**
+ * Safely parse JSON string
+ */
+declare function safeJsonParse(json: string, defaultValue?: any): any;
+/**
+ * Safely stringify JSON
+ */
+declare function safeJsonStringify(obj: any, defaultValue?: string): string;
+/**
+ * Check if a message is a tool result submission
+ */
+declare function isToolResultSubmission(messages: Message[]): boolean;
+/**
+ * Format error message for display
+ */
+declare function formatErrorMessage(error: any): string;
+/**
+ * Truncate text to a maximum length
+ */
+declare function truncateText(text: string, maxLength?: number): string;
+/**
+ * Merge consecutive text blocks
+ */
+declare function mergeTextBlocks(blocks: Array<{
+ type: string;
+ text?: string;
+}>): string;
+
+export { type CallToolResult, ClaudeAgent, type ClaudeAgentConfig, type ClaudeSDKClient, type ContentBlock, type ConvertedMessage, EventTranslator, ExecutionState, ExecutionStateManager, type ExecutionState$1 as ExecutionStateType, type McpSdkServerConfigWithInstance, type Options, type ProcessedEvents, type Query, type SDKAssistantMessage, type SDKCompactBoundaryMessage, type SDKMessage, type SDKPartialAssistantMessage, type SDKPermissionDenial, type SDKResultMessage, type SDKSystemMessage, type SDKUserMessage, type SdkMcpToolDefinition, type Session, SessionManager, type TextBlock, type ThinkingBlock, ToolAdapter, type ToolExecutionContext, type ToolResultBlock, type ToolUseBlock, convertAgUiMessageToClaude, convertAgUiMessagesToClaude, convertAgUiMessagesToPrompt, extractMessageContent, extractToolResults, formatErrorMessage, generateMessageId, generateRunId, hasContentProperty, hasToolResults, isAssistantMessage, isResultMessage, isTextBlock, isThinkingBlock, isToolResultBlock, isToolResultSubmission, isToolUseBlock, mergeTextBlocks, safeJsonParse, safeJsonStringify, truncateText };
diff --git a/integrations/claude-agent-sdk/typescript/dist/index.d.ts b/integrations/claude-agent-sdk/typescript/dist/index.d.ts
new file mode 100644
index 000000000..c15863b58
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/dist/index.d.ts
@@ -0,0 +1,679 @@
+import { Observable } from 'rxjs';
+import { AgentConfig, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, ToolCallResultEvent, RunStartedEvent, RunFinishedEvent, RunErrorEvent, StepStartedEvent, StepFinishedEvent, Message, AbstractAgent, RunAgentInput, Tool } from '@ag-ui/client';
+
+/**
+ * Type definitions for Claude Agent SDK integration with AG-UI Protocol
+ */
+
+interface ClaudeSDKClient {
+ query(prompt: string): Promise;
+ receiveResponse(): AsyncIterableIterator;
+ close(): Promise;
+}
+interface Options {
+ apiKey?: string;
+ baseUrl?: string;
+ mcpServers?: Record;
+ allowedTools?: string[];
+ permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';
+ stderr?: (data: string) => void;
+ verbose?: boolean;
+ [key: string]: any;
+}
+interface Query {
+ next(): Promise>;
+ [Symbol.asyncIterator](): AsyncIterableIterator;
+}
+type SDKMessage = SDKAssistantMessage | SDKUserMessage | SDKSystemMessage | SDKResultMessage | SDKPartialAssistantMessage | SDKCompactBoundaryMessage | SDKPermissionDenial;
+interface SDKAssistantMessage {
+ type: 'assistant';
+ message: {
+ id?: string;
+ content: ContentBlock[];
+ [key: string]: any;
+ };
+ parent_tool_use_id?: string | null;
+ uuid?: string;
+ session_id?: string;
+}
+interface SDKUserMessage {
+ type: 'user';
+ content: string;
+ id?: string;
+}
+interface SDKSystemMessage {
+ type: 'system';
+ content: string;
+}
+interface SDKResultMessage {
+ type: 'result';
+ subtype: 'success' | 'error';
+ error?: {
+ type: string;
+ message: string;
+ };
+}
+interface SDKPartialAssistantMessage {
+ type: 'partial_assistant';
+ content: ContentBlock[];
+}
+interface SDKCompactBoundaryMessage {
+ type: 'compact_boundary';
+}
+interface SDKPermissionDenial {
+ type: 'permission_denial';
+ tool: string;
+ reason: string;
+}
+type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock | ThinkingBlock;
+interface TextBlock {
+ type: 'text';
+ text: string;
+}
+interface ToolUseBlock {
+ type: 'tool_use';
+ id: string;
+ name: string;
+ input: Record;
+}
+interface ToolResultBlock {
+ type: 'tool_result';
+ tool_use_id: string;
+ content: string | Array<{
+ type: string;
+ [key: string]: any;
+ }>;
+ is_error?: boolean;
+}
+interface ThinkingBlock {
+ type: 'thinking';
+ thinking: string;
+}
+interface SdkMcpToolDefinition {
+ name: string;
+ description: string;
+ inputSchema: Schema;
+ handler: (args: any, extra?: any) => Promise;
+}
+interface CallToolResult {
+ content: Array<{
+ type: 'text' | 'image' | 'resource';
+ text?: string;
+ data?: string;
+ mimeType?: string;
+ [key: string]: any;
+ }>;
+ isError?: boolean;
+}
+interface McpSdkServerConfigWithInstance {
+ name: string;
+ version?: string;
+ tools?: Array>;
+}
+type ProcessedEvents = TextMessageStartEvent | TextMessageContentEvent | TextMessageEndEvent | ToolCallStartEvent | ToolCallArgsEvent | ToolCallEndEvent | ToolCallResultEvent | RunStartedEvent | RunFinishedEvent | RunErrorEvent | StepStartedEvent | StepFinishedEvent;
+interface Session {
+ id: string;
+ userId?: string;
+ client?: ClaudeSDKClient;
+ processedMessageIds: Set;
+ state: Record;
+ createdAt: number;
+ lastAccessedAt: number;
+}
+interface ClaudeAgentConfig extends AgentConfig {
+ apiKey?: string;
+ baseUrl?: string;
+ sessionTimeout?: number;
+ enablePersistentSessions?: boolean;
+ permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';
+ mcpServers?: Record;
+ stderr?: (data: string) => void;
+ verbose?: boolean;
+}
+interface ExecutionState$1 {
+ id: string;
+ sessionId: string;
+ isRunning: boolean;
+ startTime: number;
+ events: ProcessedEvents[];
+ error?: Error;
+}
+declare function isAssistantMessage(message: SDKMessage): message is SDKAssistantMessage;
+declare function isResultMessage(message: SDKMessage): message is SDKResultMessage;
+declare function isTextBlock(block: ContentBlock): block is TextBlock;
+declare function isToolUseBlock(block: ContentBlock): block is ToolUseBlock;
+declare function isToolResultBlock(block: ContentBlock): block is ToolResultBlock;
+declare function isThinkingBlock(block: ContentBlock): block is ThinkingBlock;
+declare function hasContentProperty(message: SDKMessage): message is SDKAssistantMessage | SDKPartialAssistantMessage;
+interface ToolExecutionContext {
+ toolName: string;
+ toolCallId: string;
+ isClientTool: boolean;
+ isLongRunning: boolean;
+}
+interface ConvertedMessage {
+ role: 'user' | 'assistant' | 'system';
+ content: string | Array<{
+ type: string;
+ [key: string]: any;
+ }>;
+}
+
+/**
+ * Session manager: Manages agent sessions and state
+ */
+
+/**
+ * SessionManager handles session lifecycle, message tracking, and state management
+ * Implements singleton pattern for centralized session control
+ */
+declare class SessionManager {
+ private static instance;
+ private sessions;
+ private cleanupInterval;
+ private sessionTimeout;
+ private constructor();
+ /**
+ * Get the singleton instance
+ */
+ static getInstance(sessionTimeout?: number): SessionManager;
+ /**
+ * Reset the singleton instance (useful for testing)
+ */
+ static resetInstance(): void;
+ /**
+ * Get or create a session
+ */
+ getSession(sessionId: string, userId?: string): Session;
+ /**
+ * Check if a session exists
+ */
+ hasSession(sessionId: string): boolean;
+ /**
+ * Delete a session
+ */
+ deleteSession(sessionId: string): boolean;
+ /**
+ * Track a processed message
+ */
+ trackMessage(sessionId: string, messageId: string): void;
+ /**
+ * Check if a message has been processed
+ */
+ isMessageProcessed(sessionId: string, messageId: string): boolean;
+ /**
+ * Get unseen messages (messages not yet processed)
+ */
+ getUnseenMessages(sessionId: string, messages: Message[]): Message[];
+ /**
+ * Mark messages as processed
+ */
+ markMessagesAsProcessed(sessionId: string, messages: Message[]): void;
+ /**
+ * Get state value from session
+ */
+ getStateValue(sessionId: string, key: string): any;
+ /**
+ * Set state value in session
+ */
+ setStateValue(sessionId: string, key: string, value: any): void;
+ /**
+ * Remove state keys from session
+ */
+ removeStateKeys(sessionId: string, keys: string[]): void;
+ /**
+ * Clear all state for a session
+ */
+ clearSessionState(sessionId: string): void;
+ /**
+ * Set Claude SDK client for a session
+ */
+ setClient(sessionId: string, client: ClaudeSDKClient): void;
+ /**
+ * Get Claude SDK client for a session
+ */
+ getClient(sessionId: string): ClaudeSDKClient | undefined;
+ /**
+ * Get total number of sessions
+ */
+ getSessionCount(): number;
+ /**
+ * Get number of sessions for a specific user
+ */
+ getUserSessionCount(userId: string): number;
+ /**
+ * Get all session IDs
+ */
+ getAllSessionIds(): string[];
+ /**
+ * Get all sessions for a specific user
+ */
+ getUserSessions(userId: string): Session[];
+ /**
+ * Clean up stale sessions
+ */
+ private cleanupStaleSessions;
+ /**
+ * Start the cleanup interval
+ */
+ private startCleanupInterval;
+ /**
+ * Stop the cleanup interval
+ */
+ private stopCleanupInterval;
+ /**
+ * Clear all sessions (useful for testing)
+ */
+ clearAllSessions(): void;
+}
+
+/**
+ * Execution state: Tracks background Claude executions
+ */
+
+/**
+ * ExecutionState manages the state of a Claude SDK execution
+ */
+declare class ExecutionState {
+ readonly id: string;
+ readonly sessionId: string;
+ private _isRunning;
+ private _startTime;
+ private _endTime?;
+ private _events;
+ private _error?;
+ private _abortController;
+ constructor(id: string, sessionId: string);
+ /**
+ * Check if execution is running
+ */
+ get isRunning(): boolean;
+ /**
+ * Get start time
+ */
+ get startTime(): number;
+ /**
+ * Get end time
+ */
+ get endTime(): number | undefined;
+ /**
+ * Get duration in milliseconds
+ */
+ get duration(): number;
+ /**
+ * Get all collected events
+ */
+ get events(): ProcessedEvents[];
+ /**
+ * Get error if any
+ */
+ get error(): Error | undefined;
+ /**
+ * Get abort signal
+ */
+ get signal(): AbortSignal;
+ /**
+ * Add an event to the execution state
+ */
+ addEvent(event: ProcessedEvents): void;
+ /**
+ * Add multiple events
+ */
+ addEvents(events: ProcessedEvents[]): void;
+ /**
+ * Mark execution as completed
+ */
+ complete(): void;
+ /**
+ * Mark execution as failed
+ */
+ fail(error: Error): void;
+ /**
+ * Abort the execution
+ */
+ abort(): void;
+ /**
+ * Get execution statistics
+ */
+ getStats(): {
+ duration: number;
+ eventCount: number;
+ isRunning: boolean;
+ hasError: boolean;
+ };
+ /**
+ * Clear events (useful for memory management)
+ */
+ clearEvents(): void;
+ /**
+ * Get the last N events
+ */
+ getLastEvents(count: number): ProcessedEvents[];
+ /**
+ * Check if execution has been aborted
+ */
+ isAborted(): boolean;
+}
+/**
+ * ExecutionStateManager manages multiple execution states
+ */
+declare class ExecutionStateManager {
+ private executions;
+ private readonly maxExecutions;
+ constructor(maxExecutions?: number);
+ /**
+ * Create a new execution state
+ */
+ createExecution(id: string, sessionId: string): ExecutionState;
+ /**
+ * Get an execution state by ID
+ */
+ getExecution(id: string): ExecutionState | undefined;
+ /**
+ * Check if an execution exists
+ */
+ hasExecution(id: string): boolean;
+ /**
+ * Delete an execution state
+ */
+ deleteExecution(id: string): boolean;
+ /**
+ * Get all executions for a session
+ */
+ getSessionExecutions(sessionId: string): ExecutionState[];
+ /**
+ * Get running executions
+ */
+ getRunningExecutions(): ExecutionState[];
+ /**
+ * Get completed executions
+ */
+ getCompletedExecutions(): ExecutionState[];
+ /**
+ * Abort all running executions for a session
+ */
+ abortSessionExecutions(sessionId: string): void;
+ /**
+ * Clean up old completed executions
+ */
+ private cleanupOldExecutions;
+ /**
+ * Clear all executions
+ */
+ clearAll(): void;
+ /**
+ * Get total execution count
+ */
+ getExecutionCount(): number;
+ /**
+ * Get execution statistics
+ */
+ getStats(): {
+ total: number;
+ running: number;
+ completed: number;
+ failed: number;
+ };
+}
+
+/**
+ * Claude Agent: Main agent class that integrates Claude SDK with AG-UI Protocol
+ */
+
+/**
+ * ClaudeAgent integrates Claude Agent SDK with AG-UI Protocol
+ */
+declare class ClaudeAgent extends AbstractAgent {
+ private sessionManager;
+ private executionStateManager;
+ private apiKey?;
+ private baseUrl?;
+ private sessionTimeout;
+ private enablePersistentSessions;
+ private permissionMode;
+ private stderr?;
+ private verbose?;
+ constructor(config: ClaudeAgentConfig);
+ /**
+ * Map legacy permission modes to new SDK values for backward compatibility
+ */
+ private mapPermissionMode;
+ /**
+ * Run the agent with the given input
+ */
+ run(input: RunAgentInput): Observable;
+ /**
+ * Execute the agent asynchronously
+ */
+ private executeAgent;
+ /**
+ * Prepare Claude SDK options
+ * SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+ * But baseUrl needs to be explicitly passed for third-party APIs
+ */
+ private prepareClaudeOptions;
+ /**
+ * Call Claude SDK
+ * Note: Currently only stateless mode is supported via query() function
+ */
+ private callClaudeSDK;
+ /**
+ * Call Claude SDK in persistent session mode
+ * Note: The current SDK only supports stateless mode via query() function
+ * This method falls back to stateless mode
+ */
+ private callClaudeSDKPersistent;
+ /**
+ * Call Claude SDK in stateless mode
+ */
+ private callClaudeSDKStateless;
+ /**
+ * Dynamically import Claude SDK
+ */
+ private importClaudeSDK;
+ /**
+ * Abort a running execution
+ */
+ abortExecution(runId: string): void;
+ /**
+ * Get execution state
+ */
+ getExecutionState(runId: string): ExecutionState | undefined;
+ /**
+ * Get session manager (for testing)
+ */
+ getSessionManager(): SessionManager;
+ /**
+ * Get execution state manager (for testing)
+ */
+ getExecutionStateManager(): ExecutionStateManager;
+ /**
+ * Cleanup resources
+ */
+ cleanup(): Promise;
+}
+
+/**
+ * Event translator: Converts Claude SDK messages to AG-UI events
+ */
+
+/**
+ * EventTranslator converts Claude SDK messages to AG-UI protocol events
+ *
+ * NOTE: This translator only handles SDK message translation.
+ * Run lifecycle events (RUN_STARTED, RUN_FINISHED, etc.) and step events
+ * are handled by ClaudeAgent.
+ */
+declare class EventTranslator {
+ private messageIdCounter;
+ private currentMessageId;
+ private runId;
+ private threadId;
+ constructor(runId: string, threadId: string);
+ /**
+ * Translate a Claude SDK message to AG-UI events
+ * NOTE: Does not emit RUN_STARTED, RUN_FINISHED, or STEP events - those are handled by ClaudeAgent
+ */
+ translateMessage(message: SDKMessage): ProcessedEvents[];
+ /**
+ * Translate an AssistantMessage with content blocks
+ */
+ private translateAssistantMessage;
+ /**
+ * Translate a TextBlock to text message events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ private translateTextBlock;
+ /**
+ * Translate a ToolUseBlock to tool call events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ private translateToolUseBlock;
+ /**
+ * Translate a ToolResultBlock to tool call result event
+ */
+ private translateToolResultBlock;
+ /**
+ * Generate a unique message ID
+ */
+ private generateMessageId;
+ /**
+ * Reset the translator state for a new execution
+ */
+ reset(): void;
+ /**
+ * Get current message ID
+ */
+ getCurrentMessageId(): string | null;
+ /**
+ * Set current message ID
+ */
+ setCurrentMessageId(messageId: string | null): void;
+}
+
+/**
+ * Tool adapter: Converts AG-UI tools to Claude SDK format
+ */
+
+/**
+ * ToolAdapter handles conversion of AG-UI tools to Claude SDK format
+ */
+declare class ToolAdapter {
+ /**
+ * Convert AG-UI tools to Claude SDK MCP tool definitions
+ */
+ static convertAgUiToolsToSdk(tools: Tool[]): SdkMcpToolDefinition[];
+ /**
+ * Convert a single AG-UI tool to Claude SDK format
+ */
+ private static convertSingleTool;
+ /**
+ * Convert JSON Schema to Zod schema
+ */
+ private static convertJsonSchemaToZod;
+ /**
+ * Convert a single JSON Schema type to Zod type
+ */
+ private static convertJsonSchemaTypeToZod;
+ /**
+ * Create an MCP server configuration for AG-UI tools
+ */
+ static createMcpServerForTools(tools: Tool[]): Promise;
+ /**
+ * Extract tool calls from Claude SDK response
+ */
+ static extractToolCalls(message: any): Array<{
+ id: string;
+ name: string;
+ input: Record;
+ }>;
+ /**
+ * Check if a tool is a long-running client tool
+ */
+ static isClientTool(toolName: string, tools: Tool[]): boolean;
+ /**
+ * Check if a tool is marked as long-running
+ */
+ static isLongRunningTool(toolName: string, tools: Tool[]): boolean;
+ /**
+ * Format tool names for Claude SDK (with MCP server prefix)
+ */
+ static formatToolNameForSdk(toolName: string, serverName?: string): string;
+ /**
+ * Parse tool name from SDK format (remove MCP server prefix)
+ */
+ static parseToolNameFromSdk(sdkToolName: string): string;
+ /**
+ * Get allowed tools list for SDK options
+ */
+ static getAllowedToolsList(tools: Tool[], serverName?: string): string[];
+}
+
+/**
+ * Message format converters
+ */
+
+/**
+ * Convert AG-UI messages to a format suitable for Claude SDK
+ */
+declare function convertAgUiMessagesToPrompt(messages: Message[]): string;
+/**
+ * Extract text content from a message
+ */
+declare function extractMessageContent(message: Message): string;
+/**
+ * Convert AG-UI message to Claude message format
+ */
+declare function convertAgUiMessageToClaude(message: Message): ConvertedMessage;
+/**
+ * Convert multiple AG-UI messages to Claude format
+ */
+declare function convertAgUiMessagesToClaude(messages: Message[]): ConvertedMessage[];
+/**
+ * Check if messages contain tool results
+ */
+declare function hasToolResults(messages: Message[]): boolean;
+/**
+ * Extract tool results from messages
+ */
+declare function extractToolResults(messages: Message[]): Array<{
+ toolCallId: string;
+ result: string;
+}>;
+/**
+ * Generate a unique run ID
+ */
+declare function generateRunId(): string;
+/**
+ * Generate a unique message ID
+ */
+declare function generateMessageId(prefix?: string): string;
+/**
+ * Safely parse JSON string
+ */
+declare function safeJsonParse(json: string, defaultValue?: any): any;
+/**
+ * Safely stringify JSON
+ */
+declare function safeJsonStringify(obj: any, defaultValue?: string): string;
+/**
+ * Check if a message is a tool result submission
+ */
+declare function isToolResultSubmission(messages: Message[]): boolean;
+/**
+ * Format error message for display
+ */
+declare function formatErrorMessage(error: any): string;
+/**
+ * Truncate text to a maximum length
+ */
+declare function truncateText(text: string, maxLength?: number): string;
+/**
+ * Merge consecutive text blocks
+ */
+declare function mergeTextBlocks(blocks: Array<{
+ type: string;
+ text?: string;
+}>): string;
+
+export { type CallToolResult, ClaudeAgent, type ClaudeAgentConfig, type ClaudeSDKClient, type ContentBlock, type ConvertedMessage, EventTranslator, ExecutionState, ExecutionStateManager, type ExecutionState$1 as ExecutionStateType, type McpSdkServerConfigWithInstance, type Options, type ProcessedEvents, type Query, type SDKAssistantMessage, type SDKCompactBoundaryMessage, type SDKMessage, type SDKPartialAssistantMessage, type SDKPermissionDenial, type SDKResultMessage, type SDKSystemMessage, type SDKUserMessage, type SdkMcpToolDefinition, type Session, SessionManager, type TextBlock, type ThinkingBlock, ToolAdapter, type ToolExecutionContext, type ToolResultBlock, type ToolUseBlock, convertAgUiMessageToClaude, convertAgUiMessagesToClaude, convertAgUiMessagesToPrompt, extractMessageContent, extractToolResults, formatErrorMessage, generateMessageId, generateRunId, hasContentProperty, hasToolResults, isAssistantMessage, isResultMessage, isTextBlock, isThinkingBlock, isToolResultBlock, isToolResultSubmission, isToolUseBlock, mergeTextBlocks, safeJsonParse, safeJsonStringify, truncateText };
diff --git a/integrations/claude-agent-sdk/typescript/dist/index.js b/integrations/claude-agent-sdk/typescript/dist/index.js
new file mode 100644
index 000000000..aa142749c
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/dist/index.js
@@ -0,0 +1,1395 @@
+"use strict";
+var __create = Object.create;
+var __defProp = Object.defineProperty;
+var __defProps = Object.defineProperties;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __getOwnPropSymbols = Object.getOwnPropertySymbols;
+var __getProtoOf = Object.getPrototypeOf;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __propIsEnum = Object.prototype.propertyIsEnumerable;
+var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __spreadValues = (a, b) => {
+ for (var prop in b || (b = {}))
+ if (__hasOwnProp.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ if (__getOwnPropSymbols)
+ for (var prop of __getOwnPropSymbols(b)) {
+ if (__propIsEnum.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ }
+ return a;
+};
+var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
+var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+};
+var __copyProps = (to, from, except, desc) => {
+ if (from && typeof from === "object" || typeof from === "function") {
+ for (let key of __getOwnPropNames(from))
+ if (!__hasOwnProp.call(to, key) && key !== except)
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
+ }
+ return to;
+};
+var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+));
+var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
+
+// src/index.ts
+var src_exports = {};
+__export(src_exports, {
+ ClaudeAgent: () => ClaudeAgent,
+ EventTranslator: () => EventTranslator,
+ ExecutionState: () => ExecutionState,
+ ExecutionStateManager: () => ExecutionStateManager,
+ SessionManager: () => SessionManager,
+ ToolAdapter: () => ToolAdapter,
+ convertAgUiMessageToClaude: () => convertAgUiMessageToClaude,
+ convertAgUiMessagesToClaude: () => convertAgUiMessagesToClaude,
+ convertAgUiMessagesToPrompt: () => convertAgUiMessagesToPrompt,
+ extractMessageContent: () => extractMessageContent,
+ extractToolResults: () => extractToolResults,
+ formatErrorMessage: () => formatErrorMessage,
+ generateMessageId: () => generateMessageId,
+ generateRunId: () => generateRunId,
+ hasContentProperty: () => hasContentProperty,
+ hasToolResults: () => hasToolResults,
+ isAssistantMessage: () => isAssistantMessage,
+ isResultMessage: () => isResultMessage,
+ isTextBlock: () => isTextBlock,
+ isThinkingBlock: () => isThinkingBlock,
+ isToolResultBlock: () => isToolResultBlock,
+ isToolResultSubmission: () => isToolResultSubmission,
+ isToolUseBlock: () => isToolUseBlock,
+ mergeTextBlocks: () => mergeTextBlocks,
+ safeJsonParse: () => safeJsonParse,
+ safeJsonStringify: () => safeJsonStringify,
+ truncateText: () => truncateText
+});
+module.exports = __toCommonJS(src_exports);
+
+// src/agent.ts
+var import_rxjs = require("rxjs");
+var import_client2 = require("@ag-ui/client");
+
+// src/session-manager.ts
+var DEFAULT_SESSION_TIMEOUT = 30 * 60 * 1e3;
+var CLEANUP_INTERVAL = 5 * 60 * 1e3;
+var _SessionManager = class _SessionManager {
+ constructor(sessionTimeout = DEFAULT_SESSION_TIMEOUT) {
+ this.sessions = /* @__PURE__ */ new Map();
+ this.cleanupInterval = null;
+ this.sessionTimeout = sessionTimeout;
+ this.startCleanupInterval();
+ }
+ /**
+ * Get the singleton instance
+ */
+ static getInstance(sessionTimeout) {
+ if (!_SessionManager.instance) {
+ _SessionManager.instance = new _SessionManager(sessionTimeout);
+ }
+ return _SessionManager.instance;
+ }
+ /**
+ * Reset the singleton instance (useful for testing)
+ */
+ static resetInstance() {
+ if (_SessionManager.instance) {
+ _SessionManager.instance.stopCleanupInterval();
+ _SessionManager.instance = null;
+ }
+ }
+ /**
+ * Get or create a session
+ */
+ getSession(sessionId, userId) {
+ let session = this.sessions.get(sessionId);
+ if (!session) {
+ session = {
+ id: sessionId,
+ userId,
+ processedMessageIds: /* @__PURE__ */ new Set(),
+ state: {},
+ createdAt: Date.now(),
+ lastAccessedAt: Date.now()
+ };
+ this.sessions.set(sessionId, session);
+ } else {
+ session.lastAccessedAt = Date.now();
+ }
+ return session;
+ }
+ /**
+ * Check if a session exists
+ */
+ hasSession(sessionId) {
+ return this.sessions.has(sessionId);
+ }
+ /**
+ * Delete a session
+ */
+ deleteSession(sessionId) {
+ const session = this.sessions.get(sessionId);
+ if (session == null ? void 0 : session.client) {
+ session.client.close().catch((error) => {
+ console.error(`Error closing Claude SDK client for session ${sessionId}:`, error);
+ });
+ }
+ return this.sessions.delete(sessionId);
+ }
+ /**
+ * Track a processed message
+ */
+ trackMessage(sessionId, messageId) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.processedMessageIds.add(messageId);
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Check if a message has been processed
+ */
+ isMessageProcessed(sessionId, messageId) {
+ const session = this.sessions.get(sessionId);
+ return session ? session.processedMessageIds.has(messageId) : false;
+ }
+ /**
+ * Get unseen messages (messages not yet processed)
+ */
+ getUnseenMessages(sessionId, messages) {
+ const session = this.sessions.get(sessionId);
+ if (!session) {
+ return messages;
+ }
+ return messages.filter((msg) => {
+ const msgId = msg.id || `${msg.role}_${msg.content}`;
+ return !session.processedMessageIds.has(msgId);
+ });
+ }
+ /**
+ * Mark messages as processed
+ */
+ markMessagesAsProcessed(sessionId, messages) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ for (const msg of messages) {
+ const msgId = msg.id || `${msg.role}_${msg.content}`;
+ session.processedMessageIds.add(msgId);
+ }
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Get state value from session
+ */
+ getStateValue(sessionId, key) {
+ const session = this.sessions.get(sessionId);
+ return session == null ? void 0 : session.state[key];
+ }
+ /**
+ * Set state value in session
+ */
+ setStateValue(sessionId, key, value) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.state[key] = value;
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Remove state keys from session
+ */
+ removeStateKeys(sessionId, keys) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ for (const key of keys) {
+ delete session.state[key];
+ }
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Clear all state for a session
+ */
+ clearSessionState(sessionId) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.state = {};
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Set Claude SDK client for a session
+ */
+ setClient(sessionId, client) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.client = client;
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Get Claude SDK client for a session
+ */
+ getClient(sessionId) {
+ const session = this.sessions.get(sessionId);
+ return session == null ? void 0 : session.client;
+ }
+ /**
+ * Get total number of sessions
+ */
+ getSessionCount() {
+ return this.sessions.size;
+ }
+ /**
+ * Get number of sessions for a specific user
+ */
+ getUserSessionCount(userId) {
+ let count = 0;
+ for (const session of this.sessions.values()) {
+ if (session.userId === userId) {
+ count++;
+ }
+ }
+ return count;
+ }
+ /**
+ * Get all session IDs
+ */
+ getAllSessionIds() {
+ return Array.from(this.sessions.keys());
+ }
+ /**
+ * Get all sessions for a specific user
+ */
+ getUserSessions(userId) {
+ const userSessions = [];
+ for (const session of this.sessions.values()) {
+ if (session.userId === userId) {
+ userSessions.push(session);
+ }
+ }
+ return userSessions;
+ }
+ /**
+ * Clean up stale sessions
+ */
+ cleanupStaleSessions() {
+ const now = Date.now();
+ const sessionsToDelete = [];
+ for (const [sessionId, session] of this.sessions.entries()) {
+ if (now - session.lastAccessedAt > this.sessionTimeout) {
+ sessionsToDelete.push(sessionId);
+ }
+ }
+ for (const sessionId of sessionsToDelete) {
+ this.deleteSession(sessionId);
+ }
+ if (sessionsToDelete.length > 0) {
+ console.log(`Cleaned up ${sessionsToDelete.length} stale sessions`);
+ }
+ }
+ /**
+ * Start the cleanup interval
+ */
+ startCleanupInterval() {
+ if (!this.cleanupInterval) {
+ this.cleanupInterval = setInterval(() => {
+ this.cleanupStaleSessions();
+ }, CLEANUP_INTERVAL);
+ if (typeof this.cleanupInterval.unref === "function") {
+ this.cleanupInterval.unref();
+ }
+ }
+ }
+ /**
+ * Stop the cleanup interval
+ */
+ stopCleanupInterval() {
+ if (this.cleanupInterval) {
+ clearInterval(this.cleanupInterval);
+ this.cleanupInterval = null;
+ }
+ }
+ /**
+ * Clear all sessions (useful for testing)
+ */
+ clearAllSessions() {
+ for (const sessionId of this.sessions.keys()) {
+ this.deleteSession(sessionId);
+ }
+ this.sessions.clear();
+ }
+};
+_SessionManager.instance = null;
+var SessionManager = _SessionManager;
+
+// src/event-translator.ts
+var import_client = require("@ag-ui/client");
+
+// src/types.ts
+function isAssistantMessage(message) {
+ return message.type === "assistant";
+}
+function isResultMessage(message) {
+ return message.type === "result";
+}
+function isTextBlock(block) {
+ return block.type === "text";
+}
+function isToolUseBlock(block) {
+ return block.type === "tool_use";
+}
+function isToolResultBlock(block) {
+ return block.type === "tool_result";
+}
+function isThinkingBlock(block) {
+ return block.type === "thinking";
+}
+function hasContentProperty(message) {
+ if (message.type === "assistant") {
+ return "message" in message && message.message !== null && typeof message.message === "object" && "content" in message.message && Array.isArray(message.message.content);
+ }
+ return "content" in message && Array.isArray(message.content);
+}
+
+// src/event-translator.ts
+var EventTranslator = class {
+ constructor(runId, threadId) {
+ this.messageIdCounter = 0;
+ this.currentMessageId = null;
+ this.runId = runId;
+ this.threadId = threadId;
+ }
+ /**
+ * Translate a Claude SDK message to AG-UI events
+ * NOTE: Does not emit RUN_STARTED, RUN_FINISHED, or STEP events - those are handled by ClaudeAgent
+ */
+ translateMessage(message) {
+ const events = [];
+ if (hasContentProperty(message)) {
+ events.push(...this.translateAssistantMessage(message));
+ }
+ return events;
+ }
+ /**
+ * Translate an AssistantMessage with content blocks
+ */
+ translateAssistantMessage(message) {
+ var _a;
+ const events = [];
+ const content = ((_a = message.message) == null ? void 0 : _a.content) || [];
+ for (const block of content) {
+ if (isTextBlock(block)) {
+ events.push(...this.translateTextBlock(block));
+ } else if (isToolUseBlock(block)) {
+ events.push(...this.translateToolUseBlock(block));
+ } else if (isToolResultBlock(block)) {
+ events.push(...this.translateToolResultBlock(block));
+ }
+ }
+ return events;
+ }
+ /**
+ * Translate a TextBlock to text message events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ translateTextBlock(block) {
+ const events = [];
+ const messageId = this.generateMessageId();
+ events.push({
+ type: import_client.EventType.TEXT_MESSAGE_START,
+ messageId,
+ role: "assistant"
+ });
+ const text = block.text;
+ if (text.length > 0) {
+ events.push({
+ type: import_client.EventType.TEXT_MESSAGE_CONTENT,
+ messageId,
+ delta: text
+ });
+ }
+ events.push({
+ type: import_client.EventType.TEXT_MESSAGE_END,
+ messageId
+ });
+ return events;
+ }
+ /**
+ * Translate a ToolUseBlock to tool call events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ translateToolUseBlock(block) {
+ const events = [];
+ const toolCallId = block.id;
+ events.push({
+ type: import_client.EventType.TOOL_CALL_START,
+ toolCallId,
+ toolCallName: block.name
+ });
+ const argsJson = JSON.stringify(block.input);
+ if (argsJson.length > 0) {
+ events.push({
+ type: import_client.EventType.TOOL_CALL_ARGS,
+ toolCallId,
+ delta: argsJson
+ });
+ }
+ events.push({
+ type: import_client.EventType.TOOL_CALL_END,
+ toolCallId
+ });
+ return events;
+ }
+ /**
+ * Translate a ToolResultBlock to tool call result event
+ */
+ translateToolResultBlock(block) {
+ const events = [];
+ let resultContent;
+ if (typeof block.content === "string") {
+ resultContent = block.content;
+ } else if (Array.isArray(block.content)) {
+ resultContent = block.content.map((item) => {
+ if (item.type === "text") {
+ return item.text || "";
+ }
+ return JSON.stringify(item);
+ }).join("\n");
+ } else {
+ resultContent = JSON.stringify(block.content);
+ }
+ const messageId = this.generateMessageId();
+ events.push(__spreadValues({
+ type: import_client.EventType.TOOL_CALL_RESULT,
+ toolCallId: block.tool_use_id,
+ messageId,
+ content: resultContent
+ }, block.is_error && { role: "tool" }));
+ return events;
+ }
+ /**
+ * Generate a unique message ID
+ */
+ generateMessageId() {
+ this.messageIdCounter++;
+ return `msg_${this.runId}_${this.messageIdCounter}`;
+ }
+ /**
+ * Reset the translator state for a new execution
+ */
+ reset() {
+ this.messageIdCounter = 0;
+ this.currentMessageId = null;
+ }
+ /**
+ * Get current message ID
+ */
+ getCurrentMessageId() {
+ return this.currentMessageId;
+ }
+ /**
+ * Set current message ID
+ */
+ setCurrentMessageId(messageId) {
+ this.currentMessageId = messageId;
+ }
+};
+
+// src/tool-adapter.ts
+var import_zod = require("zod");
+var ToolAdapter = class {
+ /**
+ * Convert AG-UI tools to Claude SDK MCP tool definitions
+ */
+ static convertAgUiToolsToSdk(tools) {
+ return tools.map((tool) => this.convertSingleTool(tool));
+ }
+ /**
+ * Convert a single AG-UI tool to Claude SDK format
+ */
+ static convertSingleTool(tool) {
+ const zodSchema = this.convertJsonSchemaToZod(tool.parameters || {});
+ return {
+ name: tool.name,
+ description: tool.description || "",
+ inputSchema: zodSchema,
+ handler: async (args) => {
+ if (tool.client) {
+ return {
+ content: [
+ {
+ type: "text",
+ text: JSON.stringify({
+ toolName: tool.name,
+ args,
+ isClientTool: true,
+ isLongRunning: true
+ })
+ }
+ ]
+ };
+ }
+ if (tool.handler) {
+ try {
+ const result = await tool.handler(args);
+ return {
+ content: [
+ {
+ type: "text",
+ text: typeof result === "string" ? result : JSON.stringify(result)
+ }
+ ]
+ };
+ } catch (error) {
+ return {
+ content: [
+ {
+ type: "text",
+ text: error.message || "Tool execution failed"
+ }
+ ],
+ isError: true
+ };
+ }
+ }
+ return {
+ content: [
+ {
+ type: "text",
+ text: "Tool executed (no handler)"
+ }
+ ]
+ };
+ }
+ };
+ }
+ /**
+ * Convert JSON Schema to Zod schema
+ */
+ static convertJsonSchemaToZod(jsonSchema) {
+ if (!jsonSchema || typeof jsonSchema !== "object") {
+ return import_zod.z.object({});
+ }
+ const properties = jsonSchema.properties || {};
+ const required = jsonSchema.required || [];
+ const zodShape = {};
+ for (const [key, prop] of Object.entries(properties)) {
+ const propSchema = prop;
+ let zodType = this.convertJsonSchemaTypeToZod(propSchema);
+ if (!required.includes(key)) {
+ zodType = zodType.optional();
+ }
+ zodShape[key] = zodType;
+ }
+ return import_zod.z.object(zodShape);
+ }
+ /**
+ * Convert a single JSON Schema type to Zod type
+ */
+ static convertJsonSchemaTypeToZod(schema) {
+ const type = schema.type;
+ switch (type) {
+ case "string":
+ if (schema.enum) {
+ return import_zod.z.enum(schema.enum);
+ }
+ return import_zod.z.string();
+ case "number":
+ case "integer":
+ let numType = type === "integer" ? import_zod.z.number().int() : import_zod.z.number();
+ if (schema.minimum !== void 0) {
+ numType = numType.min(schema.minimum);
+ }
+ if (schema.maximum !== void 0) {
+ numType = numType.max(schema.maximum);
+ }
+ return numType;
+ case "boolean":
+ return import_zod.z.boolean();
+ case "array":
+ if (schema.items) {
+ const itemType = this.convertJsonSchemaTypeToZod(schema.items);
+ return import_zod.z.array(itemType);
+ }
+ return import_zod.z.array(import_zod.z.any());
+ case "object":
+ if (schema.properties) {
+ return this.convertJsonSchemaToZod(schema);
+ }
+ return import_zod.z.record(import_zod.z.any());
+ case "null":
+ return import_zod.z.null();
+ default:
+ return import_zod.z.any();
+ }
+ }
+ /**
+ * Create an MCP server configuration for AG-UI tools
+ */
+ static async createMcpServerForTools(tools) {
+ const sdkTools = this.convertAgUiToolsToSdk(tools);
+ const { createSdkMcpServer } = await import("@anthropic-ai/claude-agent-sdk");
+ return createSdkMcpServer({
+ name: "ag_ui_tools",
+ version: "1.0.0",
+ tools: sdkTools
+ // Cast to any to avoid type incompatibility
+ });
+ }
+ /**
+ * Extract tool calls from Claude SDK response
+ */
+ static extractToolCalls(message) {
+ if (!message.content || !Array.isArray(message.content)) {
+ return [];
+ }
+ return message.content.filter((block) => block.type === "tool_use").map((block) => ({
+ id: block.id,
+ name: block.name,
+ input: block.input
+ }));
+ }
+ /**
+ * Check if a tool is a long-running client tool
+ */
+ static isClientTool(toolName, tools) {
+ const tool = tools.find((t) => t.name === toolName);
+ return (tool == null ? void 0 : tool.client) === true;
+ }
+ /**
+ * Check if a tool is marked as long-running
+ */
+ static isLongRunningTool(toolName, tools) {
+ const tool = tools.find((t) => t.name === toolName);
+ return (tool == null ? void 0 : tool.client) === true || (tool == null ? void 0 : tool.longRunning) === true;
+ }
+ /**
+ * Format tool names for Claude SDK (with MCP server prefix)
+ */
+ static formatToolNameForSdk(toolName, serverName = "ag_ui_tools") {
+ return `mcp__${serverName}__${toolName}`;
+ }
+ /**
+ * Parse tool name from SDK format (remove MCP server prefix)
+ */
+ static parseToolNameFromSdk(sdkToolName) {
+ const parts = sdkToolName.split("__");
+ if (parts.length >= 3 && parts[0] === "mcp") {
+ return parts.slice(2).join("__");
+ }
+ return sdkToolName;
+ }
+ /**
+ * Get allowed tools list for SDK options
+ */
+ static getAllowedToolsList(tools, serverName = "ag_ui_tools") {
+ return tools.map((tool) => this.formatToolNameForSdk(tool.name, serverName));
+ }
+};
+
+// src/execution-state.ts
+var ExecutionState = class {
+ constructor(id, sessionId) {
+ this.id = id;
+ this.sessionId = sessionId;
+ this._isRunning = true;
+ this._startTime = Date.now();
+ this._events = [];
+ this._abortController = new AbortController();
+ }
+ /**
+ * Check if execution is running
+ */
+ get isRunning() {
+ return this._isRunning;
+ }
+ /**
+ * Get start time
+ */
+ get startTime() {
+ return this._startTime;
+ }
+ /**
+ * Get end time
+ */
+ get endTime() {
+ return this._endTime;
+ }
+ /**
+ * Get duration in milliseconds
+ */
+ get duration() {
+ const end = this._endTime || Date.now();
+ return end - this._startTime;
+ }
+ /**
+ * Get all collected events
+ */
+ get events() {
+ return [...this._events];
+ }
+ /**
+ * Get error if any
+ */
+ get error() {
+ return this._error;
+ }
+ /**
+ * Get abort signal
+ */
+ get signal() {
+ return this._abortController.signal;
+ }
+ /**
+ * Add an event to the execution state
+ */
+ addEvent(event) {
+ this._events.push(event);
+ }
+ /**
+ * Add multiple events
+ */
+ addEvents(events) {
+ this._events.push(...events);
+ }
+ /**
+ * Mark execution as completed
+ */
+ complete() {
+ if (this._isRunning) {
+ this._isRunning = false;
+ this._endTime = Date.now();
+ }
+ }
+ /**
+ * Mark execution as failed
+ */
+ fail(error) {
+ if (this._isRunning) {
+ this._isRunning = false;
+ this._endTime = Date.now();
+ this._error = error;
+ }
+ }
+ /**
+ * Abort the execution
+ */
+ abort() {
+ if (this._isRunning) {
+ this._abortController.abort();
+ this._isRunning = false;
+ this._endTime = Date.now();
+ }
+ }
+ /**
+ * Get execution statistics
+ */
+ getStats() {
+ return {
+ duration: this.duration,
+ eventCount: this._events.length,
+ isRunning: this._isRunning,
+ hasError: !!this._error
+ };
+ }
+ /**
+ * Clear events (useful for memory management)
+ */
+ clearEvents() {
+ this._events = [];
+ }
+ /**
+ * Get the last N events
+ */
+ getLastEvents(count) {
+ return this._events.slice(-count);
+ }
+ /**
+ * Check if execution has been aborted
+ */
+ isAborted() {
+ return this._abortController.signal.aborted;
+ }
+};
+var ExecutionStateManager = class {
+ constructor(maxExecutions = 100) {
+ this.executions = /* @__PURE__ */ new Map();
+ this.maxExecutions = maxExecutions;
+ }
+ /**
+ * Create a new execution state
+ */
+ createExecution(id, sessionId) {
+ const execution = new ExecutionState(id, sessionId);
+ this.executions.set(id, execution);
+ if (this.executions.size > this.maxExecutions) {
+ this.cleanupOldExecutions();
+ }
+ return execution;
+ }
+ /**
+ * Get an execution state by ID
+ */
+ getExecution(id) {
+ return this.executions.get(id);
+ }
+ /**
+ * Check if an execution exists
+ */
+ hasExecution(id) {
+ return this.executions.has(id);
+ }
+ /**
+ * Delete an execution state
+ */
+ deleteExecution(id) {
+ return this.executions.delete(id);
+ }
+ /**
+ * Get all executions for a session
+ */
+ getSessionExecutions(sessionId) {
+ const executions = [];
+ for (const execution of this.executions.values()) {
+ if (execution.sessionId === sessionId) {
+ executions.push(execution);
+ }
+ }
+ return executions;
+ }
+ /**
+ * Get running executions
+ */
+ getRunningExecutions() {
+ const running = [];
+ for (const execution of this.executions.values()) {
+ if (execution.isRunning) {
+ running.push(execution);
+ }
+ }
+ return running;
+ }
+ /**
+ * Get completed executions
+ */
+ getCompletedExecutions() {
+ const completed = [];
+ for (const execution of this.executions.values()) {
+ if (!execution.isRunning) {
+ completed.push(execution);
+ }
+ }
+ return completed;
+ }
+ /**
+ * Abort all running executions for a session
+ */
+ abortSessionExecutions(sessionId) {
+ const sessionExecutions = this.getSessionExecutions(sessionId);
+ for (const execution of sessionExecutions) {
+ if (execution.isRunning) {
+ execution.abort();
+ }
+ }
+ }
+ /**
+ * Clean up old completed executions
+ */
+ cleanupOldExecutions() {
+ const completed = this.getCompletedExecutions();
+ completed.sort((a, b) => {
+ const aTime = a.endTime || a.startTime;
+ const bTime = b.endTime || b.startTime;
+ return aTime - bTime;
+ });
+ const toRemove = Math.max(0, this.executions.size - this.maxExecutions);
+ for (let i = 0; i < toRemove && i < completed.length; i++) {
+ this.executions.delete(completed[i].id);
+ }
+ }
+ /**
+ * Clear all executions
+ */
+ clearAll() {
+ this.executions.clear();
+ }
+ /**
+ * Get total execution count
+ */
+ getExecutionCount() {
+ return this.executions.size;
+ }
+ /**
+ * Get execution statistics
+ */
+ getStats() {
+ let running = 0;
+ let completed = 0;
+ let failed = 0;
+ for (const execution of this.executions.values()) {
+ if (execution.isRunning) {
+ running++;
+ } else if (execution.error) {
+ failed++;
+ } else {
+ completed++;
+ }
+ }
+ return {
+ total: this.executions.size,
+ running,
+ completed,
+ failed
+ };
+ }
+};
+
+// src/utils/converters.ts
+function convertAgUiMessagesToPrompt(messages) {
+ for (let i = messages.length - 1; i >= 0; i--) {
+ const msg = messages[i];
+ if (msg.role === "user") {
+ return extractMessageContent(msg);
+ }
+ }
+ return "Hello";
+}
+function extractMessageContent(message) {
+ if (typeof message.content === "string") {
+ return message.content;
+ }
+ if (Array.isArray(message.content)) {
+ return message.content.map((block) => {
+ if (typeof block === "string") {
+ return block;
+ }
+ if (block.type === "text") {
+ return block.text || "";
+ }
+ return "";
+ }).filter(Boolean).join("\n");
+ }
+ return String(message.content);
+}
+function convertAgUiMessageToClaude(message) {
+ const role = message.role;
+ const content = extractMessageContent(message);
+ return {
+ role,
+ content
+ };
+}
+function convertAgUiMessagesToClaude(messages) {
+ return messages.map(convertAgUiMessageToClaude);
+}
+function hasToolResults(messages) {
+ return messages.some((msg) => {
+ if (typeof msg.content === "string") {
+ return false;
+ }
+ if (Array.isArray(msg.content)) {
+ return msg.content.some((block) => {
+ return typeof block === "object" && block.type === "tool_result";
+ });
+ }
+ return false;
+ });
+}
+function extractToolResults(messages) {
+ const results = [];
+ for (const msg of messages) {
+ if (typeof msg.content === "string") {
+ continue;
+ }
+ if (Array.isArray(msg.content)) {
+ for (const block of msg.content) {
+ if (typeof block === "object" && block.type === "tool_result") {
+ results.push({
+ toolCallId: block.toolCallId || block.tool_use_id || "",
+ result: block.result || block.content || ""
+ });
+ }
+ }
+ }
+ }
+ return results;
+}
+function generateRunId() {
+ return `run_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
+}
+function generateMessageId(prefix = "msg") {
+ return `${prefix}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
+}
+function safeJsonParse(json, defaultValue = null) {
+ try {
+ return JSON.parse(json);
+ } catch (e) {
+ return defaultValue;
+ }
+}
+function safeJsonStringify(obj, defaultValue = "{}") {
+ try {
+ return JSON.stringify(obj);
+ } catch (e) {
+ return defaultValue;
+ }
+}
+function isToolResultSubmission(messages) {
+ if (messages.length === 0) {
+ return false;
+ }
+ const lastMessage = messages[messages.length - 1];
+ return hasToolResults([lastMessage]);
+}
+function formatErrorMessage(error) {
+ if (error instanceof Error) {
+ return error.message;
+ }
+ if (typeof error === "string") {
+ return error;
+ }
+ return "An unknown error occurred";
+}
+function truncateText(text, maxLength = 1e3) {
+ if (text.length <= maxLength) {
+ return text;
+ }
+ return text.slice(0, maxLength) + "...";
+}
+function mergeTextBlocks(blocks) {
+ return blocks.filter((block) => block.type === "text" && block.text).map((block) => block.text).join("");
+}
+
+// src/agent.ts
+var ClaudeAgent = class extends import_client2.AbstractAgent {
+ constructor(config) {
+ super(config);
+ this.apiKey = config.apiKey;
+ this.baseUrl = config.baseUrl;
+ this.sessionTimeout = config.sessionTimeout || 30 * 60 * 1e3;
+ this.enablePersistentSessions = config.enablePersistentSessions !== false;
+ this.permissionMode = this.mapPermissionMode(config.permissionMode || "bypassPermissions");
+ this.stderr = config.stderr;
+ this.verbose = config.verbose;
+ this.sessionManager = SessionManager.getInstance(this.sessionTimeout);
+ this.executionStateManager = new ExecutionStateManager();
+ }
+ /**
+ * Map legacy permission modes to new SDK values for backward compatibility
+ */
+ mapPermissionMode(mode) {
+ const modeMap = {
+ "ask": "default",
+ "auto": "bypassPermissions",
+ "none": "bypassPermissions",
+ "default": "default",
+ "acceptEdits": "acceptEdits",
+ "bypassPermissions": "bypassPermissions",
+ "plan": "plan"
+ };
+ return modeMap[mode || "bypassPermissions"] || "bypassPermissions";
+ }
+ /**
+ * Run the agent with the given input
+ */
+ run(input) {
+ return new import_rxjs.Observable((subscriber) => {
+ this.executeAgent(input, subscriber).catch((error) => {
+ subscriber.error(error);
+ });
+ });
+ }
+ /**
+ * Execute the agent asynchronously
+ */
+ async executeAgent(input, subscriber) {
+ const runId = generateRunId();
+ const sessionId = input.threadId || `session_${Date.now()}`;
+ const execution = this.executionStateManager.createExecution(runId, sessionId);
+ try {
+ const runStartedEvent = {
+ type: import_client2.EventType.RUN_STARTED,
+ threadId: sessionId,
+ runId
+ };
+ subscriber.next(runStartedEvent);
+ execution.addEvent(runStartedEvent);
+ const session = this.sessionManager.getSession(sessionId, "default");
+ const unseenMessages = this.sessionManager.getUnseenMessages(
+ sessionId,
+ input.messages || []
+ );
+ const isToolResult = isToolResultSubmission(input.messages || []);
+ const tools = input.tools || [];
+ const options = await this.prepareClaudeOptions(tools);
+ const prompt = convertAgUiMessagesToPrompt(unseenMessages);
+ const stepStartedEvent = {
+ type: import_client2.EventType.STEP_STARTED,
+ stepName: `step_${runId}_1`
+ };
+ subscriber.next(stepStartedEvent);
+ execution.addEvent(stepStartedEvent);
+ await this.callClaudeSDK(
+ prompt,
+ options,
+ session,
+ runId,
+ sessionId,
+ subscriber,
+ execution
+ );
+ this.sessionManager.markMessagesAsProcessed(sessionId, unseenMessages);
+ const stepFinishedEvent = {
+ type: import_client2.EventType.STEP_FINISHED,
+ stepName: `step_${runId}_1`
+ };
+ subscriber.next(stepFinishedEvent);
+ execution.addEvent(stepFinishedEvent);
+ const runFinishedEvent = {
+ type: import_client2.EventType.RUN_FINISHED,
+ threadId: sessionId,
+ runId
+ };
+ subscriber.next(runFinishedEvent);
+ execution.addEvent(runFinishedEvent);
+ execution.complete();
+ subscriber.complete();
+ } catch (error) {
+ const runErrorEvent = {
+ type: import_client2.EventType.RUN_ERROR,
+ message: formatErrorMessage(error)
+ };
+ subscriber.next(runErrorEvent);
+ execution.addEvent(runErrorEvent);
+ execution.fail(error);
+ subscriber.complete();
+ }
+ }
+ /**
+ * Prepare Claude SDK options
+ * SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+ * But baseUrl needs to be explicitly passed for third-party APIs
+ */
+ async prepareClaudeOptions(tools) {
+ const baseUrl = this.baseUrl || process.env.ANTHROPIC_BASE_URL;
+ const apiKey = this.apiKey || process.env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_API_KEY;
+ console.log("[Claude Agent] Preparing SDK options:", {
+ hasApiKey: !!apiKey,
+ hasBaseUrl: !!baseUrl,
+ baseUrl: baseUrl || "not set",
+ permissionMode: this.permissionMode,
+ hasStderr: !!this.stderr,
+ verbose: this.verbose
+ });
+ const options = __spreadProps(__spreadValues(__spreadValues({
+ permissionMode: this.permissionMode
+ }, this.stderr && { stderr: this.stderr }), this.verbose !== void 0 && { verbose: this.verbose }), {
+ env: process.env
+ });
+ if (this.stderr) {
+ console.log("[Claude Agent] \u2713 stderr callback is configured for error logging");
+ } else {
+ console.warn("[Claude Agent] \u26A0\uFE0F stderr callback not configured - CLI errors may not be visible");
+ }
+ if (tools && tools.length > 0) {
+ const mcpServer = await ToolAdapter.createMcpServerForTools(tools);
+ options.mcpServers = {
+ ag_ui_tools: mcpServer
+ };
+ options.allowedTools = ToolAdapter.getAllowedToolsList(tools);
+ }
+ return options;
+ }
+ /**
+ * Call Claude SDK
+ * Note: Currently only stateless mode is supported via query() function
+ */
+ async callClaudeSDK(prompt, options, session, runId, sessionId, subscriber, execution) {
+ const eventTranslator = new EventTranslator(runId, sessionId);
+ await this.callClaudeSDKStateless(
+ prompt,
+ options,
+ eventTranslator,
+ subscriber,
+ execution
+ );
+ }
+ /**
+ * Call Claude SDK in persistent session mode
+ * Note: The current SDK only supports stateless mode via query() function
+ * This method falls back to stateless mode
+ */
+ async callClaudeSDKPersistent(prompt, options, session, eventTranslator, subscriber, execution) {
+ await this.callClaudeSDKStateless(prompt, options, eventTranslator, subscriber, execution);
+ }
+ /**
+ * Call Claude SDK in stateless mode
+ */
+ async callClaudeSDKStateless(prompt, options, eventTranslator, subscriber, execution) {
+ try {
+ console.log("[Claude Agent] Environment check:");
+ console.log(" ANTHROPIC_API_KEY:", process.env.ANTHROPIC_API_KEY ? "SET" : "NOT SET");
+ console.log(" ANTHROPIC_AUTH_TOKEN:", process.env.ANTHROPIC_AUTH_TOKEN ? "SET" : "NOT SET");
+ console.log(" ANTHROPIC_BASE_URL:", process.env.ANTHROPIC_BASE_URL || "NOT SET (using default)");
+ console.log("[Claude Agent] Options passed to SDK:", {
+ hasApiKey: !!options.apiKey,
+ hasBaseUrl: !!options.baseUrl,
+ permissionMode: options.permissionMode,
+ hasMcpServers: !!options.mcpServers
+ });
+ const { query } = await this.importClaudeSDK();
+ console.log("[Claude Agent] Calling SDK query()...");
+ const queryResult = query({ prompt, options });
+ try {
+ for (var iter = __forAwait(queryResult), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
+ const message = temp.value;
+ console.log("[Claude Agent] \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501");
+ console.log("[Claude Agent] Received message type:", (message == null ? void 0 : message.type) || "unknown");
+ console.log("[Claude Agent] Full message:", JSON.stringify(message, null, 2));
+ if (execution.isAborted()) {
+ console.log("[Claude Agent] Execution aborted by user");
+ break;
+ }
+ const events = eventTranslator.translateMessage(message);
+ console.log("[Claude Agent] Translated events count:", events.length);
+ for (const event of events) {
+ console.log("[Claude Agent] Sending event:", JSON.stringify(event, null, 2));
+ subscriber.next(event);
+ execution.addEvent(event);
+ }
+ console.log("[Claude Agent] \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501");
+ }
+ } catch (temp) {
+ error = [temp];
+ } finally {
+ try {
+ more && (temp = iter.return) && await temp.call(iter);
+ } finally {
+ if (error)
+ throw error[0];
+ }
+ }
+ console.log("[Claude Agent] Query completed successfully");
+ } catch (error2) {
+ console.error("[Claude Agent] ERROR Details:");
+ console.error(" Message:", error2.message);
+ console.error(" Stack:", error2.stack);
+ console.error(" Error object:", JSON.stringify(error2, Object.getOwnPropertyNames(error2), 2));
+ if (error2.message && error2.message.includes("exited with code")) {
+ throw new Error(
+ `Claude Code process failed. Please ensure:
+1. Claude CLI is installed and accessible (run: claude --version)
+2. ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set correctly in environment variables
+3. You have proper permissions to run Claude Code
+4. If using ANTHROPIC_BASE_URL, ensure it supports Claude Code protocol
+
+Original error: ${error2.message}
+Error stack: ${error2.stack || "No stack trace"}`
+ );
+ }
+ if (error2.message && (error2.message.includes("API key") || error2.message.includes("auth"))) {
+ throw new Error(
+ `API key error: ${error2.message}
+Please ensure ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set in environment variables.`
+ );
+ }
+ throw error2;
+ }
+ }
+ /**
+ * Dynamically import Claude SDK
+ */
+ async importClaudeSDK() {
+ try {
+ return await import("@anthropic-ai/claude-agent-sdk");
+ } catch (error) {
+ throw new Error(
+ "Claude Agent SDK not found. Please install it: npm install @anthropic-ai/claude-agent-sdk"
+ );
+ }
+ }
+ /**
+ * Abort a running execution
+ */
+ abortExecution(runId) {
+ const execution = this.executionStateManager.getExecution(runId);
+ if (execution) {
+ execution.abort();
+ }
+ }
+ /**
+ * Get execution state
+ */
+ getExecutionState(runId) {
+ return this.executionStateManager.getExecution(runId);
+ }
+ /**
+ * Get session manager (for testing)
+ */
+ getSessionManager() {
+ return this.sessionManager;
+ }
+ /**
+ * Get execution state manager (for testing)
+ */
+ getExecutionStateManager() {
+ return this.executionStateManager;
+ }
+ /**
+ * Cleanup resources
+ */
+ async cleanup() {
+ const runningExecutions = this.executionStateManager.getRunningExecutions();
+ for (const execution of runningExecutions) {
+ execution.abort();
+ }
+ this.sessionManager.clearAllSessions();
+ this.executionStateManager.clearAll();
+ }
+};
+// Annotate the CommonJS export names for ESM import in node:
+0 && (module.exports = {
+ ClaudeAgent,
+ EventTranslator,
+ ExecutionState,
+ ExecutionStateManager,
+ SessionManager,
+ ToolAdapter,
+ convertAgUiMessageToClaude,
+ convertAgUiMessagesToClaude,
+ convertAgUiMessagesToPrompt,
+ extractMessageContent,
+ extractToolResults,
+ formatErrorMessage,
+ generateMessageId,
+ generateRunId,
+ hasContentProperty,
+ hasToolResults,
+ isAssistantMessage,
+ isResultMessage,
+ isTextBlock,
+ isThinkingBlock,
+ isToolResultBlock,
+ isToolResultSubmission,
+ isToolUseBlock,
+ mergeTextBlocks,
+ safeJsonParse,
+ safeJsonStringify,
+ truncateText
+});
+//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/integrations/claude-agent-sdk/typescript/dist/index.js.map b/integrations/claude-agent-sdk/typescript/dist/index.js.map
new file mode 100644
index 000000000..2523a4b13
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/dist/index.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../src/index.ts","../src/agent.ts","../src/session-manager.ts","../src/event-translator.ts","../src/types.ts","../src/tool-adapter.ts","../src/execution-state.ts","../src/utils/converters.ts"],"sourcesContent":["/**\n * Claude Agent SDK integration with AG-UI Protocol\n * \n * This package provides a bridge between Claude Agent SDK and the AG-UI Protocol,\n * enabling Claude agents to work seamlessly with AG-UI applications.\n * \n * @example\n * ```typescript\n * import { ClaudeAgent } from '@ag-ui/claude';\n * \n * const agent = new ClaudeAgent({\n * apiKey: process.env.ANTHROPIC_API_KEY,\n * enablePersistentSessions: true\n * });\n * \n * agent.run(input).subscribe({\n * next: (event) => console.log(event),\n * error: (error) => console.error(error),\n * complete: () => console.log('Done')\n * });\n * ```\n */\n\n// Main agent class\nexport { ClaudeAgent } from './agent';\n\n// Session management\nexport { SessionManager } from './session-manager';\n\n// Event translation\nexport { EventTranslator } from './event-translator';\n\n// Tool adaptation\nexport { ToolAdapter } from './tool-adapter';\n\n// Execution state management\nexport { ExecutionState, ExecutionStateManager } from './execution-state';\n\n// Utility functions\nexport {\n convertAgUiMessagesToPrompt,\n convertAgUiMessageToClaude,\n convertAgUiMessagesToClaude,\n extractMessageContent,\n hasToolResults,\n extractToolResults,\n generateRunId,\n generateMessageId,\n safeJsonParse,\n safeJsonStringify,\n isToolResultSubmission,\n formatErrorMessage,\n truncateText,\n mergeTextBlocks,\n} from './utils/converters';\n\n// Type exports\nexport type {\n ClaudeAgentConfig,\n ProcessedEvents,\n Session,\n ClaudeSDKClient,\n Options,\n Query,\n SDKMessage,\n SDKAssistantMessage,\n SDKUserMessage,\n SDKSystemMessage,\n SDKResultMessage,\n SDKPartialAssistantMessage,\n SDKCompactBoundaryMessage,\n SDKPermissionDenial,\n ContentBlock,\n TextBlock,\n ToolUseBlock,\n ToolResultBlock,\n ThinkingBlock,\n SdkMcpToolDefinition,\n CallToolResult,\n McpSdkServerConfigWithInstance,\n ExecutionState as ExecutionStateType,\n ToolExecutionContext,\n ConvertedMessage,\n} from './types';\n\n// Re-export type guards\nexport {\n isAssistantMessage,\n isResultMessage,\n isTextBlock,\n isToolUseBlock,\n isToolResultBlock,\n isThinkingBlock,\n hasContentProperty,\n} from './types';\n\n","/**\n * Claude Agent: Main agent class that integrates Claude SDK with AG-UI Protocol\n */\n\nimport { Observable, Subscriber } from 'rxjs';\nimport {\n AbstractAgent,\n RunAgentInput,\n EventType,\n RunStartedEvent,\n RunFinishedEvent,\n RunErrorEvent,\n StepStartedEvent,\n StepFinishedEvent,\n} from '@ag-ui/client';\nimport type {\n ClaudeAgentConfig,\n ProcessedEvents,\n ClaudeSDKClient,\n Options,\n SDKMessage,\n} from './types';\nimport { SessionManager } from './session-manager';\nimport { EventTranslator } from './event-translator';\nimport { ToolAdapter } from './tool-adapter';\nimport { ExecutionState, ExecutionStateManager } from './execution-state';\nimport {\n generateRunId,\n convertAgUiMessagesToPrompt,\n isToolResultSubmission,\n formatErrorMessage,\n} from './utils/converters';\n\n/**\n * ClaudeAgent integrates Claude Agent SDK with AG-UI Protocol\n */\nexport class ClaudeAgent extends AbstractAgent {\n private sessionManager: SessionManager;\n private executionStateManager: ExecutionStateManager;\n private apiKey?: string;\n private baseUrl?: string;\n private sessionTimeout: number;\n private enablePersistentSessions: boolean;\n private permissionMode: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan';\n private stderr?: (data: string) => void;\n private verbose?: boolean;\n\n constructor(config: ClaudeAgentConfig) {\n super(config);\n // SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment\n // Only set these if explicitly provided in config (optional)\n this.apiKey = config.apiKey;\n this.baseUrl = config.baseUrl;\n this.sessionTimeout = config.sessionTimeout || 30 * 60 * 1000; // 30 minutes\n this.enablePersistentSessions = config.enablePersistentSessions !== false;\n // Map legacy permission modes to new SDK values for backward compatibility\n this.permissionMode = this.mapPermissionMode(config.permissionMode || 'bypassPermissions');\n this.stderr = config.stderr;\n this.verbose = config.verbose;\n this.sessionManager = SessionManager.getInstance(this.sessionTimeout);\n this.executionStateManager = new ExecutionStateManager();\n }\n\n /**\n * Map legacy permission modes to new SDK values for backward compatibility\n */\n private mapPermissionMode(mode?: string): 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' {\n const modeMap: Record = {\n 'ask': 'default',\n 'auto': 'bypassPermissions',\n 'none': 'bypassPermissions',\n 'default': 'default',\n 'acceptEdits': 'acceptEdits',\n 'bypassPermissions': 'bypassPermissions',\n 'plan': 'plan',\n };\n return modeMap[mode || 'bypassPermissions'] || 'bypassPermissions';\n }\n\n /**\n * Run the agent with the given input\n */\n run(input: RunAgentInput): Observable {\n return new Observable((subscriber) => {\n this.executeAgent(input, subscriber).catch((error) => {\n subscriber.error(error);\n });\n });\n }\n\n /**\n * Execute the agent asynchronously\n */\n private async executeAgent(\n input: RunAgentInput,\n subscriber: Subscriber\n ): Promise {\n const runId = generateRunId();\n const sessionId = input.threadId || `session_${Date.now()}`;\n\n // Create execution state\n const execution = this.executionStateManager.createExecution(runId, sessionId);\n\n try {\n // Emit run started event\n const runStartedEvent: RunStartedEvent = {\n type: EventType.RUN_STARTED,\n threadId: sessionId,\n runId,\n };\n subscriber.next(runStartedEvent);\n execution.addEvent(runStartedEvent);\n\n // Get or create session\n const session = this.sessionManager.getSession(sessionId, 'default');\n\n // Get unseen messages\n const unseenMessages = this.sessionManager.getUnseenMessages(\n sessionId,\n input.messages || []\n );\n\n // Check if this is a tool result submission\n const isToolResult = isToolResultSubmission(input.messages || []);\n\n // Prepare tools\n const tools = input.tools || [];\n \n // Prepare options for Claude SDK\n const options = await this.prepareClaudeOptions(tools);\n\n // Extract prompt from messages\n const prompt = convertAgUiMessagesToPrompt(unseenMessages);\n\n // Emit step started event\n const stepStartedEvent: StepStartedEvent = {\n type: EventType.STEP_STARTED,\n stepName: `step_${runId}_1`,\n };\n subscriber.next(stepStartedEvent);\n execution.addEvent(stepStartedEvent);\n\n // Call Claude SDK\n await this.callClaudeSDK(\n prompt,\n options,\n session,\n runId,\n sessionId,\n subscriber,\n execution\n );\n\n // Mark messages as processed\n this.sessionManager.markMessagesAsProcessed(sessionId, unseenMessages);\n\n // Emit step finished event\n const stepFinishedEvent: StepFinishedEvent = {\n type: EventType.STEP_FINISHED,\n stepName: `step_${runId}_1`,\n };\n subscriber.next(stepFinishedEvent);\n execution.addEvent(stepFinishedEvent);\n\n // Emit run finished event\n const runFinishedEvent: RunFinishedEvent = {\n type: EventType.RUN_FINISHED,\n threadId: sessionId,\n runId,\n };\n subscriber.next(runFinishedEvent);\n execution.addEvent(runFinishedEvent);\n\n // Complete execution\n execution.complete();\n subscriber.complete();\n } catch (error: any) {\n // Emit run error event\n const runErrorEvent: RunErrorEvent = {\n type: EventType.RUN_ERROR,\n message: formatErrorMessage(error),\n };\n subscriber.next(runErrorEvent);\n execution.addEvent(runErrorEvent);\n\n // Mark execution as failed\n execution.fail(error);\n\n // Complete the observable\n subscriber.complete();\n }\n }\n\n /**\n * Prepare Claude SDK options\n * SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment\n * But baseUrl needs to be explicitly passed for third-party APIs\n */\n private async prepareClaudeOptions(tools: any[]): Promise {\n // Get baseUrl from config or environment\n const baseUrl = this.baseUrl || process.env.ANTHROPIC_BASE_URL;\n const apiKey = this.apiKey || process.env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_API_KEY;\n \n // Debug logging\n console.log('[Claude Agent] Preparing SDK options:', {\n hasApiKey: !!apiKey,\n hasBaseUrl: !!baseUrl,\n baseUrl: baseUrl || 'not set',\n permissionMode: this.permissionMode,\n hasStderr: !!this.stderr,\n verbose: this.verbose,\n });\n \n const options: Options = {\n permissionMode: this.permissionMode,\n // Add stderr callback for debugging - CRITICAL for error logging\n ...(this.stderr && { stderr: this.stderr }),\n // Add verbose flag for detailed logging\n ...(this.verbose !== undefined && { verbose: this.verbose }),\n env: process.env\n };\n \n // Verify stderr callback is set\n if (this.stderr) {\n console.log('[Claude Agent] ✓ stderr callback is configured for error logging');\n } else {\n console.warn('[Claude Agent] ⚠️ stderr callback not configured - CLI errors may not be visible');\n }\n\n // Add tools if provided\n if (tools && tools.length > 0) {\n const mcpServer = await ToolAdapter.createMcpServerForTools(tools);\n options.mcpServers = {\n ag_ui_tools: mcpServer,\n };\n\n // Set allowed tools\n options.allowedTools = ToolAdapter.getAllowedToolsList(tools);\n }\n\n return options;\n }\n\n /**\n * Call Claude SDK\n * Note: Currently only stateless mode is supported via query() function\n */\n private async callClaudeSDK(\n prompt: string,\n options: Options,\n session: any,\n runId: string,\n sessionId: string,\n subscriber: Subscriber,\n execution: ExecutionState\n ): Promise {\n const eventTranslator = new EventTranslator(runId, sessionId);\n\n // The current @anthropic-ai/claude-agent-sdk only supports stateless mode\n // via the query() function. We use stateless mode for both cases.\n await this.callClaudeSDKStateless(\n prompt,\n options,\n eventTranslator,\n subscriber,\n execution\n );\n }\n\n /**\n * Call Claude SDK in persistent session mode\n * Note: The current SDK only supports stateless mode via query() function\n * This method falls back to stateless mode\n */\n private async callClaudeSDKPersistent(\n prompt: string,\n options: Options,\n session: any,\n eventTranslator: EventTranslator,\n subscriber: Subscriber,\n execution: ExecutionState\n ): Promise {\n // The current @anthropic-ai/claude-agent-sdk only supports stateless mode\n // via the query() function. For persistent sessions, we use query() \n // but maintain session state in our SessionManager\n await this.callClaudeSDKStateless(prompt, options, eventTranslator, subscriber, execution);\n }\n\n /**\n * Call Claude SDK in stateless mode\n */\n private async callClaudeSDKStateless(\n prompt: string,\n options: Options,\n eventTranslator: EventTranslator,\n subscriber: Subscriber,\n execution: ExecutionState\n ): Promise {\n try {\n // Log environment variables for debugging\n console.log('[Claude Agent] Environment check:');\n console.log(' ANTHROPIC_API_KEY:', process.env.ANTHROPIC_API_KEY ? 'SET' : 'NOT SET');\n console.log(' ANTHROPIC_AUTH_TOKEN:', process.env.ANTHROPIC_AUTH_TOKEN ? 'SET' : 'NOT SET');\n console.log(' ANTHROPIC_BASE_URL:', process.env.ANTHROPIC_BASE_URL || 'NOT SET (using default)');\n console.log('[Claude Agent] Options passed to SDK:', {\n hasApiKey: !!options.apiKey,\n hasBaseUrl: !!options.baseUrl,\n permissionMode: options.permissionMode,\n hasMcpServers: !!options.mcpServers,\n });\n\n // Import Claude SDK dynamically\n const { query } = await this.importClaudeSDK();\n\n console.log('[Claude Agent] Calling SDK query()...');\n\n // Call query function\n // SDK will automatically read API key from environment variables (ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN)\n // if not provided in options.apiKey\n const queryResult = query({ prompt, options });\n\n // Process responses\n for await (const message of queryResult) {\n console.log('[Claude Agent] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\n console.log('[Claude Agent] Received message type:', message?.type || 'unknown');\n console.log('[Claude Agent] Full message:', JSON.stringify(message, null, 2));\n \n if (execution.isAborted()) {\n console.log('[Claude Agent] Execution aborted by user');\n break;\n }\n\n const events = eventTranslator.translateMessage(message);\n console.log('[Claude Agent] Translated events count:', events.length);\n for (const event of events) {\n console.log('[Claude Agent] Sending event:', JSON.stringify(event, null, 2));\n subscriber.next(event);\n execution.addEvent(event);\n }\n console.log('[Claude Agent] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\n }\n \n console.log('[Claude Agent] Query completed successfully');\n } catch (error: any) {\n // Log detailed error information\n console.error('[Claude Agent] ERROR Details:');\n console.error(' Message:', error.message);\n console.error(' Stack:', error.stack);\n console.error(' Error object:', JSON.stringify(error, Object.getOwnPropertyNames(error), 2));\n \n // Handle Claude Code process errors\n if (error.message && error.message.includes('exited with code')) {\n throw new Error(\n `Claude Code process failed. Please ensure:\\n` +\n `1. Claude CLI is installed and accessible (run: claude --version)\\n` +\n `2. ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set correctly in environment variables\\n` +\n `3. You have proper permissions to run Claude Code\\n` +\n `4. If using ANTHROPIC_BASE_URL, ensure it supports Claude Code protocol\\n` +\n `\\nOriginal error: ${error.message}\\n` +\n `Error stack: ${error.stack || 'No stack trace'}`\n );\n }\n // Handle API key errors from SDK\n if (error.message && (error.message.includes('API key') || error.message.includes('auth'))) {\n throw new Error(\n `API key error: ${error.message}\\n` +\n `Please ensure ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set in environment variables.`\n );\n }\n throw error;\n }\n }\n\n /**\n * Dynamically import Claude SDK\n */\n private async importClaudeSDK(): Promise {\n try {\n return await import('@anthropic-ai/claude-agent-sdk');\n } catch (error) {\n throw new Error(\n 'Claude Agent SDK not found. Please install it: npm install @anthropic-ai/claude-agent-sdk'\n );\n }\n }\n\n /**\n * Abort a running execution\n */\n abortExecution(runId: string): void {\n const execution = this.executionStateManager.getExecution(runId);\n if (execution) {\n execution.abort();\n }\n }\n\n /**\n * Get execution state\n */\n getExecutionState(runId: string): ExecutionState | undefined {\n return this.executionStateManager.getExecution(runId);\n }\n\n /**\n * Get session manager (for testing)\n */\n getSessionManager(): SessionManager {\n return this.sessionManager;\n }\n\n /**\n * Get execution state manager (for testing)\n */\n getExecutionStateManager(): ExecutionStateManager {\n return this.executionStateManager;\n }\n\n /**\n * Cleanup resources\n */\n async cleanup(): Promise {\n // Abort all running executions\n const runningExecutions = this.executionStateManager.getRunningExecutions();\n for (const execution of runningExecutions) {\n execution.abort();\n }\n\n // Clear all sessions\n this.sessionManager.clearAllSessions();\n\n // Clear all executions\n this.executionStateManager.clearAll();\n }\n}\n\n","/**\n * Session manager: Manages agent sessions and state\n */\n\nimport type { Message } from '@ag-ui/client';\nimport type { Session, ClaudeSDKClient } from './types';\n\nconst DEFAULT_SESSION_TIMEOUT = 30 * 60 * 1000; // 30 minutes\nconst CLEANUP_INTERVAL = 5 * 60 * 1000; // 5 minutes\n\n/**\n * SessionManager handles session lifecycle, message tracking, and state management\n * Implements singleton pattern for centralized session control\n */\nexport class SessionManager {\n private static instance: SessionManager | null = null;\n private sessions: Map = new Map();\n private cleanupInterval: ReturnType | null = null;\n private sessionTimeout: number;\n\n private constructor(sessionTimeout: number = DEFAULT_SESSION_TIMEOUT) {\n this.sessionTimeout = sessionTimeout;\n this.startCleanupInterval();\n }\n\n /**\n * Get the singleton instance\n */\n static getInstance(sessionTimeout?: number): SessionManager {\n if (!SessionManager.instance) {\n SessionManager.instance = new SessionManager(sessionTimeout);\n }\n return SessionManager.instance;\n }\n\n /**\n * Reset the singleton instance (useful for testing)\n */\n static resetInstance(): void {\n if (SessionManager.instance) {\n SessionManager.instance.stopCleanupInterval();\n SessionManager.instance = null;\n }\n }\n\n /**\n * Get or create a session\n */\n getSession(sessionId: string, userId?: string): Session {\n let session = this.sessions.get(sessionId);\n\n if (!session) {\n session = {\n id: sessionId,\n userId,\n processedMessageIds: new Set(),\n state: {},\n createdAt: Date.now(),\n lastAccessedAt: Date.now(),\n };\n this.sessions.set(sessionId, session);\n } else {\n // Update last accessed time\n session.lastAccessedAt = Date.now();\n }\n\n return session;\n }\n\n /**\n * Check if a session exists\n */\n hasSession(sessionId: string): boolean {\n return this.sessions.has(sessionId);\n }\n\n /**\n * Delete a session\n */\n deleteSession(sessionId: string): boolean {\n const session = this.sessions.get(sessionId);\n if (session?.client) {\n // Close the Claude SDK client if it exists\n session.client.close().catch((error) => {\n console.error(`Error closing Claude SDK client for session ${sessionId}:`, error);\n });\n }\n return this.sessions.delete(sessionId);\n }\n\n /**\n * Track a processed message\n */\n trackMessage(sessionId: string, messageId: string): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.processedMessageIds.add(messageId);\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Check if a message has been processed\n */\n isMessageProcessed(sessionId: string, messageId: string): boolean {\n const session = this.sessions.get(sessionId);\n return session ? session.processedMessageIds.has(messageId) : false;\n }\n\n /**\n * Get unseen messages (messages not yet processed)\n */\n getUnseenMessages(sessionId: string, messages: Message[]): Message[] {\n const session = this.sessions.get(sessionId);\n if (!session) {\n return messages;\n }\n\n return messages.filter((msg) => {\n const msgId = msg.id || `${msg.role}_${msg.content}`;\n return !session.processedMessageIds.has(msgId);\n });\n }\n\n /**\n * Mark messages as processed\n */\n markMessagesAsProcessed(sessionId: string, messages: Message[]): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n for (const msg of messages) {\n const msgId = msg.id || `${msg.role}_${msg.content}`;\n session.processedMessageIds.add(msgId);\n }\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Get state value from session\n */\n getStateValue(sessionId: string, key: string): any {\n const session = this.sessions.get(sessionId);\n return session?.state[key];\n }\n\n /**\n * Set state value in session\n */\n setStateValue(sessionId: string, key: string, value: any): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.state[key] = value;\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Remove state keys from session\n */\n removeStateKeys(sessionId: string, keys: string[]): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n for (const key of keys) {\n delete session.state[key];\n }\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Clear all state for a session\n */\n clearSessionState(sessionId: string): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.state = {};\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Set Claude SDK client for a session\n */\n setClient(sessionId: string, client: ClaudeSDKClient): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.client = client;\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Get Claude SDK client for a session\n */\n getClient(sessionId: string): ClaudeSDKClient | undefined {\n const session = this.sessions.get(sessionId);\n return session?.client;\n }\n\n /**\n * Get total number of sessions\n */\n getSessionCount(): number {\n return this.sessions.size;\n }\n\n /**\n * Get number of sessions for a specific user\n */\n getUserSessionCount(userId: string): number {\n let count = 0;\n for (const session of this.sessions.values()) {\n if (session.userId === userId) {\n count++;\n }\n }\n return count;\n }\n\n /**\n * Get all session IDs\n */\n getAllSessionIds(): string[] {\n return Array.from(this.sessions.keys());\n }\n\n /**\n * Get all sessions for a specific user\n */\n getUserSessions(userId: string): Session[] {\n const userSessions: Session[] = [];\n for (const session of this.sessions.values()) {\n if (session.userId === userId) {\n userSessions.push(session);\n }\n }\n return userSessions;\n }\n\n /**\n * Clean up stale sessions\n */\n private cleanupStaleSessions(): void {\n const now = Date.now();\n const sessionsToDelete: string[] = [];\n\n for (const [sessionId, session] of this.sessions.entries()) {\n if (now - session.lastAccessedAt > this.sessionTimeout) {\n sessionsToDelete.push(sessionId);\n }\n }\n\n for (const sessionId of sessionsToDelete) {\n this.deleteSession(sessionId);\n }\n\n if (sessionsToDelete.length > 0) {\n console.log(`Cleaned up ${sessionsToDelete.length} stale sessions`);\n }\n }\n\n /**\n * Start the cleanup interval\n */\n private startCleanupInterval(): void {\n if (!this.cleanupInterval) {\n this.cleanupInterval = setInterval(() => {\n this.cleanupStaleSessions();\n }, CLEANUP_INTERVAL);\n\n // Don't keep the process alive just for this interval\n if (typeof (this.cleanupInterval as any).unref === 'function') {\n (this.cleanupInterval as any).unref();\n }\n }\n }\n\n /**\n * Stop the cleanup interval\n */\n private stopCleanupInterval(): void {\n if (this.cleanupInterval) {\n clearInterval(this.cleanupInterval);\n this.cleanupInterval = null;\n }\n }\n\n /**\n * Clear all sessions (useful for testing)\n */\n clearAllSessions(): void {\n for (const sessionId of this.sessions.keys()) {\n this.deleteSession(sessionId);\n }\n this.sessions.clear();\n }\n}\n\n","/**\n * Event translator: Converts Claude SDK messages to AG-UI events\n */\n\nimport {\n TextMessageStartEvent,\n TextMessageContentEvent,\n TextMessageEndEvent,\n ToolCallStartEvent,\n ToolCallArgsEvent,\n ToolCallEndEvent,\n ToolCallResultEvent,\n EventType,\n} from '@ag-ui/client';\nimport type {\n SDKMessage,\n SDKAssistantMessage,\n ContentBlock,\n TextBlock,\n ToolUseBlock,\n ToolResultBlock,\n ProcessedEvents,\n} from './types';\nimport {\n hasContentProperty,\n isTextBlock,\n isToolUseBlock,\n isToolResultBlock,\n} from './types';\n\n/**\n * EventTranslator converts Claude SDK messages to AG-UI protocol events\n * \n * NOTE: This translator only handles SDK message translation.\n * Run lifecycle events (RUN_STARTED, RUN_FINISHED, etc.) and step events\n * are handled by ClaudeAgent.\n */\nexport class EventTranslator {\n private messageIdCounter = 0;\n private currentMessageId: string | null = null;\n private runId: string;\n private threadId: string;\n\n constructor(runId: string, threadId: string) {\n this.runId = runId;\n this.threadId = threadId;\n }\n\n /**\n * Translate a Claude SDK message to AG-UI events\n * NOTE: Does not emit RUN_STARTED, RUN_FINISHED, or STEP events - those are handled by ClaudeAgent\n */\n translateMessage(message: SDKMessage): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n\n if (hasContentProperty(message)) {\n events.push(...this.translateAssistantMessage(message as SDKAssistantMessage));\n }\n // Note: ResultMessage (success/error) is ignored here\n // Run completion is handled by ClaudeAgent, not EventTranslator\n\n return events;\n }\n\n /**\n * Translate an AssistantMessage with content blocks\n */\n private translateAssistantMessage(message: SDKAssistantMessage): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n\n // Content is in message.message.content for SDKAssistantMessage\n const content = message.message?.content || [];\n \n for (const block of content) {\n if (isTextBlock(block)) {\n events.push(...this.translateTextBlock(block));\n } else if (isToolUseBlock(block)) {\n events.push(...this.translateToolUseBlock(block));\n } else if (isToolResultBlock(block)) {\n events.push(...this.translateToolResultBlock(block));\n }\n }\n\n return events;\n }\n\n /**\n * Translate a TextBlock to text message events\n * NOTE: Step events are handled by ClaudeAgent, not here\n */\n private translateTextBlock(block: TextBlock): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n const messageId = this.generateMessageId();\n\n // Start event\n events.push({\n type: EventType.TEXT_MESSAGE_START,\n messageId,\n role: 'assistant',\n });\n\n // Content event - split text into delta chunks\n const text = block.text;\n if (text.length > 0) {\n events.push({\n type: EventType.TEXT_MESSAGE_CONTENT,\n messageId,\n delta: text,\n });\n }\n\n // End event\n events.push({\n type: EventType.TEXT_MESSAGE_END,\n messageId,\n });\n\n return events;\n }\n\n /**\n * Translate a ToolUseBlock to tool call events\n * NOTE: Step events are handled by ClaudeAgent, not here\n */\n private translateToolUseBlock(block: ToolUseBlock): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n const toolCallId = block.id;\n\n // Start event\n events.push({\n type: EventType.TOOL_CALL_START,\n toolCallId,\n toolCallName: block.name,\n });\n\n // Args event - send args as JSON string\n const argsJson = JSON.stringify(block.input);\n if (argsJson.length > 0) {\n events.push({\n type: EventType.TOOL_CALL_ARGS,\n toolCallId,\n delta: argsJson,\n });\n }\n\n // End event\n events.push({\n type: EventType.TOOL_CALL_END,\n toolCallId,\n });\n\n return events;\n }\n\n /**\n * Translate a ToolResultBlock to tool call result event\n */\n private translateToolResultBlock(block: ToolResultBlock): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n\n // Extract content as string\n let resultContent: string;\n if (typeof block.content === 'string') {\n resultContent = block.content;\n } else if (Array.isArray(block.content)) {\n // Handle array of content blocks\n resultContent = block.content\n .map((item) => {\n if (item.type === 'text') {\n return item.text || '';\n }\n return JSON.stringify(item);\n })\n .join('\\n');\n } else {\n resultContent = JSON.stringify(block.content);\n }\n\n const messageId = this.generateMessageId();\n events.push({\n type: EventType.TOOL_CALL_RESULT,\n toolCallId: block.tool_use_id,\n messageId,\n content: resultContent,\n ...(block.is_error && { role: 'tool' as const }),\n });\n\n return events;\n }\n\n /**\n * Generate a unique message ID\n */\n private generateMessageId(): string {\n this.messageIdCounter++;\n return `msg_${this.runId}_${this.messageIdCounter}`;\n }\n\n /**\n * Reset the translator state for a new execution\n */\n reset(): void {\n this.messageIdCounter = 0;\n this.currentMessageId = null;\n }\n\n /**\n * Get current message ID\n */\n getCurrentMessageId(): string | null {\n return this.currentMessageId;\n }\n\n /**\n * Set current message ID\n */\n setCurrentMessageId(messageId: string | null): void {\n this.currentMessageId = messageId;\n }\n}\n\n","/**\n * Type definitions for Claude Agent SDK integration with AG-UI Protocol\n */\n\nimport type {\n TextMessageStartEvent,\n TextMessageContentEvent,\n TextMessageEndEvent,\n ToolCallStartEvent,\n ToolCallArgsEvent,\n ToolCallEndEvent,\n ToolCallResultEvent,\n RunStartedEvent,\n RunFinishedEvent,\n RunErrorEvent,\n StepStartedEvent,\n StepFinishedEvent,\n AgentConfig,\n Tool,\n Message,\n} from '@ag-ui/client';\n\n// Re-export Claude SDK types (will be imported from the actual SDK)\n// These are placeholder interfaces based on the SDK documentation\nexport interface ClaudeSDKClient {\n query(prompt: string): Promise;\n receiveResponse(): AsyncIterableIterator;\n close(): Promise;\n}\n\nexport interface Options {\n apiKey?: string;\n baseUrl?: string;\n mcpServers?: Record;\n allowedTools?: string[];\n // Valid permission modes from Agent SDK: 'default', 'acceptEdits', 'bypassPermissions', 'plan'\n // Legacy values 'ask', 'auto', 'none' are also supported for backward compatibility\n permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';\n stderr?: (data: string) => void;\n verbose?: boolean;\n [key: string]: any;\n}\n\nexport interface Query {\n next(): Promise>;\n [Symbol.asyncIterator](): AsyncIterableIterator;\n}\n\n// SDK Message types based on documentation\nexport type SDKMessage =\n | SDKAssistantMessage\n | SDKUserMessage\n | SDKSystemMessage\n | SDKResultMessage\n | SDKPartialAssistantMessage\n | SDKCompactBoundaryMessage\n | SDKPermissionDenial;\n\nexport interface SDKAssistantMessage {\n type: 'assistant';\n message: {\n id?: string;\n content: ContentBlock[];\n [key: string]: any;\n };\n parent_tool_use_id?: string | null;\n uuid?: string;\n session_id?: string;\n}\n\nexport interface SDKUserMessage {\n type: 'user';\n content: string;\n id?: string;\n}\n\nexport interface SDKSystemMessage {\n type: 'system';\n content: string;\n}\n\nexport interface SDKResultMessage {\n type: 'result';\n subtype: 'success' | 'error';\n error?: {\n type: string;\n message: string;\n };\n}\n\nexport interface SDKPartialAssistantMessage {\n type: 'partial_assistant';\n content: ContentBlock[];\n}\n\nexport interface SDKCompactBoundaryMessage {\n type: 'compact_boundary';\n}\n\nexport interface SDKPermissionDenial {\n type: 'permission_denial';\n tool: string;\n reason: string;\n}\n\n// Content block types\nexport type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock | ThinkingBlock;\n\nexport interface TextBlock {\n type: 'text';\n text: string;\n}\n\nexport interface ToolUseBlock {\n type: 'tool_use';\n id: string;\n name: string;\n input: Record;\n}\n\nexport interface ToolResultBlock {\n type: 'tool_result';\n tool_use_id: string;\n content: string | Array<{ type: string; [key: string]: any }>;\n is_error?: boolean;\n}\n\nexport interface ThinkingBlock {\n type: 'thinking';\n thinking: string;\n}\n\n// Tool definition types\nexport interface SdkMcpToolDefinition {\n name: string;\n description: string;\n inputSchema: Schema;\n handler: (args: any, extra?: any) => Promise;\n}\n\nexport interface CallToolResult {\n content: Array<{\n type: 'text' | 'image' | 'resource';\n text?: string;\n data?: string;\n mimeType?: string;\n [key: string]: any;\n }>;\n isError?: boolean;\n}\n\nexport interface McpSdkServerConfigWithInstance {\n name: string;\n version?: string;\n tools?: Array>;\n}\n\n// AG-UI Integration types\nexport type ProcessedEvents =\n | TextMessageStartEvent\n | TextMessageContentEvent\n | TextMessageEndEvent\n | ToolCallStartEvent\n | ToolCallArgsEvent\n | ToolCallEndEvent\n | ToolCallResultEvent\n | RunStartedEvent\n | RunFinishedEvent\n | RunErrorEvent\n | StepStartedEvent\n | StepFinishedEvent;\n\n// Session management types\nexport interface Session {\n id: string;\n userId?: string;\n client?: ClaudeSDKClient;\n processedMessageIds: Set;\n state: Record;\n createdAt: number;\n lastAccessedAt: number;\n}\n\n// Agent configuration\nexport interface ClaudeAgentConfig extends AgentConfig {\n apiKey?: string;\n baseUrl?: string;\n sessionTimeout?: number;\n enablePersistentSessions?: boolean;\n // Valid permission modes from Agent SDK: 'default', 'acceptEdits', 'bypassPermissions', 'plan'\n // Legacy values 'ask', 'auto', 'none' are mapped internally for backward compatibility\n permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';\n mcpServers?: Record;\n stderr?: (data: string) => void;\n verbose?: boolean;\n}\n\n// Execution state types\nexport interface ExecutionState {\n id: string;\n sessionId: string;\n isRunning: boolean;\n startTime: number;\n events: ProcessedEvents[];\n error?: Error;\n}\n\n// Helper type guards\nexport function isAssistantMessage(message: SDKMessage): message is SDKAssistantMessage {\n return message.type === 'assistant';\n}\n\nexport function isResultMessage(message: SDKMessage): message is SDKResultMessage {\n return message.type === 'result';\n}\n\nexport function isTextBlock(block: ContentBlock): block is TextBlock {\n return block.type === 'text';\n}\n\nexport function isToolUseBlock(block: ContentBlock): block is ToolUseBlock {\n return block.type === 'tool_use';\n}\n\nexport function isToolResultBlock(block: ContentBlock): block is ToolResultBlock {\n return block.type === 'tool_result';\n}\n\nexport function isThinkingBlock(block: ContentBlock): block is ThinkingBlock {\n return block.type === 'thinking';\n}\n\nexport function hasContentProperty(message: SDKMessage): message is SDKAssistantMessage | SDKPartialAssistantMessage {\n // For SDKAssistantMessage, content is in message.content\n if (message.type === 'assistant') {\n return 'message' in message && \n message.message !== null &&\n typeof message.message === 'object' &&\n 'content' in message.message && \n Array.isArray((message.message as any).content);\n }\n // For SDKPartialAssistantMessage, content might be at top level\n return 'content' in message && Array.isArray((message as any).content);\n}\n\n// Tool execution types\nexport interface ToolExecutionContext {\n toolName: string;\n toolCallId: string;\n isClientTool: boolean;\n isLongRunning: boolean;\n}\n\n// Message conversion types\nexport interface ConvertedMessage {\n role: 'user' | 'assistant' | 'system';\n content: string | Array<{ type: string; [key: string]: any }>;\n}\n\n","/**\n * Tool adapter: Converts AG-UI tools to Claude SDK format\n */\n\nimport { z } from 'zod';\nimport type { Tool } from '@ag-ui/client';\nimport type {\n SdkMcpToolDefinition,\n McpSdkServerConfigWithInstance,\n CallToolResult,\n} from './types';\n\n// Extended Tool type that includes runtime properties\ntype ExtendedTool = Tool & {\n client?: boolean;\n handler?: (args: any) => any | Promise;\n longRunning?: boolean;\n};\n\n/**\n * ToolAdapter handles conversion of AG-UI tools to Claude SDK format\n */\nexport class ToolAdapter {\n /**\n * Convert AG-UI tools to Claude SDK MCP tool definitions\n */\n static convertAgUiToolsToSdk(tools: Tool[]): SdkMcpToolDefinition[] {\n return tools.map((tool) => this.convertSingleTool(tool as ExtendedTool));\n }\n\n /**\n * Convert a single AG-UI tool to Claude SDK format\n */\n private static convertSingleTool(tool: ExtendedTool): SdkMcpToolDefinition {\n const zodSchema = this.convertJsonSchemaToZod(tool.parameters || {});\n\n return {\n name: tool.name,\n description: tool.description || '',\n inputSchema: zodSchema,\n handler: async (args: any) => {\n // For client tools, we mark them as long-running\n // The actual execution will be handled by the client\n if (tool.client) {\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify({\n toolName: tool.name,\n args,\n isClientTool: true,\n isLongRunning: true,\n }),\n },\n ],\n };\n }\n\n // For backend tools, if there's a handler, execute it\n if (tool.handler) {\n try {\n const result = await tool.handler(args);\n return {\n content: [\n {\n type: 'text',\n text: typeof result === 'string' ? result : JSON.stringify(result),\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: error.message || 'Tool execution failed',\n },\n ],\n isError: true,\n };\n }\n }\n\n // Default response for tools without handlers\n return {\n content: [\n {\n type: 'text',\n text: 'Tool executed (no handler)',\n },\n ],\n };\n },\n };\n }\n\n /**\n * Convert JSON Schema to Zod schema\n */\n private static convertJsonSchemaToZod(jsonSchema: any): z.ZodTypeAny {\n if (!jsonSchema || typeof jsonSchema !== 'object') {\n return z.object({});\n }\n\n const properties = jsonSchema.properties || {};\n const required = jsonSchema.required || [];\n\n const zodShape: Record = {};\n\n for (const [key, prop] of Object.entries(properties)) {\n const propSchema = prop as any;\n let zodType = this.convertJsonSchemaTypeToZod(propSchema);\n\n // Make optional if not in required array\n if (!required.includes(key)) {\n zodType = zodType.optional();\n }\n\n zodShape[key] = zodType;\n }\n\n return z.object(zodShape);\n }\n\n /**\n * Convert a single JSON Schema type to Zod type\n */\n private static convertJsonSchemaTypeToZod(schema: any): z.ZodTypeAny {\n const type = schema.type;\n\n switch (type) {\n case 'string':\n if (schema.enum) {\n return z.enum(schema.enum as [string, ...string[]]);\n }\n return z.string();\n\n case 'number':\n case 'integer':\n let numType = type === 'integer' ? z.number().int() : z.number();\n if (schema.minimum !== undefined) {\n numType = numType.min(schema.minimum);\n }\n if (schema.maximum !== undefined) {\n numType = numType.max(schema.maximum);\n }\n return numType;\n\n case 'boolean':\n return z.boolean();\n\n case 'array':\n if (schema.items) {\n const itemType = this.convertJsonSchemaTypeToZod(schema.items);\n return z.array(itemType);\n }\n return z.array(z.any());\n\n case 'object':\n if (schema.properties) {\n return this.convertJsonSchemaToZod(schema);\n }\n return z.record(z.any());\n\n case 'null':\n return z.null();\n\n default:\n // For any other type or if type is not specified\n return z.any();\n }\n }\n\n /**\n * Create an MCP server configuration for AG-UI tools\n */\n static async createMcpServerForTools(tools: Tool[]): Promise {\n const sdkTools = this.convertAgUiToolsToSdk(tools as ExtendedTool[]);\n\n // Import createSdkMcpServer from Claude Agent SDK\n const { createSdkMcpServer } = await import('@anthropic-ai/claude-agent-sdk');\n \n // Use the official SDK function to create a properly formatted MCP server\n return createSdkMcpServer({\n name: 'ag_ui_tools',\n version: '1.0.0',\n tools: sdkTools as any, // Cast to any to avoid type incompatibility\n });\n }\n\n /**\n * Extract tool calls from Claude SDK response\n */\n static extractToolCalls(message: any): Array<{\n id: string;\n name: string;\n input: Record;\n }> {\n if (!message.content || !Array.isArray(message.content)) {\n return [];\n }\n\n return message.content\n .filter((block: any) => block.type === 'tool_use')\n .map((block: any) => ({\n id: block.id,\n name: block.name,\n input: block.input,\n }));\n }\n\n /**\n * Check if a tool is a long-running client tool\n */\n static isClientTool(toolName: string, tools: Tool[]): boolean {\n const tool = tools.find((t) => t.name === toolName) as ExtendedTool | undefined;\n return tool?.client === true;\n }\n\n /**\n * Check if a tool is marked as long-running\n */\n static isLongRunningTool(toolName: string, tools: Tool[]): boolean {\n const tool = tools.find((t) => t.name === toolName) as ExtendedTool | undefined;\n return tool?.client === true || tool?.longRunning === true;\n }\n\n /**\n * Format tool names for Claude SDK (with MCP server prefix)\n */\n static formatToolNameForSdk(toolName: string, serverName: string = 'ag_ui_tools'): string {\n return `mcp__${serverName}__${toolName}`;\n }\n\n /**\n * Parse tool name from SDK format (remove MCP server prefix)\n */\n static parseToolNameFromSdk(sdkToolName: string): string {\n const parts = sdkToolName.split('__');\n if (parts.length >= 3 && parts[0] === 'mcp') {\n return parts.slice(2).join('__');\n }\n return sdkToolName;\n }\n\n /**\n * Get allowed tools list for SDK options\n */\n static getAllowedToolsList(tools: Tool[], serverName: string = 'ag_ui_tools'): string[] {\n return tools.map((tool) => this.formatToolNameForSdk(tool.name, serverName));\n }\n}\n\n","/**\n * Execution state: Tracks background Claude executions\n */\n\nimport type { ProcessedEvents } from './types';\n\n/**\n * ExecutionState manages the state of a Claude SDK execution\n */\nexport class ExecutionState {\n readonly id: string;\n readonly sessionId: string;\n private _isRunning: boolean;\n private _startTime: number;\n private _endTime?: number;\n private _events: ProcessedEvents[];\n private _error?: Error;\n private _abortController: AbortController;\n\n constructor(id: string, sessionId: string) {\n this.id = id;\n this.sessionId = sessionId;\n this._isRunning = true;\n this._startTime = Date.now();\n this._events = [];\n this._abortController = new AbortController();\n }\n\n /**\n * Check if execution is running\n */\n get isRunning(): boolean {\n return this._isRunning;\n }\n\n /**\n * Get start time\n */\n get startTime(): number {\n return this._startTime;\n }\n\n /**\n * Get end time\n */\n get endTime(): number | undefined {\n return this._endTime;\n }\n\n /**\n * Get duration in milliseconds\n */\n get duration(): number {\n const end = this._endTime || Date.now();\n return end - this._startTime;\n }\n\n /**\n * Get all collected events\n */\n get events(): ProcessedEvents[] {\n return [...this._events];\n }\n\n /**\n * Get error if any\n */\n get error(): Error | undefined {\n return this._error;\n }\n\n /**\n * Get abort signal\n */\n get signal(): AbortSignal {\n return this._abortController.signal;\n }\n\n /**\n * Add an event to the execution state\n */\n addEvent(event: ProcessedEvents): void {\n this._events.push(event);\n }\n\n /**\n * Add multiple events\n */\n addEvents(events: ProcessedEvents[]): void {\n this._events.push(...events);\n }\n\n /**\n * Mark execution as completed\n */\n complete(): void {\n if (this._isRunning) {\n this._isRunning = false;\n this._endTime = Date.now();\n }\n }\n\n /**\n * Mark execution as failed\n */\n fail(error: Error): void {\n if (this._isRunning) {\n this._isRunning = false;\n this._endTime = Date.now();\n this._error = error;\n }\n }\n\n /**\n * Abort the execution\n */\n abort(): void {\n if (this._isRunning) {\n this._abortController.abort();\n this._isRunning = false;\n this._endTime = Date.now();\n }\n }\n\n /**\n * Get execution statistics\n */\n getStats(): {\n duration: number;\n eventCount: number;\n isRunning: boolean;\n hasError: boolean;\n } {\n return {\n duration: this.duration,\n eventCount: this._events.length,\n isRunning: this._isRunning,\n hasError: !!this._error,\n };\n }\n\n /**\n * Clear events (useful for memory management)\n */\n clearEvents(): void {\n this._events = [];\n }\n\n /**\n * Get the last N events\n */\n getLastEvents(count: number): ProcessedEvents[] {\n return this._events.slice(-count);\n }\n\n /**\n * Check if execution has been aborted\n */\n isAborted(): boolean {\n return this._abortController.signal.aborted;\n }\n}\n\n/**\n * ExecutionStateManager manages multiple execution states\n */\nexport class ExecutionStateManager {\n private executions: Map = new Map();\n private readonly maxExecutions: number;\n\n constructor(maxExecutions: number = 100) {\n this.maxExecutions = maxExecutions;\n }\n\n /**\n * Create a new execution state\n */\n createExecution(id: string, sessionId: string): ExecutionState {\n const execution = new ExecutionState(id, sessionId);\n this.executions.set(id, execution);\n\n // Clean up old executions if we exceed the limit\n if (this.executions.size > this.maxExecutions) {\n this.cleanupOldExecutions();\n }\n\n return execution;\n }\n\n /**\n * Get an execution state by ID\n */\n getExecution(id: string): ExecutionState | undefined {\n return this.executions.get(id);\n }\n\n /**\n * Check if an execution exists\n */\n hasExecution(id: string): boolean {\n return this.executions.has(id);\n }\n\n /**\n * Delete an execution state\n */\n deleteExecution(id: string): boolean {\n return this.executions.delete(id);\n }\n\n /**\n * Get all executions for a session\n */\n getSessionExecutions(sessionId: string): ExecutionState[] {\n const executions: ExecutionState[] = [];\n for (const execution of this.executions.values()) {\n if (execution.sessionId === sessionId) {\n executions.push(execution);\n }\n }\n return executions;\n }\n\n /**\n * Get running executions\n */\n getRunningExecutions(): ExecutionState[] {\n const running: ExecutionState[] = [];\n for (const execution of this.executions.values()) {\n if (execution.isRunning) {\n running.push(execution);\n }\n }\n return running;\n }\n\n /**\n * Get completed executions\n */\n getCompletedExecutions(): ExecutionState[] {\n const completed: ExecutionState[] = [];\n for (const execution of this.executions.values()) {\n if (!execution.isRunning) {\n completed.push(execution);\n }\n }\n return completed;\n }\n\n /**\n * Abort all running executions for a session\n */\n abortSessionExecutions(sessionId: string): void {\n const sessionExecutions = this.getSessionExecutions(sessionId);\n for (const execution of sessionExecutions) {\n if (execution.isRunning) {\n execution.abort();\n }\n }\n }\n\n /**\n * Clean up old completed executions\n */\n private cleanupOldExecutions(): void {\n const completed = this.getCompletedExecutions();\n \n // Sort by end time (oldest first)\n completed.sort((a, b) => {\n const aTime = a.endTime || a.startTime;\n const bTime = b.endTime || b.startTime;\n return aTime - bTime;\n });\n\n // Remove the oldest executions\n const toRemove = Math.max(0, this.executions.size - this.maxExecutions);\n for (let i = 0; i < toRemove && i < completed.length; i++) {\n this.executions.delete(completed[i].id);\n }\n }\n\n /**\n * Clear all executions\n */\n clearAll(): void {\n this.executions.clear();\n }\n\n /**\n * Get total execution count\n */\n getExecutionCount(): number {\n return this.executions.size;\n }\n\n /**\n * Get execution statistics\n */\n getStats(): {\n total: number;\n running: number;\n completed: number;\n failed: number;\n } {\n let running = 0;\n let completed = 0;\n let failed = 0;\n\n for (const execution of this.executions.values()) {\n if (execution.isRunning) {\n running++;\n } else if (execution.error) {\n failed++;\n } else {\n completed++;\n }\n }\n\n return {\n total: this.executions.size,\n running,\n completed,\n failed,\n };\n }\n}\n\n","/**\n * Message format converters\n */\n\nimport type { Message } from '@ag-ui/client';\nimport type { ConvertedMessage } from '../types';\n\n/**\n * Convert AG-UI messages to a format suitable for Claude SDK\n */\nexport function convertAgUiMessagesToPrompt(messages: Message[]): string {\n // For Claude SDK, we typically extract the last user message as the prompt\n // The SDK maintains conversation history internally (in persistent mode)\n \n // Find the last user message\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.role === 'user') {\n return extractMessageContent(msg);\n }\n }\n\n // If no user message found, return a default prompt\n return 'Hello';\n}\n\n/**\n * Extract text content from a message\n */\nexport function extractMessageContent(message: Message): string {\n if (typeof message.content === 'string') {\n return message.content;\n }\n\n if (Array.isArray(message.content)) {\n return message.content\n .map((block: any) => {\n if (typeof block === 'string') {\n return block;\n }\n if (block.type === 'text') {\n return block.text || '';\n }\n // For other types (image, file, etc.), we might need special handling\n return '';\n })\n .filter(Boolean)\n .join('\\n');\n }\n\n return String(message.content);\n}\n\n/**\n * Convert AG-UI message to Claude message format\n */\nexport function convertAgUiMessageToClaude(message: Message): ConvertedMessage {\n const role = message.role as 'user' | 'assistant' | 'system';\n const content = extractMessageContent(message);\n\n return {\n role,\n content,\n };\n}\n\n/**\n * Convert multiple AG-UI messages to Claude format\n */\nexport function convertAgUiMessagesToClaude(messages: Message[]): ConvertedMessage[] {\n return messages.map(convertAgUiMessageToClaude);\n}\n\n/**\n * Check if messages contain tool results\n */\nexport function hasToolResults(messages: Message[]): boolean {\n return messages.some((msg) => {\n if (typeof msg.content === 'string') {\n return false;\n }\n if (Array.isArray(msg.content)) {\n return msg.content.some((block: any) => {\n return typeof block === 'object' && block.type === 'tool_result';\n });\n }\n return false;\n });\n}\n\n/**\n * Extract tool results from messages\n */\nexport function extractToolResults(messages: Message[]): Array<{\n toolCallId: string;\n result: string;\n}> {\n const results: Array<{ toolCallId: string; result: string }> = [];\n\n for (const msg of messages) {\n if (typeof msg.content === 'string') {\n continue;\n }\n\n if (Array.isArray(msg.content)) {\n for (const block of msg.content as any[]) {\n if (typeof block === 'object' && block.type === 'tool_result') {\n results.push({\n toolCallId: (block as any).toolCallId || (block as any).tool_use_id || '',\n result: (block as any).result || (block as any).content || '',\n });\n }\n }\n }\n }\n\n return results;\n}\n\n/**\n * Generate a unique run ID\n */\nexport function generateRunId(): string {\n return `run_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n}\n\n/**\n * Generate a unique message ID\n */\nexport function generateMessageId(prefix: string = 'msg'): string {\n return `${prefix}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n}\n\n/**\n * Safely parse JSON string\n */\nexport function safeJsonParse(json: string, defaultValue: any = null): any {\n try {\n return JSON.parse(json);\n } catch {\n return defaultValue;\n }\n}\n\n/**\n * Safely stringify JSON\n */\nexport function safeJsonStringify(obj: any, defaultValue: string = '{}'): string {\n try {\n return JSON.stringify(obj);\n } catch {\n return defaultValue;\n }\n}\n\n/**\n * Check if a message is a tool result submission\n */\nexport function isToolResultSubmission(messages: Message[]): boolean {\n // Check if the last message contains tool results\n if (messages.length === 0) {\n return false;\n }\n\n const lastMessage = messages[messages.length - 1];\n return hasToolResults([lastMessage]);\n}\n\n/**\n * Format error message for display\n */\nexport function formatErrorMessage(error: any): string {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === 'string') {\n return error;\n }\n return 'An unknown error occurred';\n}\n\n/**\n * Truncate text to a maximum length\n */\nexport function truncateText(text: string, maxLength: number = 1000): string {\n if (text.length <= maxLength) {\n return text;\n }\n return text.slice(0, maxLength) + '...';\n}\n\n/**\n * Merge consecutive text blocks\n */\nexport function mergeTextBlocks(blocks: Array<{ type: string; text?: string }>): string {\n return blocks\n .filter((block: any) => block.type === 'text' && block.text)\n .map((block: any) => block.text)\n .join('');\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACIA,kBAAuC;AACvC,IAAAA,iBASO;;;ACPP,IAAM,0BAA0B,KAAK,KAAK;AAC1C,IAAM,mBAAmB,IAAI,KAAK;AAM3B,IAAM,kBAAN,MAAM,gBAAe;AAAA,EAMlB,YAAY,iBAAyB,yBAAyB;AAJtE,SAAQ,WAAiC,oBAAI,IAAI;AACjD,SAAQ,kBAAyD;AAI/D,SAAK,iBAAiB;AACtB,SAAK,qBAAqB;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,YAAY,gBAAyC;AAC1D,QAAI,CAAC,gBAAe,UAAU;AAC5B,sBAAe,WAAW,IAAI,gBAAe,cAAc;AAAA,IAC7D;AACA,WAAO,gBAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,gBAAsB;AAC3B,QAAI,gBAAe,UAAU;AAC3B,sBAAe,SAAS,oBAAoB;AAC5C,sBAAe,WAAW;AAAA,IAC5B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,WAAmB,QAA0B;AACtD,QAAI,UAAU,KAAK,SAAS,IAAI,SAAS;AAEzC,QAAI,CAAC,SAAS;AACZ,gBAAU;AAAA,QACR,IAAI;AAAA,QACJ;AAAA,QACA,qBAAqB,oBAAI,IAAY;AAAA,QACrC,OAAO,CAAC;AAAA,QACR,WAAW,KAAK,IAAI;AAAA,QACpB,gBAAgB,KAAK,IAAI;AAAA,MAC3B;AACA,WAAK,SAAS,IAAI,WAAW,OAAO;AAAA,IACtC,OAAO;AAEL,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,WAA4B;AACrC,WAAO,KAAK,SAAS,IAAI,SAAS;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,WAA4B;AACxC,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,mCAAS,QAAQ;AAEnB,cAAQ,OAAO,MAAM,EAAE,MAAM,CAAC,UAAU;AACtC,gBAAQ,MAAM,+CAA+C,SAAS,KAAK,KAAK;AAAA,MAClF,CAAC;AAAA,IACH;AACA,WAAO,KAAK,SAAS,OAAO,SAAS;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,WAAmB,WAAyB;AACvD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,oBAAoB,IAAI,SAAS;AACzC,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB,WAAmB,WAA4B;AAChE,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,WAAO,UAAU,QAAQ,oBAAoB,IAAI,SAAS,IAAI;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,WAAmB,UAAgC;AACnE,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AAEA,WAAO,SAAS,OAAO,CAAC,QAAQ;AAC9B,YAAM,QAAQ,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,OAAO;AAClD,aAAO,CAAC,QAAQ,oBAAoB,IAAI,KAAK;AAAA,IAC/C,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,wBAAwB,WAAmB,UAA2B;AACpE,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,iBAAW,OAAO,UAAU;AAC1B,cAAM,QAAQ,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,OAAO;AAClD,gBAAQ,oBAAoB,IAAI,KAAK;AAAA,MACvC;AACA,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,WAAmB,KAAkB;AACjD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,WAAO,mCAAS,MAAM;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,WAAmB,KAAa,OAAkB;AAC9D,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,MAAM,GAAG,IAAI;AACrB,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,WAAmB,MAAsB;AACvD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,iBAAW,OAAO,MAAM;AACtB,eAAO,QAAQ,MAAM,GAAG;AAAA,MAC1B;AACA,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,WAAyB;AACzC,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,QAAQ,CAAC;AACjB,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,WAAmB,QAA+B;AAC1D,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,SAAS;AACjB,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,WAAgD;AACxD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,WAAO,mCAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,kBAA0B;AACxB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,QAAwB;AAC1C,QAAI,QAAQ;AACZ,eAAW,WAAW,KAAK,SAAS,OAAO,GAAG;AAC5C,UAAI,QAAQ,WAAW,QAAQ;AAC7B;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,mBAA6B;AAC3B,WAAO,MAAM,KAAK,KAAK,SAAS,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,QAA2B;AACzC,UAAM,eAA0B,CAAC;AACjC,eAAW,WAAW,KAAK,SAAS,OAAO,GAAG;AAC5C,UAAI,QAAQ,WAAW,QAAQ;AAC7B,qBAAa,KAAK,OAAO;AAAA,MAC3B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,uBAA6B;AACnC,UAAM,MAAM,KAAK,IAAI;AACrB,UAAM,mBAA6B,CAAC;AAEpC,eAAW,CAAC,WAAW,OAAO,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC1D,UAAI,MAAM,QAAQ,iBAAiB,KAAK,gBAAgB;AACtD,yBAAiB,KAAK,SAAS;AAAA,MACjC;AAAA,IACF;AAEA,eAAW,aAAa,kBAAkB;AACxC,WAAK,cAAc,SAAS;AAAA,IAC9B;AAEA,QAAI,iBAAiB,SAAS,GAAG;AAC/B,cAAQ,IAAI,cAAc,iBAAiB,MAAM,iBAAiB;AAAA,IACpE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,uBAA6B;AACnC,QAAI,CAAC,KAAK,iBAAiB;AACzB,WAAK,kBAAkB,YAAY,MAAM;AACvC,aAAK,qBAAqB;AAAA,MAC5B,GAAG,gBAAgB;AAGnB,UAAI,OAAQ,KAAK,gBAAwB,UAAU,YAAY;AAC7D,QAAC,KAAK,gBAAwB,MAAM;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,sBAA4B;AAClC,QAAI,KAAK,iBAAiB;AACxB,oBAAc,KAAK,eAAe;AAClC,WAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAyB;AACvB,eAAW,aAAa,KAAK,SAAS,KAAK,GAAG;AAC5C,WAAK,cAAc,SAAS;AAAA,IAC9B;AACA,SAAK,SAAS,MAAM;AAAA,EACtB;AACF;AA3Ra,gBACI,WAAkC;AAD5C,IAAM,iBAAN;;;ACVP,oBASO;;;ACmMA,SAAS,mBAAmB,SAAqD;AACtF,SAAO,QAAQ,SAAS;AAC1B;AAEO,SAAS,gBAAgB,SAAkD;AAChF,SAAO,QAAQ,SAAS;AAC1B;AAEO,SAAS,YAAY,OAAyC;AACnE,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,eAAe,OAA4C;AACzE,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,kBAAkB,OAA+C;AAC/E,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,gBAAgB,OAA6C;AAC3E,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,mBAAmB,SAAkF;AAEnH,MAAI,QAAQ,SAAS,aAAa;AAChC,WAAO,aAAa,WACb,QAAQ,YAAY,QACpB,OAAO,QAAQ,YAAY,YAC3B,aAAa,QAAQ,WACrB,MAAM,QAAS,QAAQ,QAAgB,OAAO;AAAA,EACvD;AAEA,SAAO,aAAa,WAAW,MAAM,QAAS,QAAgB,OAAO;AACvE;;;AD9MO,IAAM,kBAAN,MAAsB;AAAA,EAM3B,YAAY,OAAe,UAAkB;AAL7C,SAAQ,mBAAmB;AAC3B,SAAQ,mBAAkC;AAKxC,SAAK,QAAQ;AACb,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,SAAwC;AACvD,UAAM,SAA4B,CAAC;AAEnC,QAAI,mBAAmB,OAAO,GAAG;AAC/B,aAAO,KAAK,GAAG,KAAK,0BAA0B,OAA8B,CAAC;AAAA,IAC/E;AAIA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,0BAA0B,SAAiD;AAnErF;AAoEI,UAAM,SAA4B,CAAC;AAGnC,UAAM,YAAU,aAAQ,YAAR,mBAAiB,YAAW,CAAC;AAE7C,eAAW,SAAS,SAAS;AAC3B,UAAI,YAAY,KAAK,GAAG;AACtB,eAAO,KAAK,GAAG,KAAK,mBAAmB,KAAK,CAAC;AAAA,MAC/C,WAAW,eAAe,KAAK,GAAG;AAChC,eAAO,KAAK,GAAG,KAAK,sBAAsB,KAAK,CAAC;AAAA,MAClD,WAAW,kBAAkB,KAAK,GAAG;AACnC,eAAO,KAAK,GAAG,KAAK,yBAAyB,KAAK,CAAC;AAAA,MACrD;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,mBAAmB,OAAqC;AAC9D,UAAM,SAA4B,CAAC;AACnC,UAAM,YAAY,KAAK,kBAAkB;AAGzC,WAAO,KAAK;AAAA,MACV,MAAM,wBAAU;AAAA,MAChB;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAGD,UAAM,OAAO,MAAM;AACnB,QAAI,KAAK,SAAS,GAAG;AACnB,aAAO,KAAK;AAAA,QACV,MAAM,wBAAU;AAAA,QAChB;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAGA,WAAO,KAAK;AAAA,MACV,MAAM,wBAAU;AAAA,MAChB;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,sBAAsB,OAAwC;AACpE,UAAM,SAA4B,CAAC;AACnC,UAAM,aAAa,MAAM;AAGzB,WAAO,KAAK;AAAA,MACV,MAAM,wBAAU;AAAA,MAChB;AAAA,MACA,cAAc,MAAM;AAAA,IACtB,CAAC;AAGD,UAAM,WAAW,KAAK,UAAU,MAAM,KAAK;AAC3C,QAAI,SAAS,SAAS,GAAG;AACvB,aAAO,KAAK;AAAA,QACV,MAAM,wBAAU;AAAA,QAChB;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAGA,WAAO,KAAK;AAAA,MACV,MAAM,wBAAU;AAAA,MAChB;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,yBAAyB,OAA2C;AAC1E,UAAM,SAA4B,CAAC;AAGnC,QAAI;AACJ,QAAI,OAAO,MAAM,YAAY,UAAU;AACrC,sBAAgB,MAAM;AAAA,IACxB,WAAW,MAAM,QAAQ,MAAM,OAAO,GAAG;AAEvC,sBAAgB,MAAM,QACnB,IAAI,CAAC,SAAS;AACb,YAAI,KAAK,SAAS,QAAQ;AACxB,iBAAO,KAAK,QAAQ;AAAA,QACtB;AACA,eAAO,KAAK,UAAU,IAAI;AAAA,MAC5B,CAAC,EACA,KAAK,IAAI;AAAA,IACd,OAAO;AACL,sBAAgB,KAAK,UAAU,MAAM,OAAO;AAAA,IAC9C;AAEA,UAAM,YAAY,KAAK,kBAAkB;AACzC,WAAO,KAAK;AAAA,MACV,MAAM,wBAAU;AAAA,MAChB,YAAY,MAAM;AAAA,MAClB;AAAA,MACA,SAAS;AAAA,OACL,MAAM,YAAY,EAAE,MAAM,OAAgB,EAC/C;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAA4B;AAClC,SAAK;AACL,WAAO,OAAO,KAAK,KAAK,IAAI,KAAK,gBAAgB;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,mBAAmB;AACxB,SAAK,mBAAmB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,sBAAqC;AACnC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,WAAgC;AAClD,SAAK,mBAAmB;AAAA,EAC1B;AACF;;;AEvNA,iBAAkB;AAkBX,IAAM,cAAN,MAAkB;AAAA;AAAA;AAAA;AAAA,EAIvB,OAAO,sBAAsB,OAA4C;AACvE,WAAO,MAAM,IAAI,CAAC,SAAS,KAAK,kBAAkB,IAAoB,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,kBAAkB,MAA+C;AAC9E,UAAM,YAAY,KAAK,uBAAuB,KAAK,cAAc,CAAC,CAAC;AAEnE,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,aAAa,KAAK,eAAe;AAAA,MACjC,aAAa;AAAA,MACb,SAAS,OAAO,SAAc;AAG5B,YAAI,KAAK,QAAQ;AACf,iBAAO;AAAA,YACL,SAAS;AAAA,cACP;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM,KAAK,UAAU;AAAA,kBACnB,UAAU,KAAK;AAAA,kBACf;AAAA,kBACA,cAAc;AAAA,kBACd,eAAe;AAAA,gBACjB,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAGA,YAAI,KAAK,SAAS;AAChB,cAAI;AACF,kBAAM,SAAS,MAAM,KAAK,QAAQ,IAAI;AACtC,mBAAO;AAAA,cACL,SAAS;AAAA,gBACP;AAAA,kBACE,MAAM;AAAA,kBACN,MAAM,OAAO,WAAW,WAAW,SAAS,KAAK,UAAU,MAAM;AAAA,gBACnE;AAAA,cACF;AAAA,YACF;AAAA,UACF,SAAS,OAAY;AACnB,mBAAO;AAAA,cACL,SAAS;AAAA,gBACP;AAAA,kBACE,MAAM;AAAA,kBACN,MAAM,MAAM,WAAW;AAAA,gBACzB;AAAA,cACF;AAAA,cACA,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAGA,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,uBAAuB,YAA+B;AACnE,QAAI,CAAC,cAAc,OAAO,eAAe,UAAU;AACjD,aAAO,aAAE,OAAO,CAAC,CAAC;AAAA,IACpB;AAEA,UAAM,aAAa,WAAW,cAAc,CAAC;AAC7C,UAAM,WAAW,WAAW,YAAY,CAAC;AAEzC,UAAM,WAAyC,CAAC;AAEhD,eAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,UAAU,GAAG;AACpD,YAAM,aAAa;AACnB,UAAI,UAAU,KAAK,2BAA2B,UAAU;AAGxD,UAAI,CAAC,SAAS,SAAS,GAAG,GAAG;AAC3B,kBAAU,QAAQ,SAAS;AAAA,MAC7B;AAEA,eAAS,GAAG,IAAI;AAAA,IAClB;AAEA,WAAO,aAAE,OAAO,QAAQ;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,2BAA2B,QAA2B;AACnE,UAAM,OAAO,OAAO;AAEpB,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,YAAI,OAAO,MAAM;AACf,iBAAO,aAAE,KAAK,OAAO,IAA6B;AAAA,QACpD;AACA,eAAO,aAAE,OAAO;AAAA,MAElB,KAAK;AAAA,MACL,KAAK;AACH,YAAI,UAAU,SAAS,YAAY,aAAE,OAAO,EAAE,IAAI,IAAI,aAAE,OAAO;AAC/D,YAAI,OAAO,YAAY,QAAW;AAChC,oBAAU,QAAQ,IAAI,OAAO,OAAO;AAAA,QACtC;AACA,YAAI,OAAO,YAAY,QAAW;AAChC,oBAAU,QAAQ,IAAI,OAAO,OAAO;AAAA,QACtC;AACA,eAAO;AAAA,MAET,KAAK;AACH,eAAO,aAAE,QAAQ;AAAA,MAEnB,KAAK;AACH,YAAI,OAAO,OAAO;AAChB,gBAAM,WAAW,KAAK,2BAA2B,OAAO,KAAK;AAC7D,iBAAO,aAAE,MAAM,QAAQ;AAAA,QACzB;AACA,eAAO,aAAE,MAAM,aAAE,IAAI,CAAC;AAAA,MAExB,KAAK;AACH,YAAI,OAAO,YAAY;AACrB,iBAAO,KAAK,uBAAuB,MAAM;AAAA,QAC3C;AACA,eAAO,aAAE,OAAO,aAAE,IAAI,CAAC;AAAA,MAEzB,KAAK;AACH,eAAO,aAAE,KAAK;AAAA,MAEhB;AAEE,eAAO,aAAE,IAAI;AAAA,IACjB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,wBAAwB,OAA6B;AAChE,UAAM,WAAW,KAAK,sBAAsB,KAAuB;AAGnE,UAAM,EAAE,mBAAmB,IAAI,MAAM,OAAO,gCAAgC;AAG5E,WAAO,mBAAmB;AAAA,MACxB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA;AAAA,IACT,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,iBAAiB,SAIrB;AACD,QAAI,CAAC,QAAQ,WAAW,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAAG;AACvD,aAAO,CAAC;AAAA,IACV;AAEA,WAAO,QAAQ,QACZ,OAAO,CAAC,UAAe,MAAM,SAAS,UAAU,EAChD,IAAI,CAAC,WAAgB;AAAA,MACpB,IAAI,MAAM;AAAA,MACV,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,IACf,EAAE;AAAA,EACN;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,aAAa,UAAkB,OAAwB;AAC5D,UAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,QAAQ;AAClD,YAAO,6BAAM,YAAW;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,kBAAkB,UAAkB,OAAwB;AACjE,UAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,QAAQ;AAClD,YAAO,6BAAM,YAAW,SAAQ,6BAAM,iBAAgB;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,qBAAqB,UAAkB,aAAqB,eAAuB;AACxF,WAAO,QAAQ,UAAU,KAAK,QAAQ;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,qBAAqB,aAA6B;AACvD,UAAM,QAAQ,YAAY,MAAM,IAAI;AACpC,QAAI,MAAM,UAAU,KAAK,MAAM,CAAC,MAAM,OAAO;AAC3C,aAAO,MAAM,MAAM,CAAC,EAAE,KAAK,IAAI;AAAA,IACjC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,oBAAoB,OAAe,aAAqB,eAAyB;AACtF,WAAO,MAAM,IAAI,CAAC,SAAS,KAAK,qBAAqB,KAAK,MAAM,UAAU,CAAC;AAAA,EAC7E;AACF;;;ACnPO,IAAM,iBAAN,MAAqB;AAAA,EAU1B,YAAY,IAAY,WAAmB;AACzC,SAAK,KAAK;AACV,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,SAAK,aAAa,KAAK,IAAI;AAC3B,SAAK,UAAU,CAAC;AAChB,SAAK,mBAAmB,IAAI,gBAAgB;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAoB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA8B;AAChC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAmB;AACrB,UAAM,MAAM,KAAK,YAAY,KAAK,IAAI;AACtC,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA4B;AAC9B,WAAO,CAAC,GAAG,KAAK,OAAO;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAA2B;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAsB;AACxB,WAAO,KAAK,iBAAiB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,OAA8B;AACrC,SAAK,QAAQ,KAAK,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,QAAiC;AACzC,SAAK,QAAQ,KAAK,GAAG,MAAM;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiB;AACf,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa;AAClB,WAAK,WAAW,KAAK,IAAI;AAAA,IAC3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,OAAoB;AACvB,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa;AAClB,WAAK,WAAW,KAAK,IAAI;AACzB,WAAK,SAAS;AAAA,IAChB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,QAAI,KAAK,YAAY;AACnB,WAAK,iBAAiB,MAAM;AAC5B,WAAK,aAAa;AAClB,WAAK,WAAW,KAAK,IAAI;AAAA,IAC3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAKE;AACA,WAAO;AAAA,MACL,UAAU,KAAK;AAAA,MACf,YAAY,KAAK,QAAQ;AAAA,MACzB,WAAW,KAAK;AAAA,MAChB,UAAU,CAAC,CAAC,KAAK;AAAA,IACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAoB;AAClB,SAAK,UAAU,CAAC;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,OAAkC;AAC9C,WAAO,KAAK,QAAQ,MAAM,CAAC,KAAK;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,YAAqB;AACnB,WAAO,KAAK,iBAAiB,OAAO;AAAA,EACtC;AACF;AAKO,IAAM,wBAAN,MAA4B;AAAA,EAIjC,YAAY,gBAAwB,KAAK;AAHzC,SAAQ,aAA0C,oBAAI,IAAI;AAIxD,SAAK,gBAAgB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,IAAY,WAAmC;AAC7D,UAAM,YAAY,IAAI,eAAe,IAAI,SAAS;AAClD,SAAK,WAAW,IAAI,IAAI,SAAS;AAGjC,QAAI,KAAK,WAAW,OAAO,KAAK,eAAe;AAC7C,WAAK,qBAAqB;AAAA,IAC5B;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,IAAwC;AACnD,WAAO,KAAK,WAAW,IAAI,EAAE;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,IAAqB;AAChC,WAAO,KAAK,WAAW,IAAI,EAAE;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,IAAqB;AACnC,WAAO,KAAK,WAAW,OAAO,EAAE;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,WAAqC;AACxD,UAAM,aAA+B,CAAC;AACtC,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,UAAU,cAAc,WAAW;AACrC,mBAAW,KAAK,SAAS;AAAA,MAC3B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAyC;AACvC,UAAM,UAA4B,CAAC;AACnC,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,UAAU,WAAW;AACvB,gBAAQ,KAAK,SAAS;AAAA,MACxB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,yBAA2C;AACzC,UAAM,YAA8B,CAAC;AACrC,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,CAAC,UAAU,WAAW;AACxB,kBAAU,KAAK,SAAS;AAAA,MAC1B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB,WAAyB;AAC9C,UAAM,oBAAoB,KAAK,qBAAqB,SAAS;AAC7D,eAAW,aAAa,mBAAmB;AACzC,UAAI,UAAU,WAAW;AACvB,kBAAU,MAAM;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,uBAA6B;AACnC,UAAM,YAAY,KAAK,uBAAuB;AAG9C,cAAU,KAAK,CAAC,GAAG,MAAM;AACvB,YAAM,QAAQ,EAAE,WAAW,EAAE;AAC7B,YAAM,QAAQ,EAAE,WAAW,EAAE;AAC7B,aAAO,QAAQ;AAAA,IACjB,CAAC;AAGD,UAAM,WAAW,KAAK,IAAI,GAAG,KAAK,WAAW,OAAO,KAAK,aAAa;AACtE,aAAS,IAAI,GAAG,IAAI,YAAY,IAAI,UAAU,QAAQ,KAAK;AACzD,WAAK,WAAW,OAAO,UAAU,CAAC,EAAE,EAAE;AAAA,IACxC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiB;AACf,SAAK,WAAW,MAAM;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,oBAA4B;AAC1B,WAAO,KAAK,WAAW;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,WAKE;AACA,QAAI,UAAU;AACd,QAAI,YAAY;AAChB,QAAI,SAAS;AAEb,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,UAAU,WAAW;AACvB;AAAA,MACF,WAAW,UAAU,OAAO;AAC1B;AAAA,MACF,OAAO;AACL;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,OAAO,KAAK,WAAW;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;AC3TO,SAAS,4BAA4B,UAA6B;AAKvE,WAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC7C,UAAM,MAAM,SAAS,CAAC;AACtB,QAAI,IAAI,SAAS,QAAQ;AACvB,aAAO,sBAAsB,GAAG;AAAA,IAClC;AAAA,EACF;AAGA,SAAO;AACT;AAKO,SAAS,sBAAsB,SAA0B;AAC9D,MAAI,OAAO,QAAQ,YAAY,UAAU;AACvC,WAAO,QAAQ;AAAA,EACjB;AAEA,MAAI,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAClC,WAAO,QAAQ,QACZ,IAAI,CAAC,UAAe;AACnB,UAAI,OAAO,UAAU,UAAU;AAC7B,eAAO;AAAA,MACT;AACA,UAAI,MAAM,SAAS,QAAQ;AACzB,eAAO,MAAM,QAAQ;AAAA,MACvB;AAEA,aAAO;AAAA,IACT,CAAC,EACA,OAAO,OAAO,EACd,KAAK,IAAI;AAAA,EACd;AAEA,SAAO,OAAO,QAAQ,OAAO;AAC/B;AAKO,SAAS,2BAA2B,SAAoC;AAC7E,QAAM,OAAO,QAAQ;AACrB,QAAM,UAAU,sBAAsB,OAAO;AAE7C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAKO,SAAS,4BAA4B,UAAyC;AACnF,SAAO,SAAS,IAAI,0BAA0B;AAChD;AAKO,SAAS,eAAe,UAA8B;AAC3D,SAAO,SAAS,KAAK,CAAC,QAAQ;AAC5B,QAAI,OAAO,IAAI,YAAY,UAAU;AACnC,aAAO;AAAA,IACT;AACA,QAAI,MAAM,QAAQ,IAAI,OAAO,GAAG;AAC9B,aAAO,IAAI,QAAQ,KAAK,CAAC,UAAe;AACtC,eAAO,OAAO,UAAU,YAAY,MAAM,SAAS;AAAA,MACrD,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAKO,SAAS,mBAAmB,UAGhC;AACD,QAAM,UAAyD,CAAC;AAEhE,aAAW,OAAO,UAAU;AAC1B,QAAI,OAAO,IAAI,YAAY,UAAU;AACnC;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,IAAI,OAAO,GAAG;AAC9B,iBAAW,SAAS,IAAI,SAAkB;AACxC,YAAI,OAAO,UAAU,YAAY,MAAM,SAAS,eAAe;AAC7D,kBAAQ,KAAK;AAAA,YACX,YAAa,MAAc,cAAe,MAAc,eAAe;AAAA,YACvE,QAAS,MAAc,UAAW,MAAc,WAAW;AAAA,UAC7D,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,gBAAwB;AACtC,SAAO,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AACrE;AAKO,SAAS,kBAAkB,SAAiB,OAAe;AAChE,SAAO,GAAG,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AAC3E;AAKO,SAAS,cAAc,MAAc,eAAoB,MAAW;AACzE,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,SAAQ;AACN,WAAO;AAAA,EACT;AACF;AAKO,SAAS,kBAAkB,KAAU,eAAuB,MAAc;AAC/E,MAAI;AACF,WAAO,KAAK,UAAU,GAAG;AAAA,EAC3B,SAAQ;AACN,WAAO;AAAA,EACT;AACF;AAKO,SAAS,uBAAuB,UAA8B;AAEnE,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,SAAS,SAAS,SAAS,CAAC;AAChD,SAAO,eAAe,CAAC,WAAW,CAAC;AACrC;AAKO,SAAS,mBAAmB,OAAoB;AACrD,MAAI,iBAAiB,OAAO;AAC1B,WAAO,MAAM;AAAA,EACf;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAKO,SAAS,aAAa,MAAc,YAAoB,KAAc;AAC3E,MAAI,KAAK,UAAU,WAAW;AAC5B,WAAO;AAAA,EACT;AACA,SAAO,KAAK,MAAM,GAAG,SAAS,IAAI;AACpC;AAKO,SAAS,gBAAgB,QAAwD;AACtF,SAAO,OACJ,OAAO,CAAC,UAAe,MAAM,SAAS,UAAU,MAAM,IAAI,EAC1D,IAAI,CAAC,UAAe,MAAM,IAAI,EAC9B,KAAK,EAAE;AACZ;;;ANnKO,IAAM,cAAN,cAA0B,6BAAc;AAAA,EAW7C,YAAY,QAA2B;AACrC,UAAM,MAAM;AAGZ,SAAK,SAAS,OAAO;AACrB,SAAK,UAAU,OAAO;AACtB,SAAK,iBAAiB,OAAO,kBAAkB,KAAK,KAAK;AACzD,SAAK,2BAA2B,OAAO,6BAA6B;AAEpE,SAAK,iBAAiB,KAAK,kBAAkB,OAAO,kBAAkB,mBAAmB;AACzF,SAAK,SAAS,OAAO;AACrB,SAAK,UAAU,OAAO;AACtB,SAAK,iBAAiB,eAAe,YAAY,KAAK,cAAc;AACpE,SAAK,wBAAwB,IAAI,sBAAsB;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKQ,kBAAkB,MAAyE;AACjG,UAAM,UAAoF;AAAA,MACxF,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,QAAQ;AAAA,IACV;AACA,WAAO,QAAQ,QAAQ,mBAAmB,KAAK;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAmD;AACrD,WAAO,IAAI,uBAAW,CAAC,eAAe;AACpC,WAAK,aAAa,OAAO,UAAU,EAAE,MAAM,CAAC,UAAU;AACpD,mBAAW,MAAM,KAAK;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,aACZ,OACA,YACe;AACf,UAAM,QAAQ,cAAc;AAC5B,UAAM,YAAY,MAAM,YAAY,WAAW,KAAK,IAAI,CAAC;AAGzD,UAAM,YAAY,KAAK,sBAAsB,gBAAgB,OAAO,SAAS;AAE7E,QAAI;AAEF,YAAM,kBAAmC;AAAA,QACvC,MAAM,yBAAU;AAAA,QAChB,UAAU;AAAA,QACV;AAAA,MACF;AACA,iBAAW,KAAK,eAAe;AAC/B,gBAAU,SAAS,eAAe;AAGlC,YAAM,UAAU,KAAK,eAAe,WAAW,WAAW,SAAS;AAGnE,YAAM,iBAAiB,KAAK,eAAe;AAAA,QACzC;AAAA,QACA,MAAM,YAAY,CAAC;AAAA,MACrB;AAGA,YAAM,eAAe,uBAAuB,MAAM,YAAY,CAAC,CAAC;AAGhE,YAAM,QAAQ,MAAM,SAAS,CAAC;AAG9B,YAAM,UAAU,MAAM,KAAK,qBAAqB,KAAK;AAGrD,YAAM,SAAS,4BAA4B,cAAc;AAGzD,YAAM,mBAAqC;AAAA,QACzC,MAAM,yBAAU;AAAA,QAChB,UAAU,QAAQ,KAAK;AAAA,MACzB;AACA,iBAAW,KAAK,gBAAgB;AAChC,gBAAU,SAAS,gBAAgB;AAGnC,YAAM,KAAK;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAGA,WAAK,eAAe,wBAAwB,WAAW,cAAc;AAGrE,YAAM,oBAAuC;AAAA,QAC3C,MAAM,yBAAU;AAAA,QAChB,UAAU,QAAQ,KAAK;AAAA,MACzB;AACA,iBAAW,KAAK,iBAAiB;AACjC,gBAAU,SAAS,iBAAiB;AAGpC,YAAM,mBAAqC;AAAA,QACzC,MAAM,yBAAU;AAAA,QAChB,UAAU;AAAA,QACV;AAAA,MACF;AACA,iBAAW,KAAK,gBAAgB;AAChC,gBAAU,SAAS,gBAAgB;AAGnC,gBAAU,SAAS;AACnB,iBAAW,SAAS;AAAA,IACtB,SAAS,OAAY;AAEnB,YAAM,gBAA+B;AAAA,QACnC,MAAM,yBAAU;AAAA,QAChB,SAAS,mBAAmB,KAAK;AAAA,MACnC;AACA,iBAAW,KAAK,aAAa;AAC7B,gBAAU,SAAS,aAAa;AAGhC,gBAAU,KAAK,KAAK;AAGpB,iBAAW,SAAS;AAAA,IACtB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,qBAAqB,OAAgC;AAEjE,UAAM,UAAU,KAAK,WAAW,QAAQ,IAAI;AAC5C,UAAM,SAAS,KAAK,UAAU,QAAQ,IAAI,wBAAwB,QAAQ,IAAI;AAG9E,YAAQ,IAAI,yCAAyC;AAAA,MACnD,WAAW,CAAC,CAAC;AAAA,MACb,YAAY,CAAC,CAAC;AAAA,MACd,SAAS,WAAW;AAAA,MACpB,gBAAgB,KAAK;AAAA,MACrB,WAAW,CAAC,CAAC,KAAK;AAAA,MAClB,SAAS,KAAK;AAAA,IAChB,CAAC;AAED,UAAM,UAAmB;AAAA,MACvB,gBAAgB,KAAK;AAAA,OAEjB,KAAK,UAAU,EAAE,QAAQ,KAAK,OAAO,IAErC,KAAK,YAAY,UAAa,EAAE,SAAS,KAAK,QAAQ,IALnC;AAAA,MAMvB,KAAK,QAAQ;AAAA,IACf;AAGA,QAAI,KAAK,QAAQ;AACf,cAAQ,IAAI,uEAAkE;AAAA,IAChF,OAAO;AACL,cAAQ,KAAK,6FAAmF;AAAA,IAClG;AAGA,QAAI,SAAS,MAAM,SAAS,GAAG;AAC7B,YAAM,YAAY,MAAM,YAAY,wBAAwB,KAAK;AACjE,cAAQ,aAAa;AAAA,QACnB,aAAa;AAAA,MACf;AAGA,cAAQ,eAAe,YAAY,oBAAoB,KAAK;AAAA,IAC9D;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,cACZ,QACA,SACA,SACA,OACA,WACA,YACA,WACe;AACf,UAAM,kBAAkB,IAAI,gBAAgB,OAAO,SAAS;AAI5D,UAAM,KAAK;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,wBACZ,QACA,SACA,SACA,iBACA,YACA,WACe;AAIf,UAAM,KAAK,uBAAuB,QAAQ,SAAS,iBAAiB,YAAY,SAAS;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,uBACZ,QACA,SACA,iBACA,YACA,WACe;AACf,QAAI;AAEF,cAAQ,IAAI,mCAAmC;AAC/C,cAAQ,IAAI,wBAAwB,QAAQ,IAAI,oBAAoB,QAAQ,SAAS;AACrF,cAAQ,IAAI,2BAA2B,QAAQ,IAAI,uBAAuB,QAAQ,SAAS;AAC3F,cAAQ,IAAI,yBAAyB,QAAQ,IAAI,sBAAsB,yBAAyB;AAChG,cAAQ,IAAI,yCAAyC;AAAA,QACnD,WAAW,CAAC,CAAC,QAAQ;AAAA,QACrB,YAAY,CAAC,CAAC,QAAQ;AAAA,QACtB,gBAAgB,QAAQ;AAAA,QACxB,eAAe,CAAC,CAAC,QAAQ;AAAA,MAC3B,CAAC;AAGD,YAAM,EAAE,MAAM,IAAI,MAAM,KAAK,gBAAgB;AAE7C,cAAQ,IAAI,uCAAuC;AAKnD,YAAM,cAAc,MAAM,EAAE,QAAQ,QAAQ,CAAC;AAG7C;AAAA,mCAA4B,cAA5B,0EAAyC;AAA9B,gBAAM,UAAjB;AACE,kBAAQ,IAAI,6NAAmD;AAC/D,kBAAQ,IAAI,0CAAyC,mCAAS,SAAQ,SAAS;AAC/E,kBAAQ,IAAI,gCAAgC,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAE5E,cAAI,UAAU,UAAU,GAAG;AACzB,oBAAQ,IAAI,0CAA0C;AACtD;AAAA,UACF;AAEA,gBAAM,SAAS,gBAAgB,iBAAiB,OAAO;AACvD,kBAAQ,IAAI,2CAA2C,OAAO,MAAM;AACpE,qBAAW,SAAS,QAAQ;AAC1B,oBAAQ,IAAI,iCAAiC,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAC3E,uBAAW,KAAK,KAAK;AACrB,sBAAU,SAAS,KAAK;AAAA,UAC1B;AACA,kBAAQ,IAAI,6NAAmD;AAAA,QACjE;AAAA,eAlBA,MAlUN;AAkUM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBA,cAAQ,IAAI,6CAA6C;AAAA,IAC3D,SAASC,QAAY;AAEnB,cAAQ,MAAM,+BAA+B;AAC7C,cAAQ,MAAM,cAAcA,OAAM,OAAO;AACzC,cAAQ,MAAM,YAAYA,OAAM,KAAK;AACrC,cAAQ,MAAM,mBAAmB,KAAK,UAAUA,QAAO,OAAO,oBAAoBA,MAAK,GAAG,CAAC,CAAC;AAG5F,UAAIA,OAAM,WAAWA,OAAM,QAAQ,SAAS,kBAAkB,GAAG;AAC/D,cAAM,IAAI;AAAA,UACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKqBA,OAAM,OAAO;AAAA,eAClBA,OAAM,SAAS,gBAAgB;AAAA,QACjD;AAAA,MACF;AAEA,UAAIA,OAAM,YAAYA,OAAM,QAAQ,SAAS,SAAS,KAAKA,OAAM,QAAQ,SAAS,MAAM,IAAI;AAC1F,cAAM,IAAI;AAAA,UACR,kBAAkBA,OAAM,OAAO;AAAA;AAAA,QAEjC;AAAA,MACF;AACA,YAAMA;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,kBAAgC;AAC5C,QAAI;AACF,aAAO,MAAM,OAAO,gCAAgC;AAAA,IACtD,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,OAAqB;AAClC,UAAM,YAAY,KAAK,sBAAsB,aAAa,KAAK;AAC/D,QAAI,WAAW;AACb,gBAAU,MAAM;AAAA,IAClB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,OAA2C;AAC3D,WAAO,KAAK,sBAAsB,aAAa,KAAK;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoC;AAClC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,2BAAkD;AAChD,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAyB;AAE7B,UAAM,oBAAoB,KAAK,sBAAsB,qBAAqB;AAC1E,eAAW,aAAa,mBAAmB;AACzC,gBAAU,MAAM;AAAA,IAClB;AAGA,SAAK,eAAe,iBAAiB;AAGrC,SAAK,sBAAsB,SAAS;AAAA,EACtC;AACF;","names":["import_client","error"]}
\ No newline at end of file
diff --git a/integrations/claude-agent-sdk/typescript/dist/index.mjs b/integrations/claude-agent-sdk/typescript/dist/index.mjs
new file mode 100644
index 000000000..80fd5f74f
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/dist/index.mjs
@@ -0,0 +1,1340 @@
+var __defProp = Object.defineProperty;
+var __defProps = Object.defineProperties;
+var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
+var __getOwnPropSymbols = Object.getOwnPropertySymbols;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __propIsEnum = Object.prototype.propertyIsEnumerable;
+var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __spreadValues = (a, b) => {
+ for (var prop in b || (b = {}))
+ if (__hasOwnProp.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ if (__getOwnPropSymbols)
+ for (var prop of __getOwnPropSymbols(b)) {
+ if (__propIsEnum.call(b, prop))
+ __defNormalProp(a, prop, b[prop]);
+ }
+ return a;
+};
+var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
+var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
+
+// src/agent.ts
+import { Observable } from "rxjs";
+import {
+ AbstractAgent,
+ EventType as EventType2
+} from "@ag-ui/client";
+
+// src/session-manager.ts
+var DEFAULT_SESSION_TIMEOUT = 30 * 60 * 1e3;
+var CLEANUP_INTERVAL = 5 * 60 * 1e3;
+var _SessionManager = class _SessionManager {
+ constructor(sessionTimeout = DEFAULT_SESSION_TIMEOUT) {
+ this.sessions = /* @__PURE__ */ new Map();
+ this.cleanupInterval = null;
+ this.sessionTimeout = sessionTimeout;
+ this.startCleanupInterval();
+ }
+ /**
+ * Get the singleton instance
+ */
+ static getInstance(sessionTimeout) {
+ if (!_SessionManager.instance) {
+ _SessionManager.instance = new _SessionManager(sessionTimeout);
+ }
+ return _SessionManager.instance;
+ }
+ /**
+ * Reset the singleton instance (useful for testing)
+ */
+ static resetInstance() {
+ if (_SessionManager.instance) {
+ _SessionManager.instance.stopCleanupInterval();
+ _SessionManager.instance = null;
+ }
+ }
+ /**
+ * Get or create a session
+ */
+ getSession(sessionId, userId) {
+ let session = this.sessions.get(sessionId);
+ if (!session) {
+ session = {
+ id: sessionId,
+ userId,
+ processedMessageIds: /* @__PURE__ */ new Set(),
+ state: {},
+ createdAt: Date.now(),
+ lastAccessedAt: Date.now()
+ };
+ this.sessions.set(sessionId, session);
+ } else {
+ session.lastAccessedAt = Date.now();
+ }
+ return session;
+ }
+ /**
+ * Check if a session exists
+ */
+ hasSession(sessionId) {
+ return this.sessions.has(sessionId);
+ }
+ /**
+ * Delete a session
+ */
+ deleteSession(sessionId) {
+ const session = this.sessions.get(sessionId);
+ if (session == null ? void 0 : session.client) {
+ session.client.close().catch((error) => {
+ console.error(`Error closing Claude SDK client for session ${sessionId}:`, error);
+ });
+ }
+ return this.sessions.delete(sessionId);
+ }
+ /**
+ * Track a processed message
+ */
+ trackMessage(sessionId, messageId) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.processedMessageIds.add(messageId);
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Check if a message has been processed
+ */
+ isMessageProcessed(sessionId, messageId) {
+ const session = this.sessions.get(sessionId);
+ return session ? session.processedMessageIds.has(messageId) : false;
+ }
+ /**
+ * Get unseen messages (messages not yet processed)
+ */
+ getUnseenMessages(sessionId, messages) {
+ const session = this.sessions.get(sessionId);
+ if (!session) {
+ return messages;
+ }
+ return messages.filter((msg) => {
+ const msgId = msg.id || `${msg.role}_${msg.content}`;
+ return !session.processedMessageIds.has(msgId);
+ });
+ }
+ /**
+ * Mark messages as processed
+ */
+ markMessagesAsProcessed(sessionId, messages) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ for (const msg of messages) {
+ const msgId = msg.id || `${msg.role}_${msg.content}`;
+ session.processedMessageIds.add(msgId);
+ }
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Get state value from session
+ */
+ getStateValue(sessionId, key) {
+ const session = this.sessions.get(sessionId);
+ return session == null ? void 0 : session.state[key];
+ }
+ /**
+ * Set state value in session
+ */
+ setStateValue(sessionId, key, value) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.state[key] = value;
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Remove state keys from session
+ */
+ removeStateKeys(sessionId, keys) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ for (const key of keys) {
+ delete session.state[key];
+ }
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Clear all state for a session
+ */
+ clearSessionState(sessionId) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.state = {};
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Set Claude SDK client for a session
+ */
+ setClient(sessionId, client) {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.client = client;
+ session.lastAccessedAt = Date.now();
+ }
+ }
+ /**
+ * Get Claude SDK client for a session
+ */
+ getClient(sessionId) {
+ const session = this.sessions.get(sessionId);
+ return session == null ? void 0 : session.client;
+ }
+ /**
+ * Get total number of sessions
+ */
+ getSessionCount() {
+ return this.sessions.size;
+ }
+ /**
+ * Get number of sessions for a specific user
+ */
+ getUserSessionCount(userId) {
+ let count = 0;
+ for (const session of this.sessions.values()) {
+ if (session.userId === userId) {
+ count++;
+ }
+ }
+ return count;
+ }
+ /**
+ * Get all session IDs
+ */
+ getAllSessionIds() {
+ return Array.from(this.sessions.keys());
+ }
+ /**
+ * Get all sessions for a specific user
+ */
+ getUserSessions(userId) {
+ const userSessions = [];
+ for (const session of this.sessions.values()) {
+ if (session.userId === userId) {
+ userSessions.push(session);
+ }
+ }
+ return userSessions;
+ }
+ /**
+ * Clean up stale sessions
+ */
+ cleanupStaleSessions() {
+ const now = Date.now();
+ const sessionsToDelete = [];
+ for (const [sessionId, session] of this.sessions.entries()) {
+ if (now - session.lastAccessedAt > this.sessionTimeout) {
+ sessionsToDelete.push(sessionId);
+ }
+ }
+ for (const sessionId of sessionsToDelete) {
+ this.deleteSession(sessionId);
+ }
+ if (sessionsToDelete.length > 0) {
+ console.log(`Cleaned up ${sessionsToDelete.length} stale sessions`);
+ }
+ }
+ /**
+ * Start the cleanup interval
+ */
+ startCleanupInterval() {
+ if (!this.cleanupInterval) {
+ this.cleanupInterval = setInterval(() => {
+ this.cleanupStaleSessions();
+ }, CLEANUP_INTERVAL);
+ if (typeof this.cleanupInterval.unref === "function") {
+ this.cleanupInterval.unref();
+ }
+ }
+ }
+ /**
+ * Stop the cleanup interval
+ */
+ stopCleanupInterval() {
+ if (this.cleanupInterval) {
+ clearInterval(this.cleanupInterval);
+ this.cleanupInterval = null;
+ }
+ }
+ /**
+ * Clear all sessions (useful for testing)
+ */
+ clearAllSessions() {
+ for (const sessionId of this.sessions.keys()) {
+ this.deleteSession(sessionId);
+ }
+ this.sessions.clear();
+ }
+};
+_SessionManager.instance = null;
+var SessionManager = _SessionManager;
+
+// src/event-translator.ts
+import {
+ EventType
+} from "@ag-ui/client";
+
+// src/types.ts
+function isAssistantMessage(message) {
+ return message.type === "assistant";
+}
+function isResultMessage(message) {
+ return message.type === "result";
+}
+function isTextBlock(block) {
+ return block.type === "text";
+}
+function isToolUseBlock(block) {
+ return block.type === "tool_use";
+}
+function isToolResultBlock(block) {
+ return block.type === "tool_result";
+}
+function isThinkingBlock(block) {
+ return block.type === "thinking";
+}
+function hasContentProperty(message) {
+ if (message.type === "assistant") {
+ return "message" in message && message.message !== null && typeof message.message === "object" && "content" in message.message && Array.isArray(message.message.content);
+ }
+ return "content" in message && Array.isArray(message.content);
+}
+
+// src/event-translator.ts
+var EventTranslator = class {
+ constructor(runId, threadId) {
+ this.messageIdCounter = 0;
+ this.currentMessageId = null;
+ this.runId = runId;
+ this.threadId = threadId;
+ }
+ /**
+ * Translate a Claude SDK message to AG-UI events
+ * NOTE: Does not emit RUN_STARTED, RUN_FINISHED, or STEP events - those are handled by ClaudeAgent
+ */
+ translateMessage(message) {
+ const events = [];
+ if (hasContentProperty(message)) {
+ events.push(...this.translateAssistantMessage(message));
+ }
+ return events;
+ }
+ /**
+ * Translate an AssistantMessage with content blocks
+ */
+ translateAssistantMessage(message) {
+ var _a;
+ const events = [];
+ const content = ((_a = message.message) == null ? void 0 : _a.content) || [];
+ for (const block of content) {
+ if (isTextBlock(block)) {
+ events.push(...this.translateTextBlock(block));
+ } else if (isToolUseBlock(block)) {
+ events.push(...this.translateToolUseBlock(block));
+ } else if (isToolResultBlock(block)) {
+ events.push(...this.translateToolResultBlock(block));
+ }
+ }
+ return events;
+ }
+ /**
+ * Translate a TextBlock to text message events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ translateTextBlock(block) {
+ const events = [];
+ const messageId = this.generateMessageId();
+ events.push({
+ type: EventType.TEXT_MESSAGE_START,
+ messageId,
+ role: "assistant"
+ });
+ const text = block.text;
+ if (text.length > 0) {
+ events.push({
+ type: EventType.TEXT_MESSAGE_CONTENT,
+ messageId,
+ delta: text
+ });
+ }
+ events.push({
+ type: EventType.TEXT_MESSAGE_END,
+ messageId
+ });
+ return events;
+ }
+ /**
+ * Translate a ToolUseBlock to tool call events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ translateToolUseBlock(block) {
+ const events = [];
+ const toolCallId = block.id;
+ events.push({
+ type: EventType.TOOL_CALL_START,
+ toolCallId,
+ toolCallName: block.name
+ });
+ const argsJson = JSON.stringify(block.input);
+ if (argsJson.length > 0) {
+ events.push({
+ type: EventType.TOOL_CALL_ARGS,
+ toolCallId,
+ delta: argsJson
+ });
+ }
+ events.push({
+ type: EventType.TOOL_CALL_END,
+ toolCallId
+ });
+ return events;
+ }
+ /**
+ * Translate a ToolResultBlock to tool call result event
+ */
+ translateToolResultBlock(block) {
+ const events = [];
+ let resultContent;
+ if (typeof block.content === "string") {
+ resultContent = block.content;
+ } else if (Array.isArray(block.content)) {
+ resultContent = block.content.map((item) => {
+ if (item.type === "text") {
+ return item.text || "";
+ }
+ return JSON.stringify(item);
+ }).join("\n");
+ } else {
+ resultContent = JSON.stringify(block.content);
+ }
+ const messageId = this.generateMessageId();
+ events.push(__spreadValues({
+ type: EventType.TOOL_CALL_RESULT,
+ toolCallId: block.tool_use_id,
+ messageId,
+ content: resultContent
+ }, block.is_error && { role: "tool" }));
+ return events;
+ }
+ /**
+ * Generate a unique message ID
+ */
+ generateMessageId() {
+ this.messageIdCounter++;
+ return `msg_${this.runId}_${this.messageIdCounter}`;
+ }
+ /**
+ * Reset the translator state for a new execution
+ */
+ reset() {
+ this.messageIdCounter = 0;
+ this.currentMessageId = null;
+ }
+ /**
+ * Get current message ID
+ */
+ getCurrentMessageId() {
+ return this.currentMessageId;
+ }
+ /**
+ * Set current message ID
+ */
+ setCurrentMessageId(messageId) {
+ this.currentMessageId = messageId;
+ }
+};
+
+// src/tool-adapter.ts
+import { z } from "zod";
+var ToolAdapter = class {
+ /**
+ * Convert AG-UI tools to Claude SDK MCP tool definitions
+ */
+ static convertAgUiToolsToSdk(tools) {
+ return tools.map((tool) => this.convertSingleTool(tool));
+ }
+ /**
+ * Convert a single AG-UI tool to Claude SDK format
+ */
+ static convertSingleTool(tool) {
+ const zodSchema = this.convertJsonSchemaToZod(tool.parameters || {});
+ return {
+ name: tool.name,
+ description: tool.description || "",
+ inputSchema: zodSchema,
+ handler: async (args) => {
+ if (tool.client) {
+ return {
+ content: [
+ {
+ type: "text",
+ text: JSON.stringify({
+ toolName: tool.name,
+ args,
+ isClientTool: true,
+ isLongRunning: true
+ })
+ }
+ ]
+ };
+ }
+ if (tool.handler) {
+ try {
+ const result = await tool.handler(args);
+ return {
+ content: [
+ {
+ type: "text",
+ text: typeof result === "string" ? result : JSON.stringify(result)
+ }
+ ]
+ };
+ } catch (error) {
+ return {
+ content: [
+ {
+ type: "text",
+ text: error.message || "Tool execution failed"
+ }
+ ],
+ isError: true
+ };
+ }
+ }
+ return {
+ content: [
+ {
+ type: "text",
+ text: "Tool executed (no handler)"
+ }
+ ]
+ };
+ }
+ };
+ }
+ /**
+ * Convert JSON Schema to Zod schema
+ */
+ static convertJsonSchemaToZod(jsonSchema) {
+ if (!jsonSchema || typeof jsonSchema !== "object") {
+ return z.object({});
+ }
+ const properties = jsonSchema.properties || {};
+ const required = jsonSchema.required || [];
+ const zodShape = {};
+ for (const [key, prop] of Object.entries(properties)) {
+ const propSchema = prop;
+ let zodType = this.convertJsonSchemaTypeToZod(propSchema);
+ if (!required.includes(key)) {
+ zodType = zodType.optional();
+ }
+ zodShape[key] = zodType;
+ }
+ return z.object(zodShape);
+ }
+ /**
+ * Convert a single JSON Schema type to Zod type
+ */
+ static convertJsonSchemaTypeToZod(schema) {
+ const type = schema.type;
+ switch (type) {
+ case "string":
+ if (schema.enum) {
+ return z.enum(schema.enum);
+ }
+ return z.string();
+ case "number":
+ case "integer":
+ let numType = type === "integer" ? z.number().int() : z.number();
+ if (schema.minimum !== void 0) {
+ numType = numType.min(schema.minimum);
+ }
+ if (schema.maximum !== void 0) {
+ numType = numType.max(schema.maximum);
+ }
+ return numType;
+ case "boolean":
+ return z.boolean();
+ case "array":
+ if (schema.items) {
+ const itemType = this.convertJsonSchemaTypeToZod(schema.items);
+ return z.array(itemType);
+ }
+ return z.array(z.any());
+ case "object":
+ if (schema.properties) {
+ return this.convertJsonSchemaToZod(schema);
+ }
+ return z.record(z.any());
+ case "null":
+ return z.null();
+ default:
+ return z.any();
+ }
+ }
+ /**
+ * Create an MCP server configuration for AG-UI tools
+ */
+ static async createMcpServerForTools(tools) {
+ const sdkTools = this.convertAgUiToolsToSdk(tools);
+ const { createSdkMcpServer } = await import("@anthropic-ai/claude-agent-sdk");
+ return createSdkMcpServer({
+ name: "ag_ui_tools",
+ version: "1.0.0",
+ tools: sdkTools
+ // Cast to any to avoid type incompatibility
+ });
+ }
+ /**
+ * Extract tool calls from Claude SDK response
+ */
+ static extractToolCalls(message) {
+ if (!message.content || !Array.isArray(message.content)) {
+ return [];
+ }
+ return message.content.filter((block) => block.type === "tool_use").map((block) => ({
+ id: block.id,
+ name: block.name,
+ input: block.input
+ }));
+ }
+ /**
+ * Check if a tool is a long-running client tool
+ */
+ static isClientTool(toolName, tools) {
+ const tool = tools.find((t) => t.name === toolName);
+ return (tool == null ? void 0 : tool.client) === true;
+ }
+ /**
+ * Check if a tool is marked as long-running
+ */
+ static isLongRunningTool(toolName, tools) {
+ const tool = tools.find((t) => t.name === toolName);
+ return (tool == null ? void 0 : tool.client) === true || (tool == null ? void 0 : tool.longRunning) === true;
+ }
+ /**
+ * Format tool names for Claude SDK (with MCP server prefix)
+ */
+ static formatToolNameForSdk(toolName, serverName = "ag_ui_tools") {
+ return `mcp__${serverName}__${toolName}`;
+ }
+ /**
+ * Parse tool name from SDK format (remove MCP server prefix)
+ */
+ static parseToolNameFromSdk(sdkToolName) {
+ const parts = sdkToolName.split("__");
+ if (parts.length >= 3 && parts[0] === "mcp") {
+ return parts.slice(2).join("__");
+ }
+ return sdkToolName;
+ }
+ /**
+ * Get allowed tools list for SDK options
+ */
+ static getAllowedToolsList(tools, serverName = "ag_ui_tools") {
+ return tools.map((tool) => this.formatToolNameForSdk(tool.name, serverName));
+ }
+};
+
+// src/execution-state.ts
+var ExecutionState = class {
+ constructor(id, sessionId) {
+ this.id = id;
+ this.sessionId = sessionId;
+ this._isRunning = true;
+ this._startTime = Date.now();
+ this._events = [];
+ this._abortController = new AbortController();
+ }
+ /**
+ * Check if execution is running
+ */
+ get isRunning() {
+ return this._isRunning;
+ }
+ /**
+ * Get start time
+ */
+ get startTime() {
+ return this._startTime;
+ }
+ /**
+ * Get end time
+ */
+ get endTime() {
+ return this._endTime;
+ }
+ /**
+ * Get duration in milliseconds
+ */
+ get duration() {
+ const end = this._endTime || Date.now();
+ return end - this._startTime;
+ }
+ /**
+ * Get all collected events
+ */
+ get events() {
+ return [...this._events];
+ }
+ /**
+ * Get error if any
+ */
+ get error() {
+ return this._error;
+ }
+ /**
+ * Get abort signal
+ */
+ get signal() {
+ return this._abortController.signal;
+ }
+ /**
+ * Add an event to the execution state
+ */
+ addEvent(event) {
+ this._events.push(event);
+ }
+ /**
+ * Add multiple events
+ */
+ addEvents(events) {
+ this._events.push(...events);
+ }
+ /**
+ * Mark execution as completed
+ */
+ complete() {
+ if (this._isRunning) {
+ this._isRunning = false;
+ this._endTime = Date.now();
+ }
+ }
+ /**
+ * Mark execution as failed
+ */
+ fail(error) {
+ if (this._isRunning) {
+ this._isRunning = false;
+ this._endTime = Date.now();
+ this._error = error;
+ }
+ }
+ /**
+ * Abort the execution
+ */
+ abort() {
+ if (this._isRunning) {
+ this._abortController.abort();
+ this._isRunning = false;
+ this._endTime = Date.now();
+ }
+ }
+ /**
+ * Get execution statistics
+ */
+ getStats() {
+ return {
+ duration: this.duration,
+ eventCount: this._events.length,
+ isRunning: this._isRunning,
+ hasError: !!this._error
+ };
+ }
+ /**
+ * Clear events (useful for memory management)
+ */
+ clearEvents() {
+ this._events = [];
+ }
+ /**
+ * Get the last N events
+ */
+ getLastEvents(count) {
+ return this._events.slice(-count);
+ }
+ /**
+ * Check if execution has been aborted
+ */
+ isAborted() {
+ return this._abortController.signal.aborted;
+ }
+};
+var ExecutionStateManager = class {
+ constructor(maxExecutions = 100) {
+ this.executions = /* @__PURE__ */ new Map();
+ this.maxExecutions = maxExecutions;
+ }
+ /**
+ * Create a new execution state
+ */
+ createExecution(id, sessionId) {
+ const execution = new ExecutionState(id, sessionId);
+ this.executions.set(id, execution);
+ if (this.executions.size > this.maxExecutions) {
+ this.cleanupOldExecutions();
+ }
+ return execution;
+ }
+ /**
+ * Get an execution state by ID
+ */
+ getExecution(id) {
+ return this.executions.get(id);
+ }
+ /**
+ * Check if an execution exists
+ */
+ hasExecution(id) {
+ return this.executions.has(id);
+ }
+ /**
+ * Delete an execution state
+ */
+ deleteExecution(id) {
+ return this.executions.delete(id);
+ }
+ /**
+ * Get all executions for a session
+ */
+ getSessionExecutions(sessionId) {
+ const executions = [];
+ for (const execution of this.executions.values()) {
+ if (execution.sessionId === sessionId) {
+ executions.push(execution);
+ }
+ }
+ return executions;
+ }
+ /**
+ * Get running executions
+ */
+ getRunningExecutions() {
+ const running = [];
+ for (const execution of this.executions.values()) {
+ if (execution.isRunning) {
+ running.push(execution);
+ }
+ }
+ return running;
+ }
+ /**
+ * Get completed executions
+ */
+ getCompletedExecutions() {
+ const completed = [];
+ for (const execution of this.executions.values()) {
+ if (!execution.isRunning) {
+ completed.push(execution);
+ }
+ }
+ return completed;
+ }
+ /**
+ * Abort all running executions for a session
+ */
+ abortSessionExecutions(sessionId) {
+ const sessionExecutions = this.getSessionExecutions(sessionId);
+ for (const execution of sessionExecutions) {
+ if (execution.isRunning) {
+ execution.abort();
+ }
+ }
+ }
+ /**
+ * Clean up old completed executions
+ */
+ cleanupOldExecutions() {
+ const completed = this.getCompletedExecutions();
+ completed.sort((a, b) => {
+ const aTime = a.endTime || a.startTime;
+ const bTime = b.endTime || b.startTime;
+ return aTime - bTime;
+ });
+ const toRemove = Math.max(0, this.executions.size - this.maxExecutions);
+ for (let i = 0; i < toRemove && i < completed.length; i++) {
+ this.executions.delete(completed[i].id);
+ }
+ }
+ /**
+ * Clear all executions
+ */
+ clearAll() {
+ this.executions.clear();
+ }
+ /**
+ * Get total execution count
+ */
+ getExecutionCount() {
+ return this.executions.size;
+ }
+ /**
+ * Get execution statistics
+ */
+ getStats() {
+ let running = 0;
+ let completed = 0;
+ let failed = 0;
+ for (const execution of this.executions.values()) {
+ if (execution.isRunning) {
+ running++;
+ } else if (execution.error) {
+ failed++;
+ } else {
+ completed++;
+ }
+ }
+ return {
+ total: this.executions.size,
+ running,
+ completed,
+ failed
+ };
+ }
+};
+
+// src/utils/converters.ts
+function convertAgUiMessagesToPrompt(messages) {
+ for (let i = messages.length - 1; i >= 0; i--) {
+ const msg = messages[i];
+ if (msg.role === "user") {
+ return extractMessageContent(msg);
+ }
+ }
+ return "Hello";
+}
+function extractMessageContent(message) {
+ if (typeof message.content === "string") {
+ return message.content;
+ }
+ if (Array.isArray(message.content)) {
+ return message.content.map((block) => {
+ if (typeof block === "string") {
+ return block;
+ }
+ if (block.type === "text") {
+ return block.text || "";
+ }
+ return "";
+ }).filter(Boolean).join("\n");
+ }
+ return String(message.content);
+}
+function convertAgUiMessageToClaude(message) {
+ const role = message.role;
+ const content = extractMessageContent(message);
+ return {
+ role,
+ content
+ };
+}
+function convertAgUiMessagesToClaude(messages) {
+ return messages.map(convertAgUiMessageToClaude);
+}
+function hasToolResults(messages) {
+ return messages.some((msg) => {
+ if (typeof msg.content === "string") {
+ return false;
+ }
+ if (Array.isArray(msg.content)) {
+ return msg.content.some((block) => {
+ return typeof block === "object" && block.type === "tool_result";
+ });
+ }
+ return false;
+ });
+}
+function extractToolResults(messages) {
+ const results = [];
+ for (const msg of messages) {
+ if (typeof msg.content === "string") {
+ continue;
+ }
+ if (Array.isArray(msg.content)) {
+ for (const block of msg.content) {
+ if (typeof block === "object" && block.type === "tool_result") {
+ results.push({
+ toolCallId: block.toolCallId || block.tool_use_id || "",
+ result: block.result || block.content || ""
+ });
+ }
+ }
+ }
+ }
+ return results;
+}
+function generateRunId() {
+ return `run_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
+}
+function generateMessageId(prefix = "msg") {
+ return `${prefix}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
+}
+function safeJsonParse(json, defaultValue = null) {
+ try {
+ return JSON.parse(json);
+ } catch (e) {
+ return defaultValue;
+ }
+}
+function safeJsonStringify(obj, defaultValue = "{}") {
+ try {
+ return JSON.stringify(obj);
+ } catch (e) {
+ return defaultValue;
+ }
+}
+function isToolResultSubmission(messages) {
+ if (messages.length === 0) {
+ return false;
+ }
+ const lastMessage = messages[messages.length - 1];
+ return hasToolResults([lastMessage]);
+}
+function formatErrorMessage(error) {
+ if (error instanceof Error) {
+ return error.message;
+ }
+ if (typeof error === "string") {
+ return error;
+ }
+ return "An unknown error occurred";
+}
+function truncateText(text, maxLength = 1e3) {
+ if (text.length <= maxLength) {
+ return text;
+ }
+ return text.slice(0, maxLength) + "...";
+}
+function mergeTextBlocks(blocks) {
+ return blocks.filter((block) => block.type === "text" && block.text).map((block) => block.text).join("");
+}
+
+// src/agent.ts
+var ClaudeAgent = class extends AbstractAgent {
+ constructor(config) {
+ super(config);
+ this.apiKey = config.apiKey;
+ this.baseUrl = config.baseUrl;
+ this.sessionTimeout = config.sessionTimeout || 30 * 60 * 1e3;
+ this.enablePersistentSessions = config.enablePersistentSessions !== false;
+ this.permissionMode = this.mapPermissionMode(config.permissionMode || "bypassPermissions");
+ this.stderr = config.stderr;
+ this.verbose = config.verbose;
+ this.sessionManager = SessionManager.getInstance(this.sessionTimeout);
+ this.executionStateManager = new ExecutionStateManager();
+ }
+ /**
+ * Map legacy permission modes to new SDK values for backward compatibility
+ */
+ mapPermissionMode(mode) {
+ const modeMap = {
+ "ask": "default",
+ "auto": "bypassPermissions",
+ "none": "bypassPermissions",
+ "default": "default",
+ "acceptEdits": "acceptEdits",
+ "bypassPermissions": "bypassPermissions",
+ "plan": "plan"
+ };
+ return modeMap[mode || "bypassPermissions"] || "bypassPermissions";
+ }
+ /**
+ * Run the agent with the given input
+ */
+ run(input) {
+ return new Observable((subscriber) => {
+ this.executeAgent(input, subscriber).catch((error) => {
+ subscriber.error(error);
+ });
+ });
+ }
+ /**
+ * Execute the agent asynchronously
+ */
+ async executeAgent(input, subscriber) {
+ const runId = generateRunId();
+ const sessionId = input.threadId || `session_${Date.now()}`;
+ const execution = this.executionStateManager.createExecution(runId, sessionId);
+ try {
+ const runStartedEvent = {
+ type: EventType2.RUN_STARTED,
+ threadId: sessionId,
+ runId
+ };
+ subscriber.next(runStartedEvent);
+ execution.addEvent(runStartedEvent);
+ const session = this.sessionManager.getSession(sessionId, "default");
+ const unseenMessages = this.sessionManager.getUnseenMessages(
+ sessionId,
+ input.messages || []
+ );
+ const isToolResult = isToolResultSubmission(input.messages || []);
+ const tools = input.tools || [];
+ const options = await this.prepareClaudeOptions(tools);
+ const prompt = convertAgUiMessagesToPrompt(unseenMessages);
+ const stepStartedEvent = {
+ type: EventType2.STEP_STARTED,
+ stepName: `step_${runId}_1`
+ };
+ subscriber.next(stepStartedEvent);
+ execution.addEvent(stepStartedEvent);
+ await this.callClaudeSDK(
+ prompt,
+ options,
+ session,
+ runId,
+ sessionId,
+ subscriber,
+ execution
+ );
+ this.sessionManager.markMessagesAsProcessed(sessionId, unseenMessages);
+ const stepFinishedEvent = {
+ type: EventType2.STEP_FINISHED,
+ stepName: `step_${runId}_1`
+ };
+ subscriber.next(stepFinishedEvent);
+ execution.addEvent(stepFinishedEvent);
+ const runFinishedEvent = {
+ type: EventType2.RUN_FINISHED,
+ threadId: sessionId,
+ runId
+ };
+ subscriber.next(runFinishedEvent);
+ execution.addEvent(runFinishedEvent);
+ execution.complete();
+ subscriber.complete();
+ } catch (error) {
+ const runErrorEvent = {
+ type: EventType2.RUN_ERROR,
+ message: formatErrorMessage(error)
+ };
+ subscriber.next(runErrorEvent);
+ execution.addEvent(runErrorEvent);
+ execution.fail(error);
+ subscriber.complete();
+ }
+ }
+ /**
+ * Prepare Claude SDK options
+ * SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+ * But baseUrl needs to be explicitly passed for third-party APIs
+ */
+ async prepareClaudeOptions(tools) {
+ const baseUrl = this.baseUrl || process.env.ANTHROPIC_BASE_URL;
+ const apiKey = this.apiKey || process.env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_API_KEY;
+ console.log("[Claude Agent] Preparing SDK options:", {
+ hasApiKey: !!apiKey,
+ hasBaseUrl: !!baseUrl,
+ baseUrl: baseUrl || "not set",
+ permissionMode: this.permissionMode,
+ hasStderr: !!this.stderr,
+ verbose: this.verbose
+ });
+ const options = __spreadProps(__spreadValues(__spreadValues({
+ permissionMode: this.permissionMode
+ }, this.stderr && { stderr: this.stderr }), this.verbose !== void 0 && { verbose: this.verbose }), {
+ env: process.env
+ });
+ if (this.stderr) {
+ console.log("[Claude Agent] \u2713 stderr callback is configured for error logging");
+ } else {
+ console.warn("[Claude Agent] \u26A0\uFE0F stderr callback not configured - CLI errors may not be visible");
+ }
+ if (tools && tools.length > 0) {
+ const mcpServer = await ToolAdapter.createMcpServerForTools(tools);
+ options.mcpServers = {
+ ag_ui_tools: mcpServer
+ };
+ options.allowedTools = ToolAdapter.getAllowedToolsList(tools);
+ }
+ return options;
+ }
+ /**
+ * Call Claude SDK
+ * Note: Currently only stateless mode is supported via query() function
+ */
+ async callClaudeSDK(prompt, options, session, runId, sessionId, subscriber, execution) {
+ const eventTranslator = new EventTranslator(runId, sessionId);
+ await this.callClaudeSDKStateless(
+ prompt,
+ options,
+ eventTranslator,
+ subscriber,
+ execution
+ );
+ }
+ /**
+ * Call Claude SDK in persistent session mode
+ * Note: The current SDK only supports stateless mode via query() function
+ * This method falls back to stateless mode
+ */
+ async callClaudeSDKPersistent(prompt, options, session, eventTranslator, subscriber, execution) {
+ await this.callClaudeSDKStateless(prompt, options, eventTranslator, subscriber, execution);
+ }
+ /**
+ * Call Claude SDK in stateless mode
+ */
+ async callClaudeSDKStateless(prompt, options, eventTranslator, subscriber, execution) {
+ try {
+ console.log("[Claude Agent] Environment check:");
+ console.log(" ANTHROPIC_API_KEY:", process.env.ANTHROPIC_API_KEY ? "SET" : "NOT SET");
+ console.log(" ANTHROPIC_AUTH_TOKEN:", process.env.ANTHROPIC_AUTH_TOKEN ? "SET" : "NOT SET");
+ console.log(" ANTHROPIC_BASE_URL:", process.env.ANTHROPIC_BASE_URL || "NOT SET (using default)");
+ console.log("[Claude Agent] Options passed to SDK:", {
+ hasApiKey: !!options.apiKey,
+ hasBaseUrl: !!options.baseUrl,
+ permissionMode: options.permissionMode,
+ hasMcpServers: !!options.mcpServers
+ });
+ const { query } = await this.importClaudeSDK();
+ console.log("[Claude Agent] Calling SDK query()...");
+ const queryResult = query({ prompt, options });
+ try {
+ for (var iter = __forAwait(queryResult), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
+ const message = temp.value;
+ console.log("[Claude Agent] \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501");
+ console.log("[Claude Agent] Received message type:", (message == null ? void 0 : message.type) || "unknown");
+ console.log("[Claude Agent] Full message:", JSON.stringify(message, null, 2));
+ if (execution.isAborted()) {
+ console.log("[Claude Agent] Execution aborted by user");
+ break;
+ }
+ const events = eventTranslator.translateMessage(message);
+ console.log("[Claude Agent] Translated events count:", events.length);
+ for (const event of events) {
+ console.log("[Claude Agent] Sending event:", JSON.stringify(event, null, 2));
+ subscriber.next(event);
+ execution.addEvent(event);
+ }
+ console.log("[Claude Agent] \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501");
+ }
+ } catch (temp) {
+ error = [temp];
+ } finally {
+ try {
+ more && (temp = iter.return) && await temp.call(iter);
+ } finally {
+ if (error)
+ throw error[0];
+ }
+ }
+ console.log("[Claude Agent] Query completed successfully");
+ } catch (error2) {
+ console.error("[Claude Agent] ERROR Details:");
+ console.error(" Message:", error2.message);
+ console.error(" Stack:", error2.stack);
+ console.error(" Error object:", JSON.stringify(error2, Object.getOwnPropertyNames(error2), 2));
+ if (error2.message && error2.message.includes("exited with code")) {
+ throw new Error(
+ `Claude Code process failed. Please ensure:
+1. Claude CLI is installed and accessible (run: claude --version)
+2. ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set correctly in environment variables
+3. You have proper permissions to run Claude Code
+4. If using ANTHROPIC_BASE_URL, ensure it supports Claude Code protocol
+
+Original error: ${error2.message}
+Error stack: ${error2.stack || "No stack trace"}`
+ );
+ }
+ if (error2.message && (error2.message.includes("API key") || error2.message.includes("auth"))) {
+ throw new Error(
+ `API key error: ${error2.message}
+Please ensure ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set in environment variables.`
+ );
+ }
+ throw error2;
+ }
+ }
+ /**
+ * Dynamically import Claude SDK
+ */
+ async importClaudeSDK() {
+ try {
+ return await import("@anthropic-ai/claude-agent-sdk");
+ } catch (error) {
+ throw new Error(
+ "Claude Agent SDK not found. Please install it: npm install @anthropic-ai/claude-agent-sdk"
+ );
+ }
+ }
+ /**
+ * Abort a running execution
+ */
+ abortExecution(runId) {
+ const execution = this.executionStateManager.getExecution(runId);
+ if (execution) {
+ execution.abort();
+ }
+ }
+ /**
+ * Get execution state
+ */
+ getExecutionState(runId) {
+ return this.executionStateManager.getExecution(runId);
+ }
+ /**
+ * Get session manager (for testing)
+ */
+ getSessionManager() {
+ return this.sessionManager;
+ }
+ /**
+ * Get execution state manager (for testing)
+ */
+ getExecutionStateManager() {
+ return this.executionStateManager;
+ }
+ /**
+ * Cleanup resources
+ */
+ async cleanup() {
+ const runningExecutions = this.executionStateManager.getRunningExecutions();
+ for (const execution of runningExecutions) {
+ execution.abort();
+ }
+ this.sessionManager.clearAllSessions();
+ this.executionStateManager.clearAll();
+ }
+};
+export {
+ ClaudeAgent,
+ EventTranslator,
+ ExecutionState,
+ ExecutionStateManager,
+ SessionManager,
+ ToolAdapter,
+ convertAgUiMessageToClaude,
+ convertAgUiMessagesToClaude,
+ convertAgUiMessagesToPrompt,
+ extractMessageContent,
+ extractToolResults,
+ formatErrorMessage,
+ generateMessageId,
+ generateRunId,
+ hasContentProperty,
+ hasToolResults,
+ isAssistantMessage,
+ isResultMessage,
+ isTextBlock,
+ isThinkingBlock,
+ isToolResultBlock,
+ isToolResultSubmission,
+ isToolUseBlock,
+ mergeTextBlocks,
+ safeJsonParse,
+ safeJsonStringify,
+ truncateText
+};
+//# sourceMappingURL=index.mjs.map
\ No newline at end of file
diff --git a/integrations/claude-agent-sdk/typescript/dist/index.mjs.map b/integrations/claude-agent-sdk/typescript/dist/index.mjs.map
new file mode 100644
index 000000000..6e3a243e3
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/dist/index.mjs.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../src/agent.ts","../src/session-manager.ts","../src/event-translator.ts","../src/types.ts","../src/tool-adapter.ts","../src/execution-state.ts","../src/utils/converters.ts"],"sourcesContent":["/**\n * Claude Agent: Main agent class that integrates Claude SDK with AG-UI Protocol\n */\n\nimport { Observable, Subscriber } from 'rxjs';\nimport {\n AbstractAgent,\n RunAgentInput,\n EventType,\n RunStartedEvent,\n RunFinishedEvent,\n RunErrorEvent,\n StepStartedEvent,\n StepFinishedEvent,\n} from '@ag-ui/client';\nimport type {\n ClaudeAgentConfig,\n ProcessedEvents,\n ClaudeSDKClient,\n Options,\n SDKMessage,\n} from './types';\nimport { SessionManager } from './session-manager';\nimport { EventTranslator } from './event-translator';\nimport { ToolAdapter } from './tool-adapter';\nimport { ExecutionState, ExecutionStateManager } from './execution-state';\nimport {\n generateRunId,\n convertAgUiMessagesToPrompt,\n isToolResultSubmission,\n formatErrorMessage,\n} from './utils/converters';\n\n/**\n * ClaudeAgent integrates Claude Agent SDK with AG-UI Protocol\n */\nexport class ClaudeAgent extends AbstractAgent {\n private sessionManager: SessionManager;\n private executionStateManager: ExecutionStateManager;\n private apiKey?: string;\n private baseUrl?: string;\n private sessionTimeout: number;\n private enablePersistentSessions: boolean;\n private permissionMode: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan';\n private stderr?: (data: string) => void;\n private verbose?: boolean;\n\n constructor(config: ClaudeAgentConfig) {\n super(config);\n // SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment\n // Only set these if explicitly provided in config (optional)\n this.apiKey = config.apiKey;\n this.baseUrl = config.baseUrl;\n this.sessionTimeout = config.sessionTimeout || 30 * 60 * 1000; // 30 minutes\n this.enablePersistentSessions = config.enablePersistentSessions !== false;\n // Map legacy permission modes to new SDK values for backward compatibility\n this.permissionMode = this.mapPermissionMode(config.permissionMode || 'bypassPermissions');\n this.stderr = config.stderr;\n this.verbose = config.verbose;\n this.sessionManager = SessionManager.getInstance(this.sessionTimeout);\n this.executionStateManager = new ExecutionStateManager();\n }\n\n /**\n * Map legacy permission modes to new SDK values for backward compatibility\n */\n private mapPermissionMode(mode?: string): 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' {\n const modeMap: Record = {\n 'ask': 'default',\n 'auto': 'bypassPermissions',\n 'none': 'bypassPermissions',\n 'default': 'default',\n 'acceptEdits': 'acceptEdits',\n 'bypassPermissions': 'bypassPermissions',\n 'plan': 'plan',\n };\n return modeMap[mode || 'bypassPermissions'] || 'bypassPermissions';\n }\n\n /**\n * Run the agent with the given input\n */\n run(input: RunAgentInput): Observable {\n return new Observable((subscriber) => {\n this.executeAgent(input, subscriber).catch((error) => {\n subscriber.error(error);\n });\n });\n }\n\n /**\n * Execute the agent asynchronously\n */\n private async executeAgent(\n input: RunAgentInput,\n subscriber: Subscriber\n ): Promise {\n const runId = generateRunId();\n const sessionId = input.threadId || `session_${Date.now()}`;\n\n // Create execution state\n const execution = this.executionStateManager.createExecution(runId, sessionId);\n\n try {\n // Emit run started event\n const runStartedEvent: RunStartedEvent = {\n type: EventType.RUN_STARTED,\n threadId: sessionId,\n runId,\n };\n subscriber.next(runStartedEvent);\n execution.addEvent(runStartedEvent);\n\n // Get or create session\n const session = this.sessionManager.getSession(sessionId, 'default');\n\n // Get unseen messages\n const unseenMessages = this.sessionManager.getUnseenMessages(\n sessionId,\n input.messages || []\n );\n\n // Check if this is a tool result submission\n const isToolResult = isToolResultSubmission(input.messages || []);\n\n // Prepare tools\n const tools = input.tools || [];\n \n // Prepare options for Claude SDK\n const options = await this.prepareClaudeOptions(tools);\n\n // Extract prompt from messages\n const prompt = convertAgUiMessagesToPrompt(unseenMessages);\n\n // Emit step started event\n const stepStartedEvent: StepStartedEvent = {\n type: EventType.STEP_STARTED,\n stepName: `step_${runId}_1`,\n };\n subscriber.next(stepStartedEvent);\n execution.addEvent(stepStartedEvent);\n\n // Call Claude SDK\n await this.callClaudeSDK(\n prompt,\n options,\n session,\n runId,\n sessionId,\n subscriber,\n execution\n );\n\n // Mark messages as processed\n this.sessionManager.markMessagesAsProcessed(sessionId, unseenMessages);\n\n // Emit step finished event\n const stepFinishedEvent: StepFinishedEvent = {\n type: EventType.STEP_FINISHED,\n stepName: `step_${runId}_1`,\n };\n subscriber.next(stepFinishedEvent);\n execution.addEvent(stepFinishedEvent);\n\n // Emit run finished event\n const runFinishedEvent: RunFinishedEvent = {\n type: EventType.RUN_FINISHED,\n threadId: sessionId,\n runId,\n };\n subscriber.next(runFinishedEvent);\n execution.addEvent(runFinishedEvent);\n\n // Complete execution\n execution.complete();\n subscriber.complete();\n } catch (error: any) {\n // Emit run error event\n const runErrorEvent: RunErrorEvent = {\n type: EventType.RUN_ERROR,\n message: formatErrorMessage(error),\n };\n subscriber.next(runErrorEvent);\n execution.addEvent(runErrorEvent);\n\n // Mark execution as failed\n execution.fail(error);\n\n // Complete the observable\n subscriber.complete();\n }\n }\n\n /**\n * Prepare Claude SDK options\n * SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment\n * But baseUrl needs to be explicitly passed for third-party APIs\n */\n private async prepareClaudeOptions(tools: any[]): Promise {\n // Get baseUrl from config or environment\n const baseUrl = this.baseUrl || process.env.ANTHROPIC_BASE_URL;\n const apiKey = this.apiKey || process.env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_API_KEY;\n \n // Debug logging\n console.log('[Claude Agent] Preparing SDK options:', {\n hasApiKey: !!apiKey,\n hasBaseUrl: !!baseUrl,\n baseUrl: baseUrl || 'not set',\n permissionMode: this.permissionMode,\n hasStderr: !!this.stderr,\n verbose: this.verbose,\n });\n \n const options: Options = {\n permissionMode: this.permissionMode,\n // Add stderr callback for debugging - CRITICAL for error logging\n ...(this.stderr && { stderr: this.stderr }),\n // Add verbose flag for detailed logging\n ...(this.verbose !== undefined && { verbose: this.verbose }),\n env: process.env\n };\n \n // Verify stderr callback is set\n if (this.stderr) {\n console.log('[Claude Agent] ✓ stderr callback is configured for error logging');\n } else {\n console.warn('[Claude Agent] ⚠️ stderr callback not configured - CLI errors may not be visible');\n }\n\n // Add tools if provided\n if (tools && tools.length > 0) {\n const mcpServer = await ToolAdapter.createMcpServerForTools(tools);\n options.mcpServers = {\n ag_ui_tools: mcpServer,\n };\n\n // Set allowed tools\n options.allowedTools = ToolAdapter.getAllowedToolsList(tools);\n }\n\n return options;\n }\n\n /**\n * Call Claude SDK\n * Note: Currently only stateless mode is supported via query() function\n */\n private async callClaudeSDK(\n prompt: string,\n options: Options,\n session: any,\n runId: string,\n sessionId: string,\n subscriber: Subscriber,\n execution: ExecutionState\n ): Promise {\n const eventTranslator = new EventTranslator(runId, sessionId);\n\n // The current @anthropic-ai/claude-agent-sdk only supports stateless mode\n // via the query() function. We use stateless mode for both cases.\n await this.callClaudeSDKStateless(\n prompt,\n options,\n eventTranslator,\n subscriber,\n execution\n );\n }\n\n /**\n * Call Claude SDK in persistent session mode\n * Note: The current SDK only supports stateless mode via query() function\n * This method falls back to stateless mode\n */\n private async callClaudeSDKPersistent(\n prompt: string,\n options: Options,\n session: any,\n eventTranslator: EventTranslator,\n subscriber: Subscriber,\n execution: ExecutionState\n ): Promise {\n // The current @anthropic-ai/claude-agent-sdk only supports stateless mode\n // via the query() function. For persistent sessions, we use query() \n // but maintain session state in our SessionManager\n await this.callClaudeSDKStateless(prompt, options, eventTranslator, subscriber, execution);\n }\n\n /**\n * Call Claude SDK in stateless mode\n */\n private async callClaudeSDKStateless(\n prompt: string,\n options: Options,\n eventTranslator: EventTranslator,\n subscriber: Subscriber,\n execution: ExecutionState\n ): Promise {\n try {\n // Log environment variables for debugging\n console.log('[Claude Agent] Environment check:');\n console.log(' ANTHROPIC_API_KEY:', process.env.ANTHROPIC_API_KEY ? 'SET' : 'NOT SET');\n console.log(' ANTHROPIC_AUTH_TOKEN:', process.env.ANTHROPIC_AUTH_TOKEN ? 'SET' : 'NOT SET');\n console.log(' ANTHROPIC_BASE_URL:', process.env.ANTHROPIC_BASE_URL || 'NOT SET (using default)');\n console.log('[Claude Agent] Options passed to SDK:', {\n hasApiKey: !!options.apiKey,\n hasBaseUrl: !!options.baseUrl,\n permissionMode: options.permissionMode,\n hasMcpServers: !!options.mcpServers,\n });\n\n // Import Claude SDK dynamically\n const { query } = await this.importClaudeSDK();\n\n console.log('[Claude Agent] Calling SDK query()...');\n\n // Call query function\n // SDK will automatically read API key from environment variables (ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN)\n // if not provided in options.apiKey\n const queryResult = query({ prompt, options });\n\n // Process responses\n for await (const message of queryResult) {\n console.log('[Claude Agent] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\n console.log('[Claude Agent] Received message type:', message?.type || 'unknown');\n console.log('[Claude Agent] Full message:', JSON.stringify(message, null, 2));\n \n if (execution.isAborted()) {\n console.log('[Claude Agent] Execution aborted by user');\n break;\n }\n\n const events = eventTranslator.translateMessage(message);\n console.log('[Claude Agent] Translated events count:', events.length);\n for (const event of events) {\n console.log('[Claude Agent] Sending event:', JSON.stringify(event, null, 2));\n subscriber.next(event);\n execution.addEvent(event);\n }\n console.log('[Claude Agent] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');\n }\n \n console.log('[Claude Agent] Query completed successfully');\n } catch (error: any) {\n // Log detailed error information\n console.error('[Claude Agent] ERROR Details:');\n console.error(' Message:', error.message);\n console.error(' Stack:', error.stack);\n console.error(' Error object:', JSON.stringify(error, Object.getOwnPropertyNames(error), 2));\n \n // Handle Claude Code process errors\n if (error.message && error.message.includes('exited with code')) {\n throw new Error(\n `Claude Code process failed. Please ensure:\\n` +\n `1. Claude CLI is installed and accessible (run: claude --version)\\n` +\n `2. ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set correctly in environment variables\\n` +\n `3. You have proper permissions to run Claude Code\\n` +\n `4. If using ANTHROPIC_BASE_URL, ensure it supports Claude Code protocol\\n` +\n `\\nOriginal error: ${error.message}\\n` +\n `Error stack: ${error.stack || 'No stack trace'}`\n );\n }\n // Handle API key errors from SDK\n if (error.message && (error.message.includes('API key') || error.message.includes('auth'))) {\n throw new Error(\n `API key error: ${error.message}\\n` +\n `Please ensure ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set in environment variables.`\n );\n }\n throw error;\n }\n }\n\n /**\n * Dynamically import Claude SDK\n */\n private async importClaudeSDK(): Promise {\n try {\n return await import('@anthropic-ai/claude-agent-sdk');\n } catch (error) {\n throw new Error(\n 'Claude Agent SDK not found. Please install it: npm install @anthropic-ai/claude-agent-sdk'\n );\n }\n }\n\n /**\n * Abort a running execution\n */\n abortExecution(runId: string): void {\n const execution = this.executionStateManager.getExecution(runId);\n if (execution) {\n execution.abort();\n }\n }\n\n /**\n * Get execution state\n */\n getExecutionState(runId: string): ExecutionState | undefined {\n return this.executionStateManager.getExecution(runId);\n }\n\n /**\n * Get session manager (for testing)\n */\n getSessionManager(): SessionManager {\n return this.sessionManager;\n }\n\n /**\n * Get execution state manager (for testing)\n */\n getExecutionStateManager(): ExecutionStateManager {\n return this.executionStateManager;\n }\n\n /**\n * Cleanup resources\n */\n async cleanup(): Promise {\n // Abort all running executions\n const runningExecutions = this.executionStateManager.getRunningExecutions();\n for (const execution of runningExecutions) {\n execution.abort();\n }\n\n // Clear all sessions\n this.sessionManager.clearAllSessions();\n\n // Clear all executions\n this.executionStateManager.clearAll();\n }\n}\n\n","/**\n * Session manager: Manages agent sessions and state\n */\n\nimport type { Message } from '@ag-ui/client';\nimport type { Session, ClaudeSDKClient } from './types';\n\nconst DEFAULT_SESSION_TIMEOUT = 30 * 60 * 1000; // 30 minutes\nconst CLEANUP_INTERVAL = 5 * 60 * 1000; // 5 minutes\n\n/**\n * SessionManager handles session lifecycle, message tracking, and state management\n * Implements singleton pattern for centralized session control\n */\nexport class SessionManager {\n private static instance: SessionManager | null = null;\n private sessions: Map = new Map();\n private cleanupInterval: ReturnType | null = null;\n private sessionTimeout: number;\n\n private constructor(sessionTimeout: number = DEFAULT_SESSION_TIMEOUT) {\n this.sessionTimeout = sessionTimeout;\n this.startCleanupInterval();\n }\n\n /**\n * Get the singleton instance\n */\n static getInstance(sessionTimeout?: number): SessionManager {\n if (!SessionManager.instance) {\n SessionManager.instance = new SessionManager(sessionTimeout);\n }\n return SessionManager.instance;\n }\n\n /**\n * Reset the singleton instance (useful for testing)\n */\n static resetInstance(): void {\n if (SessionManager.instance) {\n SessionManager.instance.stopCleanupInterval();\n SessionManager.instance = null;\n }\n }\n\n /**\n * Get or create a session\n */\n getSession(sessionId: string, userId?: string): Session {\n let session = this.sessions.get(sessionId);\n\n if (!session) {\n session = {\n id: sessionId,\n userId,\n processedMessageIds: new Set(),\n state: {},\n createdAt: Date.now(),\n lastAccessedAt: Date.now(),\n };\n this.sessions.set(sessionId, session);\n } else {\n // Update last accessed time\n session.lastAccessedAt = Date.now();\n }\n\n return session;\n }\n\n /**\n * Check if a session exists\n */\n hasSession(sessionId: string): boolean {\n return this.sessions.has(sessionId);\n }\n\n /**\n * Delete a session\n */\n deleteSession(sessionId: string): boolean {\n const session = this.sessions.get(sessionId);\n if (session?.client) {\n // Close the Claude SDK client if it exists\n session.client.close().catch((error) => {\n console.error(`Error closing Claude SDK client for session ${sessionId}:`, error);\n });\n }\n return this.sessions.delete(sessionId);\n }\n\n /**\n * Track a processed message\n */\n trackMessage(sessionId: string, messageId: string): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.processedMessageIds.add(messageId);\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Check if a message has been processed\n */\n isMessageProcessed(sessionId: string, messageId: string): boolean {\n const session = this.sessions.get(sessionId);\n return session ? session.processedMessageIds.has(messageId) : false;\n }\n\n /**\n * Get unseen messages (messages not yet processed)\n */\n getUnseenMessages(sessionId: string, messages: Message[]): Message[] {\n const session = this.sessions.get(sessionId);\n if (!session) {\n return messages;\n }\n\n return messages.filter((msg) => {\n const msgId = msg.id || `${msg.role}_${msg.content}`;\n return !session.processedMessageIds.has(msgId);\n });\n }\n\n /**\n * Mark messages as processed\n */\n markMessagesAsProcessed(sessionId: string, messages: Message[]): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n for (const msg of messages) {\n const msgId = msg.id || `${msg.role}_${msg.content}`;\n session.processedMessageIds.add(msgId);\n }\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Get state value from session\n */\n getStateValue(sessionId: string, key: string): any {\n const session = this.sessions.get(sessionId);\n return session?.state[key];\n }\n\n /**\n * Set state value in session\n */\n setStateValue(sessionId: string, key: string, value: any): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.state[key] = value;\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Remove state keys from session\n */\n removeStateKeys(sessionId: string, keys: string[]): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n for (const key of keys) {\n delete session.state[key];\n }\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Clear all state for a session\n */\n clearSessionState(sessionId: string): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.state = {};\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Set Claude SDK client for a session\n */\n setClient(sessionId: string, client: ClaudeSDKClient): void {\n const session = this.sessions.get(sessionId);\n if (session) {\n session.client = client;\n session.lastAccessedAt = Date.now();\n }\n }\n\n /**\n * Get Claude SDK client for a session\n */\n getClient(sessionId: string): ClaudeSDKClient | undefined {\n const session = this.sessions.get(sessionId);\n return session?.client;\n }\n\n /**\n * Get total number of sessions\n */\n getSessionCount(): number {\n return this.sessions.size;\n }\n\n /**\n * Get number of sessions for a specific user\n */\n getUserSessionCount(userId: string): number {\n let count = 0;\n for (const session of this.sessions.values()) {\n if (session.userId === userId) {\n count++;\n }\n }\n return count;\n }\n\n /**\n * Get all session IDs\n */\n getAllSessionIds(): string[] {\n return Array.from(this.sessions.keys());\n }\n\n /**\n * Get all sessions for a specific user\n */\n getUserSessions(userId: string): Session[] {\n const userSessions: Session[] = [];\n for (const session of this.sessions.values()) {\n if (session.userId === userId) {\n userSessions.push(session);\n }\n }\n return userSessions;\n }\n\n /**\n * Clean up stale sessions\n */\n private cleanupStaleSessions(): void {\n const now = Date.now();\n const sessionsToDelete: string[] = [];\n\n for (const [sessionId, session] of this.sessions.entries()) {\n if (now - session.lastAccessedAt > this.sessionTimeout) {\n sessionsToDelete.push(sessionId);\n }\n }\n\n for (const sessionId of sessionsToDelete) {\n this.deleteSession(sessionId);\n }\n\n if (sessionsToDelete.length > 0) {\n console.log(`Cleaned up ${sessionsToDelete.length} stale sessions`);\n }\n }\n\n /**\n * Start the cleanup interval\n */\n private startCleanupInterval(): void {\n if (!this.cleanupInterval) {\n this.cleanupInterval = setInterval(() => {\n this.cleanupStaleSessions();\n }, CLEANUP_INTERVAL);\n\n // Don't keep the process alive just for this interval\n if (typeof (this.cleanupInterval as any).unref === 'function') {\n (this.cleanupInterval as any).unref();\n }\n }\n }\n\n /**\n * Stop the cleanup interval\n */\n private stopCleanupInterval(): void {\n if (this.cleanupInterval) {\n clearInterval(this.cleanupInterval);\n this.cleanupInterval = null;\n }\n }\n\n /**\n * Clear all sessions (useful for testing)\n */\n clearAllSessions(): void {\n for (const sessionId of this.sessions.keys()) {\n this.deleteSession(sessionId);\n }\n this.sessions.clear();\n }\n}\n\n","/**\n * Event translator: Converts Claude SDK messages to AG-UI events\n */\n\nimport {\n TextMessageStartEvent,\n TextMessageContentEvent,\n TextMessageEndEvent,\n ToolCallStartEvent,\n ToolCallArgsEvent,\n ToolCallEndEvent,\n ToolCallResultEvent,\n EventType,\n} from '@ag-ui/client';\nimport type {\n SDKMessage,\n SDKAssistantMessage,\n ContentBlock,\n TextBlock,\n ToolUseBlock,\n ToolResultBlock,\n ProcessedEvents,\n} from './types';\nimport {\n hasContentProperty,\n isTextBlock,\n isToolUseBlock,\n isToolResultBlock,\n} from './types';\n\n/**\n * EventTranslator converts Claude SDK messages to AG-UI protocol events\n * \n * NOTE: This translator only handles SDK message translation.\n * Run lifecycle events (RUN_STARTED, RUN_FINISHED, etc.) and step events\n * are handled by ClaudeAgent.\n */\nexport class EventTranslator {\n private messageIdCounter = 0;\n private currentMessageId: string | null = null;\n private runId: string;\n private threadId: string;\n\n constructor(runId: string, threadId: string) {\n this.runId = runId;\n this.threadId = threadId;\n }\n\n /**\n * Translate a Claude SDK message to AG-UI events\n * NOTE: Does not emit RUN_STARTED, RUN_FINISHED, or STEP events - those are handled by ClaudeAgent\n */\n translateMessage(message: SDKMessage): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n\n if (hasContentProperty(message)) {\n events.push(...this.translateAssistantMessage(message as SDKAssistantMessage));\n }\n // Note: ResultMessage (success/error) is ignored here\n // Run completion is handled by ClaudeAgent, not EventTranslator\n\n return events;\n }\n\n /**\n * Translate an AssistantMessage with content blocks\n */\n private translateAssistantMessage(message: SDKAssistantMessage): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n\n // Content is in message.message.content for SDKAssistantMessage\n const content = message.message?.content || [];\n \n for (const block of content) {\n if (isTextBlock(block)) {\n events.push(...this.translateTextBlock(block));\n } else if (isToolUseBlock(block)) {\n events.push(...this.translateToolUseBlock(block));\n } else if (isToolResultBlock(block)) {\n events.push(...this.translateToolResultBlock(block));\n }\n }\n\n return events;\n }\n\n /**\n * Translate a TextBlock to text message events\n * NOTE: Step events are handled by ClaudeAgent, not here\n */\n private translateTextBlock(block: TextBlock): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n const messageId = this.generateMessageId();\n\n // Start event\n events.push({\n type: EventType.TEXT_MESSAGE_START,\n messageId,\n role: 'assistant',\n });\n\n // Content event - split text into delta chunks\n const text = block.text;\n if (text.length > 0) {\n events.push({\n type: EventType.TEXT_MESSAGE_CONTENT,\n messageId,\n delta: text,\n });\n }\n\n // End event\n events.push({\n type: EventType.TEXT_MESSAGE_END,\n messageId,\n });\n\n return events;\n }\n\n /**\n * Translate a ToolUseBlock to tool call events\n * NOTE: Step events are handled by ClaudeAgent, not here\n */\n private translateToolUseBlock(block: ToolUseBlock): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n const toolCallId = block.id;\n\n // Start event\n events.push({\n type: EventType.TOOL_CALL_START,\n toolCallId,\n toolCallName: block.name,\n });\n\n // Args event - send args as JSON string\n const argsJson = JSON.stringify(block.input);\n if (argsJson.length > 0) {\n events.push({\n type: EventType.TOOL_CALL_ARGS,\n toolCallId,\n delta: argsJson,\n });\n }\n\n // End event\n events.push({\n type: EventType.TOOL_CALL_END,\n toolCallId,\n });\n\n return events;\n }\n\n /**\n * Translate a ToolResultBlock to tool call result event\n */\n private translateToolResultBlock(block: ToolResultBlock): ProcessedEvents[] {\n const events: ProcessedEvents[] = [];\n\n // Extract content as string\n let resultContent: string;\n if (typeof block.content === 'string') {\n resultContent = block.content;\n } else if (Array.isArray(block.content)) {\n // Handle array of content blocks\n resultContent = block.content\n .map((item) => {\n if (item.type === 'text') {\n return item.text || '';\n }\n return JSON.stringify(item);\n })\n .join('\\n');\n } else {\n resultContent = JSON.stringify(block.content);\n }\n\n const messageId = this.generateMessageId();\n events.push({\n type: EventType.TOOL_CALL_RESULT,\n toolCallId: block.tool_use_id,\n messageId,\n content: resultContent,\n ...(block.is_error && { role: 'tool' as const }),\n });\n\n return events;\n }\n\n /**\n * Generate a unique message ID\n */\n private generateMessageId(): string {\n this.messageIdCounter++;\n return `msg_${this.runId}_${this.messageIdCounter}`;\n }\n\n /**\n * Reset the translator state for a new execution\n */\n reset(): void {\n this.messageIdCounter = 0;\n this.currentMessageId = null;\n }\n\n /**\n * Get current message ID\n */\n getCurrentMessageId(): string | null {\n return this.currentMessageId;\n }\n\n /**\n * Set current message ID\n */\n setCurrentMessageId(messageId: string | null): void {\n this.currentMessageId = messageId;\n }\n}\n\n","/**\n * Type definitions for Claude Agent SDK integration with AG-UI Protocol\n */\n\nimport type {\n TextMessageStartEvent,\n TextMessageContentEvent,\n TextMessageEndEvent,\n ToolCallStartEvent,\n ToolCallArgsEvent,\n ToolCallEndEvent,\n ToolCallResultEvent,\n RunStartedEvent,\n RunFinishedEvent,\n RunErrorEvent,\n StepStartedEvent,\n StepFinishedEvent,\n AgentConfig,\n Tool,\n Message,\n} from '@ag-ui/client';\n\n// Re-export Claude SDK types (will be imported from the actual SDK)\n// These are placeholder interfaces based on the SDK documentation\nexport interface ClaudeSDKClient {\n query(prompt: string): Promise;\n receiveResponse(): AsyncIterableIterator;\n close(): Promise;\n}\n\nexport interface Options {\n apiKey?: string;\n baseUrl?: string;\n mcpServers?: Record;\n allowedTools?: string[];\n // Valid permission modes from Agent SDK: 'default', 'acceptEdits', 'bypassPermissions', 'plan'\n // Legacy values 'ask', 'auto', 'none' are also supported for backward compatibility\n permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';\n stderr?: (data: string) => void;\n verbose?: boolean;\n [key: string]: any;\n}\n\nexport interface Query {\n next(): Promise>;\n [Symbol.asyncIterator](): AsyncIterableIterator;\n}\n\n// SDK Message types based on documentation\nexport type SDKMessage =\n | SDKAssistantMessage\n | SDKUserMessage\n | SDKSystemMessage\n | SDKResultMessage\n | SDKPartialAssistantMessage\n | SDKCompactBoundaryMessage\n | SDKPermissionDenial;\n\nexport interface SDKAssistantMessage {\n type: 'assistant';\n message: {\n id?: string;\n content: ContentBlock[];\n [key: string]: any;\n };\n parent_tool_use_id?: string | null;\n uuid?: string;\n session_id?: string;\n}\n\nexport interface SDKUserMessage {\n type: 'user';\n content: string;\n id?: string;\n}\n\nexport interface SDKSystemMessage {\n type: 'system';\n content: string;\n}\n\nexport interface SDKResultMessage {\n type: 'result';\n subtype: 'success' | 'error';\n error?: {\n type: string;\n message: string;\n };\n}\n\nexport interface SDKPartialAssistantMessage {\n type: 'partial_assistant';\n content: ContentBlock[];\n}\n\nexport interface SDKCompactBoundaryMessage {\n type: 'compact_boundary';\n}\n\nexport interface SDKPermissionDenial {\n type: 'permission_denial';\n tool: string;\n reason: string;\n}\n\n// Content block types\nexport type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock | ThinkingBlock;\n\nexport interface TextBlock {\n type: 'text';\n text: string;\n}\n\nexport interface ToolUseBlock {\n type: 'tool_use';\n id: string;\n name: string;\n input: Record;\n}\n\nexport interface ToolResultBlock {\n type: 'tool_result';\n tool_use_id: string;\n content: string | Array<{ type: string; [key: string]: any }>;\n is_error?: boolean;\n}\n\nexport interface ThinkingBlock {\n type: 'thinking';\n thinking: string;\n}\n\n// Tool definition types\nexport interface SdkMcpToolDefinition {\n name: string;\n description: string;\n inputSchema: Schema;\n handler: (args: any, extra?: any) => Promise;\n}\n\nexport interface CallToolResult {\n content: Array<{\n type: 'text' | 'image' | 'resource';\n text?: string;\n data?: string;\n mimeType?: string;\n [key: string]: any;\n }>;\n isError?: boolean;\n}\n\nexport interface McpSdkServerConfigWithInstance {\n name: string;\n version?: string;\n tools?: Array>;\n}\n\n// AG-UI Integration types\nexport type ProcessedEvents =\n | TextMessageStartEvent\n | TextMessageContentEvent\n | TextMessageEndEvent\n | ToolCallStartEvent\n | ToolCallArgsEvent\n | ToolCallEndEvent\n | ToolCallResultEvent\n | RunStartedEvent\n | RunFinishedEvent\n | RunErrorEvent\n | StepStartedEvent\n | StepFinishedEvent;\n\n// Session management types\nexport interface Session {\n id: string;\n userId?: string;\n client?: ClaudeSDKClient;\n processedMessageIds: Set;\n state: Record;\n createdAt: number;\n lastAccessedAt: number;\n}\n\n// Agent configuration\nexport interface ClaudeAgentConfig extends AgentConfig {\n apiKey?: string;\n baseUrl?: string;\n sessionTimeout?: number;\n enablePersistentSessions?: boolean;\n // Valid permission modes from Agent SDK: 'default', 'acceptEdits', 'bypassPermissions', 'plan'\n // Legacy values 'ask', 'auto', 'none' are mapped internally for backward compatibility\n permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';\n mcpServers?: Record;\n stderr?: (data: string) => void;\n verbose?: boolean;\n}\n\n// Execution state types\nexport interface ExecutionState {\n id: string;\n sessionId: string;\n isRunning: boolean;\n startTime: number;\n events: ProcessedEvents[];\n error?: Error;\n}\n\n// Helper type guards\nexport function isAssistantMessage(message: SDKMessage): message is SDKAssistantMessage {\n return message.type === 'assistant';\n}\n\nexport function isResultMessage(message: SDKMessage): message is SDKResultMessage {\n return message.type === 'result';\n}\n\nexport function isTextBlock(block: ContentBlock): block is TextBlock {\n return block.type === 'text';\n}\n\nexport function isToolUseBlock(block: ContentBlock): block is ToolUseBlock {\n return block.type === 'tool_use';\n}\n\nexport function isToolResultBlock(block: ContentBlock): block is ToolResultBlock {\n return block.type === 'tool_result';\n}\n\nexport function isThinkingBlock(block: ContentBlock): block is ThinkingBlock {\n return block.type === 'thinking';\n}\n\nexport function hasContentProperty(message: SDKMessage): message is SDKAssistantMessage | SDKPartialAssistantMessage {\n // For SDKAssistantMessage, content is in message.content\n if (message.type === 'assistant') {\n return 'message' in message && \n message.message !== null &&\n typeof message.message === 'object' &&\n 'content' in message.message && \n Array.isArray((message.message as any).content);\n }\n // For SDKPartialAssistantMessage, content might be at top level\n return 'content' in message && Array.isArray((message as any).content);\n}\n\n// Tool execution types\nexport interface ToolExecutionContext {\n toolName: string;\n toolCallId: string;\n isClientTool: boolean;\n isLongRunning: boolean;\n}\n\n// Message conversion types\nexport interface ConvertedMessage {\n role: 'user' | 'assistant' | 'system';\n content: string | Array<{ type: string; [key: string]: any }>;\n}\n\n","/**\n * Tool adapter: Converts AG-UI tools to Claude SDK format\n */\n\nimport { z } from 'zod';\nimport type { Tool } from '@ag-ui/client';\nimport type {\n SdkMcpToolDefinition,\n McpSdkServerConfigWithInstance,\n CallToolResult,\n} from './types';\n\n// Extended Tool type that includes runtime properties\ntype ExtendedTool = Tool & {\n client?: boolean;\n handler?: (args: any) => any | Promise;\n longRunning?: boolean;\n};\n\n/**\n * ToolAdapter handles conversion of AG-UI tools to Claude SDK format\n */\nexport class ToolAdapter {\n /**\n * Convert AG-UI tools to Claude SDK MCP tool definitions\n */\n static convertAgUiToolsToSdk(tools: Tool[]): SdkMcpToolDefinition[] {\n return tools.map((tool) => this.convertSingleTool(tool as ExtendedTool));\n }\n\n /**\n * Convert a single AG-UI tool to Claude SDK format\n */\n private static convertSingleTool(tool: ExtendedTool): SdkMcpToolDefinition {\n const zodSchema = this.convertJsonSchemaToZod(tool.parameters || {});\n\n return {\n name: tool.name,\n description: tool.description || '',\n inputSchema: zodSchema,\n handler: async (args: any) => {\n // For client tools, we mark them as long-running\n // The actual execution will be handled by the client\n if (tool.client) {\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify({\n toolName: tool.name,\n args,\n isClientTool: true,\n isLongRunning: true,\n }),\n },\n ],\n };\n }\n\n // For backend tools, if there's a handler, execute it\n if (tool.handler) {\n try {\n const result = await tool.handler(args);\n return {\n content: [\n {\n type: 'text',\n text: typeof result === 'string' ? result : JSON.stringify(result),\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text',\n text: error.message || 'Tool execution failed',\n },\n ],\n isError: true,\n };\n }\n }\n\n // Default response for tools without handlers\n return {\n content: [\n {\n type: 'text',\n text: 'Tool executed (no handler)',\n },\n ],\n };\n },\n };\n }\n\n /**\n * Convert JSON Schema to Zod schema\n */\n private static convertJsonSchemaToZod(jsonSchema: any): z.ZodTypeAny {\n if (!jsonSchema || typeof jsonSchema !== 'object') {\n return z.object({});\n }\n\n const properties = jsonSchema.properties || {};\n const required = jsonSchema.required || [];\n\n const zodShape: Record = {};\n\n for (const [key, prop] of Object.entries(properties)) {\n const propSchema = prop as any;\n let zodType = this.convertJsonSchemaTypeToZod(propSchema);\n\n // Make optional if not in required array\n if (!required.includes(key)) {\n zodType = zodType.optional();\n }\n\n zodShape[key] = zodType;\n }\n\n return z.object(zodShape);\n }\n\n /**\n * Convert a single JSON Schema type to Zod type\n */\n private static convertJsonSchemaTypeToZod(schema: any): z.ZodTypeAny {\n const type = schema.type;\n\n switch (type) {\n case 'string':\n if (schema.enum) {\n return z.enum(schema.enum as [string, ...string[]]);\n }\n return z.string();\n\n case 'number':\n case 'integer':\n let numType = type === 'integer' ? z.number().int() : z.number();\n if (schema.minimum !== undefined) {\n numType = numType.min(schema.minimum);\n }\n if (schema.maximum !== undefined) {\n numType = numType.max(schema.maximum);\n }\n return numType;\n\n case 'boolean':\n return z.boolean();\n\n case 'array':\n if (schema.items) {\n const itemType = this.convertJsonSchemaTypeToZod(schema.items);\n return z.array(itemType);\n }\n return z.array(z.any());\n\n case 'object':\n if (schema.properties) {\n return this.convertJsonSchemaToZod(schema);\n }\n return z.record(z.any());\n\n case 'null':\n return z.null();\n\n default:\n // For any other type or if type is not specified\n return z.any();\n }\n }\n\n /**\n * Create an MCP server configuration for AG-UI tools\n */\n static async createMcpServerForTools(tools: Tool[]): Promise {\n const sdkTools = this.convertAgUiToolsToSdk(tools as ExtendedTool[]);\n\n // Import createSdkMcpServer from Claude Agent SDK\n const { createSdkMcpServer } = await import('@anthropic-ai/claude-agent-sdk');\n \n // Use the official SDK function to create a properly formatted MCP server\n return createSdkMcpServer({\n name: 'ag_ui_tools',\n version: '1.0.0',\n tools: sdkTools as any, // Cast to any to avoid type incompatibility\n });\n }\n\n /**\n * Extract tool calls from Claude SDK response\n */\n static extractToolCalls(message: any): Array<{\n id: string;\n name: string;\n input: Record;\n }> {\n if (!message.content || !Array.isArray(message.content)) {\n return [];\n }\n\n return message.content\n .filter((block: any) => block.type === 'tool_use')\n .map((block: any) => ({\n id: block.id,\n name: block.name,\n input: block.input,\n }));\n }\n\n /**\n * Check if a tool is a long-running client tool\n */\n static isClientTool(toolName: string, tools: Tool[]): boolean {\n const tool = tools.find((t) => t.name === toolName) as ExtendedTool | undefined;\n return tool?.client === true;\n }\n\n /**\n * Check if a tool is marked as long-running\n */\n static isLongRunningTool(toolName: string, tools: Tool[]): boolean {\n const tool = tools.find((t) => t.name === toolName) as ExtendedTool | undefined;\n return tool?.client === true || tool?.longRunning === true;\n }\n\n /**\n * Format tool names for Claude SDK (with MCP server prefix)\n */\n static formatToolNameForSdk(toolName: string, serverName: string = 'ag_ui_tools'): string {\n return `mcp__${serverName}__${toolName}`;\n }\n\n /**\n * Parse tool name from SDK format (remove MCP server prefix)\n */\n static parseToolNameFromSdk(sdkToolName: string): string {\n const parts = sdkToolName.split('__');\n if (parts.length >= 3 && parts[0] === 'mcp') {\n return parts.slice(2).join('__');\n }\n return sdkToolName;\n }\n\n /**\n * Get allowed tools list for SDK options\n */\n static getAllowedToolsList(tools: Tool[], serverName: string = 'ag_ui_tools'): string[] {\n return tools.map((tool) => this.formatToolNameForSdk(tool.name, serverName));\n }\n}\n\n","/**\n * Execution state: Tracks background Claude executions\n */\n\nimport type { ProcessedEvents } from './types';\n\n/**\n * ExecutionState manages the state of a Claude SDK execution\n */\nexport class ExecutionState {\n readonly id: string;\n readonly sessionId: string;\n private _isRunning: boolean;\n private _startTime: number;\n private _endTime?: number;\n private _events: ProcessedEvents[];\n private _error?: Error;\n private _abortController: AbortController;\n\n constructor(id: string, sessionId: string) {\n this.id = id;\n this.sessionId = sessionId;\n this._isRunning = true;\n this._startTime = Date.now();\n this._events = [];\n this._abortController = new AbortController();\n }\n\n /**\n * Check if execution is running\n */\n get isRunning(): boolean {\n return this._isRunning;\n }\n\n /**\n * Get start time\n */\n get startTime(): number {\n return this._startTime;\n }\n\n /**\n * Get end time\n */\n get endTime(): number | undefined {\n return this._endTime;\n }\n\n /**\n * Get duration in milliseconds\n */\n get duration(): number {\n const end = this._endTime || Date.now();\n return end - this._startTime;\n }\n\n /**\n * Get all collected events\n */\n get events(): ProcessedEvents[] {\n return [...this._events];\n }\n\n /**\n * Get error if any\n */\n get error(): Error | undefined {\n return this._error;\n }\n\n /**\n * Get abort signal\n */\n get signal(): AbortSignal {\n return this._abortController.signal;\n }\n\n /**\n * Add an event to the execution state\n */\n addEvent(event: ProcessedEvents): void {\n this._events.push(event);\n }\n\n /**\n * Add multiple events\n */\n addEvents(events: ProcessedEvents[]): void {\n this._events.push(...events);\n }\n\n /**\n * Mark execution as completed\n */\n complete(): void {\n if (this._isRunning) {\n this._isRunning = false;\n this._endTime = Date.now();\n }\n }\n\n /**\n * Mark execution as failed\n */\n fail(error: Error): void {\n if (this._isRunning) {\n this._isRunning = false;\n this._endTime = Date.now();\n this._error = error;\n }\n }\n\n /**\n * Abort the execution\n */\n abort(): void {\n if (this._isRunning) {\n this._abortController.abort();\n this._isRunning = false;\n this._endTime = Date.now();\n }\n }\n\n /**\n * Get execution statistics\n */\n getStats(): {\n duration: number;\n eventCount: number;\n isRunning: boolean;\n hasError: boolean;\n } {\n return {\n duration: this.duration,\n eventCount: this._events.length,\n isRunning: this._isRunning,\n hasError: !!this._error,\n };\n }\n\n /**\n * Clear events (useful for memory management)\n */\n clearEvents(): void {\n this._events = [];\n }\n\n /**\n * Get the last N events\n */\n getLastEvents(count: number): ProcessedEvents[] {\n return this._events.slice(-count);\n }\n\n /**\n * Check if execution has been aborted\n */\n isAborted(): boolean {\n return this._abortController.signal.aborted;\n }\n}\n\n/**\n * ExecutionStateManager manages multiple execution states\n */\nexport class ExecutionStateManager {\n private executions: Map = new Map();\n private readonly maxExecutions: number;\n\n constructor(maxExecutions: number = 100) {\n this.maxExecutions = maxExecutions;\n }\n\n /**\n * Create a new execution state\n */\n createExecution(id: string, sessionId: string): ExecutionState {\n const execution = new ExecutionState(id, sessionId);\n this.executions.set(id, execution);\n\n // Clean up old executions if we exceed the limit\n if (this.executions.size > this.maxExecutions) {\n this.cleanupOldExecutions();\n }\n\n return execution;\n }\n\n /**\n * Get an execution state by ID\n */\n getExecution(id: string): ExecutionState | undefined {\n return this.executions.get(id);\n }\n\n /**\n * Check if an execution exists\n */\n hasExecution(id: string): boolean {\n return this.executions.has(id);\n }\n\n /**\n * Delete an execution state\n */\n deleteExecution(id: string): boolean {\n return this.executions.delete(id);\n }\n\n /**\n * Get all executions for a session\n */\n getSessionExecutions(sessionId: string): ExecutionState[] {\n const executions: ExecutionState[] = [];\n for (const execution of this.executions.values()) {\n if (execution.sessionId === sessionId) {\n executions.push(execution);\n }\n }\n return executions;\n }\n\n /**\n * Get running executions\n */\n getRunningExecutions(): ExecutionState[] {\n const running: ExecutionState[] = [];\n for (const execution of this.executions.values()) {\n if (execution.isRunning) {\n running.push(execution);\n }\n }\n return running;\n }\n\n /**\n * Get completed executions\n */\n getCompletedExecutions(): ExecutionState[] {\n const completed: ExecutionState[] = [];\n for (const execution of this.executions.values()) {\n if (!execution.isRunning) {\n completed.push(execution);\n }\n }\n return completed;\n }\n\n /**\n * Abort all running executions for a session\n */\n abortSessionExecutions(sessionId: string): void {\n const sessionExecutions = this.getSessionExecutions(sessionId);\n for (const execution of sessionExecutions) {\n if (execution.isRunning) {\n execution.abort();\n }\n }\n }\n\n /**\n * Clean up old completed executions\n */\n private cleanupOldExecutions(): void {\n const completed = this.getCompletedExecutions();\n \n // Sort by end time (oldest first)\n completed.sort((a, b) => {\n const aTime = a.endTime || a.startTime;\n const bTime = b.endTime || b.startTime;\n return aTime - bTime;\n });\n\n // Remove the oldest executions\n const toRemove = Math.max(0, this.executions.size - this.maxExecutions);\n for (let i = 0; i < toRemove && i < completed.length; i++) {\n this.executions.delete(completed[i].id);\n }\n }\n\n /**\n * Clear all executions\n */\n clearAll(): void {\n this.executions.clear();\n }\n\n /**\n * Get total execution count\n */\n getExecutionCount(): number {\n return this.executions.size;\n }\n\n /**\n * Get execution statistics\n */\n getStats(): {\n total: number;\n running: number;\n completed: number;\n failed: number;\n } {\n let running = 0;\n let completed = 0;\n let failed = 0;\n\n for (const execution of this.executions.values()) {\n if (execution.isRunning) {\n running++;\n } else if (execution.error) {\n failed++;\n } else {\n completed++;\n }\n }\n\n return {\n total: this.executions.size,\n running,\n completed,\n failed,\n };\n }\n}\n\n","/**\n * Message format converters\n */\n\nimport type { Message } from '@ag-ui/client';\nimport type { ConvertedMessage } from '../types';\n\n/**\n * Convert AG-UI messages to a format suitable for Claude SDK\n */\nexport function convertAgUiMessagesToPrompt(messages: Message[]): string {\n // For Claude SDK, we typically extract the last user message as the prompt\n // The SDK maintains conversation history internally (in persistent mode)\n \n // Find the last user message\n for (let i = messages.length - 1; i >= 0; i--) {\n const msg = messages[i];\n if (msg.role === 'user') {\n return extractMessageContent(msg);\n }\n }\n\n // If no user message found, return a default prompt\n return 'Hello';\n}\n\n/**\n * Extract text content from a message\n */\nexport function extractMessageContent(message: Message): string {\n if (typeof message.content === 'string') {\n return message.content;\n }\n\n if (Array.isArray(message.content)) {\n return message.content\n .map((block: any) => {\n if (typeof block === 'string') {\n return block;\n }\n if (block.type === 'text') {\n return block.text || '';\n }\n // For other types (image, file, etc.), we might need special handling\n return '';\n })\n .filter(Boolean)\n .join('\\n');\n }\n\n return String(message.content);\n}\n\n/**\n * Convert AG-UI message to Claude message format\n */\nexport function convertAgUiMessageToClaude(message: Message): ConvertedMessage {\n const role = message.role as 'user' | 'assistant' | 'system';\n const content = extractMessageContent(message);\n\n return {\n role,\n content,\n };\n}\n\n/**\n * Convert multiple AG-UI messages to Claude format\n */\nexport function convertAgUiMessagesToClaude(messages: Message[]): ConvertedMessage[] {\n return messages.map(convertAgUiMessageToClaude);\n}\n\n/**\n * Check if messages contain tool results\n */\nexport function hasToolResults(messages: Message[]): boolean {\n return messages.some((msg) => {\n if (typeof msg.content === 'string') {\n return false;\n }\n if (Array.isArray(msg.content)) {\n return msg.content.some((block: any) => {\n return typeof block === 'object' && block.type === 'tool_result';\n });\n }\n return false;\n });\n}\n\n/**\n * Extract tool results from messages\n */\nexport function extractToolResults(messages: Message[]): Array<{\n toolCallId: string;\n result: string;\n}> {\n const results: Array<{ toolCallId: string; result: string }> = [];\n\n for (const msg of messages) {\n if (typeof msg.content === 'string') {\n continue;\n }\n\n if (Array.isArray(msg.content)) {\n for (const block of msg.content as any[]) {\n if (typeof block === 'object' && block.type === 'tool_result') {\n results.push({\n toolCallId: (block as any).toolCallId || (block as any).tool_use_id || '',\n result: (block as any).result || (block as any).content || '',\n });\n }\n }\n }\n }\n\n return results;\n}\n\n/**\n * Generate a unique run ID\n */\nexport function generateRunId(): string {\n return `run_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n}\n\n/**\n * Generate a unique message ID\n */\nexport function generateMessageId(prefix: string = 'msg'): string {\n return `${prefix}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n}\n\n/**\n * Safely parse JSON string\n */\nexport function safeJsonParse(json: string, defaultValue: any = null): any {\n try {\n return JSON.parse(json);\n } catch {\n return defaultValue;\n }\n}\n\n/**\n * Safely stringify JSON\n */\nexport function safeJsonStringify(obj: any, defaultValue: string = '{}'): string {\n try {\n return JSON.stringify(obj);\n } catch {\n return defaultValue;\n }\n}\n\n/**\n * Check if a message is a tool result submission\n */\nexport function isToolResultSubmission(messages: Message[]): boolean {\n // Check if the last message contains tool results\n if (messages.length === 0) {\n return false;\n }\n\n const lastMessage = messages[messages.length - 1];\n return hasToolResults([lastMessage]);\n}\n\n/**\n * Format error message for display\n */\nexport function formatErrorMessage(error: any): string {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === 'string') {\n return error;\n }\n return 'An unknown error occurred';\n}\n\n/**\n * Truncate text to a maximum length\n */\nexport function truncateText(text: string, maxLength: number = 1000): string {\n if (text.length <= maxLength) {\n return text;\n }\n return text.slice(0, maxLength) + '...';\n}\n\n/**\n * Merge consecutive text blocks\n */\nexport function mergeTextBlocks(blocks: Array<{ type: string; text?: string }>): string {\n return blocks\n .filter((block: any) => block.type === 'text' && block.text)\n .map((block: any) => block.text)\n .join('');\n}\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIA,SAAS,kBAA8B;AACvC;AAAA,EACE;AAAA,EAEA,aAAAA;AAAA,OAMK;;;ACPP,IAAM,0BAA0B,KAAK,KAAK;AAC1C,IAAM,mBAAmB,IAAI,KAAK;AAM3B,IAAM,kBAAN,MAAM,gBAAe;AAAA,EAMlB,YAAY,iBAAyB,yBAAyB;AAJtE,SAAQ,WAAiC,oBAAI,IAAI;AACjD,SAAQ,kBAAyD;AAI/D,SAAK,iBAAiB;AACtB,SAAK,qBAAqB;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,YAAY,gBAAyC;AAC1D,QAAI,CAAC,gBAAe,UAAU;AAC5B,sBAAe,WAAW,IAAI,gBAAe,cAAc;AAAA,IAC7D;AACA,WAAO,gBAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,gBAAsB;AAC3B,QAAI,gBAAe,UAAU;AAC3B,sBAAe,SAAS,oBAAoB;AAC5C,sBAAe,WAAW;AAAA,IAC5B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,WAAmB,QAA0B;AACtD,QAAI,UAAU,KAAK,SAAS,IAAI,SAAS;AAEzC,QAAI,CAAC,SAAS;AACZ,gBAAU;AAAA,QACR,IAAI;AAAA,QACJ;AAAA,QACA,qBAAqB,oBAAI,IAAY;AAAA,QACrC,OAAO,CAAC;AAAA,QACR,WAAW,KAAK,IAAI;AAAA,QACpB,gBAAgB,KAAK,IAAI;AAAA,MAC3B;AACA,WAAK,SAAS,IAAI,WAAW,OAAO;AAAA,IACtC,OAAO;AAEL,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,WAA4B;AACrC,WAAO,KAAK,SAAS,IAAI,SAAS;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,WAA4B;AACxC,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,mCAAS,QAAQ;AAEnB,cAAQ,OAAO,MAAM,EAAE,MAAM,CAAC,UAAU;AACtC,gBAAQ,MAAM,+CAA+C,SAAS,KAAK,KAAK;AAAA,MAClF,CAAC;AAAA,IACH;AACA,WAAO,KAAK,SAAS,OAAO,SAAS;AAAA,EACvC;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,WAAmB,WAAyB;AACvD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,oBAAoB,IAAI,SAAS;AACzC,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB,WAAmB,WAA4B;AAChE,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,WAAO,UAAU,QAAQ,oBAAoB,IAAI,SAAS,IAAI;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,WAAmB,UAAgC;AACnE,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,CAAC,SAAS;AACZ,aAAO;AAAA,IACT;AAEA,WAAO,SAAS,OAAO,CAAC,QAAQ;AAC9B,YAAM,QAAQ,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,OAAO;AAClD,aAAO,CAAC,QAAQ,oBAAoB,IAAI,KAAK;AAAA,IAC/C,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,wBAAwB,WAAmB,UAA2B;AACpE,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,iBAAW,OAAO,UAAU;AAC1B,cAAM,QAAQ,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,OAAO;AAClD,gBAAQ,oBAAoB,IAAI,KAAK;AAAA,MACvC;AACA,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,WAAmB,KAAkB;AACjD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,WAAO,mCAAS,MAAM;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,WAAmB,KAAa,OAAkB;AAC9D,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,MAAM,GAAG,IAAI;AACrB,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,WAAmB,MAAsB;AACvD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,iBAAW,OAAO,MAAM;AACtB,eAAO,QAAQ,MAAM,GAAG;AAAA,MAC1B;AACA,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,WAAyB;AACzC,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,QAAQ,CAAC;AACjB,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,WAAmB,QAA+B;AAC1D,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,QAAI,SAAS;AACX,cAAQ,SAAS;AACjB,cAAQ,iBAAiB,KAAK,IAAI;AAAA,IACpC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,WAAgD;AACxD,UAAM,UAAU,KAAK,SAAS,IAAI,SAAS;AAC3C,WAAO,mCAAS;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,kBAA0B;AACxB,WAAO,KAAK,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,QAAwB;AAC1C,QAAI,QAAQ;AACZ,eAAW,WAAW,KAAK,SAAS,OAAO,GAAG;AAC5C,UAAI,QAAQ,WAAW,QAAQ;AAC7B;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,mBAA6B;AAC3B,WAAO,MAAM,KAAK,KAAK,SAAS,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,QAA2B;AACzC,UAAM,eAA0B,CAAC;AACjC,eAAW,WAAW,KAAK,SAAS,OAAO,GAAG;AAC5C,UAAI,QAAQ,WAAW,QAAQ;AAC7B,qBAAa,KAAK,OAAO;AAAA,MAC3B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,uBAA6B;AACnC,UAAM,MAAM,KAAK,IAAI;AACrB,UAAM,mBAA6B,CAAC;AAEpC,eAAW,CAAC,WAAW,OAAO,KAAK,KAAK,SAAS,QAAQ,GAAG;AAC1D,UAAI,MAAM,QAAQ,iBAAiB,KAAK,gBAAgB;AACtD,yBAAiB,KAAK,SAAS;AAAA,MACjC;AAAA,IACF;AAEA,eAAW,aAAa,kBAAkB;AACxC,WAAK,cAAc,SAAS;AAAA,IAC9B;AAEA,QAAI,iBAAiB,SAAS,GAAG;AAC/B,cAAQ,IAAI,cAAc,iBAAiB,MAAM,iBAAiB;AAAA,IACpE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,uBAA6B;AACnC,QAAI,CAAC,KAAK,iBAAiB;AACzB,WAAK,kBAAkB,YAAY,MAAM;AACvC,aAAK,qBAAqB;AAAA,MAC5B,GAAG,gBAAgB;AAGnB,UAAI,OAAQ,KAAK,gBAAwB,UAAU,YAAY;AAC7D,QAAC,KAAK,gBAAwB,MAAM;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,sBAA4B;AAClC,QAAI,KAAK,iBAAiB;AACxB,oBAAc,KAAK,eAAe;AAClC,WAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAyB;AACvB,eAAW,aAAa,KAAK,SAAS,KAAK,GAAG;AAC5C,WAAK,cAAc,SAAS;AAAA,IAC9B;AACA,SAAK,SAAS,MAAM;AAAA,EACtB;AACF;AA3Ra,gBACI,WAAkC;AAD5C,IAAM,iBAAN;;;ACVP;AAAA,EAQE;AAAA,OACK;;;ACmMA,SAAS,mBAAmB,SAAqD;AACtF,SAAO,QAAQ,SAAS;AAC1B;AAEO,SAAS,gBAAgB,SAAkD;AAChF,SAAO,QAAQ,SAAS;AAC1B;AAEO,SAAS,YAAY,OAAyC;AACnE,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,eAAe,OAA4C;AACzE,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,kBAAkB,OAA+C;AAC/E,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,gBAAgB,OAA6C;AAC3E,SAAO,MAAM,SAAS;AACxB;AAEO,SAAS,mBAAmB,SAAkF;AAEnH,MAAI,QAAQ,SAAS,aAAa;AAChC,WAAO,aAAa,WACb,QAAQ,YAAY,QACpB,OAAO,QAAQ,YAAY,YAC3B,aAAa,QAAQ,WACrB,MAAM,QAAS,QAAQ,QAAgB,OAAO;AAAA,EACvD;AAEA,SAAO,aAAa,WAAW,MAAM,QAAS,QAAgB,OAAO;AACvE;;;AD9MO,IAAM,kBAAN,MAAsB;AAAA,EAM3B,YAAY,OAAe,UAAkB;AAL7C,SAAQ,mBAAmB;AAC3B,SAAQ,mBAAkC;AAKxC,SAAK,QAAQ;AACb,SAAK,WAAW;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,SAAwC;AACvD,UAAM,SAA4B,CAAC;AAEnC,QAAI,mBAAmB,OAAO,GAAG;AAC/B,aAAO,KAAK,GAAG,KAAK,0BAA0B,OAA8B,CAAC;AAAA,IAC/E;AAIA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,0BAA0B,SAAiD;AAnErF;AAoEI,UAAM,SAA4B,CAAC;AAGnC,UAAM,YAAU,aAAQ,YAAR,mBAAiB,YAAW,CAAC;AAE7C,eAAW,SAAS,SAAS;AAC3B,UAAI,YAAY,KAAK,GAAG;AACtB,eAAO,KAAK,GAAG,KAAK,mBAAmB,KAAK,CAAC;AAAA,MAC/C,WAAW,eAAe,KAAK,GAAG;AAChC,eAAO,KAAK,GAAG,KAAK,sBAAsB,KAAK,CAAC;AAAA,MAClD,WAAW,kBAAkB,KAAK,GAAG;AACnC,eAAO,KAAK,GAAG,KAAK,yBAAyB,KAAK,CAAC;AAAA,MACrD;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,mBAAmB,OAAqC;AAC9D,UAAM,SAA4B,CAAC;AACnC,UAAM,YAAY,KAAK,kBAAkB;AAGzC,WAAO,KAAK;AAAA,MACV,MAAM,UAAU;AAAA,MAChB;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAGD,UAAM,OAAO,MAAM;AACnB,QAAI,KAAK,SAAS,GAAG;AACnB,aAAO,KAAK;AAAA,QACV,MAAM,UAAU;AAAA,QAChB;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAGA,WAAO,KAAK;AAAA,MACV,MAAM,UAAU;AAAA,MAChB;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,sBAAsB,OAAwC;AACpE,UAAM,SAA4B,CAAC;AACnC,UAAM,aAAa,MAAM;AAGzB,WAAO,KAAK;AAAA,MACV,MAAM,UAAU;AAAA,MAChB;AAAA,MACA,cAAc,MAAM;AAAA,IACtB,CAAC;AAGD,UAAM,WAAW,KAAK,UAAU,MAAM,KAAK;AAC3C,QAAI,SAAS,SAAS,GAAG;AACvB,aAAO,KAAK;AAAA,QACV,MAAM,UAAU;AAAA,QAChB;AAAA,QACA,OAAO;AAAA,MACT,CAAC;AAAA,IACH;AAGA,WAAO,KAAK;AAAA,MACV,MAAM,UAAU;AAAA,MAChB;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,yBAAyB,OAA2C;AAC1E,UAAM,SAA4B,CAAC;AAGnC,QAAI;AACJ,QAAI,OAAO,MAAM,YAAY,UAAU;AACrC,sBAAgB,MAAM;AAAA,IACxB,WAAW,MAAM,QAAQ,MAAM,OAAO,GAAG;AAEvC,sBAAgB,MAAM,QACnB,IAAI,CAAC,SAAS;AACb,YAAI,KAAK,SAAS,QAAQ;AACxB,iBAAO,KAAK,QAAQ;AAAA,QACtB;AACA,eAAO,KAAK,UAAU,IAAI;AAAA,MAC5B,CAAC,EACA,KAAK,IAAI;AAAA,IACd,OAAO;AACL,sBAAgB,KAAK,UAAU,MAAM,OAAO;AAAA,IAC9C;AAEA,UAAM,YAAY,KAAK,kBAAkB;AACzC,WAAO,KAAK;AAAA,MACV,MAAM,UAAU;AAAA,MAChB,YAAY,MAAM;AAAA,MAClB;AAAA,MACA,SAAS;AAAA,OACL,MAAM,YAAY,EAAE,MAAM,OAAgB,EAC/C;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,oBAA4B;AAClC,SAAK;AACL,WAAO,OAAO,KAAK,KAAK,IAAI,KAAK,gBAAgB;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,SAAK,mBAAmB;AACxB,SAAK,mBAAmB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,sBAAqC;AACnC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,WAAgC;AAClD,SAAK,mBAAmB;AAAA,EAC1B;AACF;;;AEvNA,SAAS,SAAS;AAkBX,IAAM,cAAN,MAAkB;AAAA;AAAA;AAAA;AAAA,EAIvB,OAAO,sBAAsB,OAA4C;AACvE,WAAO,MAAM,IAAI,CAAC,SAAS,KAAK,kBAAkB,IAAoB,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,kBAAkB,MAA+C;AAC9E,UAAM,YAAY,KAAK,uBAAuB,KAAK,cAAc,CAAC,CAAC;AAEnE,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,aAAa,KAAK,eAAe;AAAA,MACjC,aAAa;AAAA,MACb,SAAS,OAAO,SAAc;AAG5B,YAAI,KAAK,QAAQ;AACf,iBAAO;AAAA,YACL,SAAS;AAAA,cACP;AAAA,gBACE,MAAM;AAAA,gBACN,MAAM,KAAK,UAAU;AAAA,kBACnB,UAAU,KAAK;AAAA,kBACf;AAAA,kBACA,cAAc;AAAA,kBACd,eAAe;AAAA,gBACjB,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAGA,YAAI,KAAK,SAAS;AAChB,cAAI;AACF,kBAAM,SAAS,MAAM,KAAK,QAAQ,IAAI;AACtC,mBAAO;AAAA,cACL,SAAS;AAAA,gBACP;AAAA,kBACE,MAAM;AAAA,kBACN,MAAM,OAAO,WAAW,WAAW,SAAS,KAAK,UAAU,MAAM;AAAA,gBACnE;AAAA,cACF;AAAA,YACF;AAAA,UACF,SAAS,OAAY;AACnB,mBAAO;AAAA,cACL,SAAS;AAAA,gBACP;AAAA,kBACE,MAAM;AAAA,kBACN,MAAM,MAAM,WAAW;AAAA,gBACzB;AAAA,cACF;AAAA,cACA,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAGA,eAAO;AAAA,UACL,SAAS;AAAA,YACP;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,YACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,uBAAuB,YAA+B;AACnE,QAAI,CAAC,cAAc,OAAO,eAAe,UAAU;AACjD,aAAO,EAAE,OAAO,CAAC,CAAC;AAAA,IACpB;AAEA,UAAM,aAAa,WAAW,cAAc,CAAC;AAC7C,UAAM,WAAW,WAAW,YAAY,CAAC;AAEzC,UAAM,WAAyC,CAAC;AAEhD,eAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,UAAU,GAAG;AACpD,YAAM,aAAa;AACnB,UAAI,UAAU,KAAK,2BAA2B,UAAU;AAGxD,UAAI,CAAC,SAAS,SAAS,GAAG,GAAG;AAC3B,kBAAU,QAAQ,SAAS;AAAA,MAC7B;AAEA,eAAS,GAAG,IAAI;AAAA,IAClB;AAEA,WAAO,EAAE,OAAO,QAAQ;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,2BAA2B,QAA2B;AACnE,UAAM,OAAO,OAAO;AAEpB,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,YAAI,OAAO,MAAM;AACf,iBAAO,EAAE,KAAK,OAAO,IAA6B;AAAA,QACpD;AACA,eAAO,EAAE,OAAO;AAAA,MAElB,KAAK;AAAA,MACL,KAAK;AACH,YAAI,UAAU,SAAS,YAAY,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,OAAO;AAC/D,YAAI,OAAO,YAAY,QAAW;AAChC,oBAAU,QAAQ,IAAI,OAAO,OAAO;AAAA,QACtC;AACA,YAAI,OAAO,YAAY,QAAW;AAChC,oBAAU,QAAQ,IAAI,OAAO,OAAO;AAAA,QACtC;AACA,eAAO;AAAA,MAET,KAAK;AACH,eAAO,EAAE,QAAQ;AAAA,MAEnB,KAAK;AACH,YAAI,OAAO,OAAO;AAChB,gBAAM,WAAW,KAAK,2BAA2B,OAAO,KAAK;AAC7D,iBAAO,EAAE,MAAM,QAAQ;AAAA,QACzB;AACA,eAAO,EAAE,MAAM,EAAE,IAAI,CAAC;AAAA,MAExB,KAAK;AACH,YAAI,OAAO,YAAY;AACrB,iBAAO,KAAK,uBAAuB,MAAM;AAAA,QAC3C;AACA,eAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,MAEzB,KAAK;AACH,eAAO,EAAE,KAAK;AAAA,MAEhB;AAEE,eAAO,EAAE,IAAI;AAAA,IACjB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,wBAAwB,OAA6B;AAChE,UAAM,WAAW,KAAK,sBAAsB,KAAuB;AAGnE,UAAM,EAAE,mBAAmB,IAAI,MAAM,OAAO,gCAAgC;AAG5E,WAAO,mBAAmB;AAAA,MACxB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA;AAAA,IACT,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,iBAAiB,SAIrB;AACD,QAAI,CAAC,QAAQ,WAAW,CAAC,MAAM,QAAQ,QAAQ,OAAO,GAAG;AACvD,aAAO,CAAC;AAAA,IACV;AAEA,WAAO,QAAQ,QACZ,OAAO,CAAC,UAAe,MAAM,SAAS,UAAU,EAChD,IAAI,CAAC,WAAgB;AAAA,MACpB,IAAI,MAAM;AAAA,MACV,MAAM,MAAM;AAAA,MACZ,OAAO,MAAM;AAAA,IACf,EAAE;AAAA,EACN;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,aAAa,UAAkB,OAAwB;AAC5D,UAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,QAAQ;AAClD,YAAO,6BAAM,YAAW;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,kBAAkB,UAAkB,OAAwB;AACjE,UAAM,OAAO,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,QAAQ;AAClD,YAAO,6BAAM,YAAW,SAAQ,6BAAM,iBAAgB;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,qBAAqB,UAAkB,aAAqB,eAAuB;AACxF,WAAO,QAAQ,UAAU,KAAK,QAAQ;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,qBAAqB,aAA6B;AACvD,UAAM,QAAQ,YAAY,MAAM,IAAI;AACpC,QAAI,MAAM,UAAU,KAAK,MAAM,CAAC,MAAM,OAAO;AAC3C,aAAO,MAAM,MAAM,CAAC,EAAE,KAAK,IAAI;AAAA,IACjC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,oBAAoB,OAAe,aAAqB,eAAyB;AACtF,WAAO,MAAM,IAAI,CAAC,SAAS,KAAK,qBAAqB,KAAK,MAAM,UAAU,CAAC;AAAA,EAC7E;AACF;;;ACnPO,IAAM,iBAAN,MAAqB;AAAA,EAU1B,YAAY,IAAY,WAAmB;AACzC,SAAK,KAAK;AACV,SAAK,YAAY;AACjB,SAAK,aAAa;AAClB,SAAK,aAAa,KAAK,IAAI;AAC3B,SAAK,UAAU,CAAC;AAChB,SAAK,mBAAmB,IAAI,gBAAgB;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAoB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAA8B;AAChC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAmB;AACrB,UAAM,MAAM,KAAK,YAAY,KAAK,IAAI;AACtC,WAAO,MAAM,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAA4B;AAC9B,WAAO,CAAC,GAAG,KAAK,OAAO;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAA2B;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAsB;AACxB,WAAO,KAAK,iBAAiB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,OAA8B;AACrC,SAAK,QAAQ,KAAK,KAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,QAAiC;AACzC,SAAK,QAAQ,KAAK,GAAG,MAAM;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiB;AACf,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa;AAClB,WAAK,WAAW,KAAK,IAAI;AAAA,IAC3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,OAAoB;AACvB,QAAI,KAAK,YAAY;AACnB,WAAK,aAAa;AAClB,WAAK,WAAW,KAAK,IAAI;AACzB,WAAK,SAAS;AAAA,IAChB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,QAAc;AACZ,QAAI,KAAK,YAAY;AACnB,WAAK,iBAAiB,MAAM;AAC5B,WAAK,aAAa;AAClB,WAAK,WAAW,KAAK,IAAI;AAAA,IAC3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAKE;AACA,WAAO;AAAA,MACL,UAAU,KAAK;AAAA,MACf,YAAY,KAAK,QAAQ;AAAA,MACzB,WAAW,KAAK;AAAA,MAChB,UAAU,CAAC,CAAC,KAAK;AAAA,IACnB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAoB;AAClB,SAAK,UAAU,CAAC;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,OAAkC;AAC9C,WAAO,KAAK,QAAQ,MAAM,CAAC,KAAK;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,YAAqB;AACnB,WAAO,KAAK,iBAAiB,OAAO;AAAA,EACtC;AACF;AAKO,IAAM,wBAAN,MAA4B;AAAA,EAIjC,YAAY,gBAAwB,KAAK;AAHzC,SAAQ,aAA0C,oBAAI,IAAI;AAIxD,SAAK,gBAAgB;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,IAAY,WAAmC;AAC7D,UAAM,YAAY,IAAI,eAAe,IAAI,SAAS;AAClD,SAAK,WAAW,IAAI,IAAI,SAAS;AAGjC,QAAI,KAAK,WAAW,OAAO,KAAK,eAAe;AAC7C,WAAK,qBAAqB;AAAA,IAC5B;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,IAAwC;AACnD,WAAO,KAAK,WAAW,IAAI,EAAE;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,IAAqB;AAChC,WAAO,KAAK,WAAW,IAAI,EAAE;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,IAAqB;AACnC,WAAO,KAAK,WAAW,OAAO,EAAE;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,WAAqC;AACxD,UAAM,aAA+B,CAAC;AACtC,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,UAAU,cAAc,WAAW;AACrC,mBAAW,KAAK,SAAS;AAAA,MAC3B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAyC;AACvC,UAAM,UAA4B,CAAC;AACnC,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,UAAU,WAAW;AACvB,gBAAQ,KAAK,SAAS;AAAA,MACxB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,yBAA2C;AACzC,UAAM,YAA8B,CAAC;AACrC,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,CAAC,UAAU,WAAW;AACxB,kBAAU,KAAK,SAAS;AAAA,MAC1B;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB,WAAyB;AAC9C,UAAM,oBAAoB,KAAK,qBAAqB,SAAS;AAC7D,eAAW,aAAa,mBAAmB;AACzC,UAAI,UAAU,WAAW;AACvB,kBAAU,MAAM;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,uBAA6B;AACnC,UAAM,YAAY,KAAK,uBAAuB;AAG9C,cAAU,KAAK,CAAC,GAAG,MAAM;AACvB,YAAM,QAAQ,EAAE,WAAW,EAAE;AAC7B,YAAM,QAAQ,EAAE,WAAW,EAAE;AAC7B,aAAO,QAAQ;AAAA,IACjB,CAAC;AAGD,UAAM,WAAW,KAAK,IAAI,GAAG,KAAK,WAAW,OAAO,KAAK,aAAa;AACtE,aAAS,IAAI,GAAG,IAAI,YAAY,IAAI,UAAU,QAAQ,KAAK;AACzD,WAAK,WAAW,OAAO,UAAU,CAAC,EAAE,EAAE;AAAA,IACxC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,WAAiB;AACf,SAAK,WAAW,MAAM;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,oBAA4B;AAC1B,WAAO,KAAK,WAAW;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,WAKE;AACA,QAAI,UAAU;AACd,QAAI,YAAY;AAChB,QAAI,SAAS;AAEb,eAAW,aAAa,KAAK,WAAW,OAAO,GAAG;AAChD,UAAI,UAAU,WAAW;AACvB;AAAA,MACF,WAAW,UAAU,OAAO;AAC1B;AAAA,MACF,OAAO;AACL;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,MACL,OAAO,KAAK,WAAW;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;;;AC3TO,SAAS,4BAA4B,UAA6B;AAKvE,WAAS,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;AAC7C,UAAM,MAAM,SAAS,CAAC;AACtB,QAAI,IAAI,SAAS,QAAQ;AACvB,aAAO,sBAAsB,GAAG;AAAA,IAClC;AAAA,EACF;AAGA,SAAO;AACT;AAKO,SAAS,sBAAsB,SAA0B;AAC9D,MAAI,OAAO,QAAQ,YAAY,UAAU;AACvC,WAAO,QAAQ;AAAA,EACjB;AAEA,MAAI,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAClC,WAAO,QAAQ,QACZ,IAAI,CAAC,UAAe;AACnB,UAAI,OAAO,UAAU,UAAU;AAC7B,eAAO;AAAA,MACT;AACA,UAAI,MAAM,SAAS,QAAQ;AACzB,eAAO,MAAM,QAAQ;AAAA,MACvB;AAEA,aAAO;AAAA,IACT,CAAC,EACA,OAAO,OAAO,EACd,KAAK,IAAI;AAAA,EACd;AAEA,SAAO,OAAO,QAAQ,OAAO;AAC/B;AAKO,SAAS,2BAA2B,SAAoC;AAC7E,QAAM,OAAO,QAAQ;AACrB,QAAM,UAAU,sBAAsB,OAAO;AAE7C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAKO,SAAS,4BAA4B,UAAyC;AACnF,SAAO,SAAS,IAAI,0BAA0B;AAChD;AAKO,SAAS,eAAe,UAA8B;AAC3D,SAAO,SAAS,KAAK,CAAC,QAAQ;AAC5B,QAAI,OAAO,IAAI,YAAY,UAAU;AACnC,aAAO;AAAA,IACT;AACA,QAAI,MAAM,QAAQ,IAAI,OAAO,GAAG;AAC9B,aAAO,IAAI,QAAQ,KAAK,CAAC,UAAe;AACtC,eAAO,OAAO,UAAU,YAAY,MAAM,SAAS;AAAA,MACrD,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAKO,SAAS,mBAAmB,UAGhC;AACD,QAAM,UAAyD,CAAC;AAEhE,aAAW,OAAO,UAAU;AAC1B,QAAI,OAAO,IAAI,YAAY,UAAU;AACnC;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,IAAI,OAAO,GAAG;AAC9B,iBAAW,SAAS,IAAI,SAAkB;AACxC,YAAI,OAAO,UAAU,YAAY,MAAM,SAAS,eAAe;AAC7D,kBAAQ,KAAK;AAAA,YACX,YAAa,MAAc,cAAe,MAAc,eAAe;AAAA,YACvE,QAAS,MAAc,UAAW,MAAc,WAAW;AAAA,UAC7D,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,gBAAwB;AACtC,SAAO,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AACrE;AAKO,SAAS,kBAAkB,SAAiB,OAAe;AAChE,SAAO,GAAG,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC;AAC3E;AAKO,SAAS,cAAc,MAAc,eAAoB,MAAW;AACzE,MAAI;AACF,WAAO,KAAK,MAAM,IAAI;AAAA,EACxB,SAAQ;AACN,WAAO;AAAA,EACT;AACF;AAKO,SAAS,kBAAkB,KAAU,eAAuB,MAAc;AAC/E,MAAI;AACF,WAAO,KAAK,UAAU,GAAG;AAAA,EAC3B,SAAQ;AACN,WAAO;AAAA,EACT;AACF;AAKO,SAAS,uBAAuB,UAA8B;AAEnE,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,SAAS,SAAS,SAAS,CAAC;AAChD,SAAO,eAAe,CAAC,WAAW,CAAC;AACrC;AAKO,SAAS,mBAAmB,OAAoB;AACrD,MAAI,iBAAiB,OAAO;AAC1B,WAAO,MAAM;AAAA,EACf;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAKO,SAAS,aAAa,MAAc,YAAoB,KAAc;AAC3E,MAAI,KAAK,UAAU,WAAW;AAC5B,WAAO;AAAA,EACT;AACA,SAAO,KAAK,MAAM,GAAG,SAAS,IAAI;AACpC;AAKO,SAAS,gBAAgB,QAAwD;AACtF,SAAO,OACJ,OAAO,CAAC,UAAe,MAAM,SAAS,UAAU,MAAM,IAAI,EAC1D,IAAI,CAAC,UAAe,MAAM,IAAI,EAC9B,KAAK,EAAE;AACZ;;;ANnKO,IAAM,cAAN,cAA0B,cAAc;AAAA,EAW7C,YAAY,QAA2B;AACrC,UAAM,MAAM;AAGZ,SAAK,SAAS,OAAO;AACrB,SAAK,UAAU,OAAO;AACtB,SAAK,iBAAiB,OAAO,kBAAkB,KAAK,KAAK;AACzD,SAAK,2BAA2B,OAAO,6BAA6B;AAEpE,SAAK,iBAAiB,KAAK,kBAAkB,OAAO,kBAAkB,mBAAmB;AACzF,SAAK,SAAS,OAAO;AACrB,SAAK,UAAU,OAAO;AACtB,SAAK,iBAAiB,eAAe,YAAY,KAAK,cAAc;AACpE,SAAK,wBAAwB,IAAI,sBAAsB;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA,EAKQ,kBAAkB,MAAyE;AACjG,UAAM,UAAoF;AAAA,MACxF,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,QAAQ;AAAA,IACV;AACA,WAAO,QAAQ,QAAQ,mBAAmB,KAAK;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,OAAmD;AACrD,WAAO,IAAI,WAAW,CAAC,eAAe;AACpC,WAAK,aAAa,OAAO,UAAU,EAAE,MAAM,CAAC,UAAU;AACpD,mBAAW,MAAM,KAAK;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,aACZ,OACA,YACe;AACf,UAAM,QAAQ,cAAc;AAC5B,UAAM,YAAY,MAAM,YAAY,WAAW,KAAK,IAAI,CAAC;AAGzD,UAAM,YAAY,KAAK,sBAAsB,gBAAgB,OAAO,SAAS;AAE7E,QAAI;AAEF,YAAM,kBAAmC;AAAA,QACvC,MAAMC,WAAU;AAAA,QAChB,UAAU;AAAA,QACV;AAAA,MACF;AACA,iBAAW,KAAK,eAAe;AAC/B,gBAAU,SAAS,eAAe;AAGlC,YAAM,UAAU,KAAK,eAAe,WAAW,WAAW,SAAS;AAGnE,YAAM,iBAAiB,KAAK,eAAe;AAAA,QACzC;AAAA,QACA,MAAM,YAAY,CAAC;AAAA,MACrB;AAGA,YAAM,eAAe,uBAAuB,MAAM,YAAY,CAAC,CAAC;AAGhE,YAAM,QAAQ,MAAM,SAAS,CAAC;AAG9B,YAAM,UAAU,MAAM,KAAK,qBAAqB,KAAK;AAGrD,YAAM,SAAS,4BAA4B,cAAc;AAGzD,YAAM,mBAAqC;AAAA,QACzC,MAAMA,WAAU;AAAA,QAChB,UAAU,QAAQ,KAAK;AAAA,MACzB;AACA,iBAAW,KAAK,gBAAgB;AAChC,gBAAU,SAAS,gBAAgB;AAGnC,YAAM,KAAK;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAGA,WAAK,eAAe,wBAAwB,WAAW,cAAc;AAGrE,YAAM,oBAAuC;AAAA,QAC3C,MAAMA,WAAU;AAAA,QAChB,UAAU,QAAQ,KAAK;AAAA,MACzB;AACA,iBAAW,KAAK,iBAAiB;AACjC,gBAAU,SAAS,iBAAiB;AAGpC,YAAM,mBAAqC;AAAA,QACzC,MAAMA,WAAU;AAAA,QAChB,UAAU;AAAA,QACV;AAAA,MACF;AACA,iBAAW,KAAK,gBAAgB;AAChC,gBAAU,SAAS,gBAAgB;AAGnC,gBAAU,SAAS;AACnB,iBAAW,SAAS;AAAA,IACtB,SAAS,OAAY;AAEnB,YAAM,gBAA+B;AAAA,QACnC,MAAMA,WAAU;AAAA,QAChB,SAAS,mBAAmB,KAAK;AAAA,MACnC;AACA,iBAAW,KAAK,aAAa;AAC7B,gBAAU,SAAS,aAAa;AAGhC,gBAAU,KAAK,KAAK;AAGpB,iBAAW,SAAS;AAAA,IACtB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,qBAAqB,OAAgC;AAEjE,UAAM,UAAU,KAAK,WAAW,QAAQ,IAAI;AAC5C,UAAM,SAAS,KAAK,UAAU,QAAQ,IAAI,wBAAwB,QAAQ,IAAI;AAG9E,YAAQ,IAAI,yCAAyC;AAAA,MACnD,WAAW,CAAC,CAAC;AAAA,MACb,YAAY,CAAC,CAAC;AAAA,MACd,SAAS,WAAW;AAAA,MACpB,gBAAgB,KAAK;AAAA,MACrB,WAAW,CAAC,CAAC,KAAK;AAAA,MAClB,SAAS,KAAK;AAAA,IAChB,CAAC;AAED,UAAM,UAAmB;AAAA,MACvB,gBAAgB,KAAK;AAAA,OAEjB,KAAK,UAAU,EAAE,QAAQ,KAAK,OAAO,IAErC,KAAK,YAAY,UAAa,EAAE,SAAS,KAAK,QAAQ,IALnC;AAAA,MAMvB,KAAK,QAAQ;AAAA,IACf;AAGA,QAAI,KAAK,QAAQ;AACf,cAAQ,IAAI,uEAAkE;AAAA,IAChF,OAAO;AACL,cAAQ,KAAK,6FAAmF;AAAA,IAClG;AAGA,QAAI,SAAS,MAAM,SAAS,GAAG;AAC7B,YAAM,YAAY,MAAM,YAAY,wBAAwB,KAAK;AACjE,cAAQ,aAAa;AAAA,QACnB,aAAa;AAAA,MACf;AAGA,cAAQ,eAAe,YAAY,oBAAoB,KAAK;AAAA,IAC9D;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,cACZ,QACA,SACA,SACA,OACA,WACA,YACA,WACe;AACf,UAAM,kBAAkB,IAAI,gBAAgB,OAAO,SAAS;AAI5D,UAAM,KAAK;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAc,wBACZ,QACA,SACA,SACA,iBACA,YACA,WACe;AAIf,UAAM,KAAK,uBAAuB,QAAQ,SAAS,iBAAiB,YAAY,SAAS;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,uBACZ,QACA,SACA,iBACA,YACA,WACe;AACf,QAAI;AAEF,cAAQ,IAAI,mCAAmC;AAC/C,cAAQ,IAAI,wBAAwB,QAAQ,IAAI,oBAAoB,QAAQ,SAAS;AACrF,cAAQ,IAAI,2BAA2B,QAAQ,IAAI,uBAAuB,QAAQ,SAAS;AAC3F,cAAQ,IAAI,yBAAyB,QAAQ,IAAI,sBAAsB,yBAAyB;AAChG,cAAQ,IAAI,yCAAyC;AAAA,QACnD,WAAW,CAAC,CAAC,QAAQ;AAAA,QACrB,YAAY,CAAC,CAAC,QAAQ;AAAA,QACtB,gBAAgB,QAAQ;AAAA,QACxB,eAAe,CAAC,CAAC,QAAQ;AAAA,MAC3B,CAAC;AAGD,YAAM,EAAE,MAAM,IAAI,MAAM,KAAK,gBAAgB;AAE7C,cAAQ,IAAI,uCAAuC;AAKnD,YAAM,cAAc,MAAM,EAAE,QAAQ,QAAQ,CAAC;AAG7C;AAAA,mCAA4B,cAA5B,0EAAyC;AAA9B,gBAAM,UAAjB;AACE,kBAAQ,IAAI,6NAAmD;AAC/D,kBAAQ,IAAI,0CAAyC,mCAAS,SAAQ,SAAS;AAC/E,kBAAQ,IAAI,gCAAgC,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAE5E,cAAI,UAAU,UAAU,GAAG;AACzB,oBAAQ,IAAI,0CAA0C;AACtD;AAAA,UACF;AAEA,gBAAM,SAAS,gBAAgB,iBAAiB,OAAO;AACvD,kBAAQ,IAAI,2CAA2C,OAAO,MAAM;AACpE,qBAAW,SAAS,QAAQ;AAC1B,oBAAQ,IAAI,iCAAiC,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAC3E,uBAAW,KAAK,KAAK;AACrB,sBAAU,SAAS,KAAK;AAAA,UAC1B;AACA,kBAAQ,IAAI,6NAAmD;AAAA,QACjE;AAAA,eAlBA,MAlUN;AAkUM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBA,cAAQ,IAAI,6CAA6C;AAAA,IAC3D,SAASC,QAAY;AAEnB,cAAQ,MAAM,+BAA+B;AAC7C,cAAQ,MAAM,cAAcA,OAAM,OAAO;AACzC,cAAQ,MAAM,YAAYA,OAAM,KAAK;AACrC,cAAQ,MAAM,mBAAmB,KAAK,UAAUA,QAAO,OAAO,oBAAoBA,MAAK,GAAG,CAAC,CAAC;AAG5F,UAAIA,OAAM,WAAWA,OAAM,QAAQ,SAAS,kBAAkB,GAAG;AAC/D,cAAM,IAAI;AAAA,UACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKqBA,OAAM,OAAO;AAAA,eAClBA,OAAM,SAAS,gBAAgB;AAAA,QACjD;AAAA,MACF;AAEA,UAAIA,OAAM,YAAYA,OAAM,QAAQ,SAAS,SAAS,KAAKA,OAAM,QAAQ,SAAS,MAAM,IAAI;AAC1F,cAAM,IAAI;AAAA,UACR,kBAAkBA,OAAM,OAAO;AAAA;AAAA,QAEjC;AAAA,MACF;AACA,YAAMA;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,kBAAgC;AAC5C,QAAI;AACF,aAAO,MAAM,OAAO,gCAAgC;AAAA,IACtD,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,OAAqB;AAClC,UAAM,YAAY,KAAK,sBAAsB,aAAa,KAAK;AAC/D,QAAI,WAAW;AACb,gBAAU,MAAM;AAAA,IAClB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,OAA2C;AAC3D,WAAO,KAAK,sBAAsB,aAAa,KAAK;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoC;AAClC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,2BAAkD;AAChD,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAyB;AAE7B,UAAM,oBAAoB,KAAK,sBAAsB,qBAAqB;AAC1E,eAAW,aAAa,mBAAmB;AACzC,gBAAU,MAAM;AAAA,IAClB;AAGA,SAAK,eAAe,iBAAiB;AAGrC,SAAK,sBAAsB,SAAS;AAAA,EACtC;AACF;","names":["EventType","EventType","error"]}
\ No newline at end of file
diff --git a/integrations/claude-agent-sdk/typescript/examples/.env.local.example b/integrations/claude-agent-sdk/typescript/examples/.env.local.example
new file mode 100644
index 000000000..e925bb858
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/.env.local.example
@@ -0,0 +1,10 @@
+# Claude Agent SDK Integration - Environment Variables
+# Copy this file to .env.local and fill in your actual values
+
+# Anthropic API Key (required for real API tests)
+# Get your API key from: https://console.anthropic.com/
+# ANTHROPIC_API_KEY=your-anthropic-api-key-here
+
+# Optional for third party service
+# ANTHROPIC_AUTH_TOKEN=third-party-auth-token
+# ANTHROPIC_BASE_URL=third-party-base-url
diff --git a/integrations/claude-agent-sdk/typescript/examples/.gitignore b/integrations/claude-agent-sdk/typescript/examples/.gitignore
new file mode 100644
index 000000000..32319dd4a
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/.gitignore
@@ -0,0 +1,31 @@
+# Environment files
+.env
+.env.local
+.env*.local
+
+# Dependencies
+node_modules/
+
+# Build output
+dist/
+build/
+
+# Logs
+logs
+*.log
+npm-debug.log*
+pnpm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# OS
+.DS_Store
+Thumbs.db
+
+# IDE
+.vscode/
+.idea/
+*.swp
+*.swo
+*~
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/README.md b/integrations/claude-agent-sdk/typescript/examples/README.md
new file mode 100644
index 000000000..9a6b3b01f
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/README.md
@@ -0,0 +1,142 @@
+# Claude Agent SDK Example
+
+This example demonstrates how to use the Claude Agent SDK with Express.js to create an AI agent server that follows the AG-UI Protocol.
+
+## Setup
+
+### 1. Configure Environment Variables
+
+Copy the environment variable template file and configure it:
+
+```bash
+cd examples
+cp env.example .env.local
+```
+
+Edit the `.env.local` file and set the required environment variables:
+
+```bash
+# Required: Claude API key
+ANTHROPIC_API_KEY=your_api_key_here
+
+# Optional configuration
+PORT=3000 # Server port
+APP_NAME=claude-example # Application name
+SYSTEM_PROMPT=You are a helpful assistant # System prompt
+ENABLE_PERSISTENT_SESSIONS=true # Enable persistent sessions
+SESSION_TIMEOUT=1800000 # Session timeout (milliseconds)
+PERMISSION_MODE=ask # Permission mode: ask, auto, none
+```
+
+### 2. Install Dependencies
+
+```bash
+pnpm install
+```
+
+### 3. Run the Server
+
+```bash
+pnpm dev
+```
+
+The server will start at `http://localhost:3000`.
+
+## API Endpoints
+
+### POST /api/run-agent
+
+Run the agent with a simple conversation.
+
+**Request:**
+
+```json
+{
+ "agentId": "my_agent",
+ "threadId": "thread_123",
+ "messages": [
+ {
+ "id": "msg_1",
+ "role": "user",
+ "content": "Hello, how are you?"
+ }
+ ],
+ "context": {}
+}
+```
+
+**Response:** Server-Sent Events (SSE) stream with AG-UI protocol events.
+
+### POST /api/run-agent-with-tools
+
+Run the agent with predefined tools (calculator and weather).
+
+**Request:**
+
+```json
+{
+ "agentId": "my_agent",
+ "threadId": "thread_123",
+ "messages": [
+ {
+ "id": "msg_1",
+ "role": "user",
+ "content": "What is 42 + 58?"
+ }
+ ],
+ "context": {}
+}
+```
+
+### POST /api/cleanup
+
+Cleanup all sessions and resources.
+
+## Example Usage with curl
+
+```bash
+# Simple conversation
+curl -X POST http://localhost:3000/api/run-agent \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agentId": "test_agent",
+ "messages": [
+ {"id": "msg_1", "role": "user", "content": "Hello!"}
+ ],
+ "context": {}
+ }'
+
+# With tools
+curl -X POST http://localhost:3000/api/run-agent-with-tools \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agentId": "test_agent",
+ "messages": [
+ {"id": "msg_1", "role": "user", "content": "Calculate 15 + 27"}
+ ],
+ "context": {}
+ }'
+```
+
+## Features Demonstrated
+
+- **Server-Sent Events (SSE)**: Real-time streaming of agent responses
+- **Persistent Sessions**: Maintains conversation context across requests
+- **Tool Integration**: Example tools (calculator, weather)
+- **Error Handling**: Graceful error handling and reporting
+- **Graceful Shutdown**: Clean resource cleanup on server stop
+
+## Event Types
+
+The agent emits the following AG-UI protocol events:
+
+- `run_started`: Execution started
+- `text_message_start`: Text message begins
+- `text_message_content`: Streaming text content
+- `text_message_end`: Text message complete
+- `tool_call_start`: Tool call begins
+- `tool_call_args`: Tool arguments
+- `tool_call_end`: Tool call complete
+- `tool_call_result`: Tool execution result
+- `run_finished`: Execution complete
+- `run_error`: Error occurred
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/.gitignore b/integrations/claude-agent-sdk/typescript/examples/copilotkit/.gitignore
new file mode 100644
index 000000000..1403e903b
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/.gitignore
@@ -0,0 +1,36 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/README.md b/integrations/claude-agent-sdk/typescript/examples/copilotkit/README.md
new file mode 100644
index 000000000..b196ab54a
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/README.md
@@ -0,0 +1,131 @@
+# CopilotKit + Claude Agent SDK Integration Demo
+
+This example demonstrates how to integrate Claude Agent SDK into CopilotKit using AG-UI Protocol.
+
+## Architecture Diagram
+
+```
+┌─────────────────────────────────────┐
+│ CopilotKit Frontend (React/Next.js) │
+│ - CopilotChat UI │
+│ - Frontend Tools │
+└──────────────┬──────────────────────┘
+ │ HTTP/SSE
+ ↓
+┌─────────────────────────────────────┐
+│ CopilotKit Runtime (Next.js API) │
+│ - HttpAgent (@ag-ui/client) │
+│ - CopilotRuntime │
+└──────────────┬──────────────────────┘
+ │ AG-UI Protocol
+ ↓
+┌─────────────────────────────────────┐
+│ Claude Agent SDK Server (FastAPI) │
+│ - AG-UI Protocol Endpoint │
+│ - ClaudeAgent │
+└──────────────┬──────────────────────┘
+ │
+ ↓
+┌─────────────────────────────────────┐
+│ Claude Agent SDK (Python) │
+│ - ClaudeSDKClient │
+│ - Multi-turn Conversations │
+└─────────────────────────────────────┘
+```
+
+## Quick Start
+
+### 1. Start Claude Agent SDK Server
+
+In one terminal:
+
+```bash
+cd ../../python/examples/server
+python fastapi_server.py
+```
+
+The server will run at `http://localhost:8000/chat`.
+
+### 2. Install and Start CopilotKit Frontend
+
+In another terminal:
+
+```bash
+cd integrations/claude-agent-sdk/typescript/examples/copilotkit
+npm install
+npm run dev
+```
+
+The frontend will run at `http://localhost:3000`.
+
+### 3. Open Browser
+
+Visit `http://localhost:3000` to see the CopilotKit chat interface.
+
+## Features
+
+- ✅ **Persistent Conversations**: Uses `ClaudeSDKClient` to maintain conversation history
+- ✅ **Tool Support**: Claude can call frontend tools
+- ✅ **Streaming Responses**: Real-time streaming via Server-Sent Events
+- ✅ **Session Management**: Persistent sessions across multiple requests
+- ✅ **Full Features**: Supports interrupts, hooks, custom tools (when using `ClaudeSDKClient`)
+
+## Directory Structure
+
+```
+copilotkit/
+├── src/
+│ └── app/
+│ ├── api/
+│ │ └── copilotkit/
+│ │ └── route.ts # CopilotKit runtime endpoint
+│ ├── layout.tsx # Next.js layout
+│ ├── page.tsx # Frontend chat interface
+│ └── globals.css # Global styles
+├── package.json # Dependencies configuration
+├── tsconfig.json # TypeScript configuration
+├── next.config.js # Next.js configuration
+├── tailwind.config.js # Tailwind CSS configuration
+├── postcss.config.js # PostCSS configuration
+└── README.md # Detailed documentation
+```
+
+## How It Works
+
+### 1. Frontend (React + CopilotKit)
+
+`src/app/page.tsx` uses CopilotKit React components:
+- `CopilotKit`: Wraps the app and connects to runtime
+- `CopilotChat`: Provides chat UI
+- `useFrontendTool`: Defines frontend tools that Claude can call
+
+### 2. API Route (Next.js)
+
+`src/app/api/copilotkit/route.ts`:
+- Creates `HttpAgent` (from `@ag-ui/client`) pointing to Claude Agent SDK server
+- Wraps it in `CopilotRuntime`
+- Exposes POST endpoint that CopilotKit calls
+
+### 3. Backend (Claude Agent SDK)
+
+Claude Agent SDK server (`../../python/examples/server/fastapi_server.py`):
+- Handles AG-UI Protocol requests
+- Converts them to Claude Agent SDK calls
+- Returns AG-UI Protocol events
+- Supports CORS for frontend integration
+
+## Environment Variables
+
+- `CLAUDE_AGENT_URL`: URL of Claude Agent SDK server (default: `http://localhost:8000/chat`)
+
+## Troubleshooting
+
+1. **Connection Error**: Ensure Claude Agent SDK server is running on the correct port
+2. **CORS Issues**: FastAPI server includes CORS middleware. Edit `fastapi_server.py` if you need to add more origins
+3. **Agent Not Found**: Check if the agent ID (`agentic_chat`) in the frontend matches the one in the API route
+
+## References
+
+- [CopilotKit Documentation](https://docs.copilotkit.ai/adk/quickstart?path=exiting-agent)
+- [AG-UI Protocol Documentation](https://ag-ui-protocol.github.io/ag-ui/)
+- [Claude Agent SDK Documentation](https://docs.claude.com/api/agent-sdk/python)
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/next.config.js b/integrations/claude-agent-sdk/typescript/examples/copilotkit/next.config.js
new file mode 100644
index 000000000..3776bb093
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/next.config.js
@@ -0,0 +1,7 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ reactStrictMode: true,
+};
+
+module.exports = nextConfig;
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/package-lock.json b/integrations/claude-agent-sdk/typescript/examples/copilotkit/package-lock.json
new file mode 100644
index 000000000..9b6f59ca3
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/package-lock.json
@@ -0,0 +1,12917 @@
+{
+ "name": "claude-agent-sdk-copilotkit-demo",
+ "version": "0.1.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "claude-agent-sdk-copilotkit-demo",
+ "version": "0.1.0",
+ "dependencies": {
+ "@ag-ui/client": "^0.0.40",
+ "@copilotkit/react-core": "^1.10.6",
+ "@copilotkit/react-ui": "^1.10.6",
+ "@copilotkit/runtime": "^1.10.6",
+ "next": "^14.0.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
+ },
+ "devDependencies": {
+ "@types/node": "^20.0.0",
+ "@types/react": "^18.2.0",
+ "@types/react-dom": "^18.2.0",
+ "autoprefixer": "^10.4.16",
+ "postcss": "^8.4.32",
+ "tailwindcss": "^3.4.0",
+ "typescript": "^5.0.0"
+ }
+ },
+ "node_modules/@0no-co/graphql.web": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz",
+ "integrity": "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0"
+ },
+ "peerDependenciesMeta": {
+ "graphql": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@ag-ui/client": {
+ "version": "0.0.40",
+ "resolved": "https://registry.npmmirror.com/@ag-ui/client/-/client-0.0.40.tgz",
+ "integrity": "sha512-4ftyZgMN7DIAX64k7Mdex/KGq7lfz8yxEKzniqosD6TE/xk65k4Z0v3bxTzPk2iS2+Cj2uVBgFkb5lC7k5Loqg==",
+ "dependencies": {
+ "@ag-ui/core": "0.0.39",
+ "@ag-ui/encoder": "0.0.39",
+ "@ag-ui/proto": "0.0.39",
+ "@types/uuid": "^10.0.0",
+ "fast-json-patch": "^3.1.1",
+ "rxjs": "7.8.1",
+ "untruncate-json": "^0.0.1",
+ "uuid": "^11.1.0",
+ "zod": "^3.22.4"
+ }
+ },
+ "node_modules/@ag-ui/core": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmmirror.com/@ag-ui/core/-/core-0.0.39.tgz",
+ "integrity": "sha512-T5Hp4oFkQ+H5MynWAvSwrX/rNYJOD+PJ4qPQ0o771oSZQAxoIvDDft47Cx5wRyBNNLXAe1RWqJjfWUUwJFNKqA==",
+ "dependencies": {
+ "rxjs": "7.8.1",
+ "zod": "^3.22.4"
+ }
+ },
+ "node_modules/@ag-ui/encoder": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmmirror.com/@ag-ui/encoder/-/encoder-0.0.39.tgz",
+ "integrity": "sha512-6fsoFwPWkStK7Uyj3pwBn7+aQjUWf7pbDTSI43cD53sBLvTr5oEFNnoKOzRfC5UqvHc4JjUIuLKPQyjHRwWg4g==",
+ "dependencies": {
+ "@ag-ui/core": "0.0.39",
+ "@ag-ui/proto": "0.0.39"
+ }
+ },
+ "node_modules/@ag-ui/langgraph": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmmirror.com/@ag-ui/langgraph/-/langgraph-0.0.18.tgz",
+ "integrity": "sha512-soWSV8+xR91jMArZUJoRv85UCgTi3Zt3u3gTMZhvs1t6fGFpAi6+hEQ4AqP13Rgvg90IlmIU8MTWo2k0OZDnoA==",
+ "peer": true,
+ "dependencies": {
+ "@langchain/core": "^0.3.66",
+ "@langchain/langgraph-sdk": "^0.1.2",
+ "partial-json": "^0.1.7",
+ "rxjs": "7.8.1"
+ },
+ "peerDependencies": {
+ "@ag-ui/client": ">=0.0.38",
+ "@ag-ui/core": ">=0.0.38"
+ }
+ },
+ "node_modules/@ag-ui/proto": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmmirror.com/@ag-ui/proto/-/proto-0.0.39.tgz",
+ "integrity": "sha512-xlj/PzZHkJ3CgoQC5QP9g7DEl/78wUK1+A2rdkoLKoNAMOkM2g6jKw0N88iFIh5GZhtiCNN2wb8XwRWPYx9XQQ==",
+ "dependencies": {
+ "@ag-ui/core": "0.0.39",
+ "@bufbuild/protobuf": "^2.2.5",
+ "@protobuf-ts/protoc": "^2.11.1"
+ }
+ },
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@anthropic-ai/sdk": {
+ "version": "0.57.0",
+ "resolved": "https://registry.npmmirror.com/@anthropic-ai/sdk/-/sdk-0.57.0.tgz",
+ "integrity": "sha512-z5LMy0MWu0+w2hflUgj4RlJr1R+0BxKXL7ldXTO8FasU8fu599STghO+QKwId2dAD0d464aHtU+ChWuRHw4FNw==",
+ "license": "MIT",
+ "bin": {
+ "anthropic-ai-sdk": "bin/cli"
+ }
+ },
+ "node_modules/@aws-crypto/crc32": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz",
+ "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@aws-crypto/util": "^3.0.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^1.11.1"
+ }
+ },
+ "node_modules/@aws-crypto/crc32/node_modules/@aws-crypto/util": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/util/-/util-3.0.0.tgz",
+ "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@aws-sdk/types": "^3.222.0",
+ "@aws-sdk/util-utf8-browser": "^3.0.0",
+ "tslib": "^1.11.1"
+ }
+ },
+ "node_modules/@aws-crypto/crc32/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD",
+ "optional": true,
+ "peer": true
+ },
+ "node_modules/@aws-crypto/sha256-browser": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz",
+ "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-js": "^5.2.0",
+ "@aws-crypto/supports-web-crypto": "^5.2.0",
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "@aws-sdk/util-locate-window": "^3.0.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/sha256-js": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz",
+ "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@aws-crypto/supports-web-crypto": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz",
+ "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-crypto/util": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/util/-/util-5.2.0.tgz",
+ "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "^3.222.0",
+ "@smithy/util-utf8": "^2.0.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-sdk/client-bedrock-agent-runtime": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/client-bedrock-agent-runtime/-/client-bedrock-agent-runtime-3.921.0.tgz",
+ "integrity": "sha512-nK97vLzXZoLZLfJKq19F0Y35a5YMHNst3AlAo3KMfsRDbe3uctsgjv0Xtib/PuED4x8mcy2RpmqvzmHTFry5TA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/credential-provider-node": "3.921.0",
+ "@aws-sdk/middleware-host-header": "3.921.0",
+ "@aws-sdk/middleware-logger": "3.921.0",
+ "@aws-sdk/middleware-recursion-detection": "3.921.0",
+ "@aws-sdk/middleware-user-agent": "3.921.0",
+ "@aws-sdk/region-config-resolver": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/util-endpoints": "3.921.0",
+ "@aws-sdk/util-user-agent-browser": "3.921.0",
+ "@aws-sdk/util-user-agent-node": "3.921.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/eventstream-serde-browser": "^4.2.4",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.4",
+ "@smithy/eventstream-serde-node": "^4.2.4",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-bedrock-agent-runtime/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-bedrock-agent-runtime/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-bedrock-runtime": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/client-bedrock-runtime/-/client-bedrock-runtime-3.921.0.tgz",
+ "integrity": "sha512-FWOcHJj2li0TvGYYFLxJBVrz/dpInWHk+d1gonEG+YAiG1TPS5bxOQVQPj6o4IclwwaFM3MTzzHw4BMlwTc5NQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/credential-provider-node": "3.921.0",
+ "@aws-sdk/eventstream-handler-node": "3.921.0",
+ "@aws-sdk/middleware-eventstream": "3.921.0",
+ "@aws-sdk/middleware-host-header": "3.921.0",
+ "@aws-sdk/middleware-logger": "3.921.0",
+ "@aws-sdk/middleware-recursion-detection": "3.921.0",
+ "@aws-sdk/middleware-user-agent": "3.921.0",
+ "@aws-sdk/middleware-websocket": "3.921.0",
+ "@aws-sdk/region-config-resolver": "3.921.0",
+ "@aws-sdk/token-providers": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/util-endpoints": "3.921.0",
+ "@aws-sdk/util-user-agent-browser": "3.921.0",
+ "@aws-sdk/util-user-agent-node": "3.921.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/eventstream-serde-browser": "^4.2.4",
+ "@smithy/eventstream-serde-config-resolver": "^4.3.4",
+ "@smithy/eventstream-serde-node": "^4.2.4",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-stream": "^4.5.5",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-bedrock-runtime/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-kendra": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/client-kendra/-/client-kendra-3.921.0.tgz",
+ "integrity": "sha512-/8D1OneFcZy6Dtylyg2vT9u6vd2lSH/cxZl3+Fq646I3xnGoHzKWrGEb5FWxafpSNYlYuuavFGZQHhWnhJW5cw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/credential-provider-node": "3.921.0",
+ "@aws-sdk/middleware-host-header": "3.921.0",
+ "@aws-sdk/middleware-logger": "3.921.0",
+ "@aws-sdk/middleware-recursion-detection": "3.921.0",
+ "@aws-sdk/middleware-user-agent": "3.921.0",
+ "@aws-sdk/region-config-resolver": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/util-endpoints": "3.921.0",
+ "@aws-sdk/util-user-agent-browser": "3.921.0",
+ "@aws-sdk/util-user-agent-node": "3.921.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-kendra/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-kendra/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sso": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/client-sso/-/client-sso-3.921.0.tgz",
+ "integrity": "sha512-qWyT7WikdkPRAMuWidZ2l8jcQAPwNjvLcFZ/8K+oCAaMLt0LKLd7qeTwZ5tZFNqRNPXKfE8MkvAjyqSpE3i2yg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/middleware-host-header": "3.921.0",
+ "@aws-sdk/middleware-logger": "3.921.0",
+ "@aws-sdk/middleware-recursion-detection": "3.921.0",
+ "@aws-sdk/middleware-user-agent": "3.921.0",
+ "@aws-sdk/region-config-resolver": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/util-endpoints": "3.921.0",
+ "@aws-sdk/util-user-agent-browser": "3.921.0",
+ "@aws-sdk/util-user-agent-node": "3.921.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sso/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/client-sso/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/core": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/core/-/core-3.921.0.tgz",
+ "integrity": "sha512-1eiD9ZO9cvEHdQUn/pwJVGN9LXg6D0O7knGVA0TA/v7nFSYy0n8RYG8vdnlcoYYnV1BcHgaf4KmRVMOszafNZQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/xml-builder": "3.921.0",
+ "@smithy/core": "^3.17.2",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/signature-v4": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/core/node_modules/@smithy/is-array-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
+ "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/core/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/core/node_modules/@smithy/signature-v4": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-5.3.4.tgz",
+ "integrity": "sha512-ScDCpasxH7w1HXHYbtk3jcivjvdA1VICyAdgvVqKhKKwxi+MTwZEqFw0minE+oZ7F07oF25xh4FGJxgqgShz0A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/core/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-env": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.921.0.tgz",
+ "integrity": "sha512-RGG+zZdOYGJBQ8+L7BI6v41opoF8knErMtBZAUGcD3gvWEhjatc7lSbIpBeYWbTaWPPLHQU+ZVbmQ/jRLBgefw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-http": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.921.0.tgz",
+ "integrity": "sha512-TAv08Ow0oF/olV4DTLoPDj46KMk35bL1IUCfToESDrWk1TOSur7d4sCL0p/7dUsAxS244cEgeyIIijKNtxj2AA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-stream": "^4.5.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-http/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-ini": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.921.0.tgz",
+ "integrity": "sha512-MUSRYGiMRq5NRGPRgJ7Nuh7GqXzE9iteAwdbzMJ4pnImgr7CjeWDihCIGk+gKLSG+NoRVVJM0V9PA4rxFir0Pg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/credential-provider-env": "3.921.0",
+ "@aws-sdk/credential-provider-http": "3.921.0",
+ "@aws-sdk/credential-provider-process": "3.921.0",
+ "@aws-sdk/credential-provider-sso": "3.921.0",
+ "@aws-sdk/credential-provider-web-identity": "3.921.0",
+ "@aws-sdk/nested-clients": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/credential-provider-imds": "^4.2.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-node": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.921.0.tgz",
+ "integrity": "sha512-bxUAqRyo49WzKWn/XS0d8QXT9GydY/ew5m58PYfSMwYfmwBZXx1GLSWe3tZnefm6santFiqmIWfMmeRWdygKmQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/credential-provider-env": "3.921.0",
+ "@aws-sdk/credential-provider-http": "3.921.0",
+ "@aws-sdk/credential-provider-ini": "3.921.0",
+ "@aws-sdk/credential-provider-process": "3.921.0",
+ "@aws-sdk/credential-provider-sso": "3.921.0",
+ "@aws-sdk/credential-provider-web-identity": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/credential-provider-imds": "^4.2.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-process": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.921.0.tgz",
+ "integrity": "sha512-DM62ooWI/aZ+ENBcLszuKmOkiICf6p4vYO2HgA3Cy2OEsTsjb67NEcntksxpZkD3mSIrCy/Qi4Z7tc77gle2Nw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-sso": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.921.0.tgz",
+ "integrity": "sha512-Nh5jPJ6Y6nu3cHzZnq394lGXE5YO8Szke5zlATbNI7Tl0QJR65GE0IZsBcjzRMGpYX6ENCqPDK8FmklkmCYyVQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/client-sso": "3.921.0",
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/token-providers": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/credential-provider-web-identity": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.921.0.tgz",
+ "integrity": "sha512-VWcbgB2/shPPK674roHV4s8biCtvn0P/05EbTqy9WeyM5Oblx291gRGccyDhQbJbOL/6diRPBM08tlKPlBKNfw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/nested-clients": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/eventstream-handler-node": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/eventstream-handler-node/-/eventstream-handler-node-3.921.0.tgz",
+ "integrity": "sha512-wgvhLaUpJv0h9WJFTvIJVmxtCWAeHZhk6VU3HCGwWSOAcBiiGbsFt8bMZ7SE6aAMoLYQQLblxS3yqLSiiw8ZXw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/eventstream-codec": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/eventstream-handler-node/node_modules/@aws-crypto/crc32": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
+ "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/eventstream-handler-node/node_modules/@smithy/eventstream-codec": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.4.tgz",
+ "integrity": "sha512-aV8blR9RBDKrOlZVgjOdmOibTC2sBXNiT7WA558b4MPdsLTV6sbyc1WIE9QiIuYMJjYtnPLciefoqSW8Gi+MZQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/crc32": "5.2.0",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-eventstream": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-eventstream/-/middleware-eventstream-3.921.0.tgz",
+ "integrity": "sha512-5i+YdW5L4UA/jOhrprtkgJvQTBsI3ltJsua5NMpTcFYQhOXmt//1UizhspruSSH/xF9K/b4TU83fljOX7R4vzw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-eventstream/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-host-header": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.921.0.tgz",
+ "integrity": "sha512-eX1Ka29XzuEcXG4YABTwyLtPLchjmcjSjaq4irKJTFkxSYzX7gjoKt18rh/ZzOWOSqi23+cpjvBacL4VBKvE2Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-host-header/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-logger": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-logger/-/middleware-logger-3.921.0.tgz",
+ "integrity": "sha512-14Qqp8wisKGj/2Y22OfO5jTBG5Xez+p3Zr2piAtz7AcbY8vBEoZbd6f+9lwwVFC73Aobkau223wzKbGT8HYQMw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-recursion-detection": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.921.0.tgz",
+ "integrity": "sha512-MYU5oI2b97M7u1dC1nt7SiGEvvLrQDlzV6hq9CB5TYX2glgbyvkaS//1Tjm87VF6qVSf5jYfwFDPeFGd8O1NrQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@aws/lambda-invoke-store": "^0.1.1",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-recursion-detection/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-user-agent": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.921.0.tgz",
+ "integrity": "sha512-gXgokMBTPZAbQMm1+JOxItqA81aSFK6n7V2mAwxdmHjzCUZacX5RzkVPNbSaPPgDkroYnIzK09EusIpM6dLaqw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/util-endpoints": "3.921.0",
+ "@smithy/core": "^3.17.2",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-user-agent/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-websocket": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/middleware-websocket/-/middleware-websocket-3.921.0.tgz",
+ "integrity": "sha512-MjA5JhLSm7umZqy9BiStmDSqxp/9dyleVo2H62y0kYypUZwyIEC0+NbyUzrxTX9QmAM8ZC44fUBvKmikGKyRHA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/util-format-url": "3.921.0",
+ "@smithy/eventstream-codec": "^4.2.4",
+ "@smithy/eventstream-serde-browser": "^4.2.4",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/signature-v4": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-websocket/node_modules/@aws-crypto/crc32": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
+ "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-websocket/node_modules/@smithy/eventstream-codec": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.4.tgz",
+ "integrity": "sha512-aV8blR9RBDKrOlZVgjOdmOibTC2sBXNiT7WA558b4MPdsLTV6sbyc1WIE9QiIuYMJjYtnPLciefoqSW8Gi+MZQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/crc32": "5.2.0",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-websocket/node_modules/@smithy/is-array-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
+ "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-websocket/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-websocket/node_modules/@smithy/signature-v4": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-5.3.4.tgz",
+ "integrity": "sha512-ScDCpasxH7w1HXHYbtk3jcivjvdA1VICyAdgvVqKhKKwxi+MTwZEqFw0minE+oZ7F07oF25xh4FGJxgqgShz0A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^4.2.0",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/middleware-websocket/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/nested-clients": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/nested-clients/-/nested-clients-3.921.0.tgz",
+ "integrity": "sha512-GV9aV8WqH/EWo4x3T5BrYb2ph1yfYuzUXZc0hhvxbFbDKD8m2fX9menao3Mgm7E5C68Su392u+MD9SGmGCmfKQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/sha256-browser": "5.2.0",
+ "@aws-crypto/sha256-js": "5.2.0",
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/middleware-host-header": "3.921.0",
+ "@aws-sdk/middleware-logger": "3.921.0",
+ "@aws-sdk/middleware-recursion-detection": "3.921.0",
+ "@aws-sdk/middleware-user-agent": "3.921.0",
+ "@aws-sdk/region-config-resolver": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@aws-sdk/util-endpoints": "3.921.0",
+ "@aws-sdk/util-user-agent-browser": "3.921.0",
+ "@aws-sdk/util-user-agent-node": "3.921.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/core": "^3.17.2",
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/hash-node": "^4.2.4",
+ "@smithy/invalid-dependency": "^4.2.4",
+ "@smithy/middleware-content-length": "^4.2.4",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-retry": "^4.4.6",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-body-length-node": "^4.2.1",
+ "@smithy/util-defaults-mode-browser": "^4.3.5",
+ "@smithy/util-defaults-mode-node": "^4.2.7",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/nested-clients/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/nested-clients/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/region-config-resolver": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.921.0.tgz",
+ "integrity": "sha512-cSycw4wXcvsrssUdcEaeYQhQcZYVsBwHtgATh9HcIm01PrMV0lV71vcoyZ+9vUhwHwchRT6dItAyTHSQxwjvjg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/token-providers": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/token-providers/-/token-providers-3.921.0.tgz",
+ "integrity": "sha512-d+w6X7ykqXirFBF+dYyK5Ntw0KmO2sgMj+JLR/vAe1vaR8/Fuqs3yOAFU7yNEzpcnbLJmMznxKpht03CSEMh4Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/core": "3.921.0",
+ "@aws-sdk/nested-clients": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/types": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/types/-/types-3.921.0.tgz",
+ "integrity": "sha512-mqEG8+vFh5w0ZZC+R8VCOdSk998Hy93pIDuwYpfMAWgYwVhFaIMOLn1fZw0w2DhTs5+ONHHwMJ6uVXtuuqOLQQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-endpoints": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/util-endpoints/-/util-endpoints-3.921.0.tgz",
+ "integrity": "sha512-kuJYRqug6V8gOg401BuK4w4IAVO3575VDR8iYiFw0gPwNIfOXvdlChfsJQoREqwJfif45J4eSmUsFtMfx87BQg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-endpoints": "^3.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-format-url": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/util-format-url/-/util-format-url-3.921.0.tgz",
+ "integrity": "sha512-ubU5/w/LERnELxgUKGQcVBlbcZaKGnCM9yuNqRuOuQeOKn+O6TLtFLxafrAcO0Ss1vwhoG5LEELFIykjE0soWQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/querystring-builder": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-locate-window": {
+ "version": "3.893.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/util-locate-window/-/util-locate-window-3.893.0.tgz",
+ "integrity": "sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws-sdk/util-user-agent-browser": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.921.0.tgz",
+ "integrity": "sha512-buhv/ICWr4Nt8bquHOejCiVikBsfEYw4/HSc9U050QebRXIakt50zKYaWDQw4iCMeeqCiwE9mElEaXJAysythg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/types": "^4.8.1",
+ "bowser": "^2.11.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@aws-sdk/util-user-agent-node": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.921.0.tgz",
+ "integrity": "sha512-Ilftai6AMAU1cEaUqIiTxkyj1NupLhP9Eq8HRfVuIH8489J2wLCcOyiLklAgSzBNmrxW+fagxkY+Dg0lFwmcVA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-sdk/middleware-user-agent": "3.921.0",
+ "@aws-sdk/types": "3.921.0",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "aws-crt": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws-crt": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@aws-sdk/util-utf8-browser": {
+ "version": "3.259.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz",
+ "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@aws-sdk/xml-builder": {
+ "version": "3.921.0",
+ "resolved": "https://registry.npmmirror.com/@aws-sdk/xml-builder/-/xml-builder-3.921.0.tgz",
+ "integrity": "sha512-LVHg0jgjyicKKvpNIEMXIMr1EBViESxcPkqfOlT+X1FkmUMTNZEEVF18tOJg4m4hV5vxtkWcqtr4IEeWa1C41Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "fast-xml-parser": "5.2.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@aws/lambda-invoke-store": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.1.1.tgz",
+ "integrity": "sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.4.tgz",
+ "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@browserbasehq/sdk": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmmirror.com/@browserbasehq/sdk/-/sdk-2.6.0.tgz",
+ "integrity": "sha512-83iXP5D7xMm8Wyn66TUaUrgoByCmAJuoMoZQI3sGg3JAiMlTfnCIMqyVBoNSaItaPIkaCnrsj6LiusmXV2X9YA==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "@types/node": "^18.11.18",
+ "@types/node-fetch": "^2.6.4",
+ "abort-controller": "^3.0.0",
+ "agentkeepalive": "^4.2.1",
+ "form-data-encoder": "1.7.2",
+ "formdata-node": "^4.3.2",
+ "node-fetch": "^2.6.7"
+ }
+ },
+ "node_modules/@browserbasehq/sdk/node_modules/@types/node": {
+ "version": "18.19.130",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.130.tgz",
+ "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@browserbasehq/sdk/node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@browserbasehq/stagehand": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmmirror.com/@browserbasehq/stagehand/-/stagehand-1.14.0.tgz",
+ "integrity": "sha512-Hi/EzgMFWz+FKyepxHTrqfTPjpsuBS4zRy3e9sbMpBgLPv+9c0R+YZEvS7Bw4mTS66QtvvURRT6zgDGFotthVQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@anthropic-ai/sdk": "^0.27.3",
+ "@browserbasehq/sdk": "^2.0.0",
+ "ws": "^8.18.0",
+ "zod-to-json-schema": "^3.23.5"
+ },
+ "peerDependencies": {
+ "@playwright/test": "^1.42.1",
+ "deepmerge": "^4.3.1",
+ "dotenv": "^16.4.5",
+ "openai": "^4.62.1",
+ "zod": "^3.23.8"
+ }
+ },
+ "node_modules/@browserbasehq/stagehand/node_modules/@anthropic-ai/sdk": {
+ "version": "0.27.3",
+ "resolved": "https://registry.npmmirror.com/@anthropic-ai/sdk/-/sdk-0.27.3.tgz",
+ "integrity": "sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/node": "^18.11.18",
+ "@types/node-fetch": "^2.6.4",
+ "abort-controller": "^3.0.0",
+ "agentkeepalive": "^4.2.1",
+ "form-data-encoder": "1.7.2",
+ "formdata-node": "^4.3.2",
+ "node-fetch": "^2.6.7"
+ }
+ },
+ "node_modules/@browserbasehq/stagehand/node_modules/@types/node": {
+ "version": "18.19.130",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.130.tgz",
+ "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@browserbasehq/stagehand/node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@bufbuild/protobuf": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmmirror.com/@bufbuild/protobuf/-/protobuf-2.10.0.tgz",
+ "integrity": "sha512-fdRs9PSrBF7QUntpZpq6BTw58fhgGJojgg39m9oFOJGZT+nip9b0so5cYY1oWl5pvemDLr0cPPsH46vwThEbpQ==",
+ "license": "(Apache-2.0 AND BSD-3-Clause)"
+ },
+ "node_modules/@cfworker/json-schema": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/@cfworker/json-schema/-/json-schema-4.1.1.tgz",
+ "integrity": "sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==",
+ "license": "MIT"
+ },
+ "node_modules/@copilotkit/react-core": {
+ "version": "1.10.6",
+ "resolved": "https://registry.npmmirror.com/@copilotkit/react-core/-/react-core-1.10.6.tgz",
+ "integrity": "sha512-sdojpntwgOxP8lWRzaFEiWr0g2wDefjQHtve5GPPie+otseFonV88FZjSqIq5LN+q5BIwDOEhCmDjALsGjXvuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@copilotkit/runtime-client-gql": "1.10.6",
+ "@copilotkit/shared": "1.10.6",
+ "@scarf/scarf": "^1.3.0",
+ "react-markdown": "^8.0.7",
+ "untruncate-json": "^0.0.1"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^18 || ^19 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/@copilotkit/react-ui": {
+ "version": "1.10.6",
+ "resolved": "https://registry.npmmirror.com/@copilotkit/react-ui/-/react-ui-1.10.6.tgz",
+ "integrity": "sha512-eNIbZKMvBVZqlAR4fqkmZRIYIt8WhwZOxfVJVwMD9nfmWdtatmxrOLecyDiPk/hkq2o/8s2/rubaZSMK6m+GHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@copilotkit/react-core": "1.10.6",
+ "@copilotkit/runtime-client-gql": "1.10.6",
+ "@copilotkit/shared": "1.10.6",
+ "@headlessui/react": "^2.1.3",
+ "react-markdown": "^10.1.0",
+ "react-syntax-highlighter": "^15.6.1",
+ "rehype-raw": "^7.0.0",
+ "remark-gfm": "^4.0.1",
+ "remark-math": "^6.0.0"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react": {
+ "version": "2.2.9",
+ "resolved": "https://registry.npmmirror.com/@headlessui/react/-/react-2.2.9.tgz",
+ "integrity": "sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react": "^0.26.16",
+ "@react-aria/focus": "^3.20.2",
+ "@react-aria/interactions": "^3.25.0",
+ "@tanstack/react-virtual": "^3.13.9",
+ "use-sync-external-store": "^1.5.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^18 || ^19 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react/node_modules/@floating-ui/react": {
+ "version": "0.26.28",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/react/-/react-0.26.28.tgz",
+ "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.1.2",
+ "@floating-ui/utils": "^0.2.8",
+ "tabbable": "^6.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react/node_modules/@floating-ui/react/node_modules/@floating-ui/react-dom": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-2.1.6.tgz",
+ "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.7.4"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react/node_modules/@react-aria/focus": {
+ "version": "3.21.2",
+ "resolved": "https://registry.npmmirror.com/@react-aria/focus/-/focus-3.21.2.tgz",
+ "integrity": "sha512-JWaCR7wJVggj+ldmM/cb/DXFg47CXR55lznJhZBh4XVqJjMKwaOOqpT5vNN7kpC1wUpXicGNuDnJDN1S/+6dhQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/interactions": "^3.25.6",
+ "@react-aria/utils": "^3.31.0",
+ "@react-types/shared": "^3.32.1",
+ "@swc/helpers": "^0.5.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react/node_modules/@react-aria/focus/node_modules/@react-aria/utils": {
+ "version": "3.31.0",
+ "resolved": "https://registry.npmmirror.com/@react-aria/utils/-/utils-3.31.0.tgz",
+ "integrity": "sha512-ABOzCsZrWzf78ysswmguJbx3McQUja7yeGj6/vZo4JVsZNlxAN+E9rs381ExBRI0KzVo6iBTeX5De8eMZPJXig==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/ssr": "^3.9.10",
+ "@react-stately/flags": "^3.1.2",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.1",
+ "@swc/helpers": "^0.5.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react/node_modules/@react-aria/interactions": {
+ "version": "3.25.6",
+ "resolved": "https://registry.npmmirror.com/@react-aria/interactions/-/interactions-3.25.6.tgz",
+ "integrity": "sha512-5UgwZmohpixwNMVkMvn9K1ceJe6TzlRlAfuYoQDUuOkk62/JVJNDLAPKIf5YMRc7d2B0rmfgaZLMtbREb0Zvkw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/ssr": "^3.9.10",
+ "@react-aria/utils": "^3.31.0",
+ "@react-stately/flags": "^3.1.2",
+ "@react-types/shared": "^3.32.1",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react/node_modules/@react-aria/interactions/node_modules/@react-aria/utils": {
+ "version": "3.31.0",
+ "resolved": "https://registry.npmmirror.com/@react-aria/utils/-/utils-3.31.0.tgz",
+ "integrity": "sha512-ABOzCsZrWzf78ysswmguJbx3McQUja7yeGj6/vZo4JVsZNlxAN+E9rs381ExBRI0KzVo6iBTeX5De8eMZPJXig==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/ssr": "^3.9.10",
+ "@react-stately/flags": "^3.1.2",
+ "@react-stately/utils": "^3.10.8",
+ "@react-types/shared": "^3.32.1",
+ "@swc/helpers": "^0.5.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@headlessui/react/node_modules/@tanstack/react-virtual": {
+ "version": "3.13.12",
+ "resolved": "https://registry.npmmirror.com/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz",
+ "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/virtual-core": "3.13.12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/react-markdown": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/react-markdown/-/react-markdown-10.1.0.tgz",
+ "integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "hast-util-to-jsx-runtime": "^2.0.0",
+ "html-url-attributes": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-rehype": "^11.0.0",
+ "unified": "^11.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18",
+ "react": ">=18"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/remark-rehype": {
+ "version": "11.1.2",
+ "resolved": "https://registry.npmmirror.com/remark-rehype/-/remark-rehype-11.1.2.tgz",
+ "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmmirror.com/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@copilotkit/react-ui/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@copilotkit/runtime": {
+ "version": "1.10.6",
+ "resolved": "https://registry.npmmirror.com/@copilotkit/runtime/-/runtime-1.10.6.tgz",
+ "integrity": "sha512-35MdJ6nutC+spgHRJURbanLxBoQCNvVBYD0CBIk4Rv3/Ck8XgZA4lcc+5aGteuERXOPBsYEQjGD4xEPy3QXmGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@anthropic-ai/sdk": "^0.57.0",
+ "@copilotkit/shared": "1.10.6",
+ "@graphql-yoga/plugin-defer-stream": "^3.3.1",
+ "@langchain/aws": "^0.1.9",
+ "@langchain/community": "^0.3.29",
+ "@langchain/core": "^0.3.38",
+ "@langchain/google-gauth": "^0.1.0",
+ "@langchain/langgraph-sdk": "^0.0.70",
+ "@langchain/openai": "^0.4.2",
+ "@scarf/scarf": "^1.3.0",
+ "class-transformer": "^0.5.1",
+ "class-validator": "^0.14.1",
+ "express": "^4.19.2",
+ "graphql": "^16.8.1",
+ "graphql-scalars": "^1.23.0",
+ "graphql-yoga": "^5.3.1",
+ "groq-sdk": "^0.5.0",
+ "langchain": "^0.3.3",
+ "openai": "^4.85.1",
+ "partial-json": "^0.1.7",
+ "pino": "^9.2.0",
+ "pino-pretty": "^11.2.1",
+ "reflect-metadata": "^0.2.2",
+ "rxjs": "7.8.1",
+ "type-graphql": "2.0.0-rc.1",
+ "zod": "^3.23.3"
+ },
+ "peerDependencies": {
+ "@ag-ui/client": ">=0.0.39",
+ "@ag-ui/core": ">=0.0.39",
+ "@ag-ui/encoder": ">=0.0.39",
+ "@ag-ui/langgraph": ">=0.0.18",
+ "@ag-ui/proto": ">=0.0.39"
+ }
+ },
+ "node_modules/@copilotkit/runtime-client-gql": {
+ "version": "1.10.6",
+ "resolved": "https://registry.npmmirror.com/@copilotkit/runtime-client-gql/-/runtime-client-gql-1.10.6.tgz",
+ "integrity": "sha512-oLX8mjppVvQCWfquW9A0500hYVNxM4X/mtt76SEvfGUb2KsNQ4j2HOCzpmtm85MeLproC+f9738wLwRueLliZg==",
+ "license": "MIT",
+ "dependencies": {
+ "@copilotkit/shared": "1.10.6",
+ "@urql/core": "^5.0.3",
+ "untruncate-json": "^0.0.1",
+ "urql": "^4.1.0"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/@copilotkit/runtime/node_modules/@langchain/langgraph-sdk": {
+ "version": "0.0.70",
+ "resolved": "https://registry.npmmirror.com/@langchain/langgraph-sdk/-/langgraph-sdk-0.0.70.tgz",
+ "integrity": "sha512-O8I12bfeMVz5fOrXnIcK4IdRf50IqyJTO458V56wAIHLNoi4H8/JHM+2M+Y4H2PtslXIGnvomWqlBd0eY5z/Og==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15",
+ "p-queue": "^6.6.2",
+ "p-retry": "4",
+ "uuid": "^9.0.0"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.2.31 <0.4.0",
+ "react": "^18 || ^19"
+ },
+ "peerDependenciesMeta": {
+ "@langchain/core": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@copilotkit/runtime/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@copilotkit/shared": {
+ "version": "1.10.6",
+ "resolved": "https://registry.npmmirror.com/@copilotkit/shared/-/shared-1.10.6.tgz",
+ "integrity": "sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@ag-ui/core": "^0.0.37",
+ "@segment/analytics-node": "^2.1.2",
+ "chalk": "4.1.2",
+ "graphql": "^16.8.1",
+ "uuid": "^10.0.0",
+ "zod": "^3.23.3",
+ "zod-to-json-schema": "^3.23.5"
+ }
+ },
+ "node_modules/@copilotkit/shared/node_modules/@ag-ui/core": {
+ "version": "0.0.37",
+ "resolved": "https://registry.npmmirror.com/@ag-ui/core/-/core-0.0.37.tgz",
+ "integrity": "sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==",
+ "dependencies": {
+ "rxjs": "7.8.1",
+ "zod": "^3.22.4"
+ }
+ },
+ "node_modules/@copilotkit/shared/node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@envelop/core": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/@envelop/core/-/core-5.3.2.tgz",
+ "integrity": "sha512-06Mu7fmyKzk09P2i2kHpGfItqLLgCq7uO5/nX4fc/iHMplWPNuAx4iYR+WXUQoFHDnP6EUbceQNQ5iyeMz9f3g==",
+ "license": "MIT",
+ "dependencies": {
+ "@envelop/instrumentation": "^1.0.0",
+ "@envelop/types": "^5.2.1",
+ "@whatwg-node/promise-helpers": "^1.2.4",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@envelop/instrumentation": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/@envelop/instrumentation/-/instrumentation-1.0.0.tgz",
+ "integrity": "sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==",
+ "license": "MIT",
+ "dependencies": {
+ "@whatwg-node/promise-helpers": "^1.2.1",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@envelop/types": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/@envelop/types/-/types-5.2.1.tgz",
+ "integrity": "sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==",
+ "license": "MIT",
+ "dependencies": {
+ "@whatwg-node/promise-helpers": "^1.0.0",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@fastify/busboy": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/@fastify/busboy/-/busboy-3.2.0.tgz",
+ "integrity": "sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==",
+ "license": "MIT"
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.7.3.tgz",
+ "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.10"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.7.4.tgz",
+ "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.7.3",
+ "@floating-ui/utils": "^0.2.10"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.10.tgz",
+ "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==",
+ "license": "MIT"
+ },
+ "node_modules/@graphql-tools/executor": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmmirror.com/@graphql-tools/executor/-/executor-1.4.10.tgz",
+ "integrity": "sha512-/o7QScMdJpx/qIJlQcYs9ohB2qU2jSpuMyPStQy30kKTLHKyMETWpbljvRsuQxHJ2MJmEF3bYZgBHzdNAQHhug==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-tools/utils": "^10.10.0",
+ "@graphql-typed-document-node/core": "^3.2.0",
+ "@repeaterjs/repeater": "^3.0.4",
+ "@whatwg-node/disposablestack": "^0.0.6",
+ "@whatwg-node/promise-helpers": "^1.0.0",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-tools/merge": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmmirror.com/@graphql-tools/merge/-/merge-9.1.2.tgz",
+ "integrity": "sha512-Ny9YhWKv+KxZFdXYt+wlyEW55GzhFiq4daV4wYgpP0aRbwQaczNJd1L3VjjBsPKjmW8lctZXUoqYTqU5QPcBGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-tools/utils": "^10.10.0",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-tools/schema": {
+ "version": "10.0.26",
+ "resolved": "https://registry.npmmirror.com/@graphql-tools/schema/-/schema-10.0.26.tgz",
+ "integrity": "sha512-KOmjuiWa9poP/Lza4HV0ZBPYGJI3VE3QzXA/8e0+wjcsRuEmxMLP82re1PUg0QRzp2UzifAB/gd7DoXmVGG9Fg==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-tools/merge": "^9.1.2",
+ "@graphql-tools/utils": "^10.10.0",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-tools/utils": {
+ "version": "10.10.0",
+ "resolved": "https://registry.npmmirror.com/@graphql-tools/utils/-/utils-10.10.0.tgz",
+ "integrity": "sha512-OOeab5Y9qeKq0zfoJCSScMcDfGcIxp05+LW2xYVCS2l3su+K3lYcg5+cAAx9n0SFxpJl8zF5denq2QDsfM7NnQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.1.1",
+ "@whatwg-node/promise-helpers": "^1.0.0",
+ "cross-inspect": "1.0.1",
+ "dset": "^3.1.4",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-typed-document-node/core": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
+ "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/@graphql-yoga/logger": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/@graphql-yoga/logger/-/logger-2.0.1.tgz",
+ "integrity": "sha512-Nv0BoDGLMg9QBKy9cIswQ3/6aKaKjlTh87x3GiBg2Z4RrjyrM48DvOOK0pJh1C1At+b0mUIM67cwZcFTDLN4sA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@graphql-yoga/plugin-defer-stream": {
+ "version": "3.16.0",
+ "resolved": "https://registry.npmmirror.com/@graphql-yoga/plugin-defer-stream/-/plugin-defer-stream-3.16.0.tgz",
+ "integrity": "sha512-LGn8DSSIB4iWT/EgeXR+rIvl80LOlZqIZrnK4slNJLgnXyMyvXMSlIcE/NnzH4zQq1YRixZtshXNOtekrVH9+g==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-tools/utils": "^10.6.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^15.2.0 || ^16.0.0",
+ "graphql-yoga": "^5.16.0"
+ }
+ },
+ "node_modules/@graphql-yoga/subscription": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmmirror.com/@graphql-yoga/subscription/-/subscription-5.0.5.tgz",
+ "integrity": "sha512-oCMWOqFs6QV96/NZRt/ZhTQvzjkGB4YohBOpKM4jH/lDT4qb7Lex/aGCxpi/JD9njw3zBBtMqxbaC22+tFHVvw==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-yoga/typed-event-target": "^3.0.2",
+ "@repeaterjs/repeater": "^3.0.4",
+ "@whatwg-node/events": "^0.1.0",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@graphql-yoga/typed-event-target": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/@graphql-yoga/typed-event-target/-/typed-event-target-3.0.2.tgz",
+ "integrity": "sha512-ZpJxMqB+Qfe3rp6uszCQoag4nSw42icURnBRfFYSOmTgEeOe4rD0vYlbA8spvCu2TlCesNTlEN9BLWtQqLxabA==",
+ "license": "MIT",
+ "dependencies": {
+ "@repeaterjs/repeater": "^3.0.4",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@grpc/grpc-js": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmmirror.com/@grpc/grpc-js/-/grpc-js-1.14.0.tgz",
+ "integrity": "sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@grpc/proto-loader": "^0.8.0",
+ "@js-sdsl/ordered-map": "^4.4.2"
+ },
+ "engines": {
+ "node": ">=12.10.0"
+ }
+ },
+ "node_modules/@grpc/proto-loader": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmmirror.com/@grpc/proto-loader/-/proto-loader-0.8.0.tgz",
+ "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "lodash.camelcase": "^4.3.0",
+ "long": "^5.0.0",
+ "protobufjs": "^7.5.3",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@ibm-cloud/watsonx-ai": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmmirror.com/@ibm-cloud/watsonx-ai/-/watsonx-ai-1.7.2.tgz",
+ "integrity": "sha512-8NhBvyWoHM/UjOF2AZPqO1otu82lTA0su1VTsCIafC0G1+KW4uFGUIDjI2b/gJrIAtQy7c9so/fTERe/lCv3iw==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "@types/node": "^18.0.0",
+ "extend": "3.0.2",
+ "form-data": "^4.0.4",
+ "ibm-cloud-sdk-core": "^5.4.3"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@ibm-cloud/watsonx-ai/node_modules/@types/node": {
+ "version": "18.19.130",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.130.tgz",
+ "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@ibm-cloud/watsonx-ai/node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@js-sdsl/ordered-map": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmmirror.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "node_modules/@langchain/aws": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmmirror.com/@langchain/aws/-/aws-0.1.15.tgz",
+ "integrity": "sha512-oyOMhTHP0rxdSCVI/g5KXYCOs9Kq/FpXMZbOk1JSIUoaIzUg4p6d98lsHu7erW//8NSaT+SX09QRbVDAgt7pNA==",
+ "license": "MIT",
+ "dependencies": {
+ "@aws-sdk/client-bedrock-agent-runtime": "^3.755.0",
+ "@aws-sdk/client-bedrock-runtime": "^3.840.0",
+ "@aws-sdk/client-kendra": "^3.750.0",
+ "@aws-sdk/credential-provider-node": "^3.750.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.3.58 <0.4.0"
+ }
+ },
+ "node_modules/@langchain/community": {
+ "version": "0.3.57",
+ "resolved": "https://registry.npmmirror.com/@langchain/community/-/community-0.3.57.tgz",
+ "integrity": "sha512-xUe5UIlh1yZjt/cMtdSVlCoC5xm/RMN/rp+KZGLbquvjQeONmQ2rvpCqWjAOgQ6SPLqKiXvoXaKSm20r+LHISw==",
+ "license": "MIT",
+ "dependencies": {
+ "@langchain/openai": ">=0.2.0 <0.7.0",
+ "@langchain/weaviate": "^0.2.0",
+ "binary-extensions": "^2.2.0",
+ "expr-eval": "^2.0.2",
+ "flat": "^5.0.2",
+ "js-yaml": "^4.1.0",
+ "langchain": ">=0.2.3 <0.3.0 || >=0.3.4 <0.4.0",
+ "langsmith": "^0.3.67",
+ "uuid": "^10.0.0",
+ "zod": "^3.25.32"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@arcjet/redact": "^v1.0.0-alpha.23",
+ "@aws-crypto/sha256-js": "^5.0.0",
+ "@aws-sdk/client-bedrock-agent-runtime": "^3.749.0",
+ "@aws-sdk/client-bedrock-runtime": "^3.749.0",
+ "@aws-sdk/client-dynamodb": "^3.749.0",
+ "@aws-sdk/client-kendra": "^3.749.0",
+ "@aws-sdk/client-lambda": "^3.749.0",
+ "@aws-sdk/client-s3": "^3.749.0",
+ "@aws-sdk/client-sagemaker-runtime": "^3.749.0",
+ "@aws-sdk/client-sfn": "^3.749.0",
+ "@aws-sdk/credential-provider-node": "^3.388.0",
+ "@azure/search-documents": "^12.0.0",
+ "@azure/storage-blob": "^12.15.0",
+ "@browserbasehq/sdk": "*",
+ "@browserbasehq/stagehand": "^1.0.0",
+ "@clickhouse/client": "^0.2.5",
+ "@cloudflare/ai": "*",
+ "@datastax/astra-db-ts": "^1.0.0",
+ "@elastic/elasticsearch": "^8.4.0",
+ "@getmetal/metal-sdk": "*",
+ "@getzep/zep-cloud": "^1.0.6",
+ "@getzep/zep-js": "^0.9.0",
+ "@gomomento/sdk": "^1.51.1",
+ "@gomomento/sdk-core": "^1.51.1",
+ "@google-ai/generativelanguage": "*",
+ "@google-cloud/storage": "^6.10.1 || ^7.7.0",
+ "@gradientai/nodejs-sdk": "^1.2.0",
+ "@huggingface/inference": "^4.0.5",
+ "@huggingface/transformers": "^3.5.2",
+ "@ibm-cloud/watsonx-ai": "*",
+ "@lancedb/lancedb": "^0.19.1",
+ "@langchain/core": ">=0.3.58 <0.4.0",
+ "@layerup/layerup-security": "^1.5.12",
+ "@libsql/client": "^0.14.0",
+ "@mendable/firecrawl-js": "^1.4.3",
+ "@mlc-ai/web-llm": "*",
+ "@mozilla/readability": "*",
+ "@neondatabase/serverless": "*",
+ "@notionhq/client": "^2.2.10",
+ "@opensearch-project/opensearch": "*",
+ "@pinecone-database/pinecone": "*",
+ "@planetscale/database": "^1.8.0",
+ "@premai/prem-sdk": "^0.3.25",
+ "@qdrant/js-client-rest": "^1.15.0",
+ "@raycast/api": "^1.55.2",
+ "@rockset/client": "^0.9.1",
+ "@smithy/eventstream-codec": "^2.0.5",
+ "@smithy/protocol-http": "^3.0.6",
+ "@smithy/signature-v4": "^2.0.10",
+ "@smithy/util-utf8": "^2.0.0",
+ "@spider-cloud/spider-client": "^0.0.21",
+ "@supabase/supabase-js": "^2.45.0",
+ "@tensorflow-models/universal-sentence-encoder": "*",
+ "@tensorflow/tfjs-converter": "*",
+ "@tensorflow/tfjs-core": "*",
+ "@upstash/ratelimit": "^1.1.3 || ^2.0.3",
+ "@upstash/redis": "^1.20.6",
+ "@upstash/vector": "^1.1.1",
+ "@vercel/kv": "*",
+ "@vercel/postgres": "*",
+ "@writerai/writer-sdk": "^0.40.2",
+ "@xata.io/client": "^0.28.0",
+ "@zilliz/milvus2-sdk-node": ">=2.3.5",
+ "apify-client": "^2.7.1",
+ "assemblyai": "^4.6.0",
+ "azion": "^1.11.1",
+ "better-sqlite3": ">=9.4.0 <12.0.0",
+ "cassandra-driver": "^4.7.2",
+ "cborg": "^4.1.1",
+ "cheerio": "^1.0.0-rc.12",
+ "chromadb": "*",
+ "closevector-common": "0.1.3",
+ "closevector-node": "0.1.6",
+ "closevector-web": "0.1.6",
+ "cohere-ai": "*",
+ "convex": "^1.3.1",
+ "crypto-js": "^4.2.0",
+ "d3-dsv": "^2.0.0",
+ "discord.js": "^14.14.1",
+ "duck-duck-scrape": "^2.2.5",
+ "epub2": "^3.0.1",
+ "fast-xml-parser": "*",
+ "firebase-admin": "^11.9.0 || ^12.0.0 || ^13.0.0",
+ "google-auth-library": "*",
+ "googleapis": "*",
+ "hnswlib-node": "^3.0.0",
+ "html-to-text": "^9.0.5",
+ "ibm-cloud-sdk-core": "*",
+ "ignore": "^5.2.0",
+ "interface-datastore": "^8.2.11",
+ "ioredis": "^5.3.2",
+ "it-all": "^3.0.4",
+ "jsdom": "*",
+ "jsonwebtoken": "^9.0.2",
+ "llmonitor": "^0.5.9",
+ "lodash": "^4.17.21",
+ "lunary": "^0.7.10",
+ "mammoth": "^1.6.0",
+ "mariadb": "^3.4.0",
+ "mem0ai": "^2.1.8",
+ "mongodb": "^6.17.0",
+ "mysql2": "^3.9.8",
+ "neo4j-driver": "*",
+ "notion-to-md": "^3.1.0",
+ "officeparser": "^4.0.4",
+ "openai": "*",
+ "pdf-parse": "1.1.1",
+ "pg": "^8.11.0",
+ "pg-copy-streams": "^6.0.5",
+ "pickleparser": "^0.2.1",
+ "playwright": "^1.32.1",
+ "portkey-ai": "^0.1.11",
+ "puppeteer": "*",
+ "pyodide": ">=0.24.1 <0.27.0",
+ "redis": "*",
+ "replicate": "*",
+ "sonix-speech-recognition": "^2.1.1",
+ "srt-parser-2": "^1.2.3",
+ "typeorm": "^0.3.20",
+ "typesense": "^1.5.3",
+ "usearch": "^1.1.1",
+ "voy-search": "0.6.2",
+ "weaviate-client": "^3.5.2",
+ "web-auth-library": "^1.0.3",
+ "word-extractor": "*",
+ "ws": "^8.14.2",
+ "youtubei.js": "*"
+ },
+ "peerDependenciesMeta": {
+ "@arcjet/redact": {
+ "optional": true
+ },
+ "@aws-crypto/sha256-js": {
+ "optional": true
+ },
+ "@aws-sdk/client-bedrock-agent-runtime": {
+ "optional": true
+ },
+ "@aws-sdk/client-bedrock-runtime": {
+ "optional": true
+ },
+ "@aws-sdk/client-dynamodb": {
+ "optional": true
+ },
+ "@aws-sdk/client-kendra": {
+ "optional": true
+ },
+ "@aws-sdk/client-lambda": {
+ "optional": true
+ },
+ "@aws-sdk/client-s3": {
+ "optional": true
+ },
+ "@aws-sdk/client-sagemaker-runtime": {
+ "optional": true
+ },
+ "@aws-sdk/client-sfn": {
+ "optional": true
+ },
+ "@aws-sdk/credential-provider-node": {
+ "optional": true
+ },
+ "@aws-sdk/dsql-signer": {
+ "optional": true
+ },
+ "@azure/search-documents": {
+ "optional": true
+ },
+ "@azure/storage-blob": {
+ "optional": true
+ },
+ "@browserbasehq/sdk": {
+ "optional": true
+ },
+ "@clickhouse/client": {
+ "optional": true
+ },
+ "@cloudflare/ai": {
+ "optional": true
+ },
+ "@datastax/astra-db-ts": {
+ "optional": true
+ },
+ "@elastic/elasticsearch": {
+ "optional": true
+ },
+ "@getmetal/metal-sdk": {
+ "optional": true
+ },
+ "@getzep/zep-cloud": {
+ "optional": true
+ },
+ "@getzep/zep-js": {
+ "optional": true
+ },
+ "@gomomento/sdk": {
+ "optional": true
+ },
+ "@gomomento/sdk-core": {
+ "optional": true
+ },
+ "@google-ai/generativelanguage": {
+ "optional": true
+ },
+ "@google-cloud/storage": {
+ "optional": true
+ },
+ "@gradientai/nodejs-sdk": {
+ "optional": true
+ },
+ "@huggingface/inference": {
+ "optional": true
+ },
+ "@huggingface/transformers": {
+ "optional": true
+ },
+ "@lancedb/lancedb": {
+ "optional": true
+ },
+ "@layerup/layerup-security": {
+ "optional": true
+ },
+ "@libsql/client": {
+ "optional": true
+ },
+ "@mendable/firecrawl-js": {
+ "optional": true
+ },
+ "@mlc-ai/web-llm": {
+ "optional": true
+ },
+ "@mozilla/readability": {
+ "optional": true
+ },
+ "@neondatabase/serverless": {
+ "optional": true
+ },
+ "@notionhq/client": {
+ "optional": true
+ },
+ "@opensearch-project/opensearch": {
+ "optional": true
+ },
+ "@pinecone-database/pinecone": {
+ "optional": true
+ },
+ "@planetscale/database": {
+ "optional": true
+ },
+ "@premai/prem-sdk": {
+ "optional": true
+ },
+ "@qdrant/js-client-rest": {
+ "optional": true
+ },
+ "@raycast/api": {
+ "optional": true
+ },
+ "@rockset/client": {
+ "optional": true
+ },
+ "@smithy/eventstream-codec": {
+ "optional": true
+ },
+ "@smithy/protocol-http": {
+ "optional": true
+ },
+ "@smithy/signature-v4": {
+ "optional": true
+ },
+ "@smithy/util-utf8": {
+ "optional": true
+ },
+ "@spider-cloud/spider-client": {
+ "optional": true
+ },
+ "@supabase/supabase-js": {
+ "optional": true
+ },
+ "@tensorflow-models/universal-sentence-encoder": {
+ "optional": true
+ },
+ "@tensorflow/tfjs-converter": {
+ "optional": true
+ },
+ "@tensorflow/tfjs-core": {
+ "optional": true
+ },
+ "@upstash/ratelimit": {
+ "optional": true
+ },
+ "@upstash/redis": {
+ "optional": true
+ },
+ "@upstash/vector": {
+ "optional": true
+ },
+ "@vercel/kv": {
+ "optional": true
+ },
+ "@vercel/postgres": {
+ "optional": true
+ },
+ "@writerai/writer-sdk": {
+ "optional": true
+ },
+ "@xata.io/client": {
+ "optional": true
+ },
+ "@zilliz/milvus2-sdk-node": {
+ "optional": true
+ },
+ "apify-client": {
+ "optional": true
+ },
+ "assemblyai": {
+ "optional": true
+ },
+ "azion": {
+ "optional": true
+ },
+ "better-sqlite3": {
+ "optional": true
+ },
+ "cassandra-driver": {
+ "optional": true
+ },
+ "cborg": {
+ "optional": true
+ },
+ "cheerio": {
+ "optional": true
+ },
+ "chromadb": {
+ "optional": true
+ },
+ "closevector-common": {
+ "optional": true
+ },
+ "closevector-node": {
+ "optional": true
+ },
+ "closevector-web": {
+ "optional": true
+ },
+ "cohere-ai": {
+ "optional": true
+ },
+ "convex": {
+ "optional": true
+ },
+ "crypto-js": {
+ "optional": true
+ },
+ "d3-dsv": {
+ "optional": true
+ },
+ "discord.js": {
+ "optional": true
+ },
+ "duck-duck-scrape": {
+ "optional": true
+ },
+ "epub2": {
+ "optional": true
+ },
+ "fast-xml-parser": {
+ "optional": true
+ },
+ "firebase-admin": {
+ "optional": true
+ },
+ "google-auth-library": {
+ "optional": true
+ },
+ "googleapis": {
+ "optional": true
+ },
+ "hnswlib-node": {
+ "optional": true
+ },
+ "html-to-text": {
+ "optional": true
+ },
+ "ignore": {
+ "optional": true
+ },
+ "interface-datastore": {
+ "optional": true
+ },
+ "ioredis": {
+ "optional": true
+ },
+ "it-all": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ },
+ "jsonwebtoken": {
+ "optional": true
+ },
+ "llmonitor": {
+ "optional": true
+ },
+ "lodash": {
+ "optional": true
+ },
+ "lunary": {
+ "optional": true
+ },
+ "mammoth": {
+ "optional": true
+ },
+ "mariadb": {
+ "optional": true
+ },
+ "mem0ai": {
+ "optional": true
+ },
+ "mongodb": {
+ "optional": true
+ },
+ "mysql2": {
+ "optional": true
+ },
+ "neo4j-driver": {
+ "optional": true
+ },
+ "notion-to-md": {
+ "optional": true
+ },
+ "officeparser": {
+ "optional": true
+ },
+ "pdf-parse": {
+ "optional": true
+ },
+ "pg": {
+ "optional": true
+ },
+ "pg-copy-streams": {
+ "optional": true
+ },
+ "pickleparser": {
+ "optional": true
+ },
+ "playwright": {
+ "optional": true
+ },
+ "portkey-ai": {
+ "optional": true
+ },
+ "puppeteer": {
+ "optional": true
+ },
+ "pyodide": {
+ "optional": true
+ },
+ "redis": {
+ "optional": true
+ },
+ "replicate": {
+ "optional": true
+ },
+ "sonix-speech-recognition": {
+ "optional": true
+ },
+ "srt-parser-2": {
+ "optional": true
+ },
+ "typeorm": {
+ "optional": true
+ },
+ "typesense": {
+ "optional": true
+ },
+ "usearch": {
+ "optional": true
+ },
+ "voy-search": {
+ "optional": true
+ },
+ "weaviate-client": {
+ "optional": true
+ },
+ "web-auth-library": {
+ "optional": true
+ },
+ "word-extractor": {
+ "optional": true
+ },
+ "ws": {
+ "optional": true
+ },
+ "youtubei.js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@langchain/community/node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@langchain/core": {
+ "version": "0.3.79",
+ "resolved": "https://registry.npmmirror.com/@langchain/core/-/core-0.3.79.tgz",
+ "integrity": "sha512-ZLAs5YMM5N2UXN3kExMglltJrKKoW7hs3KMZFlXUnD7a5DFKBYxPFMeXA4rT+uvTxuJRZPCYX0JKI5BhyAWx4A==",
+ "license": "MIT",
+ "dependencies": {
+ "@cfworker/json-schema": "^4.0.2",
+ "ansi-styles": "^5.0.0",
+ "camelcase": "6",
+ "decamelize": "1.2.0",
+ "js-tiktoken": "^1.0.12",
+ "langsmith": "^0.3.67",
+ "mustache": "^4.2.0",
+ "p-queue": "^6.6.2",
+ "p-retry": "4",
+ "uuid": "^10.0.0",
+ "zod": "^3.25.32",
+ "zod-to-json-schema": "^3.22.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@langchain/core/node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@langchain/google-common": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/@langchain/google-common/-/google-common-0.1.8.tgz",
+ "integrity": "sha512-8auqWw2PMPhcHQHS+nMN3tVZrUPgSLckUaFeOHDOeSBiDvBd4KCybPwyl2oCwMDGvmyIxvOOckkMdeGaJ92vpQ==",
+ "license": "MIT",
+ "dependencies": {
+ "uuid": "^10.0.0",
+ "zod-to-json-schema": "^3.22.4"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.2.21 <0.4.0"
+ }
+ },
+ "node_modules/@langchain/google-common/node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@langchain/google-gauth": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/@langchain/google-gauth/-/google-gauth-0.1.8.tgz",
+ "integrity": "sha512-2QK7d5SQMrnSv7X4j05BGfO74hiA8FJuNwSsQKZvzlGoVnNXil3x2aqD5V+zsYOPpxhkDCpNlmh2Pue2Wzy1rQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@langchain/google-common": "~0.1.8",
+ "google-auth-library": "^8.9.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.2.21 <0.4.0"
+ }
+ },
+ "node_modules/@langchain/langgraph-sdk": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmmirror.com/@langchain/langgraph-sdk/-/langgraph-sdk-0.1.10.tgz",
+ "integrity": "sha512-9srSCb2bSvcvehMgjA2sMMwX0o1VUgPN6ghwm5Fwc9JGAKsQa6n1S4eCwy1h4abuYxwajH5n3spBw+4I2WYbgw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@types/json-schema": "^7.0.15",
+ "p-queue": "^6.6.2",
+ "p-retry": "4",
+ "uuid": "^9.0.0"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.2.31 <0.4.0 || ^1.0.0-alpha",
+ "react": "^18 || ^19",
+ "react-dom": "^18 || ^19"
+ },
+ "peerDependenciesMeta": {
+ "@langchain/core": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@langchain/langgraph-sdk/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "peer": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@langchain/openai": {
+ "version": "0.4.9",
+ "resolved": "https://registry.npmmirror.com/@langchain/openai/-/openai-0.4.9.tgz",
+ "integrity": "sha512-NAsaionRHNdqaMjVLPkFCyjUDze+OqRHghA1Cn4fPoAafz+FXcl9c7LlEl9Xo0FH6/8yiCl7Rw2t780C/SBVxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tiktoken": "^1.0.12",
+ "openai": "^4.87.3",
+ "zod": "^3.22.4",
+ "zod-to-json-schema": "^3.22.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.3.39 <0.4.0"
+ }
+ },
+ "node_modules/@langchain/textsplitters": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/@langchain/textsplitters/-/textsplitters-0.1.0.tgz",
+ "integrity": "sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tiktoken": "^1.0.12"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.2.21 <0.4.0"
+ }
+ },
+ "node_modules/@langchain/weaviate": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmmirror.com/@langchain/weaviate/-/weaviate-0.2.3.tgz",
+ "integrity": "sha512-WqNGn1eSrI+ZigJd7kZjCj3fvHBYicKr054qts2nNJ+IyO5dWmY3oFTaVHFq1OLFVZJJxrFeDnxSEOC3JnfP0w==",
+ "license": "MIT",
+ "dependencies": {
+ "uuid": "^10.0.0",
+ "weaviate-client": "^3.5.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@langchain/core": ">=0.2.21 <0.4.0"
+ }
+ },
+ "node_modules/@langchain/weaviate/node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/@lukeed/csprng": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@lukeed/csprng/-/csprng-1.1.0.tgz",
+ "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@lukeed/uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/@lukeed/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==",
+ "license": "MIT",
+ "dependencies": {
+ "@lukeed/csprng": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@next/env": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/env/-/env-14.2.33.tgz",
+ "integrity": "sha512-CgVHNZ1fRIlxkLhIX22flAZI/HmpDaZ8vwyJ/B0SDPTBuLZ1PJ+DWMjCHhqnExfmSQzA/PbZi8OAc7PAq2w9IA==",
+ "license": "MIT"
+ },
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.33.tgz",
+ "integrity": "sha512-HqYnb6pxlsshoSTubdXKu15g3iivcbsMXg4bYpjL2iS/V6aQot+iyF4BUc2qA/J/n55YtvE4PHMKWBKGCF/+wA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.33.tgz",
+ "integrity": "sha512-8HGBeAE5rX3jzKvF593XTTFg3gxeU4f+UWnswa6JPhzaR6+zblO5+fjltJWIZc4aUalqTclvN2QtTC37LxvZAA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.33.tgz",
+ "integrity": "sha512-JXMBka6lNNmqbkvcTtaX8Gu5by9547bukHQvPoLe9VRBx1gHwzf5tdt4AaezW85HAB3pikcvyqBToRTDA4DeLw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.33.tgz",
+ "integrity": "sha512-Bm+QulsAItD/x6Ih8wGIMfRJy4G73tu1HJsrccPW6AfqdZd0Sfm5Imhgkgq2+kly065rYMnCOxTBvmvFY1BKfg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.33.tgz",
+ "integrity": "sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.33.tgz",
+ "integrity": "sha512-345tsIWMzoXaQndUTDv1qypDRiebFxGYx9pYkhwY4hBRaOLt8UGfiWKr9FSSHs25dFIf8ZqIFaPdy5MljdoawA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.33.tgz",
+ "integrity": "sha512-nscpt0G6UCTkrT2ppnJnFsYbPDQwmum4GNXYTeoTIdsmMydSKFz9Iny2jpaRupTb+Wl298+Rh82WKzt9LCcqSQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-ia32-msvc": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.33.tgz",
+ "integrity": "sha512-pc9LpGNKhJ0dXQhZ5QMmYxtARwwmWLpeocFmVG5Z0DzWq5Uf0izcI8tLc+qOpqxO1PWqZ5A7J1blrUIKrIFc7Q==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-x64-msvc": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.33.tgz",
+ "integrity": "sha512-nOjfZMy8B94MdisuzZo9/57xuFVLHJaDj5e/xrduJp9CV2/HrfxTRH2fbyLe+K9QT41WBLUd4iXX3R7jBp0EUg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@pinojs/redact": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/@pinojs/redact/-/redact-0.4.0.tgz",
+ "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==",
+ "license": "MIT"
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@playwright/test": {
+ "version": "1.56.1",
+ "resolved": "https://registry.npmmirror.com/@playwright/test/-/test-1.56.1.tgz",
+ "integrity": "sha512-vSMYtL/zOcFpvJCW71Q/OEGQb7KYBPAdKh35WNSkaZA75JlAO8ED8UN6GUNTm3drWomcbcqRPFqQbLae8yBTdg==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "playwright": "1.56.1"
+ },
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@protobuf-ts/protoc": {
+ "version": "2.11.1",
+ "resolved": "https://registry.npmmirror.com/@protobuf-ts/protoc/-/protoc-2.11.1.tgz",
+ "integrity": "sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg==",
+ "license": "Apache-2.0",
+ "bin": {
+ "protoc": "protoc.js"
+ }
+ },
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@react-aria/ssr": {
+ "version": "3.9.10",
+ "resolved": "https://registry.npmmirror.com/@react-aria/ssr/-/ssr-3.9.10.tgz",
+ "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/flags": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/@react-stately/flags/-/flags-3.1.2.tgz",
+ "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ }
+ },
+ "node_modules/@react-stately/utils": {
+ "version": "3.10.8",
+ "resolved": "https://registry.npmmirror.com/@react-stately/utils/-/utils-3.10.8.tgz",
+ "integrity": "sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-types/shared": {
+ "version": "3.32.1",
+ "resolved": "https://registry.npmmirror.com/@react-types/shared/-/shared-3.32.1.tgz",
+ "integrity": "sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@repeaterjs/repeater": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmmirror.com/@repeaterjs/repeater/-/repeater-3.0.6.tgz",
+ "integrity": "sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==",
+ "license": "MIT"
+ },
+ "node_modules/@scarf/scarf": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/@scarf/scarf/-/scarf-1.4.0.tgz",
+ "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/@segment/analytics-core": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmmirror.com/@segment/analytics-core/-/analytics-core-1.8.2.tgz",
+ "integrity": "sha512-5FDy6l8chpzUfJcNlIcyqYQq4+JTUynlVoCeCUuVz+l+6W0PXg+ljKp34R4yLVCcY5VVZohuW+HH0VLWdwYVAg==",
+ "license": "MIT",
+ "dependencies": {
+ "@lukeed/uuid": "^2.0.0",
+ "@segment/analytics-generic-utils": "1.2.0",
+ "dset": "^3.1.4",
+ "tslib": "^2.4.1"
+ }
+ },
+ "node_modules/@segment/analytics-generic-utils": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/@segment/analytics-generic-utils/-/analytics-generic-utils-1.2.0.tgz",
+ "integrity": "sha512-DfnW6mW3YQOLlDQQdR89k4EqfHb0g/3XvBXkovH1FstUN93eL1kfW9CsDcVQyH3bAC5ZsFyjA/o/1Q2j0QeoWw==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.4.1"
+ }
+ },
+ "node_modules/@segment/analytics-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/@segment/analytics-node/-/analytics-node-2.3.0.tgz",
+ "integrity": "sha512-fOXLL8uY0uAWw/sTLmezze80hj8YGgXXlAfvSS6TUmivk4D/SP0C0sxnbpFdkUzWg2zT64qWIZj26afEtSnxUA==",
+ "license": "MIT",
+ "dependencies": {
+ "@lukeed/uuid": "^2.0.0",
+ "@segment/analytics-core": "1.8.2",
+ "@segment/analytics-generic-utils": "1.2.0",
+ "buffer": "^6.0.3",
+ "jose": "^5.1.0",
+ "node-fetch": "^2.6.7",
+ "tslib": "^2.4.1"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@smithy/abort-controller": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/abort-controller/-/abort-controller-4.2.4.tgz",
+ "integrity": "sha512-Z4DUr/AkgyFf1bOThW2HwzREagee0sB5ycl+hDiSZOfRLW8ZgrOjDi6g8mHH19yyU5E2A/64W3z6SMIf5XiUSQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/config-resolver": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/@smithy/config-resolver/-/config-resolver-4.4.1.tgz",
+ "integrity": "sha512-BciDJ5hkyYEGBBKMbjGB1A/Zq8bYZ41Zo9BMnGdKF6QD1fY4zIkYx6zui/0CHaVGnv6h0iy8y4rnPX9CPCAPyQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-config-provider": "^4.2.0",
+ "@smithy/util-endpoints": "^3.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/core": {
+ "version": "3.17.2",
+ "resolved": "https://registry.npmmirror.com/@smithy/core/-/core-3.17.2.tgz",
+ "integrity": "sha512-n3g4Nl1Te+qGPDbNFAYf+smkRVB+JhFsGy9uJXXZQEufoP4u0r+WLh6KvTDolCswaagysDc/afS1yvb2jnj1gQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-body-length-browser": "^4.2.0",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-stream": "^4.5.5",
+ "@smithy/util-utf8": "^4.2.0",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/core/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/core/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/credential-provider-imds": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.4.tgz",
+ "integrity": "sha512-YVNMjhdz2pVto5bRdux7GMs0x1m0Afz3OcQy/4Yf9DH4fWOtroGH7uLvs7ZmDyoBJzLdegtIPpXrpJOZWvUXdw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-codec": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz",
+ "integrity": "sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@aws-crypto/crc32": "3.0.0",
+ "@smithy/types": "^2.12.0",
+ "@smithy/util-hex-encoding": "^2.2.0",
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@smithy/eventstream-codec/node_modules/@smithy/types": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-2.12.0.tgz",
+ "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-codec/node_modules/@smithy/util-hex-encoding": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz",
+ "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-browser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.4.tgz",
+ "integrity": "sha512-d5T7ZS3J/r8P/PDjgmCcutmNxnSRvPH1U6iHeXjzI50sMr78GLmFcrczLw33Ap92oEKqa4CLrkAPeSSOqvGdUA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/eventstream-serde-universal": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-config-resolver": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.4.tgz",
+ "integrity": "sha512-lxfDT0UuSc1HqltOGsTEAlZ6H29gpfDSdEPTapD5G63RbnYToZ+ezjzdonCCH90j5tRRCw3aLXVbiZaBW3VRVg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-node": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.4.tgz",
+ "integrity": "sha512-TPhiGByWnYyzcpU/K3pO5V7QgtXYpE0NaJPEZBCa1Y5jlw5SjqzMSbFiLb+ZkJhqoQc0ImGyVINqnq1ze0ZRcQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/eventstream-serde-universal": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-universal": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.4.tgz",
+ "integrity": "sha512-GNI/IXaY/XBB1SkGBFmbW033uWA0tj085eCxYih0eccUe/PFR7+UBQv9HNDk2fD9TJu7UVsCWsH99TkpEPSOzQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/eventstream-codec": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-universal/node_modules/@aws-crypto/crc32": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@aws-crypto/crc32/-/crc32-5.2.0.tgz",
+ "integrity": "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/util": "^5.2.0",
+ "@aws-sdk/types": "^3.222.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@smithy/eventstream-serde-universal/node_modules/@smithy/eventstream-codec": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.4.tgz",
+ "integrity": "sha512-aV8blR9RBDKrOlZVgjOdmOibTC2sBXNiT7WA558b4MPdsLTV6sbyc1WIE9QiIuYMJjYtnPLciefoqSW8Gi+MZQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@aws-crypto/crc32": "5.2.0",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/fetch-http-handler": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmmirror.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.5.tgz",
+ "integrity": "sha512-mg83SM3FLI8Sa2ooTJbsh5MFfyMTyNRwxqpKHmE0ICRIa66Aodv80DMsTQI02xBLVJ0hckwqTRr5IGAbbWuFLQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/querystring-builder": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/fetch-http-handler/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/hash-node": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/hash-node/-/hash-node-4.2.4.tgz",
+ "integrity": "sha512-kKU0gVhx/ppVMntvUOZE7WRMFW86HuaxLwvqileBEjL7PoILI8/djoILw3gPQloGVE6O0oOzqafxeNi2KbnUJw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/hash-node/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/invalid-dependency": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.4.tgz",
+ "integrity": "sha512-z6aDLGiHzsMhbS2MjetlIWopWz//K+mCoPXjW6aLr0mypF+Y7qdEh5TyJ20Onf9FbWHiWl4eC+rITdizpnXqOw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/is-array-buffer": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz",
+ "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-content-length": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.4.tgz",
+ "integrity": "sha512-hJRZuFS9UsElX4DJSJfoX4M1qXRH+VFiLMUnhsWvtOOUWRNvvOfDaUSdlNbjwv1IkpVjj/Rd/O59Jl3nhAcxow==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-content-length/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-endpoint": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmmirror.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.6.tgz",
+ "integrity": "sha512-PXehXofGMFpDqr933rxD8RGOcZ0QBAWtuzTgYRAHAL2BnKawHDEdf/TnGpcmfPJGwonhginaaeJIKluEojiF/w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.17.2",
+ "@smithy/middleware-serde": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/url-parser": "^4.2.4",
+ "@smithy/util-middleware": "^4.2.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-retry": {
+ "version": "4.4.6",
+ "resolved": "https://registry.npmmirror.com/@smithy/middleware-retry/-/middleware-retry-4.4.6.tgz",
+ "integrity": "sha512-OhLx131znrEDxZPAvH/OYufR9d1nB2CQADyYFN4C3V/NQS7Mg4V6uvxHC/Dr96ZQW8IlHJTJ+vAhKt6oxWRndA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/service-error-classification": "^4.2.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-middleware": "^4.2.4",
+ "@smithy/util-retry": "^4.2.4",
+ "@smithy/uuid": "^1.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-retry/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-serde": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/middleware-serde/-/middleware-serde-4.2.4.tgz",
+ "integrity": "sha512-jUr3x2CDhV15TOX2/Uoz4gfgeqLrRoTQbYAuhLS7lcVKNev7FeYSJ1ebEfjk+l9kbb7k7LfzIR/irgxys5ZTOg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-serde/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/middleware-stack": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/middleware-stack/-/middleware-stack-4.2.4.tgz",
+ "integrity": "sha512-Gy3TKCOnm9JwpFooldwAboazw+EFYlC+Bb+1QBsSi5xI0W5lX81j/P5+CXvD/9ZjtYKRgxq+kkqd/KOHflzvgA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/node-config-provider": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/node-config-provider/-/node-config-provider-4.3.4.tgz",
+ "integrity": "sha512-3X3w7qzmo4XNNdPKNS4nbJcGSwiEMsNsRSunMA92S4DJLLIrH5g1AyuOA2XKM9PAPi8mIWfqC+fnfKNsI4KvHw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/shared-ini-file-loader": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/node-http-handler": {
+ "version": "4.4.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/node-http-handler/-/node-http-handler-4.4.4.tgz",
+ "integrity": "sha512-VXHGfzCXLZeKnFp6QXjAdy+U8JF9etfpUXD1FAbzY1GzsFJiDQRQIt2CnMUvUdz3/YaHNqT3RphVWMUpXTIODA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/abort-controller": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/querystring-builder": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/node-http-handler/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/property-provider": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/property-provider/-/property-provider-4.2.4.tgz",
+ "integrity": "sha512-g2DHo08IhxV5GdY3Cpt/jr0mkTlAD39EJKN27Jb5N8Fb5qt8KG39wVKTXiTRCmHHou7lbXR8nKVU14/aRUf86w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/protocol-http": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz",
+ "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@smithy/types": "^2.12.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/protocol-http/node_modules/@smithy/types": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-2.12.0.tgz",
+ "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/querystring-builder": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/querystring-builder/-/querystring-builder-4.2.4.tgz",
+ "integrity": "sha512-KQ1gFXXC+WsbPFnk7pzskzOpn4s+KheWgO3dzkIEmnb6NskAIGp/dGdbKisTPJdtov28qNDohQrgDUKzXZBLig==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-uri-escape": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/querystring-parser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/querystring-parser/-/querystring-parser-4.2.4.tgz",
+ "integrity": "sha512-aHb5cqXZocdzEkZ/CvhVjdw5l4r1aU/9iMEyoKzH4eXMowT6M0YjBpp7W/+XjkBnY8Xh0kVd55GKjnPKlCwinQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/service-error-classification": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/service-error-classification/-/service-error-classification-4.2.4.tgz",
+ "integrity": "sha512-fdWuhEx4+jHLGeew9/IvqVU/fxT/ot70tpRGuOLxE3HzZOyKeTQfYeV1oaBXpzi93WOk668hjMuuagJ2/Qs7ng==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/shared-ini-file-loader": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.4.tgz",
+ "integrity": "sha512-y5ozxeQ9omVjbnJo9dtTsdXj9BEvGx2X8xvRgKnV+/7wLBuYJQL6dOa/qMY6omyHi7yjt1OA97jZLoVRYi8lxA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/signature-v4": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/signature-v4/-/signature-v4-2.3.0.tgz",
+ "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "@smithy/types": "^2.12.0",
+ "@smithy/util-hex-encoding": "^2.2.0",
+ "@smithy/util-middleware": "^2.2.0",
+ "@smithy/util-uri-escape": "^2.2.0",
+ "@smithy/util-utf8": "^2.3.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/signature-v4/node_modules/@smithy/types": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-2.12.0.tgz",
+ "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/signature-v4/node_modules/@smithy/util-hex-encoding": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz",
+ "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/signature-v4/node_modules/@smithy/util-middleware": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz",
+ "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "@smithy/types": "^2.12.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/signature-v4/node_modules/@smithy/util-uri-escape": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz",
+ "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "peer": true,
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/smithy-client": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmmirror.com/@smithy/smithy-client/-/smithy-client-4.9.2.tgz",
+ "integrity": "sha512-gZU4uAFcdrSi3io8U99Qs/FvVdRxPvIMToi+MFfsy/DN9UqtknJ1ais+2M9yR8e0ASQpNmFYEKeIKVcMjQg3rg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/core": "^3.17.2",
+ "@smithy/middleware-endpoint": "^4.3.6",
+ "@smithy/middleware-stack": "^4.2.4",
+ "@smithy/protocol-http": "^5.3.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-stream": "^4.5.5",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/smithy-client/node_modules/@smithy/protocol-http": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/protocol-http/-/protocol-http-5.3.4.tgz",
+ "integrity": "sha512-3sfFd2MAzVt0Q/klOmjFi3oIkxczHs0avbwrfn1aBqtc23WqQSmjvk77MBw9WkEQcwbOYIX5/2z4ULj8DuxSsw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/types": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmmirror.com/@smithy/types/-/types-4.8.1.tgz",
+ "integrity": "sha512-N0Zn0OT1zc+NA+UVfkYqQzviRh5ucWwO7mBV3TmHHprMnfcJNfhlPicDkBHi0ewbh+y3evR6cNAW0Raxvb01NA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/url-parser": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/url-parser/-/url-parser-4.2.4.tgz",
+ "integrity": "sha512-w/N/Iw0/PTwJ36PDqU9PzAwVElo4qXxCC0eCTlUtIz/Z5V/2j/cViMHi0hPukSBHp4DVwvUlUhLgCzqSJ6plrg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/querystring-parser": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-base64": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-base64/-/util-base64-4.3.0.tgz",
+ "integrity": "sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-base64/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-body-length-browser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz",
+ "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-body-length-node": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz",
+ "integrity": "sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-buffer-from": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz",
+ "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-buffer-from/node_modules/@smithy/is-array-buffer": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz",
+ "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-config-provider": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz",
+ "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-defaults-mode-browser": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.5.tgz",
+ "integrity": "sha512-GwaGjv/QLuL/QHQaqhf/maM7+MnRFQQs7Bsl6FlaeK6lm6U7mV5AAnVabw68cIoMl5FQFyKK62u7RWRzWL25OQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-defaults-mode-node": {
+ "version": "4.2.7",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.7.tgz",
+ "integrity": "sha512-6hinjVqec0WYGsqN7h9hL/ywfULmJJNXGXnNZW7jrIn/cFuC/aVlVaiDfBIJEvKcOrmN8/EgsW69eY0gXABeHw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/config-resolver": "^4.4.1",
+ "@smithy/credential-provider-imds": "^4.2.4",
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/property-provider": "^4.2.4",
+ "@smithy/smithy-client": "^4.9.2",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-endpoints": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-endpoints/-/util-endpoints-3.2.4.tgz",
+ "integrity": "sha512-f+nBDhgYRCmUEDKEQb6q0aCcOTXRDqH5wWaFHJxt4anB4pKHlgGoYP3xtioKXH64e37ANUkzWf6p4Mnv1M5/Vg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/node-config-provider": "^4.3.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-hex-encoding": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz",
+ "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-middleware": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-middleware/-/util-middleware-4.2.4.tgz",
+ "integrity": "sha512-fKGQAPAn8sgV0plRikRVo6g6aR0KyKvgzNrPuM74RZKy/wWVzx3BMk+ZWEueyN3L5v5EDg+P582mKU+sH5OAsg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-retry": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-retry/-/util-retry-4.2.4.tgz",
+ "integrity": "sha512-yQncJmj4dtv/isTXxRb4AamZHy4QFr4ew8GxS6XLWt7sCIxkPxPzINWd7WLISEFPsIan14zrKgvyAF+/yzfwoA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/service-error-classification": "^4.2.4",
+ "@smithy/types": "^4.8.1",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-stream": {
+ "version": "4.5.5",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-stream/-/util-stream-4.5.5.tgz",
+ "integrity": "sha512-7M5aVFjT+HPilPOKbOmQfCIPchZe4DSBc1wf1+NvHvSoFTiFtauZzT+onZvCj70xhXd0AEmYnZYmdJIuwxOo4w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/fetch-http-handler": "^5.3.5",
+ "@smithy/node-http-handler": "^4.4.4",
+ "@smithy/types": "^4.8.1",
+ "@smithy/util-base64": "^4.3.0",
+ "@smithy/util-buffer-from": "^4.2.0",
+ "@smithy/util-hex-encoding": "^4.2.0",
+ "@smithy/util-utf8": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-stream/node_modules/@smithy/util-utf8": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz",
+ "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^4.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-uri-escape": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz",
+ "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@smithy/util-utf8": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz",
+ "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/util-buffer-from": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/util-utf8/node_modules/@smithy/util-buffer-from": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz",
+ "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@smithy/is-array-buffer": "^2.2.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@smithy/uuid": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/@smithy/uuid/-/uuid-1.1.0.tgz",
+ "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmmirror.com/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmmirror.com/@swc/helpers/-/helpers-0.5.5.tgz",
+ "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/counter": "^0.1.3",
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@tanstack/virtual-core": {
+ "version": "3.13.12",
+ "resolved": "https://registry.npmmirror.com/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz",
+ "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tokenizer/token": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/@tokenizer/token/-/token-0.3.0.tgz",
+ "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.12",
+ "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/estree-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/hast": {
+ "version": "2.3.10",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-2.3.10.tgz",
+ "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/katex": {
+ "version": "0.16.7",
+ "resolved": "https://registry.npmmirror.com/@types/katex/-/katex-0.16.7.tgz",
+ "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/ms": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-2.1.0.tgz",
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "20.19.24",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.19.24.tgz",
+ "integrity": "sha512-FE5u0ezmi6y9OZEzlJfg37mqqf6ZDSF2V/NLjUyGrR9uTZ7Sb9F7bLNZ03S4XVUNRWGA7Ck4c1kK+YnuWjl+DA==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/node-fetch": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmmirror.com/@types/node-fetch/-/node-fetch-2.6.13.tgz",
+ "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "form-data": "^4.0.4"
+ }
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.15",
+ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.15.tgz",
+ "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.26",
+ "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.26.tgz",
+ "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.7",
+ "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.3.7.tgz",
+ "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
+ }
+ },
+ "node_modules/@types/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/semver": {
+ "version": "7.7.1",
+ "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.7.1.tgz",
+ "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmmirror.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/validator": {
+ "version": "13.15.4",
+ "resolved": "https://registry.npmmirror.com/@types/validator/-/validator-13.15.4.tgz",
+ "integrity": "sha512-LSFfpSnJJY9wbC0LQxgvfb+ynbHftFo0tMsFOl/J4wexLnYMmDSPaj2ZyDv3TkfL1UePxPrxOWJfbiRS8mQv7A==",
+ "license": "MIT"
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
+ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
+ "license": "ISC"
+ },
+ "node_modules/@urql/core": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/@urql/core/-/core-5.2.0.tgz",
+ "integrity": "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==",
+ "license": "MIT",
+ "dependencies": {
+ "@0no-co/graphql.web": "^1.0.13",
+ "wonka": "^6.3.2"
+ }
+ },
+ "node_modules/@whatwg-node/disposablestack": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmmirror.com/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz",
+ "integrity": "sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==",
+ "license": "MIT",
+ "dependencies": {
+ "@whatwg-node/promise-helpers": "^1.0.0",
+ "tslib": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@whatwg-node/events": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/@whatwg-node/events/-/events-0.1.2.tgz",
+ "integrity": "sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@whatwg-node/fetch": {
+ "version": "0.10.11",
+ "resolved": "https://registry.npmmirror.com/@whatwg-node/fetch/-/fetch-0.10.11.tgz",
+ "integrity": "sha512-eR8SYtf9Nem1Tnl0IWrY33qJ5wCtIWlt3Fs3c6V4aAaTFLtkEQErXu3SSZg/XCHrj9hXSJ8/8t+CdMk5Qec/ZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@whatwg-node/node-fetch": "^0.8.0",
+ "urlpattern-polyfill": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@whatwg-node/node-fetch": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmmirror.com/@whatwg-node/node-fetch/-/node-fetch-0.8.1.tgz",
+ "integrity": "sha512-cQmQEo7IsI0EPX9VrwygXVzrVlX43Jb7/DBZSmpnC7xH4xkyOnn/HykHpTaQk7TUs7zh59A5uTGqx3p2Ouzffw==",
+ "license": "MIT",
+ "dependencies": {
+ "@fastify/busboy": "^3.1.1",
+ "@whatwg-node/disposablestack": "^0.0.6",
+ "@whatwg-node/promise-helpers": "^1.3.2",
+ "tslib": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@whatwg-node/promise-helpers": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz",
+ "integrity": "sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/@whatwg-node/server": {
+ "version": "0.10.13",
+ "resolved": "https://registry.npmmirror.com/@whatwg-node/server/-/server-0.10.13.tgz",
+ "integrity": "sha512-Otmxo+0mp8az3B48pLI1I4msNOXPIoP7TLm6h5wOEQmynqHt8oP9nR6NJUeJk6iI5OtFpQtkbJFwfGkmplvc3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@envelop/instrumentation": "^1.0.0",
+ "@whatwg-node/disposablestack": "^0.0.6",
+ "@whatwg-node/fetch": "^0.10.10",
+ "@whatwg-node/promise-helpers": "^1.3.2",
+ "tslib": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "license": "MIT",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "node_modules/abort-controller-x": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmmirror.com/abort-controller-x/-/abort-controller-x-0.4.3.tgz",
+ "integrity": "sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==",
+ "license": "MIT"
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/agent-base/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/agent-base/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/agentkeepalive": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz",
+ "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==",
+ "license": "MIT",
+ "dependencies": {
+ "humanize-ms": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "license": "Python-2.0"
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "license": "MIT"
+ },
+ "node_modules/arrify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/arrify/-/arrify-2.0.1.tgz",
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
+ "node_modules/atomic-sleep": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.21",
+ "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.21.tgz",
+ "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.24.4",
+ "caniuse-lite": "^1.0.30001702",
+ "fraction.js": "^4.3.7",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.1.tgz",
+ "integrity": "sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.4",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.8.21",
+ "resolved": "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.21.tgz",
+ "integrity": "sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.3.1.tgz",
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "license": "MIT",
+ "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.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"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/bowser": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmmirror.com/bowser/-/bowser-2.12.1.tgz",
+ "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.27.0",
+ "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.27.0.tgz",
+ "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.8.19",
+ "caniuse-lite": "^1.0.30001751",
+ "electron-to-chromium": "^1.5.238",
+ "node-releases": "^2.0.26",
+ "update-browserslist-db": "^1.1.4"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001751",
+ "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz",
+ "integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chalk/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/character-entities": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz",
+ "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
+ "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-reference-invalid": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
+ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/class-transformer": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmmirror.com/class-transformer/-/class-transformer-0.5.1.tgz",
+ "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==",
+ "license": "MIT"
+ },
+ "node_modules/class-validator": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmmirror.com/class-validator/-/class-validator-0.14.2.tgz",
+ "integrity": "sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/validator": "^13.11.8",
+ "libphonenumber-js": "^1.11.1",
+ "validator": "^13.9.0"
+ }
+ },
+ "node_modules/client-only": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+ "license": "MIT"
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/console-table-printer": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmmirror.com/console-table-printer/-/console-table-printer-2.15.0.tgz",
+ "integrity": "sha512-SrhBq4hYVjLCkBVOWaTzceJalvn5K1Zq5aQA6wXC/cYjI3frKWNPEMK3sZsJfNNQApvCQmgBcc13ZKmFj8qExw==",
+ "license": "MIT",
+ "dependencies": {
+ "simple-wcswidth": "^1.1.2"
+ }
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "license": "MIT"
+ },
+ "node_modules/cross-fetch": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-3.2.0.tgz",
+ "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "node-fetch": "^2.7.0"
+ }
+ },
+ "node_modules/cross-inspect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/cross-inspect/-/cross-inspect-1.0.1.tgz",
+ "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "license": "MIT"
+ },
+ "node_modules/dateformat": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmmirror.com/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-named-character-reference": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz",
+ "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/decode-named-character-reference/node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/diff": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/diff/-/diff-5.2.0.tgz",
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dotenv": {
+ "version": "16.6.1",
+ "resolved": "https://registry.npmmirror.com/dotenv/-/dotenv-16.6.1.tgz",
+ "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
+ "license": "BSD-2-Clause",
+ "peer": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/dset": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmmirror.com/dset/-/dset-3.1.4.tgz",
+ "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmmirror.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.244",
+ "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.244.tgz",
+ "integrity": "sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.5",
+ "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.5.tgz",
+ "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/estree-util-is-identifier-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
+ "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "license": "MIT"
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/expr-eval": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/expr-eval/-/expr-eval-2.0.2.tgz",
+ "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==",
+ "license": "MIT"
+ },
+ "node_modules/express": {
+ "version": "4.21.2",
+ "resolved": "https://registry.npmmirror.com/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.3",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.7.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.3.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "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.13.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.19.0",
+ "serve-static": "1.16.2",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/fast-copy": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/fast-copy/-/fast-copy-3.0.2.tgz",
+ "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==",
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-patch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/fast-json-patch/-/fast-json-patch-3.1.1.tgz",
+ "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==",
+ "license": "MIT"
+ },
+ "node_modules/fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
+ "license": "MIT"
+ },
+ "node_modules/fast-text-encoding": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz",
+ "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/fast-xml-parser": {
+ "version": "5.2.5",
+ "resolved": "https://registry.npmmirror.com/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz",
+ "integrity": "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "strnum": "^2.1.0"
+ },
+ "bin": {
+ "fxparser": "src/cli/cli.js"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fault": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/fault/-/fault-1.0.4.tgz",
+ "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==",
+ "license": "MIT",
+ "dependencies": {
+ "format": "^0.2.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/file-type": {
+ "version": "16.5.4",
+ "resolved": "https://registry.npmmirror.com/file-type/-/file-type-16.5.4.tgz",
+ "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "readable-web-to-node-stream": "^3.0.0",
+ "strtok3": "^6.2.4",
+ "token-types": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/file-type?sponsor=1"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "license": "MIT",
+ "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.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz",
+ "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/form-data-encoder": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmmirror.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz",
+ "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==",
+ "license": "MIT"
+ },
+ "node_modules/format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/format/-/format-0.2.2.tgz",
+ "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/formdata-node": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/formdata-node/-/formdata-node-4.4.1.tgz",
+ "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
+ "license": "MIT",
+ "dependencies": {
+ "node-domexception": "1.0.0",
+ "web-streams-polyfill": "4.0.0-beta.3"
+ },
+ "engines": {
+ "node": ">= 12.20"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gaxios": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmmirror.com/gaxios/-/gaxios-5.1.3.tgz",
+ "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "extend": "^3.0.2",
+ "https-proxy-agent": "^5.0.0",
+ "is-stream": "^2.0.0",
+ "node-fetch": "^2.6.9"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/gcp-metadata": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz",
+ "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "gaxios": "^5.0.0",
+ "json-bigint": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmmirror.com/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/google-auth-library": {
+ "version": "8.9.0",
+ "resolved": "https://registry.npmmirror.com/google-auth-library/-/google-auth-library-8.9.0.tgz",
+ "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "arrify": "^2.0.0",
+ "base64-js": "^1.3.0",
+ "ecdsa-sig-formatter": "^1.0.11",
+ "fast-text-encoding": "^1.0.0",
+ "gaxios": "^5.0.0",
+ "gcp-metadata": "^5.3.0",
+ "gtoken": "^6.1.0",
+ "jws": "^4.0.0",
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/google-p12-pem": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz",
+ "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==",
+ "deprecated": "Package is no longer maintained",
+ "license": "MIT",
+ "dependencies": {
+ "node-forge": "^1.3.1"
+ },
+ "bin": {
+ "gp12-pem": "build/src/bin/gp12-pem.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/graphql": {
+ "version": "16.11.0",
+ "resolved": "https://registry.npmmirror.com/graphql/-/graphql-16.11.0.tgz",
+ "integrity": "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
+ }
+ },
+ "node_modules/graphql-query-complexity": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmmirror.com/graphql-query-complexity/-/graphql-query-complexity-0.12.0.tgz",
+ "integrity": "sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash.get": "^4.4.2"
+ },
+ "peerDependencies": {
+ "graphql": "^14.6.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/graphql-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/graphql-request/-/graphql-request-6.1.0.tgz",
+ "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==",
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-typed-document-node/core": "^3.2.0",
+ "cross-fetch": "^3.1.5"
+ },
+ "peerDependencies": {
+ "graphql": "14 - 16"
+ }
+ },
+ "node_modules/graphql-scalars": {
+ "version": "1.25.0",
+ "resolved": "https://registry.npmmirror.com/graphql-scalars/-/graphql-scalars-1.25.0.tgz",
+ "integrity": "sha512-b0xyXZeRFkne4Eq7NAnL400gStGqG/Sx9VqX0A05nHyEbv57UJnWKsjNnrpVqv5e/8N1MUxkt0wwcRXbiyKcFg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0"
+ }
+ },
+ "node_modules/graphql-yoga": {
+ "version": "5.16.0",
+ "resolved": "https://registry.npmmirror.com/graphql-yoga/-/graphql-yoga-5.16.0.tgz",
+ "integrity": "sha512-/R2dJea7WgvNlXRU4F8iFwWd95Qn1mN+R+yC8XBs1wKjUzr0Pvv8cGYtt6UUcVHw5CiDEtu7iQY5oOe3sDAWCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@envelop/core": "^5.3.0",
+ "@envelop/instrumentation": "^1.0.0",
+ "@graphql-tools/executor": "^1.4.0",
+ "@graphql-tools/schema": "^10.0.11",
+ "@graphql-tools/utils": "^10.6.2",
+ "@graphql-yoga/logger": "^2.0.1",
+ "@graphql-yoga/subscription": "^5.0.5",
+ "@whatwg-node/fetch": "^0.10.6",
+ "@whatwg-node/promise-helpers": "^1.2.4",
+ "@whatwg-node/server": "^0.10.5",
+ "dset": "^3.1.4",
+ "lru-cache": "^10.0.0",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "peerDependencies": {
+ "graphql": "^15.2.0 || ^16.0.0"
+ }
+ },
+ "node_modules/graphql-yoga/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
+ "node_modules/groq-sdk": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/groq-sdk/-/groq-sdk-0.5.0.tgz",
+ "integrity": "sha512-RVmhW7qZ+XZoy5fIuSdx/LGQJONpL8MHgZEW7dFwTdgkzStub2XQx6OKv28CHogijdwH41J+Npj/z2jBPu3vmw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/node": "^18.11.18",
+ "@types/node-fetch": "^2.6.4",
+ "abort-controller": "^3.0.0",
+ "agentkeepalive": "^4.2.1",
+ "form-data-encoder": "1.7.2",
+ "formdata-node": "^4.3.2",
+ "node-fetch": "^2.6.7",
+ "web-streams-polyfill": "^3.2.1"
+ }
+ },
+ "node_modules/groq-sdk/node_modules/@types/node": {
+ "version": "18.19.130",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.130.tgz",
+ "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/groq-sdk/node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT"
+ },
+ "node_modules/groq-sdk/node_modules/web-streams-polyfill": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
+ "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/gtoken": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmmirror.com/gtoken/-/gtoken-6.1.2.tgz",
+ "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "gaxios": "^5.0.1",
+ "google-p12-pem": "^4.0.0",
+ "jws": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz",
+ "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "hastscript": "^9.0.0",
+ "property-information": "^7.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-from-parse5/node_modules/hast-util-parse-selector": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+ "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/hastscript": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmmirror.com/hastscript/-/hastscript-9.0.1.tgz",
+ "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^4.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/property-information": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmmirror.com/property-information/-/property-information-7.1.0.tgz",
+ "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
+ "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
+ "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "hast-util-to-parse5": "^8.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "parse5": "^7.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-raw/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmmirror.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
+ "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "property-information": "^7.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-js": "^1.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmmirror.com/property-information/-/property-information-7.1.0.tgz",
+ "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
+ "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/hast-util-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz",
+ "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/hastscript/-/hastscript-6.0.0.tgz",
+ "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^1.0.0",
+ "hast-util-parse-selector": "^2.0.0",
+ "property-information": "^5.0.0",
+ "space-separated-tokens": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript/node_modules/comma-separated-tokens": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
+ "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hastscript/node_modules/property-information": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmmirror.com/property-information/-/property-information-5.6.0.tgz",
+ "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hastscript/node_modules/space-separated-tokens": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
+ "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/help-me": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/help-me/-/help-me-5.0.0.tgz",
+ "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==",
+ "license": "MIT"
+ },
+ "node_modules/highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/highlightjs-vue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/highlightjs-vue/-/highlightjs-vue-1.0.0.tgz",
+ "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==",
+ "license": "CC0-1.0"
+ },
+ "node_modules/html-url-attributes": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
+ "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/html-void-elements": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-3.0.0.tgz",
+ "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/https-proxy-agent/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/https-proxy-agent/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/humanize-ms": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.0.0"
+ }
+ },
+ "node_modules/ibm-cloud-sdk-core": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmmirror.com/ibm-cloud-sdk-core/-/ibm-cloud-sdk-core-5.4.3.tgz",
+ "integrity": "sha512-D0lvClcoCp/HXyaFlCbOT4aTYgGyeIb4ncxZpxRuiuw7Eo79C6c49W53+8WJRD9nxzT5vrIdaky3NBcTdBtaEg==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "@types/debug": "^4.1.12",
+ "@types/node": "^18.19.80",
+ "@types/tough-cookie": "^4.0.0",
+ "axios": "^1.12.2",
+ "camelcase": "^6.3.0",
+ "debug": "^4.3.4",
+ "dotenv": "^16.4.5",
+ "extend": "3.0.2",
+ "file-type": "16.5.4",
+ "form-data": "^4.0.4",
+ "isstream": "0.1.2",
+ "jsonwebtoken": "^9.0.2",
+ "mime-types": "2.1.35",
+ "retry-axios": "^2.6.0",
+ "tough-cookie": "^4.1.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/ibm-cloud-sdk-core/node_modules/@types/node": {
+ "version": "18.19.130",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.130.tgz",
+ "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/ibm-cloud-sdk-core/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ibm-cloud-sdk-core/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/ibm-cloud-sdk-core/node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/inline-style-parser": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
+ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==",
+ "license": "MIT"
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-alphabetical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+ "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz",
+ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hexadecimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
+ "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "1.21.7",
+ "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz",
+ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "bin/jiti.js"
+ }
+ },
+ "node_modules/jose": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmmirror.com/jose/-/jose-5.10.0.tgz",
+ "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/joycon": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/joycon/-/joycon-3.1.1.tgz",
+ "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/js-tiktoken": {
+ "version": "1.0.21",
+ "resolved": "https://registry.npmmirror.com/js-tiktoken/-/js-tiktoken-1.0.21.tgz",
+ "integrity": "sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==",
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.5.1"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-bigint": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bignumber.js": "^9.0.0"
+ }
+ },
+ "node_modules/jsonpointer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/jsonpointer/-/jsonpointer-5.0.1.tgz",
+ "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jsonwebtoken": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmmirror.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+ "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "jws": "^3.2.2",
+ "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.0.0",
+ "ms": "^2.1.1",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/jwa": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmmirror.com/jwa/-/jwa-1.4.2.tgz",
+ "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmmirror.com/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/jwa": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/jwa/-/jwa-2.0.1.tgz",
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "^1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/jws/-/jws-4.0.0.tgz",
+ "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^2.0.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/katex": {
+ "version": "0.16.25",
+ "resolved": "https://registry.npmmirror.com/katex/-/katex-0.16.25.tgz",
+ "integrity": "sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==",
+ "funding": [
+ "https://opencollective.com/katex",
+ "https://github.com/sponsors/katex"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^8.3.0"
+ },
+ "bin": {
+ "katex": "cli.js"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/langchain": {
+ "version": "0.3.36",
+ "resolved": "https://registry.npmmirror.com/langchain/-/langchain-0.3.36.tgz",
+ "integrity": "sha512-PqC19KChFF0QlTtYDFgfEbIg+SCnCXox29G8tY62QWfj9bOW7ew2kgWmPw5qoHLOTKOdQPvXET20/1Pdq8vAtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@langchain/openai": ">=0.1.0 <0.7.0",
+ "@langchain/textsplitters": ">=0.0.0 <0.2.0",
+ "js-tiktoken": "^1.0.12",
+ "js-yaml": "^4.1.0",
+ "jsonpointer": "^5.0.1",
+ "langsmith": "^0.3.67",
+ "openapi-types": "^12.1.3",
+ "p-retry": "4",
+ "uuid": "^10.0.0",
+ "yaml": "^2.2.1",
+ "zod": "^3.25.32"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@langchain/anthropic": "*",
+ "@langchain/aws": "*",
+ "@langchain/cerebras": "*",
+ "@langchain/cohere": "*",
+ "@langchain/core": ">=0.3.58 <0.4.0",
+ "@langchain/deepseek": "*",
+ "@langchain/google-genai": "*",
+ "@langchain/google-vertexai": "*",
+ "@langchain/google-vertexai-web": "*",
+ "@langchain/groq": "*",
+ "@langchain/mistralai": "*",
+ "@langchain/ollama": "*",
+ "@langchain/xai": "*",
+ "axios": "*",
+ "cheerio": "*",
+ "handlebars": "^4.7.8",
+ "peggy": "^3.0.2",
+ "typeorm": "*"
+ },
+ "peerDependenciesMeta": {
+ "@langchain/anthropic": {
+ "optional": true
+ },
+ "@langchain/aws": {
+ "optional": true
+ },
+ "@langchain/cerebras": {
+ "optional": true
+ },
+ "@langchain/cohere": {
+ "optional": true
+ },
+ "@langchain/deepseek": {
+ "optional": true
+ },
+ "@langchain/google-genai": {
+ "optional": true
+ },
+ "@langchain/google-vertexai": {
+ "optional": true
+ },
+ "@langchain/google-vertexai-web": {
+ "optional": true
+ },
+ "@langchain/groq": {
+ "optional": true
+ },
+ "@langchain/mistralai": {
+ "optional": true
+ },
+ "@langchain/ollama": {
+ "optional": true
+ },
+ "@langchain/xai": {
+ "optional": true
+ },
+ "axios": {
+ "optional": true
+ },
+ "cheerio": {
+ "optional": true
+ },
+ "handlebars": {
+ "optional": true
+ },
+ "peggy": {
+ "optional": true
+ },
+ "typeorm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/langchain/node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/langsmith": {
+ "version": "0.3.76",
+ "resolved": "https://registry.npmmirror.com/langsmith/-/langsmith-0.3.76.tgz",
+ "integrity": "sha512-JIRyT+InuaaMxq3dhXVOAkedAsugY5TOEAJrI87UuIfJVgV2i7K/lPI4+jNtakaYL9gIKbIwpXHBMpb8rrRgOg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/uuid": "^10.0.0",
+ "chalk": "^4.1.2",
+ "console-table-printer": "^2.12.1",
+ "p-queue": "^6.6.2",
+ "p-retry": "4",
+ "semver": "^7.6.3",
+ "uuid": "^10.0.0"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "*",
+ "@opentelemetry/exporter-trace-otlp-proto": "*",
+ "@opentelemetry/sdk-trace-base": "*",
+ "openai": "*"
+ },
+ "peerDependenciesMeta": {
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "@opentelemetry/exporter-trace-otlp-proto": {
+ "optional": true
+ },
+ "@opentelemetry/sdk-trace-base": {
+ "optional": true
+ },
+ "openai": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/langsmith/node_modules/uuid": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz",
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/libphonenumber-js": {
+ "version": "1.12.25",
+ "resolved": "https://registry.npmmirror.com/libphonenumber-js/-/libphonenumber-js-1.12.25.tgz",
+ "integrity": "sha512-u90tUu/SEF8b+RaDKCoW7ZNFDakyBtFlX1ex3J+VH+ElWes/UaitJLt/w4jGu8uAE41lltV/s+kMVtywcMEg7g==",
+ "license": "MIT"
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.",
+ "license": "MIT"
+ },
+ "node_modules/lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/long": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/long/-/long-5.3.2.tgz",
+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lowlight": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmmirror.com/lowlight/-/lowlight-1.20.0.tgz",
+ "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==",
+ "license": "MIT",
+ "dependencies": {
+ "fault": "^1.0.0",
+ "highlight.js": "~10.7.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/markdown-table": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.4.tgz",
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/mdast-util-definitions": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz",
+ "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-definitions/node_modules/@types/mdast": {
+ "version": "3.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz",
+ "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2"
+ }
+ },
+ "node_modules/mdast-util-find-and-replace": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz",
+ "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-from-markdown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
+ "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-from-markdown/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/mdast-util-gfm": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz",
+ "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
+ "mdast-util-gfm-footnote": "^2.0.0",
+ "mdast-util-gfm-strikethrough": "^2.0.0",
+ "mdast-util-gfm-table": "^2.0.0",
+ "mdast-util-gfm-task-list-item": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-autolink-literal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "micromark-util-character": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-strikethrough": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-task-list-item": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-math": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-math/-/mdast-util-math-3.0.0.tgz",
+ "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.1.0",
+ "unist-util-remove-position": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-math/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-mdx-expression": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-expression/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
+ "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/parse-entities": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/parse-entities/-/parse-entities-4.0.2.tgz",
+ "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/parse-entities/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/mdast-util-mdx-jsx/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdxjs-esm/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-phrasing": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
+ "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/mdast-util-to-hast/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromark": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/micromark/-/micromark-4.0.2.tgz",
+ "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
+ "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
+ "micromark-extension-gfm-footnote": "^2.0.0",
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
+ "micromark-extension-gfm-table": "^2.0.0",
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-autolink-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-strikethrough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz",
+ "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-tagfilter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-math": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz",
+ "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/katex": "^0.16.0",
+ "devlop": "^1.0.0",
+ "katex": "^0.16.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-chunked": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
+ "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-types": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
+ "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/micromark/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/mustache": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/mustache/-/mustache-4.2.0.tgz",
+ "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
+ "license": "MIT",
+ "bin": {
+ "mustache": "bin/mustache"
+ }
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/next": {
+ "version": "14.2.33",
+ "resolved": "https://registry.npmmirror.com/next/-/next-14.2.33.tgz",
+ "integrity": "sha512-GiKHLsD00t4ACm1p00VgrI0rUFAC9cRDGReKyERlM57aeEZkOQGcZTpIbsGn0b562FTPJWmYfKwplfO9EaT6ng==",
+ "license": "MIT",
+ "dependencies": {
+ "@next/env": "14.2.33",
+ "@swc/helpers": "0.5.5",
+ "busboy": "1.6.0",
+ "caniuse-lite": "^1.0.30001579",
+ "graceful-fs": "^4.2.11",
+ "postcss": "8.4.31",
+ "styled-jsx": "5.1.1"
+ },
+ "bin": {
+ "next": "dist/bin/next"
+ },
+ "engines": {
+ "node": ">=18.17.0"
+ },
+ "optionalDependencies": {
+ "@next/swc-darwin-arm64": "14.2.33",
+ "@next/swc-darwin-x64": "14.2.33",
+ "@next/swc-linux-arm64-gnu": "14.2.33",
+ "@next/swc-linux-arm64-musl": "14.2.33",
+ "@next/swc-linux-x64-gnu": "14.2.33",
+ "@next/swc-linux-x64-musl": "14.2.33",
+ "@next/swc-win32-arm64-msvc": "14.2.33",
+ "@next/swc-win32-ia32-msvc": "14.2.33",
+ "@next/swc-win32-x64-msvc": "14.2.33"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.1.0",
+ "@playwright/test": "^1.41.2",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "sass": "^1.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "@playwright/test": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/next/node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/nice-grpc": {
+ "version": "2.1.13",
+ "resolved": "https://registry.npmmirror.com/nice-grpc/-/nice-grpc-2.1.13.tgz",
+ "integrity": "sha512-IkXNok2NFyYh0WKp1aJFwFV3Ue2frBkJ16ojrmgX3Tc9n0g7r0VU+ur3H/leDHPPGsEeVozdMynGxYT30k3D/Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@grpc/grpc-js": "^1.14.0",
+ "abort-controller-x": "^0.4.0",
+ "nice-grpc-common": "^2.0.2"
+ }
+ },
+ "node_modules/nice-grpc-client-middleware-retry": {
+ "version": "3.1.12",
+ "resolved": "https://registry.npmmirror.com/nice-grpc-client-middleware-retry/-/nice-grpc-client-middleware-retry-3.1.12.tgz",
+ "integrity": "sha512-CHKIeHznAePOsT2dLeGwoOFaybQz6LvkIsFfN8SLcyGyTR7AB6vZMaECJjx+QPL8O2qVgaVE167PdeOmQrPuag==",
+ "license": "MIT",
+ "dependencies": {
+ "abort-controller-x": "^0.4.0",
+ "nice-grpc-common": "^2.0.2"
+ }
+ },
+ "node_modules/nice-grpc-common": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/nice-grpc-common/-/nice-grpc-common-2.0.2.tgz",
+ "integrity": "sha512-7RNWbls5kAL1QVUOXvBsv1uO0wPQK3lHv+cY1gwkTzirnG1Nop4cBJZubpgziNbaVc/bl9QJcyvsf/NQxa3rjQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ts-error": "^1.0.6"
+ }
+ },
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "deprecated": "Use your platform's native DOMException instead",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-forge": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+ "license": "(BSD-3-Clause OR GPL-2.0)",
+ "engines": {
+ "node": ">= 6.13.0"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.27",
+ "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.27.tgz",
+ "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-exit-leak-free": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
+ "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/openai": {
+ "version": "4.104.0",
+ "resolved": "https://registry.npmmirror.com/openai/-/openai-4.104.0.tgz",
+ "integrity": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/node": "^18.11.18",
+ "@types/node-fetch": "^2.6.4",
+ "abort-controller": "^3.0.0",
+ "agentkeepalive": "^4.2.1",
+ "form-data-encoder": "1.7.2",
+ "formdata-node": "^4.3.2",
+ "node-fetch": "^2.6.7"
+ },
+ "bin": {
+ "openai": "bin/cli"
+ },
+ "peerDependencies": {
+ "ws": "^8.18.0",
+ "zod": "^3.23.8"
+ },
+ "peerDependenciesMeta": {
+ "ws": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/openai/node_modules/@types/node": {
+ "version": "18.19.130",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.19.130.tgz",
+ "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/openai/node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "license": "MIT"
+ },
+ "node_modules/openapi-types": {
+ "version": "12.1.3",
+ "resolved": "https://registry.npmmirror.com/openapi-types/-/openapi-types-12.1.3.tgz",
+ "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==",
+ "license": "MIT"
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-queue": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmmirror.com/p-queue/-/p-queue-6.6.2.tgz",
+ "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter3": "^4.0.4",
+ "p-timeout": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-retry": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/retry": "0.12.0",
+ "retry": "^0.13.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-timeout": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/p-timeout/-/p-timeout-3.2.0.tgz",
+ "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
+ "license": "MIT",
+ "dependencies": {
+ "p-finally": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz",
+ "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/partial-json": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/partial-json/-/partial-json-0.1.7.tgz",
+ "integrity": "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==",
+ "license": "MIT"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "license": "MIT"
+ },
+ "node_modules/peek-readable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/peek-readable/-/peek-readable-4.1.0.tgz",
+ "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pino": {
+ "version": "9.14.0",
+ "resolved": "https://registry.npmmirror.com/pino/-/pino-9.14.0.tgz",
+ "integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==",
+ "license": "MIT",
+ "dependencies": {
+ "@pinojs/redact": "^0.4.0",
+ "atomic-sleep": "^1.0.0",
+ "on-exit-leak-free": "^2.1.0",
+ "pino-abstract-transport": "^2.0.0",
+ "pino-std-serializers": "^7.0.0",
+ "process-warning": "^5.0.0",
+ "quick-format-unescaped": "^4.0.3",
+ "real-require": "^0.2.0",
+ "safe-stable-stringify": "^2.3.1",
+ "sonic-boom": "^4.0.1",
+ "thread-stream": "^3.0.0"
+ },
+ "bin": {
+ "pino": "bin.js"
+ }
+ },
+ "node_modules/pino-abstract-transport": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
+ "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
+ "license": "MIT",
+ "dependencies": {
+ "split2": "^4.0.0"
+ }
+ },
+ "node_modules/pino-pretty": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmmirror.com/pino-pretty/-/pino-pretty-11.3.0.tgz",
+ "integrity": "sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==",
+ "license": "MIT",
+ "dependencies": {
+ "colorette": "^2.0.7",
+ "dateformat": "^4.6.3",
+ "fast-copy": "^3.0.2",
+ "fast-safe-stringify": "^2.1.1",
+ "help-me": "^5.0.0",
+ "joycon": "^3.1.1",
+ "minimist": "^1.2.6",
+ "on-exit-leak-free": "^2.1.0",
+ "pino-abstract-transport": "^2.0.0",
+ "pump": "^3.0.0",
+ "readable-stream": "^4.0.0",
+ "secure-json-parse": "^2.4.0",
+ "sonic-boom": "^4.0.1",
+ "strip-json-comments": "^3.1.1"
+ },
+ "bin": {
+ "pino-pretty": "bin.js"
+ }
+ },
+ "node_modules/pino-std-serializers": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz",
+ "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==",
+ "license": "MIT"
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/playwright": {
+ "version": "1.56.1",
+ "resolved": "https://registry.npmmirror.com/playwright/-/playwright-1.56.1.tgz",
+ "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "playwright-core": "1.56.1"
+ },
+ "bin": {
+ "playwright": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "fsevents": "2.3.2"
+ }
+ },
+ "node_modules/playwright-core": {
+ "version": "1.56.1",
+ "resolved": "https://registry.npmmirror.com/playwright-core/-/playwright-core-1.56.1.tgz",
+ "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "playwright-core": "cli.js"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.1.0.tgz",
+ "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
+ "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "lilconfig": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "jiti": ">=1.21.0",
+ "postcss": ">=8.0.9",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.2.0.tgz",
+ "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.1"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/prismjs": {
+ "version": "1.30.0",
+ "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.30.0.tgz",
+ "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/process-warning": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/process-warning/-/process-warning-5.0.0.tgz",
+ "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
+ "node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmmirror.com/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/protobufjs": {
+ "version": "7.5.4",
+ "resolved": "https://registry.npmmirror.com/protobufjs/-/protobufjs-7.5.4.tgz",
+ "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
+ "hasInstallScript": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/node": ">=13.7.0",
+ "long": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/psl": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz",
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/lupomontero"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.3.tgz",
+ "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==",
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/quick-format-unescaped": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==",
+ "license": "MIT"
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "license": "MIT"
+ },
+ "node_modules/react-markdown": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmmirror.com/react-markdown/-/react-markdown-8.0.7.tgz",
+ "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/prop-types": "^15.0.0",
+ "@types/unist": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-whitespace": "^2.0.0",
+ "prop-types": "^15.0.0",
+ "property-information": "^6.0.0",
+ "react-is": "^18.0.0",
+ "remark-parse": "^10.0.0",
+ "remark-rehype": "^10.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-object": "^0.4.0",
+ "unified": "^10.0.0",
+ "unist-util-visit": "^4.0.0",
+ "vfile": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ },
+ "peerDependencies": {
+ "@types/react": ">=16",
+ "react": ">=16"
+ }
+ },
+ "node_modules/react-syntax-highlighter": {
+ "version": "15.6.6",
+ "resolved": "https://registry.npmmirror.com/react-syntax-highlighter/-/react-syntax-highlighter-15.6.6.tgz",
+ "integrity": "sha512-DgXrc+AZF47+HvAPEmn7Ua/1p10jNoVZVI/LoPiYdtY+OM+/nG5yefLHKJwdKqY1adMuHFbeyBaG9j64ML7vTw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.3.1",
+ "highlight.js": "^10.4.1",
+ "highlightjs-vue": "^1.0.0",
+ "lowlight": "^1.17.0",
+ "prismjs": "^1.30.0",
+ "refractor": "^3.6.0"
+ },
+ "peerDependencies": {
+ "react": ">= 0.14.0"
+ }
+ },
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-4.7.0.tgz",
+ "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==",
+ "license": "MIT",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/readable-web-to-node-stream": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.4.tgz",
+ "integrity": "sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "readable-stream": "^4.7.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/real-require": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/real-require/-/real-require-0.2.0.tgz",
+ "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/reflect-metadata": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmmirror.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
+ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/refractor": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/refractor/-/refractor-3.6.0.tgz",
+ "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==",
+ "license": "MIT",
+ "dependencies": {
+ "hastscript": "^6.0.0",
+ "parse-entities": "^2.0.0",
+ "prismjs": "~1.27.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/refractor/node_modules/prismjs": {
+ "version": "1.27.0",
+ "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.27.0.tgz",
+ "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/rehype-raw": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/rehype-raw/-/rehype-raw-7.0.0.tgz",
+ "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-raw": "^9.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-raw/node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/rehype-raw/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/rehype-raw/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-raw/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/remark-gfm/-/remark-gfm-4.0.1.tgz",
+ "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-gfm": "^3.0.0",
+ "micromark-extension-gfm": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/remark-gfm/node_modules/remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm/node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmmirror.com/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-math": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/remark-math/-/remark-math-6.0.0.tgz",
+ "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-math": "^3.0.0",
+ "micromark-extension-math": "^3.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-math/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/remark-math/node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmmirror.com/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-math/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-math/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse": {
+ "version": "10.0.2",
+ "resolved": "https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.2.tgz",
+ "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "mdast-util-from-markdown": "^1.0.0",
+ "unified": "^10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse/node_modules/@types/mdast": {
+ "version": "3.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz",
+ "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2"
+ }
+ },
+ "node_modules/remark-parse/node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/remark-parse/node_modules/mdast-util-from-markdown": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz",
+ "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "mdast-util-to-string": "^3.1.0",
+ "micromark": "^3.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-decode-string": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "uvu": "^0.5.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse/node_modules/mdast-util-to-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz",
+ "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz",
+ "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-core-commonmark": "^1.0.1",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-combine-extensions": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-sanitize-uri": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-core-commonmark": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz",
+ "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-factory-destination": "^1.0.0",
+ "micromark-factory-label": "^1.0.0",
+ "micromark-factory-space": "^1.0.0",
+ "micromark-factory-title": "^1.0.0",
+ "micromark-factory-whitespace": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-classify-character": "^1.0.0",
+ "micromark-util-html-tag-name": "^1.0.0",
+ "micromark-util-normalize-identifier": "^1.0.0",
+ "micromark-util-resolve-all": "^1.0.0",
+ "micromark-util-subtokenize": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.1",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-factory-destination": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz",
+ "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-factory-label": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz",
+ "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-factory-space": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
+ "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-factory-title": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz",
+ "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-factory-whitespace": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz",
+ "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-character": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
+ "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-chunked": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz",
+ "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-classify-character": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz",
+ "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-combine-extensions": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz",
+ "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz",
+ "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-decode-string": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz",
+ "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-decode-numeric-character-reference": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz",
+ "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-html-tag-name": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz",
+ "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-normalize-identifier": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz",
+ "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-resolve-all": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz",
+ "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-sanitize-uri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz",
+ "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-subtokenize": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz",
+ "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-chunked": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0",
+ "uvu": "^0.5.0"
+ }
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-symbol": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
+ "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/remark-parse/node_modules/micromark-util-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
+ "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/remark-parse/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/remark-parse/node_modules/unist-util-stringify-position": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
+ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-rehype": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz",
+ "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-to-hast": "^12.1.0",
+ "unified": "^10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-rehype/node_modules/@types/mdast": {
+ "version": "3.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz",
+ "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2"
+ }
+ },
+ "node_modules/remark-rehype/node_modules/mdast-util-to-hast": {
+ "version": "12.3.0",
+ "resolved": "https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz",
+ "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "@types/mdast": "^3.0.0",
+ "mdast-util-definitions": "^5.0.0",
+ "micromark-util-sanitize-uri": "^1.1.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-generated": "^2.0.0",
+ "unist-util-position": "^4.0.0",
+ "unist-util-visit": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-rehype/node_modules/micromark-util-character": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
+ "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/remark-rehype/node_modules/micromark-util-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz",
+ "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/remark-rehype/node_modules/micromark-util-sanitize-uri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz",
+ "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-encode": "^1.0.0",
+ "micromark-util-symbol": "^1.0.0"
+ }
+ },
+ "node_modules/remark-rehype/node_modules/micromark-util-symbol": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
+ "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/remark-rehype/node_modules/micromark-util-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
+ "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/remark-rehype/node_modules/unist-util-position": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.4.tgz",
+ "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmmirror.com/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/remark-stringify/node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmmirror.com/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/retry-axios": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmmirror.com/retry-axios/-/retry-axios-2.6.0.tgz",
+ "integrity": "sha512-pOLi+Gdll3JekwuFjXO3fTq+L9lzMQGcSq7M5gIjExcl3Gu1hd4XXuf5o3+LuSBsaULQH7DiNbsqPd1chVpQGQ==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "engines": {
+ "node": ">=10.7.0"
+ },
+ "peerDependencies": {
+ "axios": "*"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "license": "MIT",
+ "dependencies": {
+ "mri": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safe-stable-stringify": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmmirror.com/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
+ "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/secure-json-parse": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmmirror.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
+ "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmmirror.com/send/-/send-0.19.0.tgz",
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/send/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/serve-static": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.19.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/simple-wcswidth": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/simple-wcswidth/-/simple-wcswidth-1.1.2.tgz",
+ "integrity": "sha512-j7piyCjAeTDSjzTSQ7DokZtMNwNlEAyxqSZeCS+CXH7fJ4jx3FuJ/mTW3mE+6JLs4VJBbcll0Kjn+KXI5t21Iw==",
+ "license": "MIT"
+ },
+ "node_modules/sonic-boom": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/sonic-boom/-/sonic-boom-4.2.0.tgz",
+ "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==",
+ "license": "MIT",
+ "dependencies": {
+ "atomic-sleep": "^1.0.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/stringify-entities/node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strnum": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/strnum/-/strnum-2.1.1.tgz",
+ "integrity": "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/NaturalIntelligence"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/strtok3": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/strtok3/-/strtok3-6.3.0.tgz",
+ "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@tokenizer/token": "^0.3.0",
+ "peek-readable": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/style-to-js": {
+ "version": "1.1.18",
+ "resolved": "https://registry.npmmirror.com/style-to-js/-/style-to-js-1.1.18.tgz",
+ "integrity": "sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==",
+ "license": "MIT",
+ "dependencies": {
+ "style-to-object": "1.0.11"
+ }
+ },
+ "node_modules/style-to-js/node_modules/inline-style-parser": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
+ "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==",
+ "license": "MIT"
+ },
+ "node_modules/style-to-js/node_modules/style-to-object": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmmirror.com/style-to-object/-/style-to-object-1.0.11.tgz",
+ "integrity": "sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==",
+ "license": "MIT",
+ "dependencies": {
+ "inline-style-parser": "0.2.4"
+ }
+ },
+ "node_modules/style-to-object": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmmirror.com/style-to-object/-/style-to-object-0.4.4.tgz",
+ "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==",
+ "license": "MIT",
+ "dependencies": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
+ "node_modules/styled-jsx": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/styled-jsx/-/styled-jsx-5.1.1.tgz",
+ "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
+ "license": "MIT",
+ "dependencies": {
+ "client-only": "0.0.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/sucrase": {
+ "version": "3.35.0",
+ "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.35.0.tgz",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "^10.3.10",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/sucrase/node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/tabbable": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/tabbable/-/tabbable-6.3.0.tgz",
+ "integrity": "sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==",
+ "license": "MIT"
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.18",
+ "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.4.18.tgz",
+ "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.6.0",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.2",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.7",
+ "lilconfig": "^3.1.3",
+ "micromatch": "^4.0.8",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.4.47",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0",
+ "postcss-nested": "^6.2.0",
+ "postcss-selector-parser": "^6.1.2",
+ "resolve": "^1.22.8",
+ "sucrase": "^3.35.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/thread-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/thread-stream/-/thread-stream-3.1.0.tgz",
+ "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
+ "license": "MIT",
+ "dependencies": {
+ "real-require": "^0.2.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/token-types": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmmirror.com/token-types/-/token-types-4.2.1.tgz",
+ "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@tokenizer/token": "^0.3.0",
+ "ieee754": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Borewit"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz",
+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "license": "BSD-3-Clause",
+ "peer": true,
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "license": "MIT"
+ },
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/trough/-/trough-2.2.0.tgz",
+ "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/ts-error": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/ts-error/-/ts-error-1.0.6.tgz",
+ "integrity": "sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==",
+ "license": "MIT"
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/type-graphql": {
+ "version": "2.0.0-rc.1",
+ "resolved": "https://registry.npmmirror.com/type-graphql/-/type-graphql-2.0.0-rc.1.tgz",
+ "integrity": "sha512-HCu4j3jR0tZvAAoO7DMBT3MRmah0DFRe5APymm9lXUghXA0sbhiMf6SLRafRYfk0R0KiUQYRduuGP3ap1RnF1Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/TypeGraphQL"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typegraphql"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@graphql-yoga/subscription": "^5.0.0",
+ "@types/node": "*",
+ "@types/semver": "^7.5.6",
+ "graphql-query-complexity": "^0.12.0",
+ "semver": "^7.5.4",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">= 18.12.0"
+ },
+ "peerDependencies": {
+ "class-validator": ">=0.14.0",
+ "graphql": "^16.8.1",
+ "graphql-scalars": "^1.22.4"
+ },
+ "peerDependenciesMeta": {
+ "class-validator": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "license": "MIT"
+ },
+ "node_modules/unified": {
+ "version": "10.1.2",
+ "resolved": "https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz",
+ "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "bail": "^2.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-generated": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz",
+ "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-6.0.1.tgz",
+ "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/unist-util-remove-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz",
+ "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-visit": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/unist-util-remove-position/node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/unist-util-visit": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz",
+ "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0",
+ "unist-util-visit-parents": "^5.1.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
+ "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/unist-util-visit/node_modules/unist-util-is": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.2.1.tgz",
+ "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz",
+ "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/untruncate-json": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/untruncate-json/-/untruncate-json-0.0.1.tgz",
+ "integrity": "sha512-4W9enDK4X1y1s2S/Rz7ysw6kDuMS3VmRjMFg7GZrNO+98OSe+x5Lh7PKYoVjy3lW/1wmhs6HW0lusnQRHgMarA==",
+ "license": "MIT"
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz",
+ "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/urlpattern-polyfill": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz",
+ "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==",
+ "license": "MIT"
+ },
+ "node_modules/urql": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/urql/-/urql-4.2.2.tgz",
+ "integrity": "sha512-3GgqNa6iF7bC4hY/ImJKN4REQILcSU9VKcKL8gfELZM8mM5BnLH1BsCc8kBdnVGD1LIFOs4W3O2idNHhON1r0w==",
+ "license": "MIT",
+ "dependencies": {
+ "@urql/core": "^5.1.1",
+ "wonka": "^6.3.2"
+ },
+ "peerDependencies": {
+ "@urql/core": "^5.0.0",
+ "react": ">= 16.8.0"
+ }
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-11.1.0.tgz",
+ "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
+ "node_modules/uvu": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz",
+ "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==",
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.0",
+ "diff": "^5.0.0",
+ "kleur": "^4.0.3",
+ "sade": "^1.7.3"
+ },
+ "bin": {
+ "uvu": "bin.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/validator": {
+ "version": "13.15.20",
+ "resolved": "https://registry.npmmirror.com/validator/-/validator-13.15.20.tgz",
+ "integrity": "sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vfile": {
+ "version": "5.3.7",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz",
+ "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^3.0.0",
+ "vfile-message": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-location/-/vfile-location-5.0.3.tgz",
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location/node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/vfile-location/node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location/node_modules/vfile-message": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-4.0.3.tgz",
+ "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz",
+ "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message/node_modules/unist-util-stringify-position": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
+ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile/node_modules/unist-util-stringify-position": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz",
+ "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/weaviate-client": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmmirror.com/weaviate-client/-/weaviate-client-3.9.0.tgz",
+ "integrity": "sha512-7qwg7YONAaT4zWnohLrFdzky+rZegVe76J+Tky/+7tuyvjFpdKgSrdqI/wPDh8aji0ZGZrL4DdGwGfFnZ+uV4w==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "abort-controller-x": "^0.4.3",
+ "graphql": "^16.11.0",
+ "graphql-request": "^6.1.0",
+ "long": "^5.3.2",
+ "nice-grpc": "^2.1.12",
+ "nice-grpc-client-middleware-retry": "^3.1.11",
+ "nice-grpc-common": "^2.0.2",
+ "uuid": "^9.0.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/weaviate-client/node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/web-streams-polyfill": {
+ "version": "4.0.0-beta.3",
+ "resolved": "https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
+ "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wonka": {
+ "version": "6.3.5",
+ "resolved": "https://registry.npmmirror.com/wonka/-/wonka-6.3.5.tgz",
+ "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==",
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ },
+ "node_modules/ws": {
+ "version": "8.18.3",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
+ "license": "MIT",
+ "peer": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.8.1.tgz",
+ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==",
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmmirror.com/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ },
+ "node_modules/zod-to-json-schema": {
+ "version": "3.24.6",
+ "resolved": "https://registry.npmmirror.com/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz",
+ "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==",
+ "license": "ISC",
+ "peerDependencies": {
+ "zod": "^3.24.1"
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ }
+ }
+}
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/package.json b/integrations/claude-agent-sdk/typescript/examples/copilotkit/package.json
new file mode 100644
index 000000000..186c1213a
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "claude-agent-sdk-copilotkit-demo",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@ag-ui/client": "^0.0.40",
+ "@copilotkit/runtime": "^1.10.6",
+ "@copilotkit/react-core": "^1.10.6",
+ "@copilotkit/react-ui": "^1.10.6",
+ "next": "^14.0.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
+ },
+ "devDependencies": {
+ "@types/node": "^20.0.0",
+ "@types/react": "^18.2.0",
+ "@types/react-dom": "^18.2.0",
+ "autoprefixer": "^10.4.16",
+ "postcss": "^8.4.32",
+ "tailwindcss": "^3.4.0",
+ "typescript": "^5.0.0"
+ }
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/postcss.config.js b/integrations/claude-agent-sdk/typescript/examples/copilotkit/postcss.config.js
new file mode 100644
index 000000000..c21c07635
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/postcss.config.js
@@ -0,0 +1,7 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/api/copilotkit/route.ts b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/api/copilotkit/route.ts
new file mode 100644
index 000000000..b9ebcea62
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/api/copilotkit/route.ts
@@ -0,0 +1,54 @@
+import {
+ CopilotRuntime,
+ ExperimentalEmptyAdapter,
+ copilotRuntimeNextJSAppRouterEndpoint,
+} from "@copilotkit/runtime";
+
+import { HttpAgent } from "@ag-ui/client";
+import { NextRequest } from "next/server";
+
+// Base URL for the Claude Agent SDK server
+// This should point to your FastAPI server running Claude Agent SDK integration
+const CLAUDE_AGENT_URL = process.env.CLAUDE_AGENT_URL || "http://localhost:8000/chat";
+
+// You can use any service adapter here for multi-agent support. We use
+// the empty adapter since we're only using one agent.
+const serviceAdapter = new ExperimentalEmptyAdapter();
+
+// Create HttpAgent that connects to Claude Agent SDK server
+// This agent implements the AbstractAgent interface required by CopilotKit
+const claudeAgent = new HttpAgent({
+ url: CLAUDE_AGENT_URL,
+ // Optional: Set initial state if needed
+ // initialState: {
+ // 'language': 'en'
+ // },
+ // Optional: Set initial messages for context
+ // initialMessages: [
+ // {
+ // id: '1',
+ // role: 'user',
+ // content: 'Initial message'
+ // }
+ // ]
+});
+
+// Create CopilotRuntime with the Claude Agent
+const runtime = new CopilotRuntime({
+ agents: {
+ // Agent ID that will be used in the frontend
+ 'agentic_chat': claudeAgent
+ }
+});
+
+// Next.js API route handler for CopilotKit runtime requests
+export const POST = async (req: NextRequest) => {
+ const { handleRequest } = copilotRuntimeNextJSAppRouterEndpoint({
+ runtime,
+ serviceAdapter,
+ endpoint: "/api/copilotkit",
+ });
+
+ return handleRequest(req);
+};
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/globals.css b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/globals.css
new file mode 100644
index 000000000..447d786d6
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/globals.css
@@ -0,0 +1,19 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+body {
+ margin: 0;
+ padding: 0;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+ sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+ font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+ monospace;
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/layout.tsx b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/layout.tsx
new file mode 100644
index 000000000..9bdd6111f
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/layout.tsx
@@ -0,0 +1,20 @@
+import type { Metadata } from "next";
+import "./globals.css";
+
+export const metadata: Metadata = {
+ title: "Claude Agent SDK + CopilotKit Demo",
+ description: "Integration of Claude Agent SDK with CopilotKit using AG-UI Protocol",
+};
+
+export default function RootLayout({
+ children,
+}: {
+ children: React.ReactNode;
+}) {
+ return (
+
+ {children}
+
+ );
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/page.tsx b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/page.tsx
new file mode 100644
index 000000000..dab6265eb
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/src/app/page.tsx
@@ -0,0 +1,79 @@
+"use client";
+import React, { useState } from "react";
+import "@copilotkit/react-ui/styles.css";
+import {
+ CopilotKit,
+ useFrontendTool,
+} from "@copilotkit/react-core";
+import { CopilotChat } from "@copilotkit/react-ui";
+import "./globals.css";
+
+const AgenticChat = () => {
+ return (
+
+
+
+ );
+};
+
+const Chat = () => {
+ const [background, setBackground] = useState("--copilot-kit-background-color");
+
+ // Example frontend tool that can be called by Claude Agent
+ // NOTE: useFrontendTool must be called inside a component that's wrapped by CopilotKit
+ useFrontendTool({
+ name: "change_background",
+ description:
+ "Change the background color of the chat. Can be anything that the CSS background attribute accepts. Regular colors, linear or radial gradients etc.",
+ parameters: [
+ {
+ name: "background",
+ type: "string",
+ description: "The background. Prefer gradients. Only use when asked.",
+ },
+ ],
+ handler: ({ background }) => {
+ setBackground(background);
+ return {
+ status: "success",
+ message: `Background changed to ${background}`,
+ };
+ },
+ });
+
+ return (
+
+ );
+};
+
+export default AgenticChat;
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/tailwind.config.js b/integrations/claude-agent-sdk/typescript/examples/copilotkit/tailwind.config.js
new file mode 100644
index 000000000..dcccb4312
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/tailwind.config.js
@@ -0,0 +1,12 @@
+module.exports = {
+ content: [
+ "./src/pages/**/*.{js,ts,jsx,tsx,mdx}",
+ "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
+ "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
+ ],
+ theme: {
+ extend: {},
+ },
+ plugins: [],
+};
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/copilotkit/tsconfig.json b/integrations/claude-agent-sdk/typescript/examples/copilotkit/tsconfig.json
new file mode 100644
index 000000000..79cde9086
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/copilotkit/tsconfig.json
@@ -0,0 +1,28 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/direct-api-example.ts b/integrations/claude-agent-sdk/typescript/examples/direct-api-example.ts
new file mode 100644
index 000000000..c170cb13e
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/direct-api-example.ts
@@ -0,0 +1,87 @@
+/**
+ * Direct Anthropic API Example
+ *
+ * Does not use Agent SDK, directly uses @anthropic-ai/sdk
+ * This method is compatible with third-party API proxies (e.g., Zhipu)
+ *
+ * Environment variables (in .env.local):
+ * - ANTHROPIC_AUTH_TOKEN: Claude API authentication token
+ * - ANTHROPIC_BASE_URL: API base URL (optional)
+ */
+
+import dotenv from 'dotenv';
+import { resolve, dirname } from 'path';
+import { fileURLToPath } from 'url';
+import Anthropic from '@anthropic-ai/sdk';
+
+// Get current file directory in ESM mode
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename);
+
+// Load .env.local environment variables
+const envPath1 = resolve(__dirname, '.env.local');
+const envPath2 = resolve(process.cwd(), '.env.local');
+
+dotenv.config({ path: envPath1 });
+dotenv.config({ path: envPath2 });
+
+// Validate environment variables
+if (!process.env.ANTHROPIC_AUTH_TOKEN && !process.env.ANTHROPIC_API_KEY) {
+ console.error('❌ Error: ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY not found');
+ process.exit(1);
+}
+
+console.log('✅ Environment variables loaded');
+console.log(' - ANTHROPIC_AUTH_TOKEN:', process.env.ANTHROPIC_AUTH_TOKEN ? 'Set' : 'Not set');
+console.log(' - ANTHROPIC_BASE_URL:', process.env.ANTHROPIC_BASE_URL || 'Using default');
+console.log('');
+
+async function main() {
+ try {
+ // Initialize Anthropic client
+ const client = new Anthropic({
+ apiKey: process.env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_API_KEY,
+ baseURL: process.env.ANTHROPIC_BASE_URL,
+ });
+
+ console.log('🚀 Starting Claude API call...\n');
+ console.log('💬 AI Response:\n');
+
+ // Call API (streaming response)
+ const stream = await client.messages.stream({
+ model: 'claude-3-5-sonnet-20241022',
+ max_tokens: 1024,
+ messages: [
+ {
+ role: 'user',
+ content: 'Hello! Please introduce yourself in one sentence.',
+ },
+ ],
+ });
+
+ // Listen to streaming events
+ for await (const event of stream) {
+ if (event.type === 'content_block_delta') {
+ if (event.delta.type === 'text_delta') {
+ process.stdout.write(event.delta.text);
+ }
+ }
+ }
+
+ console.log('\n\n✅ Conversation completed');
+ console.log('🎉 Done!\n');
+
+ } catch (error: any) {
+ console.error('\n❌ Error occurred:', error.message);
+ if (error.status) {
+ console.error('HTTP Status Code:', error.status);
+ }
+ if (error.error) {
+ console.error('Error details:', JSON.stringify(error.error, null, 2));
+ }
+ process.exit(1);
+ }
+}
+
+// Run main function
+main();
diff --git a/integrations/claude-agent-sdk/typescript/examples/env.example b/integrations/claude-agent-sdk/typescript/examples/env.example
new file mode 100644
index 000000000..04aab37c7
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/env.example
@@ -0,0 +1,20 @@
+# Claude API Key (Required)
+ANTHROPIC_API_KEY=your_api_key_here
+
+# Server Port (Optional, default is 3000)
+# PORT=3000
+
+# Application Name (Optional)
+# APP_NAME=claude-example
+
+# System Prompt (Optional)
+# SYSTEM_PROMPT=You are a helpful assistant
+
+# Enable Persistent Sessions (Optional, default is true)
+# ENABLE_PERSISTENT_SESSIONS=true
+
+# Session Timeout (milliseconds) (Optional, default is 30 minutes)
+# SESSION_TIMEOUT=1800000
+
+# Permission Mode (Optional, allowed values: ask, auto, none, default is ask)
+# PERMISSION_MODE=ask
diff --git a/integrations/claude-agent-sdk/typescript/examples/package.json b/integrations/claude-agent-sdk/typescript/examples/package.json
new file mode 100644
index 000000000..52f3608ab
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "@ag-ui/claude-example",
+ "version": "0.0.1",
+ "private": true,
+ "scripts": {
+ "dev": "tsx src/server.ts",
+ "simple": "tsx simple-example.ts",
+ "pure": "tsx pure-sdk-example.ts",
+ "pure-tools": "tsx pure-sdk-with-tools.ts",
+ "direct": "tsx direct-api-example.ts",
+ "build": "tsc"
+ },
+ "dependencies": {
+ "@ag-ui/claude": "workspace:*",
+ "@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
+ "@anthropic-ai/sdk": "^0.68.0",
+ "cors": "^2.8.5",
+ "dotenv": "^16.4.7",
+ "express": "^4.18.2"
+ },
+ "devDependencies": {
+ "@types/cors": "^2.8.13",
+ "@types/dotenv": "^8.2.0",
+ "@types/express": "^4.17.17",
+ "@types/node": "^20.11.19",
+ "tsx": "^4.7.0",
+ "typescript": "^5.3.3"
+ }
+}
diff --git a/integrations/claude-agent-sdk/typescript/examples/pure-sdk-example.ts b/integrations/claude-agent-sdk/typescript/examples/pure-sdk-example.ts
new file mode 100644
index 000000000..1798a4de0
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/pure-sdk-example.ts
@@ -0,0 +1,154 @@
+/**
+ * Pure Claude Agent SDK Example
+ *
+ * Directly calls @anthropic-ai/claude-agent-sdk without ag-ui
+ *
+ * Environment variables (in .env.local):
+ * - ANTHROPIC_AUTH_TOKEN: Claude API authentication token
+ * - ANTHROPIC_BASE_URL: API base URL (optional)
+ */
+
+import dotenv from 'dotenv';
+import { resolve, dirname } from 'path';
+import { fileURLToPath } from 'url';
+
+// Get current file directory in ESM mode
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename);
+
+// Load .env.local environment variables (try multiple paths)
+const envPath1 = resolve(__dirname, '.env.local');
+const envPath2 = resolve(process.cwd(), '.env.local');
+
+console.log('Attempting to load environment variables:');
+console.log(' Path 1:', envPath1);
+console.log(' Path 2:', envPath2);
+console.log(' Current directory:', process.cwd());
+console.log('');
+
+dotenv.config({ path: envPath1 });
+dotenv.config({ path: envPath2 });
+
+// Validate environment variables
+if (!process.env.ANTHROPIC_AUTH_TOKEN && !process.env.ANTHROPIC_API_KEY) {
+ console.error('❌ Error: ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY not found');
+ console.error('Please set ANTHROPIC_AUTH_TOKEN in .env.local file');
+ console.error('');
+ console.error('Current environment variables:');
+ console.error(' ANTHROPIC_AUTH_TOKEN:', process.env.ANTHROPIC_AUTH_TOKEN);
+ console.error(' ANTHROPIC_API_KEY:', process.env.ANTHROPIC_API_KEY);
+ process.exit(1);
+}
+
+console.log('✅ Environment variables loaded');
+console.log(' - ANTHROPIC_AUTH_TOKEN:', process.env.ANTHROPIC_AUTH_TOKEN ? 'Set' : 'Not set');
+console.log(' - ANTHROPIC_BASE_URL:', process.env.ANTHROPIC_BASE_URL || 'Using default');
+console.log('');
+
+async function main() {
+ try {
+ // Dynamically import Claude Agent SDK
+ const { query } = await import('@anthropic-ai/claude-agent-sdk');
+
+ console.log('🚀 Starting Claude Agent SDK call...\n');
+
+ // SDK configuration options
+ const options: any = {
+ // SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+ // Also automatically reads ANTHROPIC_BASE_URL if set
+ permissionMode: 'bypassPermissions' as const, // Allowed values: acceptEdits, bypassPermissions, default, plan
+ verbose: true, // Enable verbose logging
+
+ // Add stderr callback for debugging
+ stderr: (data: string) => {
+ console.error('[Claude CLI Debug]:', data);
+ },
+ };
+
+ // If base URL is set, pass it explicitly (some third-party APIs may require this)
+ if (process.env.ANTHROPIC_BASE_URL) {
+ options.baseUrl = process.env.ANTHROPIC_BASE_URL;
+ console.log(' Using custom Base URL:', options.baseUrl);
+ }
+
+ // If API Key is set, pass it explicitly
+ if (process.env.ANTHROPIC_AUTH_TOKEN) {
+ console.log(' Using AUTH_TOKEN');
+ } else if (process.env.ANTHROPIC_API_KEY) {
+ options.apiKey = process.env.ANTHROPIC_API_KEY;
+ console.log(' Using API_KEY');
+ }
+
+ options.env = process.env;
+
+ console.log('');
+
+ // Call SDK's query function
+ const result = query({
+ prompt: 'Hello! Please introduce yourself in one sentence.',
+ options,
+ });
+
+ console.log('💬 AI Response:\n');
+
+ // Iterate through response stream
+ for await (const message of result) {
+ // Handle different message types
+ switch (message.type) {
+ case 'assistant':
+ // Assistant message - contains text content
+ if (message.content) {
+ for (const block of message.content) {
+ if (block.type === 'text') {
+ console.log(block.text);
+ } else if (block.type === 'thinking') {
+ console.log('🤔 [Thinking]:', block.thinking);
+ }
+ }
+ }
+ break;
+
+ case 'partial_assistant':
+ // Streaming assistant message (partial content)
+ if (message.content) {
+ for (const block of message.content) {
+ if (block.type === 'text') {
+ process.stdout.write(block.text);
+ }
+ }
+ }
+ break;
+
+ case 'result':
+ // Final result message
+ if (message.subtype === 'success') {
+ console.log('\n\n✅ Conversation completed');
+ } else if (message.subtype === 'error') {
+ console.error('\n\n❌ Error:', message.error);
+ }
+ break;
+
+ case 'compact_boundary':
+ // Compact boundary message (used to separate messages)
+ console.log('\n--- Message Boundary ---');
+ break;
+
+ default:
+ // Other message types
+ console.log('\n[Message Type]:', message.type);
+ }
+ }
+
+ console.log('\n🎉 Done!\n');
+
+ } catch (error: any) {
+ console.error('\n❌ Error occurred:', error.message);
+ if (error.stack) {
+ console.error('Error stack:', error.stack);
+ }
+ process.exit(1);
+ }
+}
+
+// Run main function
+main();
diff --git a/integrations/claude-agent-sdk/typescript/examples/pure-sdk-with-tools.ts b/integrations/claude-agent-sdk/typescript/examples/pure-sdk-with-tools.ts
new file mode 100644
index 000000000..a4b2d1c20
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/pure-sdk-with-tools.ts
@@ -0,0 +1,164 @@
+/**
+ * Pure Claude Agent SDK Example - With Tools
+ *
+ * Demonstrates how to use tool() and createSdkMcpServer() to define and use tools
+ * Reference: https://docs.claude.com/docs/agent-sdk/typescript#tool
+ *
+ * Environment variables (in .env.local):
+ * - ANTHROPIC_AUTH_TOKEN: Claude API authentication token
+ */
+
+import dotenv from 'dotenv';
+import { resolve, dirname } from 'path';
+import { fileURLToPath } from 'url';
+import { z } from 'zod';
+
+// Get current file directory in ESM mode
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = dirname(__filename);
+
+// Load .env.local environment variables (try multiple paths)
+dotenv.config({ path: resolve(__dirname, '.env.local') });
+dotenv.config({ path: resolve(process.cwd(), '.env.local') });
+
+// Validate environment variables
+if (!process.env.ANTHROPIC_AUTH_TOKEN && !process.env.ANTHROPIC_API_KEY) {
+ console.error('❌ Error: ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY not found');
+ process.exit(1);
+}
+
+console.log('✅ Environment variables loaded\n');
+
+async function main() {
+ try {
+ // Dynamically import Claude Agent SDK
+ const { query, tool, createSdkMcpServer } = await import('@anthropic-ai/claude-agent-sdk');
+
+ console.log('🚀 Starting Claude Agent SDK call (with tools)...\n');
+
+ // Create addition tool using tool()
+ const addTool = tool(
+ 'add',
+ 'Adds two numbers',
+ {
+ a: z.number().describe('First number'),
+ b: z.number().describe('Second number'),
+ },
+ async (args) => {
+ const result = args.a + args.b;
+ console.log(`\n🔧 [Tool Execution] add(${args.a}, ${args.b}) = ${result}`);
+ return {
+ content: [
+ {
+ type: 'text',
+ text: `Calculation result: ${args.a} + ${args.b} = ${result}`,
+ },
+ ],
+ };
+ }
+ );
+
+ // Create multiplication tool using tool()
+ const multiplyTool = tool(
+ 'multiply',
+ 'Multiplies two numbers',
+ {
+ a: z.number().describe('First number'),
+ b: z.number().describe('Second number'),
+ },
+ async (args) => {
+ const result = args.a * args.b;
+ console.log(`\n🔧 [Tool Execution] multiply(${args.a}, ${args.b}) = ${result}`);
+ return {
+ content: [
+ {
+ type: 'text',
+ text: `Calculation result: ${args.a} × ${args.b} = ${result}`,
+ },
+ ],
+ };
+ }
+ );
+
+ // Create MCP server using createSdkMcpServer()
+ const calculatorServer = createSdkMcpServer({
+ name: 'calculator',
+ version: '1.0.0',
+ tools: [addTool, multiplyTool],
+ });
+
+ // SDK configuration options
+ const options: any = {
+ permissionMode: 'bypassPermissions' as const,
+ mcpServers: {
+ calculator: calculatorServer, // Use the created MCP server
+ },
+ verbose: true,
+
+ // Add stderr callback for debugging
+ stderr: (data: string) => {
+ console.error('[Claude CLI Debug]:', data);
+ },
+ };
+
+ // Call SDK
+ const result = query({
+ prompt: 'Please help me calculate: (15 + 27) × 2',
+ options,
+ });
+
+ console.log('💬 AI Response:\n');
+
+ // Iterate through response stream
+ for await (const message of result) {
+ switch (message.type) {
+ case 'assistant':
+ // SDKAssistantMessage contains message.message.content
+ if (message.message?.content) {
+ for (const block of message.message.content) {
+ if (block.type === 'text') {
+ console.log(block.text);
+ } else if (block.type === 'tool_use') {
+ console.log(`\n🔧 [Tool Call] ${block.name}`, block.input);
+ }
+ }
+ }
+ break;
+
+ case 'stream_event':
+ // Streaming events
+ if (message.event?.type === 'content_block_delta') {
+ const delta = (message.event as any).delta;
+ if (delta?.type === 'text_delta') {
+ process.stdout.write(delta.text);
+ }
+ }
+ break;
+
+ case 'result':
+ if (message.subtype === 'success') {
+ console.log('\n\n✅ Conversation completed');
+ } else {
+ // error_during_execution | error_max_turns | error_max_budget_usd
+ console.error('\n\n❌ Error:', message.subtype);
+ if ('errors' in message && message.errors) {
+ console.error('Detailed errors:', message.errors);
+ }
+ }
+ break;
+ }
+ }
+
+ console.log('\n🎉 Done!\n');
+
+ } catch (error: any) {
+ console.error('\n❌ Error occurred:', error.message);
+ if (error.stack) {
+ console.error('Error stack:', error.stack);
+ }
+ process.exit(1);
+ }
+}
+
+// Run main function
+main();
diff --git a/integrations/claude-agent-sdk/typescript/examples/simple-test-server.js b/integrations/claude-agent-sdk/typescript/examples/simple-test-server.js
new file mode 100644
index 000000000..2c17efdb0
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/simple-test-server.js
@@ -0,0 +1,158 @@
+/**
+ * Simplified test server - for quick testing of Claude Agent SDK TypeScript integration
+ * Does not depend on complex workspace dependencies
+ */
+
+const http = require('http');
+const { ClaudeAgent } = require('../dist/index.js');
+
+// Get configuration from environment variables
+require('dotenv').config({ path: '.env.local' });
+require('dotenv').config({ path: '.env' });
+
+const PORT = process.env.PORT || 3000;
+const API_KEY = process.env.ANTHROPIC_API_KEY;
+
+if (!API_KEY) {
+ console.error('❌ Error: ANTHROPIC_API_KEY environment variable not set');
+ console.error('Please set ANTHROPIC_API_KEY in .env.local or .env file');
+ process.exit(1);
+}
+
+// Initialize Claude Agent
+const agent = new ClaudeAgent({
+ apiKey: API_KEY,
+ enablePersistentSessions: true,
+ sessionTimeout: 30 * 60 * 1000, // 30 minutes
+ permissionMode: 'ask',
+ claudeOptions: {
+ systemPrompt: process.env.SYSTEM_PROMPT || 'You are a helpful assistant',
+ appName: process.env.APP_NAME || 'simple-test-server',
+ },
+});
+
+console.log('✓ Claude Agent initialized successfully');
+
+// Create HTTP server
+const server = http.createServer(async (req, res) => {
+ // CORS headers
+ res.setHeader('Access-Control-Allow-Origin', '*');
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
+
+ // Handle OPTIONS preflight request
+ if (req.method === 'OPTIONS') {
+ res.writeHead(200);
+ res.end();
+ return;
+ }
+
+ // Health check
+ if (req.url === '/health' && req.method === 'GET') {
+ res.writeHead(200, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify({ status: 'ok', timestamp: new Date().toISOString() }));
+ return;
+ }
+
+ // Chat endpoint
+ if (req.url === '/api/chat' && req.method === 'POST') {
+ let body = '';
+
+ req.on('data', chunk => {
+ body += chunk.toString();
+ });
+
+ req.on('end', async () => {
+ try {
+ const input = JSON.parse(body);
+
+ console.log('📨 Received request:', {
+ agentId: input.agentId,
+ threadId: input.threadId,
+ messageCount: input.messages?.length || 0
+ });
+
+ // Set SSE response headers
+ res.writeHead(200, {
+ 'Content-Type': 'text/event-stream',
+ 'Cache-Control': 'no-cache',
+ 'Connection': 'keep-alive',
+ });
+
+ // Run agent and stream results
+ const subscription = agent.run(input).subscribe({
+ next: (event) => {
+ // Send SSE event
+ const eventData = JSON.stringify(event);
+ res.write(`data: ${eventData}\n\n`);
+
+ // Logging
+ if (event.type === 'text_message_content') {
+ process.stdout.write(event.text || '');
+ } else if (event.type === 'run_started') {
+ console.log('\n🚀 Execution started, runId:', event.runId);
+ } else if (event.type === 'run_finished') {
+ console.log('\n✓ Execution completed');
+ }
+ },
+ error: (error) => {
+ console.error('\n❌ Error:', error.message);
+ const errorEvent = JSON.stringify({
+ type: 'error',
+ error: error.message
+ });
+ res.write(`data: ${errorEvent}\n\n`);
+ res.end();
+ },
+ complete: () => {
+ res.end();
+ },
+ });
+
+ // Handle client disconnect
+ req.on('close', () => {
+ subscription.unsubscribe();
+ console.log('🔌 Client disconnected');
+ });
+
+ } catch (error) {
+ console.error('❌ Request processing error:', error.message);
+ res.writeHead(500, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify({ error: error.message }));
+ }
+ });
+ return;
+ }
+
+ // 404
+ res.writeHead(404, { 'Content-Type': 'application/json' });
+ res.end(JSON.stringify({ error: 'Not Found' }));
+});
+
+// Start server
+server.listen(PORT, () => {
+ console.log('\n🎉 Simplified test server started!');
+ console.log(`📍 Address: http://localhost:${PORT}`);
+ console.log(`🏥 Health check: http://localhost:${PORT}/health`);
+ console.log(`💬 Chat endpoint: http://localhost:${PORT}/api/chat`);
+ console.log('\nPress Ctrl+C to stop the server\n');
+});
+
+// Graceful shutdown
+process.on('SIGINT', async () => {
+ console.log('\n\n👋 Shutting down server...');
+ await agent.cleanup();
+ server.close(() => {
+ console.log('✓ Server closed');
+ process.exit(0);
+ });
+});
+
+process.on('SIGTERM', async () => {
+ console.log('\n\n👋 Shutting down server...');
+ await agent.cleanup();
+ server.close(() => {
+ console.log('✓ Server closed');
+ process.exit(0);
+ });
+});
diff --git a/integrations/claude-agent-sdk/typescript/examples/src/server.ts b/integrations/claude-agent-sdk/typescript/examples/src/server.ts
new file mode 100644
index 000000000..2f0aa86ab
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/src/server.ts
@@ -0,0 +1,297 @@
+/**
+ * Example Express server using Claude Agent SDK
+ */
+
+import dotenv from 'dotenv';
+import { resolve } from 'path';
+import express, { Request, Response } from 'express';
+import cors from 'cors';
+import { ClaudeAgent } from '@ag-ui/claude';
+import type { RunAgentInput } from '@ag-ui/client';
+
+// Load environment variables from .env.local or .env
+// Try multiple locations in order of priority
+dotenv.config({ path: resolve(__dirname, '../.env.local') }); // examples/.env.local (highest priority)
+dotenv.config({ path: resolve(__dirname, '../../.env.local') }); // typescript/.env.local
+dotenv.config({ path: resolve(__dirname, '../.env') }); // examples/.env
+dotenv.config({ path: resolve(__dirname, '../../.env') }); // typescript/.env
+
+const app = express();
+const port = process.env.PORT || 8000;
+
+// Middleware
+app.use(cors());
+app.use(express.json());
+
+// Validate and log environment variables
+console.log('=== Environment Variables ===');
+console.log('ANTHROPIC_API_KEY:', process.env.ANTHROPIC_API_KEY ? 'SET (' + process.env.ANTHROPIC_API_KEY.substring(0, 10) + '...)' : 'NOT SET');
+console.log('ANTHROPIC_AUTH_TOKEN:', process.env.ANTHROPIC_AUTH_TOKEN ? 'SET (' + process.env.ANTHROPIC_AUTH_TOKEN.substring(0, 10) + '...)' : 'NOT SET');
+console.log('ANTHROPIC_BASE_URL:', process.env.ANTHROPIC_BASE_URL || 'NOT SET (will use default)');
+console.log('PORT:', process.env.PORT || '8000 (default)');
+console.log('PERMISSION_MODE:', process.env.PERMISSION_MODE || 'bypassPermissions (default)');
+console.log('VERBOSE:', process.env.VERBOSE || 'false (default)');
+console.log('=============================\n');
+
+// SDK will automatically read ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+// Do NOT pass apiKey in config - let SDK handle it automatically
+if (!process.env.ANTHROPIC_AUTH_TOKEN && !process.env.ANTHROPIC_API_KEY) {
+ console.error('❌ ERROR: Neither ANTHROPIC_API_KEY nor ANTHROPIC_AUTH_TOKEN found in environment variables.');
+ console.error('SDK will not be able to authenticate. Please set one in .env.local or .env file.');
+ process.exit(1);
+}
+
+// Initialize Claude Agent
+// Do NOT pass apiKey or baseUrl - SDK reads from environment variables automatically
+const agent = new ClaudeAgent({
+ enablePersistentSessions: process.env.ENABLE_PERSISTENT_SESSIONS !== 'false',
+ sessionTimeout: process.env.SESSION_TIMEOUT
+ ? parseInt(process.env.SESSION_TIMEOUT)
+ : 30 * 60 * 1000, // 30 minutes
+ // Valid permission modes: 'default', 'acceptEdits', 'bypassPermissions', 'plan'
+ permissionMode: (process.env.PERMISSION_MODE as any) || 'bypassPermissions',
+ // Add stderr callback for debugging - CRITICAL for capturing CLI errors
+ stderr: (data: string) => {
+ // Log all stderr output from Claude CLI
+ console.error('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
+ console.error('[Claude CLI stderr]:', data);
+ console.error('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
+
+ // Also log to file if needed for debugging
+ if (process.env.LOG_TO_FILE === 'true') {
+ const fs = require('fs');
+ const timestamp = new Date().toISOString();
+ fs.appendFileSync('/tmp/claude-cli-stderr.log', `[${timestamp}] ${data}\n`);
+ }
+ },
+ // Enable verbose logging
+ verbose: process.env.VERBOSE === 'true',
+});
+
+console.log('✓ Claude Agent initialized with stderr callback for error logging');
+
+// Health check endpoint
+app.get('/health', (req: Request, res: Response) => {
+ res.json({ status: 'ok' });
+});
+
+// Chat endpoint for CopilotKit compatibility
+app.post('/chat', async (req: Request, res: Response) => {
+ try {
+ const input: RunAgentInput = req.body;
+
+ // Validate input
+ if (!input.messages || input.messages.length === 0) {
+ return res.status(400).json({ error: 'Messages are required' });
+ }
+
+ // Set headers for Server-Sent Events
+ res.setHeader('Content-Type', 'text/event-stream');
+ res.setHeader('Cache-Control', 'no-cache');
+ res.setHeader('Connection', 'keep-alive');
+
+ // Run the agent and stream events
+ agent.run(input).subscribe({
+ next: (event: any) => {
+ // Send event as SSE
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
+ },
+ error: (error: any) => {
+ console.error('Agent error:', error);
+ res.write(`data: ${JSON.stringify({ type: 'error', error: error.message })}\n\n`);
+ res.end();
+ },
+ complete: () => {
+ res.end();
+ },
+ });
+
+ // Handle client disconnect
+ req.on('close', () => {
+ console.log('Client disconnected');
+ });
+ } catch (error: any) {
+ console.error('Request error:', error);
+ res.status(500).json({ error: error.message });
+ }
+});
+
+// Main agent endpoint
+app.post('/api/run-agent', async (req: Request, res: Response) => {
+ try {
+ const input: RunAgentInput = req.body;
+
+ // Validate input
+ if (!input.messages || input.messages.length === 0) {
+ return res.status(400).json({ error: 'Messages are required' });
+ }
+
+ // Set headers for Server-Sent Events
+ res.setHeader('Content-Type', 'text/event-stream');
+ res.setHeader('Cache-Control', 'no-cache');
+ res.setHeader('Connection', 'keep-alive');
+
+ // Run the agent and stream events
+ agent.run(input).subscribe({
+ next: (event: any) => {
+ // Send event as SSE
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
+ },
+ error: (error: any) => {
+ console.error('Agent error:', error);
+ res.write(`data: ${JSON.stringify({ type: 'error', error: error.message })}\n\n`);
+ res.end();
+ },
+ complete: () => {
+ res.end();
+ },
+ });
+
+ // Handle client disconnect
+ req.on('close', () => {
+ console.log('Client disconnected');
+ });
+ } catch (error: any) {
+ console.error('Request error:', error);
+ res.status(500).json({ error: error.message });
+ }
+});
+
+// Example tools definition
+const exampleTools = [
+ {
+ name: 'calculator',
+ description: 'Performs basic arithmetic calculations',
+ parameters: {
+ type: 'object',
+ properties: {
+ operation: {
+ type: 'string',
+ enum: ['add', 'subtract', 'multiply', 'divide'],
+ description: 'The operation to perform',
+ },
+ a: {
+ type: 'number',
+ description: 'First number',
+ },
+ b: {
+ type: 'number',
+ description: 'Second number',
+ },
+ },
+ required: ['operation', 'a', 'b'],
+ },
+ handler: async (args: { operation: string; a: number; b: number }) => {
+ const { operation, a, b } = args;
+ let result: number;
+
+ switch (operation) {
+ case 'add':
+ result = a + b;
+ break;
+ case 'subtract':
+ result = a - b;
+ break;
+ case 'multiply':
+ result = a * b;
+ break;
+ case 'divide':
+ if (b === 0) {
+ throw new Error('Division by zero');
+ }
+ result = a / b;
+ break;
+ default:
+ throw new Error(`Unknown operation: ${operation}`);
+ }
+
+ return `The result of ${a} ${operation} ${b} is ${result}`;
+ },
+ },
+ {
+ name: 'get_weather',
+ description: 'Gets the current weather for a location',
+ client: true, // This tool runs on the client
+ parameters: {
+ type: 'object',
+ properties: {
+ location: {
+ type: 'string',
+ description: 'The city and country, e.g. "San Francisco, US"',
+ },
+ },
+ required: ['location'],
+ },
+ },
+];
+
+// Example endpoint with tools
+app.post('/api/run-agent-with-tools', async (req: Request, res: Response) => {
+ try {
+ const input: RunAgentInput = {
+ ...req.body,
+ context: {
+ ...req.body.context,
+ tools: exampleTools,
+ },
+ };
+
+ res.setHeader('Content-Type', 'text/event-stream');
+ res.setHeader('Cache-Control', 'no-cache');
+ res.setHeader('Connection', 'keep-alive');
+
+ agent.run(input).subscribe({
+ next: (event: any) => {
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
+ },
+ error: (error: any) => {
+ console.error('Agent error:', error);
+ res.write(`data: ${JSON.stringify({ type: 'error', error: error.message })}\n\n`);
+ res.end();
+ },
+ complete: () => {
+ res.end();
+ },
+ });
+
+ req.on('close', () => {
+ console.log('Client disconnected');
+ });
+ } catch (error: any) {
+ console.error('Request error:', error);
+ res.status(500).json({ error: error.message });
+ }
+});
+
+// Cleanup endpoint
+app.post('/api/cleanup', async (req: Request, res: Response) => {
+ try {
+ await agent.cleanup();
+ res.json({ message: 'Cleanup successful' });
+ } catch (error: any) {
+ console.error('Cleanup error:', error);
+ res.status(500).json({ error: error.message });
+ }
+});
+
+// Start server
+app.listen(port, () => {
+ console.log(`Claude Agent server listening on port ${port}`);
+ console.log(`Chat endpoint: http://localhost:${port}/chat`);
+ console.log(`API endpoint: http://localhost:${port}/api/run-agent`);
+ console.log(`With tools: http://localhost:${port}/api/run-agent-with-tools`);
+});
+
+// Graceful shutdown
+process.on('SIGINT', async () => {
+ console.log('Shutting down gracefully...');
+ await agent.cleanup();
+ process.exit(0);
+});
+
+process.on('SIGTERM', async () => {
+ console.log('Shutting down gracefully...');
+ await agent.cleanup();
+ process.exit(0);
+});
+
diff --git a/integrations/claude-agent-sdk/typescript/examples/test-client.sh b/integrations/claude-agent-sdk/typescript/examples/test-client.sh
new file mode 100644
index 000000000..9c1fa247a
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/test-client.sh
@@ -0,0 +1,160 @@
+#!/bin/bash
+
+# Simple test client script
+# For testing Claude Agent SDK TypeScript server
+
+BASE_URL="http://localhost:3000"
+
+# Color definitions
+GREEN='\033[0;32m'
+BLUE='\033[0;34m'
+RED='\033[0;31m'
+YELLOW='\033[1;33m'
+NC='\033[0m' # No Color
+
+echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
+echo -e "${BLUE} Claude Agent SDK TypeScript - Test Client${NC}"
+echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
+echo ""
+
+# Test 1: Health check
+echo -e "${YELLOW}[Test 1]${NC} Health check..."
+HEALTH_RESPONSE=$(curl -s "$BASE_URL/health")
+if echo "$HEALTH_RESPONSE" | grep -q "ok"; then
+ echo -e "${GREEN}✓${NC} Server health status OK"
+ echo " Response: $HEALTH_RESPONSE"
+else
+ echo -e "${RED}✗${NC} Health check failed"
+ echo " Response: $HEALTH_RESPONSE"
+ exit 1
+fi
+echo ""
+
+# Test 2: Simple conversation
+echo -e "${YELLOW}[Test 2]${NC} Simple conversation test..."
+echo -e "${BLUE}Sending message:${NC} 'Hello, please introduce yourself'"
+echo ""
+
+curl -N -X POST "$BASE_URL/api/chat" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agentId": "test_agent",
+ "threadId": "test_thread_1",
+ "messages": [
+ {
+ "id": "msg_1",
+ "role": "user",
+ "content": "Hello, please introduce yourself in one sentence"
+ }
+ ],
+ "context": {}
+ }' 2>/dev/null | while IFS= read -r line; do
+ if [[ $line == data:* ]]; then
+ # Extract JSON after data:
+ json_data="${line#data: }"
+ # Try to parse and format output
+ event_type=$(echo "$json_data" | grep -o '"type":"[^"]*"' | cut -d'"' -f4)
+
+ case $event_type in
+ "run_started")
+ echo -e "\n${GREEN}▶ Execution started${NC}"
+ ;;
+ "text_message_content")
+ text=$(echo "$json_data" | grep -o '"text":"[^"]*"' | cut -d'"' -f4 | sed 's/\\n/\n/g')
+ echo -n "$text"
+ ;;
+ "run_finished")
+ echo -e "\n${GREEN}✓ Execution completed${NC}"
+ ;;
+ "error")
+ error=$(echo "$json_data" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
+ echo -e "\n${RED}✗ Error: $error${NC}"
+ ;;
+ esac
+ fi
+done
+
+echo ""
+echo ""
+
+# Test 3: Multi-turn conversation
+echo -e "${YELLOW}[Test 3]${NC} Multi-turn conversation test..."
+echo -e "${BLUE}Round 1:${NC} 'My name is Zhang San'"
+echo ""
+
+curl -N -X POST "$BASE_URL/api/chat" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agentId": "test_agent",
+ "threadId": "test_thread_2",
+ "messages": [
+ {
+ "id": "msg_1",
+ "role": "user",
+ "content": "My name is Zhang San"
+ }
+ ],
+ "context": {}
+ }' 2>/dev/null | while IFS= read -r line; do
+ if [[ $line == data:* ]]; then
+ json_data="${line#data: }"
+ event_type=$(echo "$json_data" | grep -o '"type":"[^"]*"' | cut -d'"' -f4)
+
+ if [[ $event_type == "text_message_content" ]]; then
+ text=$(echo "$json_data" | grep -o '"text":"[^"]*"' | cut -d'"' -f4)
+ echo -n "$text"
+ elif [[ $event_type == "run_finished" ]]; then
+ echo ""
+ fi
+ fi
+done
+
+echo ""
+echo ""
+sleep 1
+
+echo -e "${BLUE}Round 2:${NC} 'Do you remember my name?'"
+echo ""
+
+curl -N -X POST "$BASE_URL/api/chat" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "agentId": "test_agent",
+ "threadId": "test_thread_2",
+ "messages": [
+ {
+ "id": "msg_1",
+ "role": "user",
+ "content": "My name is Zhang San"
+ },
+ {
+ "id": "msg_2",
+ "role": "assistant",
+ "content": "Hello Zhang San! Nice to meet you."
+ },
+ {
+ "id": "msg_3",
+ "role": "user",
+ "content": "Do you remember my name?"
+ }
+ ],
+ "context": {}
+ }' 2>/dev/null | while IFS= read -r line; do
+ if [[ $line == data:* ]]; then
+ json_data="${line#data: }"
+ event_type=$(echo "$json_data" | grep -o '"type":"[^"]*"' | cut -d'"' -f4)
+
+ if [[ $event_type == "text_message_content" ]]; then
+ text=$(echo "$json_data" | grep -o '"text":"[^"]*"' | cut -d'"' -f4)
+ echo -n "$text"
+ elif [[ $event_type == "run_finished" ]]; then
+ echo ""
+ fi
+ fi
+done
+
+echo ""
+echo ""
+echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
+echo -e "${GREEN}✓ All tests completed!${NC}"
+echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
diff --git a/integrations/claude-agent-sdk/typescript/examples/tsconfig.json b/integrations/claude-agent-sdk/typescript/examples/tsconfig.json
new file mode 100644
index 000000000..ab4b79f19
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/examples/tsconfig.json
@@ -0,0 +1,19 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "module": "commonjs",
+ "lib": ["ES2020"],
+ "outDir": "./dist",
+ "rootDir": "./src",
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "moduleResolution": "node",
+ "types": ["node"]
+ },
+ "include": ["src/**/*"],
+ "exclude": ["node_modules", "dist"]
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/jest.config.js b/integrations/claude-agent-sdk/typescript/jest.config.js
new file mode 100644
index 000000000..247c74502
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/jest.config.js
@@ -0,0 +1,26 @@
+module.exports = {
+ preset: 'ts-jest',
+ testEnvironment: 'node',
+ roots: ['/__tests__', '/__mocks__'],
+ testMatch: ['**/__tests__/**/*.test.ts'],
+ setupFilesAfterEnv: ['/__tests__/setup.ts'],
+ moduleNameMapper: {
+ '^@ag-ui/client$': '/__mocks__/@ag-ui/client.ts',
+ '^@ag-ui/core$': '/__mocks__/@ag-ui/core.ts',
+ '^@anthropic-ai/claude-agent-sdk$': '/__mocks__/@anthropic-ai/claude-agent-sdk.ts',
+ },
+ collectCoverageFrom: [
+ 'src/**/*.ts',
+ '!src/**/*.d.ts',
+ '!src/index.ts',
+ ],
+ coverageThreshold: {
+ global: {
+ branches: 40,
+ functions: 40,
+ lines: 40,
+ statements: 40,
+ },
+ },
+};
+
diff --git a/integrations/claude-agent-sdk/typescript/package.json b/integrations/claude-agent-sdk/typescript/package.json
new file mode 100644
index 000000000..53c54110c
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "@ag-ui/claude",
+ "version": "0.0.1",
+ "license": "Apache-2.0",
+ "main": "./dist/index.js",
+ "module": "./dist/index.mjs",
+ "types": "./dist/index.d.ts",
+ "sideEffects": false,
+ "private": false,
+ "publishConfig": {
+ "access": "public"
+ },
+ "files": [
+ "dist/**",
+ "README.md"
+ ],
+ "scripts": {
+ "build": "tsup",
+ "dev": "tsup --watch",
+ "clean": "rm -rf dist .turbo node_modules",
+ "typecheck": "tsc --noEmit",
+ "test": "jest",
+ "test:watch": "jest --watch",
+ "link:global": "pnpm link --global",
+ "unlink:global": "pnpm unlink --global"
+ },
+ "dependencies": {
+ "@anthropic-ai/claude-agent-sdk": "latest",
+ "rxjs": "7.8.1",
+ "zod": "^3.25.67"
+ },
+ "peerDependencies": {
+ "@ag-ui/core": ">=0.0.40",
+ "@ag-ui/client": ">=0.0.40"
+ },
+ "devDependencies": {
+ "@ag-ui/core": "workspace:*",
+ "@ag-ui/client": "workspace:*",
+ "@types/jest": "^29.5.14",
+ "@types/node": "^20.11.19",
+ "jest": "^29.7.0",
+ "ts-jest": "^29.1.2",
+ "tsup": "^8.0.2",
+ "typescript": "^5.3.3"
+ }
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/src/agent.ts b/integrations/claude-agent-sdk/typescript/src/agent.ts
new file mode 100644
index 000000000..753e48c72
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/agent.ts
@@ -0,0 +1,435 @@
+/**
+ * Claude Agent: Main agent class that integrates Claude SDK with AG-UI Protocol
+ */
+
+import { Observable, Subscriber } from 'rxjs';
+import {
+ AbstractAgent,
+ RunAgentInput,
+ EventType,
+ RunStartedEvent,
+ RunFinishedEvent,
+ RunErrorEvent,
+ StepStartedEvent,
+ StepFinishedEvent,
+} from '@ag-ui/client';
+import type {
+ ClaudeAgentConfig,
+ ProcessedEvents,
+ ClaudeSDKClient,
+ Options,
+ SDKMessage,
+} from './types';
+import { SessionManager } from './session-manager';
+import { EventTranslator } from './event-translator';
+import { ToolAdapter } from './tool-adapter';
+import { ExecutionState, ExecutionStateManager } from './execution-state';
+import {
+ generateRunId,
+ convertAgUiMessagesToPrompt,
+ isToolResultSubmission,
+ formatErrorMessage,
+} from './utils/converters';
+
+/**
+ * ClaudeAgent integrates Claude Agent SDK with AG-UI Protocol
+ */
+export class ClaudeAgent extends AbstractAgent {
+ private sessionManager: SessionManager;
+ private executionStateManager: ExecutionStateManager;
+ private apiKey?: string;
+ private baseUrl?: string;
+ private sessionTimeout: number;
+ private enablePersistentSessions: boolean;
+ private permissionMode: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan';
+ private stderr?: (data: string) => void;
+ private verbose?: boolean;
+
+ constructor(config: ClaudeAgentConfig) {
+ super(config);
+ // SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+ // Only set these if explicitly provided in config (optional)
+ this.apiKey = config.apiKey;
+ this.baseUrl = config.baseUrl;
+ this.sessionTimeout = config.sessionTimeout || 30 * 60 * 1000; // 30 minutes
+ this.enablePersistentSessions = config.enablePersistentSessions !== false;
+ // Map legacy permission modes to new SDK values for backward compatibility
+ this.permissionMode = this.mapPermissionMode(config.permissionMode || 'bypassPermissions');
+ this.stderr = config.stderr;
+ this.verbose = config.verbose;
+ this.sessionManager = SessionManager.getInstance(this.sessionTimeout);
+ this.executionStateManager = new ExecutionStateManager();
+ }
+
+ /**
+ * Map legacy permission modes to new SDK values for backward compatibility
+ */
+ private mapPermissionMode(mode?: string): 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' {
+ const modeMap: Record = {
+ 'ask': 'default',
+ 'auto': 'bypassPermissions',
+ 'none': 'bypassPermissions',
+ 'default': 'default',
+ 'acceptEdits': 'acceptEdits',
+ 'bypassPermissions': 'bypassPermissions',
+ 'plan': 'plan',
+ };
+ return modeMap[mode || 'bypassPermissions'] || 'bypassPermissions';
+ }
+
+ /**
+ * Run the agent with the given input
+ */
+ run(input: RunAgentInput): Observable {
+ return new Observable((subscriber) => {
+ this.executeAgent(input, subscriber).catch((error) => {
+ subscriber.error(error);
+ });
+ });
+ }
+
+ /**
+ * Execute the agent asynchronously
+ */
+ private async executeAgent(
+ input: RunAgentInput,
+ subscriber: Subscriber
+ ): Promise {
+ const runId = generateRunId();
+ const sessionId = input.threadId || `session_${Date.now()}`;
+
+ // Create execution state
+ const execution = this.executionStateManager.createExecution(runId, sessionId);
+
+ try {
+ // Emit run started event
+ const runStartedEvent: RunStartedEvent = {
+ type: EventType.RUN_STARTED,
+ threadId: sessionId,
+ runId,
+ };
+ subscriber.next(runStartedEvent);
+ execution.addEvent(runStartedEvent);
+
+ // Get or create session
+ const session = this.sessionManager.getSession(sessionId, 'default');
+
+ // Get unseen messages
+ const unseenMessages = this.sessionManager.getUnseenMessages(
+ sessionId,
+ input.messages || []
+ );
+
+ // Check if this is a tool result submission
+ const isToolResult = isToolResultSubmission(input.messages || []);
+
+ // Prepare tools
+ const tools = input.tools || [];
+
+ // Prepare options for Claude SDK
+ const options = await this.prepareClaudeOptions(tools);
+
+ // Extract prompt from messages
+ const prompt = convertAgUiMessagesToPrompt(unseenMessages);
+
+ // Emit step started event
+ const stepStartedEvent: StepStartedEvent = {
+ type: EventType.STEP_STARTED,
+ stepName: `step_${runId}_1`,
+ };
+ subscriber.next(stepStartedEvent);
+ execution.addEvent(stepStartedEvent);
+
+ // Call Claude SDK
+ await this.callClaudeSDK(
+ prompt,
+ options,
+ session,
+ runId,
+ sessionId,
+ subscriber,
+ execution
+ );
+
+ // Mark messages as processed
+ this.sessionManager.markMessagesAsProcessed(sessionId, unseenMessages);
+
+ // Emit step finished event
+ const stepFinishedEvent: StepFinishedEvent = {
+ type: EventType.STEP_FINISHED,
+ stepName: `step_${runId}_1`,
+ };
+ subscriber.next(stepFinishedEvent);
+ execution.addEvent(stepFinishedEvent);
+
+ // Emit run finished event
+ const runFinishedEvent: RunFinishedEvent = {
+ type: EventType.RUN_FINISHED,
+ threadId: sessionId,
+ runId,
+ };
+ subscriber.next(runFinishedEvent);
+ execution.addEvent(runFinishedEvent);
+
+ // Complete execution
+ execution.complete();
+ subscriber.complete();
+ } catch (error: any) {
+ // Emit run error event
+ const runErrorEvent: RunErrorEvent = {
+ type: EventType.RUN_ERROR,
+ message: formatErrorMessage(error),
+ };
+ subscriber.next(runErrorEvent);
+ execution.addEvent(runErrorEvent);
+
+ // Mark execution as failed
+ execution.fail(error);
+
+ // Complete the observable
+ subscriber.complete();
+ }
+ }
+
+ /**
+ * Prepare Claude SDK options
+ * SDK automatically reads ANTHROPIC_AUTH_TOKEN or ANTHROPIC_API_KEY from environment
+ * But baseUrl needs to be explicitly passed for third-party APIs
+ */
+ private async prepareClaudeOptions(tools: any[]): Promise {
+ // Get baseUrl from config or environment
+ const baseUrl = this.baseUrl || process.env.ANTHROPIC_BASE_URL;
+ const apiKey = this.apiKey || process.env.ANTHROPIC_AUTH_TOKEN || process.env.ANTHROPIC_API_KEY;
+
+ // Debug logging
+ console.log('[Claude Agent] Preparing SDK options:', {
+ hasApiKey: !!apiKey,
+ hasBaseUrl: !!baseUrl,
+ baseUrl: baseUrl || 'not set',
+ permissionMode: this.permissionMode,
+ hasStderr: !!this.stderr,
+ verbose: this.verbose,
+ });
+
+ const options: Options = {
+ permissionMode: this.permissionMode,
+ // Add stderr callback for debugging - CRITICAL for error logging
+ ...(this.stderr && { stderr: this.stderr }),
+ // Add verbose flag for detailed logging
+ ...(this.verbose !== undefined && { verbose: this.verbose }),
+ env: process.env
+ };
+
+ // Verify stderr callback is set
+ if (this.stderr) {
+ console.log('[Claude Agent] ✓ stderr callback is configured for error logging');
+ } else {
+ console.warn('[Claude Agent] ⚠️ stderr callback not configured - CLI errors may not be visible');
+ }
+
+ // Add tools if provided
+ if (tools && tools.length > 0) {
+ const mcpServer = await ToolAdapter.createMcpServerForTools(tools);
+ options.mcpServers = {
+ ag_ui_tools: mcpServer,
+ };
+
+ // Set allowed tools
+ options.allowedTools = ToolAdapter.getAllowedToolsList(tools);
+ }
+
+ return options;
+ }
+
+ /**
+ * Call Claude SDK
+ * Note: Currently only stateless mode is supported via query() function
+ */
+ private async callClaudeSDK(
+ prompt: string,
+ options: Options,
+ session: any,
+ runId: string,
+ sessionId: string,
+ subscriber: Subscriber,
+ execution: ExecutionState
+ ): Promise {
+ const eventTranslator = new EventTranslator(runId, sessionId);
+
+ // The current @anthropic-ai/claude-agent-sdk only supports stateless mode
+ // via the query() function. We use stateless mode for both cases.
+ await this.callClaudeSDKStateless(
+ prompt,
+ options,
+ eventTranslator,
+ subscriber,
+ execution
+ );
+ }
+
+ /**
+ * Call Claude SDK in persistent session mode
+ * Note: The current SDK only supports stateless mode via query() function
+ * This method falls back to stateless mode
+ */
+ private async callClaudeSDKPersistent(
+ prompt: string,
+ options: Options,
+ session: any,
+ eventTranslator: EventTranslator,
+ subscriber: Subscriber,
+ execution: ExecutionState
+ ): Promise {
+ // The current @anthropic-ai/claude-agent-sdk only supports stateless mode
+ // via the query() function. For persistent sessions, we use query()
+ // but maintain session state in our SessionManager
+ await this.callClaudeSDKStateless(prompt, options, eventTranslator, subscriber, execution);
+ }
+
+ /**
+ * Call Claude SDK in stateless mode
+ */
+ private async callClaudeSDKStateless(
+ prompt: string,
+ options: Options,
+ eventTranslator: EventTranslator,
+ subscriber: Subscriber,
+ execution: ExecutionState
+ ): Promise {
+ try {
+ // Log environment variables for debugging
+ console.log('[Claude Agent] Environment check:');
+ console.log(' ANTHROPIC_API_KEY:', process.env.ANTHROPIC_API_KEY ? 'SET' : 'NOT SET');
+ console.log(' ANTHROPIC_AUTH_TOKEN:', process.env.ANTHROPIC_AUTH_TOKEN ? 'SET' : 'NOT SET');
+ console.log(' ANTHROPIC_BASE_URL:', process.env.ANTHROPIC_BASE_URL || 'NOT SET (using default)');
+ console.log('[Claude Agent] Options passed to SDK:', {
+ hasApiKey: !!options.apiKey,
+ hasBaseUrl: !!options.baseUrl,
+ permissionMode: options.permissionMode,
+ hasMcpServers: !!options.mcpServers,
+ });
+
+ // Import Claude SDK dynamically
+ const { query } = await this.importClaudeSDK();
+
+ console.log('[Claude Agent] Calling SDK query()...');
+
+ // Call query function
+ // SDK will automatically read API key from environment variables (ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN)
+ // if not provided in options.apiKey
+ const queryResult = query({ prompt, options });
+
+ // Process responses
+ for await (const message of queryResult) {
+ console.log('[Claude Agent] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
+ console.log('[Claude Agent] Received message type:', message?.type || 'unknown');
+ console.log('[Claude Agent] Full message:', JSON.stringify(message, null, 2));
+
+ if (execution.isAborted()) {
+ console.log('[Claude Agent] Execution aborted by user');
+ break;
+ }
+
+ const events = eventTranslator.translateMessage(message);
+ console.log('[Claude Agent] Translated events count:', events.length);
+ for (const event of events) {
+ console.log('[Claude Agent] Sending event:', JSON.stringify(event, null, 2));
+ subscriber.next(event);
+ execution.addEvent(event);
+ }
+ console.log('[Claude Agent] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
+ }
+
+ console.log('[Claude Agent] Query completed successfully');
+ } catch (error: any) {
+ // Log detailed error information
+ console.error('[Claude Agent] ERROR Details:');
+ console.error(' Message:', error.message);
+ console.error(' Stack:', error.stack);
+ console.error(' Error object:', JSON.stringify(error, Object.getOwnPropertyNames(error), 2));
+
+ // Handle Claude Code process errors
+ if (error.message && error.message.includes('exited with code')) {
+ throw new Error(
+ `Claude Code process failed. Please ensure:\n` +
+ `1. Claude CLI is installed and accessible (run: claude --version)\n` +
+ `2. ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set correctly in environment variables\n` +
+ `3. You have proper permissions to run Claude Code\n` +
+ `4. If using ANTHROPIC_BASE_URL, ensure it supports Claude Code protocol\n` +
+ `\nOriginal error: ${error.message}\n` +
+ `Error stack: ${error.stack || 'No stack trace'}`
+ );
+ }
+ // Handle API key errors from SDK
+ if (error.message && (error.message.includes('API key') || error.message.includes('auth'))) {
+ throw new Error(
+ `API key error: ${error.message}\n` +
+ `Please ensure ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is set in environment variables.`
+ );
+ }
+ throw error;
+ }
+ }
+
+ /**
+ * Dynamically import Claude SDK
+ */
+ private async importClaudeSDK(): Promise {
+ try {
+ return await import('@anthropic-ai/claude-agent-sdk');
+ } catch (error) {
+ throw new Error(
+ 'Claude Agent SDK not found. Please install it: npm install @anthropic-ai/claude-agent-sdk'
+ );
+ }
+ }
+
+ /**
+ * Abort a running execution
+ */
+ abortExecution(runId: string): void {
+ const execution = this.executionStateManager.getExecution(runId);
+ if (execution) {
+ execution.abort();
+ }
+ }
+
+ /**
+ * Get execution state
+ */
+ getExecutionState(runId: string): ExecutionState | undefined {
+ return this.executionStateManager.getExecution(runId);
+ }
+
+ /**
+ * Get session manager (for testing)
+ */
+ getSessionManager(): SessionManager {
+ return this.sessionManager;
+ }
+
+ /**
+ * Get execution state manager (for testing)
+ */
+ getExecutionStateManager(): ExecutionStateManager {
+ return this.executionStateManager;
+ }
+
+ /**
+ * Cleanup resources
+ */
+ async cleanup(): Promise {
+ // Abort all running executions
+ const runningExecutions = this.executionStateManager.getRunningExecutions();
+ for (const execution of runningExecutions) {
+ execution.abort();
+ }
+
+ // Clear all sessions
+ this.sessionManager.clearAllSessions();
+
+ // Clear all executions
+ this.executionStateManager.clearAll();
+ }
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/src/event-translator.ts b/integrations/claude-agent-sdk/typescript/src/event-translator.ts
new file mode 100644
index 000000000..368f02f22
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/event-translator.ts
@@ -0,0 +1,221 @@
+/**
+ * Event translator: Converts Claude SDK messages to AG-UI events
+ */
+
+import {
+ TextMessageStartEvent,
+ TextMessageContentEvent,
+ TextMessageEndEvent,
+ ToolCallStartEvent,
+ ToolCallArgsEvent,
+ ToolCallEndEvent,
+ ToolCallResultEvent,
+ EventType,
+} from '@ag-ui/client';
+import type {
+ SDKMessage,
+ SDKAssistantMessage,
+ ContentBlock,
+ TextBlock,
+ ToolUseBlock,
+ ToolResultBlock,
+ ProcessedEvents,
+} from './types';
+import {
+ hasContentProperty,
+ isTextBlock,
+ isToolUseBlock,
+ isToolResultBlock,
+} from './types';
+
+/**
+ * EventTranslator converts Claude SDK messages to AG-UI protocol events
+ *
+ * NOTE: This translator only handles SDK message translation.
+ * Run lifecycle events (RUN_STARTED, RUN_FINISHED, etc.) and step events
+ * are handled by ClaudeAgent.
+ */
+export class EventTranslator {
+ private messageIdCounter = 0;
+ private currentMessageId: string | null = null;
+ private runId: string;
+ private threadId: string;
+
+ constructor(runId: string, threadId: string) {
+ this.runId = runId;
+ this.threadId = threadId;
+ }
+
+ /**
+ * Translate a Claude SDK message to AG-UI events
+ * NOTE: Does not emit RUN_STARTED, RUN_FINISHED, or STEP events - those are handled by ClaudeAgent
+ */
+ translateMessage(message: SDKMessage): ProcessedEvents[] {
+ const events: ProcessedEvents[] = [];
+
+ if (hasContentProperty(message)) {
+ events.push(...this.translateAssistantMessage(message as SDKAssistantMessage));
+ }
+ // Note: ResultMessage (success/error) is ignored here
+ // Run completion is handled by ClaudeAgent, not EventTranslator
+
+ return events;
+ }
+
+ /**
+ * Translate an AssistantMessage with content blocks
+ */
+ private translateAssistantMessage(message: SDKAssistantMessage): ProcessedEvents[] {
+ const events: ProcessedEvents[] = [];
+
+ // Content is in message.message.content for SDKAssistantMessage
+ const content = message.message?.content || [];
+
+ for (const block of content) {
+ if (isTextBlock(block)) {
+ events.push(...this.translateTextBlock(block));
+ } else if (isToolUseBlock(block)) {
+ events.push(...this.translateToolUseBlock(block));
+ } else if (isToolResultBlock(block)) {
+ events.push(...this.translateToolResultBlock(block));
+ }
+ }
+
+ return events;
+ }
+
+ /**
+ * Translate a TextBlock to text message events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ private translateTextBlock(block: TextBlock): ProcessedEvents[] {
+ const events: ProcessedEvents[] = [];
+ const messageId = this.generateMessageId();
+
+ // Start event
+ events.push({
+ type: EventType.TEXT_MESSAGE_START,
+ messageId,
+ role: 'assistant',
+ });
+
+ // Content event - split text into delta chunks
+ const text = block.text;
+ if (text.length > 0) {
+ events.push({
+ type: EventType.TEXT_MESSAGE_CONTENT,
+ messageId,
+ delta: text,
+ });
+ }
+
+ // End event
+ events.push({
+ type: EventType.TEXT_MESSAGE_END,
+ messageId,
+ });
+
+ return events;
+ }
+
+ /**
+ * Translate a ToolUseBlock to tool call events
+ * NOTE: Step events are handled by ClaudeAgent, not here
+ */
+ private translateToolUseBlock(block: ToolUseBlock): ProcessedEvents[] {
+ const events: ProcessedEvents[] = [];
+ const toolCallId = block.id;
+
+ // Start event
+ events.push({
+ type: EventType.TOOL_CALL_START,
+ toolCallId,
+ toolCallName: block.name,
+ });
+
+ // Args event - send args as JSON string
+ const argsJson = JSON.stringify(block.input);
+ if (argsJson.length > 0) {
+ events.push({
+ type: EventType.TOOL_CALL_ARGS,
+ toolCallId,
+ delta: argsJson,
+ });
+ }
+
+ // End event
+ events.push({
+ type: EventType.TOOL_CALL_END,
+ toolCallId,
+ });
+
+ return events;
+ }
+
+ /**
+ * Translate a ToolResultBlock to tool call result event
+ */
+ private translateToolResultBlock(block: ToolResultBlock): ProcessedEvents[] {
+ const events: ProcessedEvents[] = [];
+
+ // Extract content as string
+ let resultContent: string;
+ if (typeof block.content === 'string') {
+ resultContent = block.content;
+ } else if (Array.isArray(block.content)) {
+ // Handle array of content blocks
+ resultContent = block.content
+ .map((item) => {
+ if (item.type === 'text') {
+ return item.text || '';
+ }
+ return JSON.stringify(item);
+ })
+ .join('\n');
+ } else {
+ resultContent = JSON.stringify(block.content);
+ }
+
+ const messageId = this.generateMessageId();
+ events.push({
+ type: EventType.TOOL_CALL_RESULT,
+ toolCallId: block.tool_use_id,
+ messageId,
+ content: resultContent,
+ ...(block.is_error && { role: 'tool' as const }),
+ });
+
+ return events;
+ }
+
+ /**
+ * Generate a unique message ID
+ */
+ private generateMessageId(): string {
+ this.messageIdCounter++;
+ return `msg_${this.runId}_${this.messageIdCounter}`;
+ }
+
+ /**
+ * Reset the translator state for a new execution
+ */
+ reset(): void {
+ this.messageIdCounter = 0;
+ this.currentMessageId = null;
+ }
+
+ /**
+ * Get current message ID
+ */
+ getCurrentMessageId(): string | null {
+ return this.currentMessageId;
+ }
+
+ /**
+ * Set current message ID
+ */
+ setCurrentMessageId(messageId: string | null): void {
+ this.currentMessageId = messageId;
+ }
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/src/execution-state.ts b/integrations/claude-agent-sdk/typescript/src/execution-state.ts
new file mode 100644
index 000000000..e5c98dba1
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/execution-state.ts
@@ -0,0 +1,327 @@
+/**
+ * Execution state: Tracks background Claude executions
+ */
+
+import type { ProcessedEvents } from './types';
+
+/**
+ * ExecutionState manages the state of a Claude SDK execution
+ */
+export class ExecutionState {
+ readonly id: string;
+ readonly sessionId: string;
+ private _isRunning: boolean;
+ private _startTime: number;
+ private _endTime?: number;
+ private _events: ProcessedEvents[];
+ private _error?: Error;
+ private _abortController: AbortController;
+
+ constructor(id: string, sessionId: string) {
+ this.id = id;
+ this.sessionId = sessionId;
+ this._isRunning = true;
+ this._startTime = Date.now();
+ this._events = [];
+ this._abortController = new AbortController();
+ }
+
+ /**
+ * Check if execution is running
+ */
+ get isRunning(): boolean {
+ return this._isRunning;
+ }
+
+ /**
+ * Get start time
+ */
+ get startTime(): number {
+ return this._startTime;
+ }
+
+ /**
+ * Get end time
+ */
+ get endTime(): number | undefined {
+ return this._endTime;
+ }
+
+ /**
+ * Get duration in milliseconds
+ */
+ get duration(): number {
+ const end = this._endTime || Date.now();
+ return end - this._startTime;
+ }
+
+ /**
+ * Get all collected events
+ */
+ get events(): ProcessedEvents[] {
+ return [...this._events];
+ }
+
+ /**
+ * Get error if any
+ */
+ get error(): Error | undefined {
+ return this._error;
+ }
+
+ /**
+ * Get abort signal
+ */
+ get signal(): AbortSignal {
+ return this._abortController.signal;
+ }
+
+ /**
+ * Add an event to the execution state
+ */
+ addEvent(event: ProcessedEvents): void {
+ this._events.push(event);
+ }
+
+ /**
+ * Add multiple events
+ */
+ addEvents(events: ProcessedEvents[]): void {
+ this._events.push(...events);
+ }
+
+ /**
+ * Mark execution as completed
+ */
+ complete(): void {
+ if (this._isRunning) {
+ this._isRunning = false;
+ this._endTime = Date.now();
+ }
+ }
+
+ /**
+ * Mark execution as failed
+ */
+ fail(error: Error): void {
+ if (this._isRunning) {
+ this._isRunning = false;
+ this._endTime = Date.now();
+ this._error = error;
+ }
+ }
+
+ /**
+ * Abort the execution
+ */
+ abort(): void {
+ if (this._isRunning) {
+ this._abortController.abort();
+ this._isRunning = false;
+ this._endTime = Date.now();
+ }
+ }
+
+ /**
+ * Get execution statistics
+ */
+ getStats(): {
+ duration: number;
+ eventCount: number;
+ isRunning: boolean;
+ hasError: boolean;
+ } {
+ return {
+ duration: this.duration,
+ eventCount: this._events.length,
+ isRunning: this._isRunning,
+ hasError: !!this._error,
+ };
+ }
+
+ /**
+ * Clear events (useful for memory management)
+ */
+ clearEvents(): void {
+ this._events = [];
+ }
+
+ /**
+ * Get the last N events
+ */
+ getLastEvents(count: number): ProcessedEvents[] {
+ return this._events.slice(-count);
+ }
+
+ /**
+ * Check if execution has been aborted
+ */
+ isAborted(): boolean {
+ return this._abortController.signal.aborted;
+ }
+}
+
+/**
+ * ExecutionStateManager manages multiple execution states
+ */
+export class ExecutionStateManager {
+ private executions: Map = new Map();
+ private readonly maxExecutions: number;
+
+ constructor(maxExecutions: number = 100) {
+ this.maxExecutions = maxExecutions;
+ }
+
+ /**
+ * Create a new execution state
+ */
+ createExecution(id: string, sessionId: string): ExecutionState {
+ const execution = new ExecutionState(id, sessionId);
+ this.executions.set(id, execution);
+
+ // Clean up old executions if we exceed the limit
+ if (this.executions.size > this.maxExecutions) {
+ this.cleanupOldExecutions();
+ }
+
+ return execution;
+ }
+
+ /**
+ * Get an execution state by ID
+ */
+ getExecution(id: string): ExecutionState | undefined {
+ return this.executions.get(id);
+ }
+
+ /**
+ * Check if an execution exists
+ */
+ hasExecution(id: string): boolean {
+ return this.executions.has(id);
+ }
+
+ /**
+ * Delete an execution state
+ */
+ deleteExecution(id: string): boolean {
+ return this.executions.delete(id);
+ }
+
+ /**
+ * Get all executions for a session
+ */
+ getSessionExecutions(sessionId: string): ExecutionState[] {
+ const executions: ExecutionState[] = [];
+ for (const execution of this.executions.values()) {
+ if (execution.sessionId === sessionId) {
+ executions.push(execution);
+ }
+ }
+ return executions;
+ }
+
+ /**
+ * Get running executions
+ */
+ getRunningExecutions(): ExecutionState[] {
+ const running: ExecutionState[] = [];
+ for (const execution of this.executions.values()) {
+ if (execution.isRunning) {
+ running.push(execution);
+ }
+ }
+ return running;
+ }
+
+ /**
+ * Get completed executions
+ */
+ getCompletedExecutions(): ExecutionState[] {
+ const completed: ExecutionState[] = [];
+ for (const execution of this.executions.values()) {
+ if (!execution.isRunning) {
+ completed.push(execution);
+ }
+ }
+ return completed;
+ }
+
+ /**
+ * Abort all running executions for a session
+ */
+ abortSessionExecutions(sessionId: string): void {
+ const sessionExecutions = this.getSessionExecutions(sessionId);
+ for (const execution of sessionExecutions) {
+ if (execution.isRunning) {
+ execution.abort();
+ }
+ }
+ }
+
+ /**
+ * Clean up old completed executions
+ */
+ private cleanupOldExecutions(): void {
+ const completed = this.getCompletedExecutions();
+
+ // Sort by end time (oldest first)
+ completed.sort((a, b) => {
+ const aTime = a.endTime || a.startTime;
+ const bTime = b.endTime || b.startTime;
+ return aTime - bTime;
+ });
+
+ // Remove the oldest executions
+ const toRemove = Math.max(0, this.executions.size - this.maxExecutions);
+ for (let i = 0; i < toRemove && i < completed.length; i++) {
+ this.executions.delete(completed[i].id);
+ }
+ }
+
+ /**
+ * Clear all executions
+ */
+ clearAll(): void {
+ this.executions.clear();
+ }
+
+ /**
+ * Get total execution count
+ */
+ getExecutionCount(): number {
+ return this.executions.size;
+ }
+
+ /**
+ * Get execution statistics
+ */
+ getStats(): {
+ total: number;
+ running: number;
+ completed: number;
+ failed: number;
+ } {
+ let running = 0;
+ let completed = 0;
+ let failed = 0;
+
+ for (const execution of this.executions.values()) {
+ if (execution.isRunning) {
+ running++;
+ } else if (execution.error) {
+ failed++;
+ } else {
+ completed++;
+ }
+ }
+
+ return {
+ total: this.executions.size,
+ running,
+ completed,
+ failed,
+ };
+ }
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/src/index.ts b/integrations/claude-agent-sdk/typescript/src/index.ts
new file mode 100644
index 000000000..ab4080b9d
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/index.ts
@@ -0,0 +1,96 @@
+/**
+ * Claude Agent SDK integration with AG-UI Protocol
+ *
+ * This package provides a bridge between Claude Agent SDK and the AG-UI Protocol,
+ * enabling Claude agents to work seamlessly with AG-UI applications.
+ *
+ * @example
+ * ```typescript
+ * import { ClaudeAgent } from '@ag-ui/claude';
+ *
+ * const agent = new ClaudeAgent({
+ * apiKey: process.env.ANTHROPIC_API_KEY,
+ * enablePersistentSessions: true
+ * });
+ *
+ * agent.run(input).subscribe({
+ * next: (event) => console.log(event),
+ * error: (error) => console.error(error),
+ * complete: () => console.log('Done')
+ * });
+ * ```
+ */
+
+// Main agent class
+export { ClaudeAgent } from './agent';
+
+// Session management
+export { SessionManager } from './session-manager';
+
+// Event translation
+export { EventTranslator } from './event-translator';
+
+// Tool adaptation
+export { ToolAdapter } from './tool-adapter';
+
+// Execution state management
+export { ExecutionState, ExecutionStateManager } from './execution-state';
+
+// Utility functions
+export {
+ convertAgUiMessagesToPrompt,
+ convertAgUiMessageToClaude,
+ convertAgUiMessagesToClaude,
+ extractMessageContent,
+ hasToolResults,
+ extractToolResults,
+ generateRunId,
+ generateMessageId,
+ safeJsonParse,
+ safeJsonStringify,
+ isToolResultSubmission,
+ formatErrorMessage,
+ truncateText,
+ mergeTextBlocks,
+} from './utils/converters';
+
+// Type exports
+export type {
+ ClaudeAgentConfig,
+ ProcessedEvents,
+ Session,
+ ClaudeSDKClient,
+ Options,
+ Query,
+ SDKMessage,
+ SDKAssistantMessage,
+ SDKUserMessage,
+ SDKSystemMessage,
+ SDKResultMessage,
+ SDKPartialAssistantMessage,
+ SDKCompactBoundaryMessage,
+ SDKPermissionDenial,
+ ContentBlock,
+ TextBlock,
+ ToolUseBlock,
+ ToolResultBlock,
+ ThinkingBlock,
+ SdkMcpToolDefinition,
+ CallToolResult,
+ McpSdkServerConfigWithInstance,
+ ExecutionState as ExecutionStateType,
+ ToolExecutionContext,
+ ConvertedMessage,
+} from './types';
+
+// Re-export type guards
+export {
+ isAssistantMessage,
+ isResultMessage,
+ isTextBlock,
+ isToolUseBlock,
+ isToolResultBlock,
+ isThinkingBlock,
+ hasContentProperty,
+} from './types';
+
diff --git a/integrations/claude-agent-sdk/typescript/src/session-manager.ts b/integrations/claude-agent-sdk/typescript/src/session-manager.ts
new file mode 100644
index 000000000..339cd94cb
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/session-manager.ts
@@ -0,0 +1,299 @@
+/**
+ * Session manager: Manages agent sessions and state
+ */
+
+import type { Message } from '@ag-ui/client';
+import type { Session, ClaudeSDKClient } from './types';
+
+const DEFAULT_SESSION_TIMEOUT = 30 * 60 * 1000; // 30 minutes
+const CLEANUP_INTERVAL = 5 * 60 * 1000; // 5 minutes
+
+/**
+ * SessionManager handles session lifecycle, message tracking, and state management
+ * Implements singleton pattern for centralized session control
+ */
+export class SessionManager {
+ private static instance: SessionManager | null = null;
+ private sessions: Map = new Map();
+ private cleanupInterval: ReturnType | null = null;
+ private sessionTimeout: number;
+
+ private constructor(sessionTimeout: number = DEFAULT_SESSION_TIMEOUT) {
+ this.sessionTimeout = sessionTimeout;
+ this.startCleanupInterval();
+ }
+
+ /**
+ * Get the singleton instance
+ */
+ static getInstance(sessionTimeout?: number): SessionManager {
+ if (!SessionManager.instance) {
+ SessionManager.instance = new SessionManager(sessionTimeout);
+ }
+ return SessionManager.instance;
+ }
+
+ /**
+ * Reset the singleton instance (useful for testing)
+ */
+ static resetInstance(): void {
+ if (SessionManager.instance) {
+ SessionManager.instance.stopCleanupInterval();
+ SessionManager.instance = null;
+ }
+ }
+
+ /**
+ * Get or create a session
+ */
+ getSession(sessionId: string, userId?: string): Session {
+ let session = this.sessions.get(sessionId);
+
+ if (!session) {
+ session = {
+ id: sessionId,
+ userId,
+ processedMessageIds: new Set(),
+ state: {},
+ createdAt: Date.now(),
+ lastAccessedAt: Date.now(),
+ };
+ this.sessions.set(sessionId, session);
+ } else {
+ // Update last accessed time
+ session.lastAccessedAt = Date.now();
+ }
+
+ return session;
+ }
+
+ /**
+ * Check if a session exists
+ */
+ hasSession(sessionId: string): boolean {
+ return this.sessions.has(sessionId);
+ }
+
+ /**
+ * Delete a session
+ */
+ deleteSession(sessionId: string): boolean {
+ const session = this.sessions.get(sessionId);
+ if (session?.client) {
+ // Close the Claude SDK client if it exists
+ session.client.close().catch((error) => {
+ console.error(`Error closing Claude SDK client for session ${sessionId}:`, error);
+ });
+ }
+ return this.sessions.delete(sessionId);
+ }
+
+ /**
+ * Track a processed message
+ */
+ trackMessage(sessionId: string, messageId: string): void {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.processedMessageIds.add(messageId);
+ session.lastAccessedAt = Date.now();
+ }
+ }
+
+ /**
+ * Check if a message has been processed
+ */
+ isMessageProcessed(sessionId: string, messageId: string): boolean {
+ const session = this.sessions.get(sessionId);
+ return session ? session.processedMessageIds.has(messageId) : false;
+ }
+
+ /**
+ * Get unseen messages (messages not yet processed)
+ */
+ getUnseenMessages(sessionId: string, messages: Message[]): Message[] {
+ const session = this.sessions.get(sessionId);
+ if (!session) {
+ return messages;
+ }
+
+ return messages.filter((msg) => {
+ const msgId = msg.id || `${msg.role}_${msg.content}`;
+ return !session.processedMessageIds.has(msgId);
+ });
+ }
+
+ /**
+ * Mark messages as processed
+ */
+ markMessagesAsProcessed(sessionId: string, messages: Message[]): void {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ for (const msg of messages) {
+ const msgId = msg.id || `${msg.role}_${msg.content}`;
+ session.processedMessageIds.add(msgId);
+ }
+ session.lastAccessedAt = Date.now();
+ }
+ }
+
+ /**
+ * Get state value from session
+ */
+ getStateValue(sessionId: string, key: string): any {
+ const session = this.sessions.get(sessionId);
+ return session?.state[key];
+ }
+
+ /**
+ * Set state value in session
+ */
+ setStateValue(sessionId: string, key: string, value: any): void {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.state[key] = value;
+ session.lastAccessedAt = Date.now();
+ }
+ }
+
+ /**
+ * Remove state keys from session
+ */
+ removeStateKeys(sessionId: string, keys: string[]): void {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ for (const key of keys) {
+ delete session.state[key];
+ }
+ session.lastAccessedAt = Date.now();
+ }
+ }
+
+ /**
+ * Clear all state for a session
+ */
+ clearSessionState(sessionId: string): void {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.state = {};
+ session.lastAccessedAt = Date.now();
+ }
+ }
+
+ /**
+ * Set Claude SDK client for a session
+ */
+ setClient(sessionId: string, client: ClaudeSDKClient): void {
+ const session = this.sessions.get(sessionId);
+ if (session) {
+ session.client = client;
+ session.lastAccessedAt = Date.now();
+ }
+ }
+
+ /**
+ * Get Claude SDK client for a session
+ */
+ getClient(sessionId: string): ClaudeSDKClient | undefined {
+ const session = this.sessions.get(sessionId);
+ return session?.client;
+ }
+
+ /**
+ * Get total number of sessions
+ */
+ getSessionCount(): number {
+ return this.sessions.size;
+ }
+
+ /**
+ * Get number of sessions for a specific user
+ */
+ getUserSessionCount(userId: string): number {
+ let count = 0;
+ for (const session of this.sessions.values()) {
+ if (session.userId === userId) {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ /**
+ * Get all session IDs
+ */
+ getAllSessionIds(): string[] {
+ return Array.from(this.sessions.keys());
+ }
+
+ /**
+ * Get all sessions for a specific user
+ */
+ getUserSessions(userId: string): Session[] {
+ const userSessions: Session[] = [];
+ for (const session of this.sessions.values()) {
+ if (session.userId === userId) {
+ userSessions.push(session);
+ }
+ }
+ return userSessions;
+ }
+
+ /**
+ * Clean up stale sessions
+ */
+ private cleanupStaleSessions(): void {
+ const now = Date.now();
+ const sessionsToDelete: string[] = [];
+
+ for (const [sessionId, session] of this.sessions.entries()) {
+ if (now - session.lastAccessedAt > this.sessionTimeout) {
+ sessionsToDelete.push(sessionId);
+ }
+ }
+
+ for (const sessionId of sessionsToDelete) {
+ this.deleteSession(sessionId);
+ }
+
+ if (sessionsToDelete.length > 0) {
+ console.log(`Cleaned up ${sessionsToDelete.length} stale sessions`);
+ }
+ }
+
+ /**
+ * Start the cleanup interval
+ */
+ private startCleanupInterval(): void {
+ if (!this.cleanupInterval) {
+ this.cleanupInterval = setInterval(() => {
+ this.cleanupStaleSessions();
+ }, CLEANUP_INTERVAL);
+
+ // Don't keep the process alive just for this interval
+ if (typeof (this.cleanupInterval as any).unref === 'function') {
+ (this.cleanupInterval as any).unref();
+ }
+ }
+ }
+
+ /**
+ * Stop the cleanup interval
+ */
+ private stopCleanupInterval(): void {
+ if (this.cleanupInterval) {
+ clearInterval(this.cleanupInterval);
+ this.cleanupInterval = null;
+ }
+ }
+
+ /**
+ * Clear all sessions (useful for testing)
+ */
+ clearAllSessions(): void {
+ for (const sessionId of this.sessions.keys()) {
+ this.deleteSession(sessionId);
+ }
+ this.sessions.clear();
+ }
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/src/tool-adapter.ts b/integrations/claude-agent-sdk/typescript/src/tool-adapter.ts
new file mode 100644
index 000000000..3f24f6cb1
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/tool-adapter.ts
@@ -0,0 +1,254 @@
+/**
+ * Tool adapter: Converts AG-UI tools to Claude SDK format
+ */
+
+import { z } from 'zod';
+import type { Tool } from '@ag-ui/client';
+import type {
+ SdkMcpToolDefinition,
+ McpSdkServerConfigWithInstance,
+ CallToolResult,
+} from './types';
+
+// Extended Tool type that includes runtime properties
+type ExtendedTool = Tool & {
+ client?: boolean;
+ handler?: (args: any) => any | Promise;
+ longRunning?: boolean;
+};
+
+/**
+ * ToolAdapter handles conversion of AG-UI tools to Claude SDK format
+ */
+export class ToolAdapter {
+ /**
+ * Convert AG-UI tools to Claude SDK MCP tool definitions
+ */
+ static convertAgUiToolsToSdk(tools: Tool[]): SdkMcpToolDefinition[] {
+ return tools.map((tool) => this.convertSingleTool(tool as ExtendedTool));
+ }
+
+ /**
+ * Convert a single AG-UI tool to Claude SDK format
+ */
+ private static convertSingleTool(tool: ExtendedTool): SdkMcpToolDefinition {
+ const zodSchema = this.convertJsonSchemaToZod(tool.parameters || {});
+
+ return {
+ name: tool.name,
+ description: tool.description || '',
+ inputSchema: zodSchema,
+ handler: async (args: any) => {
+ // For client tools, we mark them as long-running
+ // The actual execution will be handled by the client
+ if (tool.client) {
+ return {
+ content: [
+ {
+ type: 'text',
+ text: JSON.stringify({
+ toolName: tool.name,
+ args,
+ isClientTool: true,
+ isLongRunning: true,
+ }),
+ },
+ ],
+ };
+ }
+
+ // For backend tools, if there's a handler, execute it
+ if (tool.handler) {
+ try {
+ const result = await tool.handler(args);
+ return {
+ content: [
+ {
+ type: 'text',
+ text: typeof result === 'string' ? result : JSON.stringify(result),
+ },
+ ],
+ };
+ } catch (error: any) {
+ return {
+ content: [
+ {
+ type: 'text',
+ text: error.message || 'Tool execution failed',
+ },
+ ],
+ isError: true,
+ };
+ }
+ }
+
+ // Default response for tools without handlers
+ return {
+ content: [
+ {
+ type: 'text',
+ text: 'Tool executed (no handler)',
+ },
+ ],
+ };
+ },
+ };
+ }
+
+ /**
+ * Convert JSON Schema to Zod schema
+ */
+ private static convertJsonSchemaToZod(jsonSchema: any): z.ZodTypeAny {
+ if (!jsonSchema || typeof jsonSchema !== 'object') {
+ return z.object({});
+ }
+
+ const properties = jsonSchema.properties || {};
+ const required = jsonSchema.required || [];
+
+ const zodShape: Record = {};
+
+ for (const [key, prop] of Object.entries(properties)) {
+ const propSchema = prop as any;
+ let zodType = this.convertJsonSchemaTypeToZod(propSchema);
+
+ // Make optional if not in required array
+ if (!required.includes(key)) {
+ zodType = zodType.optional();
+ }
+
+ zodShape[key] = zodType;
+ }
+
+ return z.object(zodShape);
+ }
+
+ /**
+ * Convert a single JSON Schema type to Zod type
+ */
+ private static convertJsonSchemaTypeToZod(schema: any): z.ZodTypeAny {
+ const type = schema.type;
+
+ switch (type) {
+ case 'string':
+ if (schema.enum) {
+ return z.enum(schema.enum as [string, ...string[]]);
+ }
+ return z.string();
+
+ case 'number':
+ case 'integer':
+ let numType = type === 'integer' ? z.number().int() : z.number();
+ if (schema.minimum !== undefined) {
+ numType = numType.min(schema.minimum);
+ }
+ if (schema.maximum !== undefined) {
+ numType = numType.max(schema.maximum);
+ }
+ return numType;
+
+ case 'boolean':
+ return z.boolean();
+
+ case 'array':
+ if (schema.items) {
+ const itemType = this.convertJsonSchemaTypeToZod(schema.items);
+ return z.array(itemType);
+ }
+ return z.array(z.any());
+
+ case 'object':
+ if (schema.properties) {
+ return this.convertJsonSchemaToZod(schema);
+ }
+ return z.record(z.any());
+
+ case 'null':
+ return z.null();
+
+ default:
+ // For any other type or if type is not specified
+ return z.any();
+ }
+ }
+
+ /**
+ * Create an MCP server configuration for AG-UI tools
+ */
+ static async createMcpServerForTools(tools: Tool[]): Promise {
+ const sdkTools = this.convertAgUiToolsToSdk(tools as ExtendedTool[]);
+
+ // Import createSdkMcpServer from Claude Agent SDK
+ const { createSdkMcpServer } = await import('@anthropic-ai/claude-agent-sdk');
+
+ // Use the official SDK function to create a properly formatted MCP server
+ return createSdkMcpServer({
+ name: 'ag_ui_tools',
+ version: '1.0.0',
+ tools: sdkTools as any, // Cast to any to avoid type incompatibility
+ });
+ }
+
+ /**
+ * Extract tool calls from Claude SDK response
+ */
+ static extractToolCalls(message: any): Array<{
+ id: string;
+ name: string;
+ input: Record;
+ }> {
+ if (!message.content || !Array.isArray(message.content)) {
+ return [];
+ }
+
+ return message.content
+ .filter((block: any) => block.type === 'tool_use')
+ .map((block: any) => ({
+ id: block.id,
+ name: block.name,
+ input: block.input,
+ }));
+ }
+
+ /**
+ * Check if a tool is a long-running client tool
+ */
+ static isClientTool(toolName: string, tools: Tool[]): boolean {
+ const tool = tools.find((t) => t.name === toolName) as ExtendedTool | undefined;
+ return tool?.client === true;
+ }
+
+ /**
+ * Check if a tool is marked as long-running
+ */
+ static isLongRunningTool(toolName: string, tools: Tool[]): boolean {
+ const tool = tools.find((t) => t.name === toolName) as ExtendedTool | undefined;
+ return tool?.client === true || tool?.longRunning === true;
+ }
+
+ /**
+ * Format tool names for Claude SDK (with MCP server prefix)
+ */
+ static formatToolNameForSdk(toolName: string, serverName: string = 'ag_ui_tools'): string {
+ return `mcp__${serverName}__${toolName}`;
+ }
+
+ /**
+ * Parse tool name from SDK format (remove MCP server prefix)
+ */
+ static parseToolNameFromSdk(sdkToolName: string): string {
+ const parts = sdkToolName.split('__');
+ if (parts.length >= 3 && parts[0] === 'mcp') {
+ return parts.slice(2).join('__');
+ }
+ return sdkToolName;
+ }
+
+ /**
+ * Get allowed tools list for SDK options
+ */
+ static getAllowedToolsList(tools: Tool[], serverName: string = 'ag_ui_tools'): string[] {
+ return tools.map((tool) => this.formatToolNameForSdk(tool.name, serverName));
+ }
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/src/types.ts b/integrations/claude-agent-sdk/typescript/src/types.ts
new file mode 100644
index 000000000..744b743c8
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/types.ts
@@ -0,0 +1,259 @@
+/**
+ * Type definitions for Claude Agent SDK integration with AG-UI Protocol
+ */
+
+import type {
+ TextMessageStartEvent,
+ TextMessageContentEvent,
+ TextMessageEndEvent,
+ ToolCallStartEvent,
+ ToolCallArgsEvent,
+ ToolCallEndEvent,
+ ToolCallResultEvent,
+ RunStartedEvent,
+ RunFinishedEvent,
+ RunErrorEvent,
+ StepStartedEvent,
+ StepFinishedEvent,
+ AgentConfig,
+ Tool,
+ Message,
+} from '@ag-ui/client';
+
+// Re-export Claude SDK types (will be imported from the actual SDK)
+// These are placeholder interfaces based on the SDK documentation
+export interface ClaudeSDKClient {
+ query(prompt: string): Promise;
+ receiveResponse(): AsyncIterableIterator;
+ close(): Promise;
+}
+
+export interface Options {
+ apiKey?: string;
+ baseUrl?: string;
+ mcpServers?: Record;
+ allowedTools?: string[];
+ // Valid permission modes from Agent SDK: 'default', 'acceptEdits', 'bypassPermissions', 'plan'
+ // Legacy values 'ask', 'auto', 'none' are also supported for backward compatibility
+ permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';
+ stderr?: (data: string) => void;
+ verbose?: boolean;
+ [key: string]: any;
+}
+
+export interface Query {
+ next(): Promise>;
+ [Symbol.asyncIterator](): AsyncIterableIterator;
+}
+
+// SDK Message types based on documentation
+export type SDKMessage =
+ | SDKAssistantMessage
+ | SDKUserMessage
+ | SDKSystemMessage
+ | SDKResultMessage
+ | SDKPartialAssistantMessage
+ | SDKCompactBoundaryMessage
+ | SDKPermissionDenial;
+
+export interface SDKAssistantMessage {
+ type: 'assistant';
+ message: {
+ id?: string;
+ content: ContentBlock[];
+ [key: string]: any;
+ };
+ parent_tool_use_id?: string | null;
+ uuid?: string;
+ session_id?: string;
+}
+
+export interface SDKUserMessage {
+ type: 'user';
+ content: string;
+ id?: string;
+}
+
+export interface SDKSystemMessage {
+ type: 'system';
+ content: string;
+}
+
+export interface SDKResultMessage {
+ type: 'result';
+ subtype: 'success' | 'error';
+ error?: {
+ type: string;
+ message: string;
+ };
+}
+
+export interface SDKPartialAssistantMessage {
+ type: 'partial_assistant';
+ content: ContentBlock[];
+}
+
+export interface SDKCompactBoundaryMessage {
+ type: 'compact_boundary';
+}
+
+export interface SDKPermissionDenial {
+ type: 'permission_denial';
+ tool: string;
+ reason: string;
+}
+
+// Content block types
+export type ContentBlock = TextBlock | ToolUseBlock | ToolResultBlock | ThinkingBlock;
+
+export interface TextBlock {
+ type: 'text';
+ text: string;
+}
+
+export interface ToolUseBlock {
+ type: 'tool_use';
+ id: string;
+ name: string;
+ input: Record;
+}
+
+export interface ToolResultBlock {
+ type: 'tool_result';
+ tool_use_id: string;
+ content: string | Array<{ type: string; [key: string]: any }>;
+ is_error?: boolean;
+}
+
+export interface ThinkingBlock {
+ type: 'thinking';
+ thinking: string;
+}
+
+// Tool definition types
+export interface SdkMcpToolDefinition {
+ name: string;
+ description: string;
+ inputSchema: Schema;
+ handler: (args: any, extra?: any) => Promise;
+}
+
+export interface CallToolResult {
+ content: Array<{
+ type: 'text' | 'image' | 'resource';
+ text?: string;
+ data?: string;
+ mimeType?: string;
+ [key: string]: any;
+ }>;
+ isError?: boolean;
+}
+
+export interface McpSdkServerConfigWithInstance {
+ name: string;
+ version?: string;
+ tools?: Array>;
+}
+
+// AG-UI Integration types
+export type ProcessedEvents =
+ | TextMessageStartEvent
+ | TextMessageContentEvent
+ | TextMessageEndEvent
+ | ToolCallStartEvent
+ | ToolCallArgsEvent
+ | ToolCallEndEvent
+ | ToolCallResultEvent
+ | RunStartedEvent
+ | RunFinishedEvent
+ | RunErrorEvent
+ | StepStartedEvent
+ | StepFinishedEvent;
+
+// Session management types
+export interface Session {
+ id: string;
+ userId?: string;
+ client?: ClaudeSDKClient;
+ processedMessageIds: Set;
+ state: Record;
+ createdAt: number;
+ lastAccessedAt: number;
+}
+
+// Agent configuration
+export interface ClaudeAgentConfig extends AgentConfig {
+ apiKey?: string;
+ baseUrl?: string;
+ sessionTimeout?: number;
+ enablePersistentSessions?: boolean;
+ // Valid permission modes from Agent SDK: 'default', 'acceptEdits', 'bypassPermissions', 'plan'
+ // Legacy values 'ask', 'auto', 'none' are mapped internally for backward compatibility
+ permissionMode?: 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' | 'ask' | 'auto' | 'none';
+ mcpServers?: Record;
+ stderr?: (data: string) => void;
+ verbose?: boolean;
+}
+
+// Execution state types
+export interface ExecutionState {
+ id: string;
+ sessionId: string;
+ isRunning: boolean;
+ startTime: number;
+ events: ProcessedEvents[];
+ error?: Error;
+}
+
+// Helper type guards
+export function isAssistantMessage(message: SDKMessage): message is SDKAssistantMessage {
+ return message.type === 'assistant';
+}
+
+export function isResultMessage(message: SDKMessage): message is SDKResultMessage {
+ return message.type === 'result';
+}
+
+export function isTextBlock(block: ContentBlock): block is TextBlock {
+ return block.type === 'text';
+}
+
+export function isToolUseBlock(block: ContentBlock): block is ToolUseBlock {
+ return block.type === 'tool_use';
+}
+
+export function isToolResultBlock(block: ContentBlock): block is ToolResultBlock {
+ return block.type === 'tool_result';
+}
+
+export function isThinkingBlock(block: ContentBlock): block is ThinkingBlock {
+ return block.type === 'thinking';
+}
+
+export function hasContentProperty(message: SDKMessage): message is SDKAssistantMessage | SDKPartialAssistantMessage {
+ // For SDKAssistantMessage, content is in message.content
+ if (message.type === 'assistant') {
+ return 'message' in message &&
+ message.message !== null &&
+ typeof message.message === 'object' &&
+ 'content' in message.message &&
+ Array.isArray((message.message as any).content);
+ }
+ // For SDKPartialAssistantMessage, content might be at top level
+ return 'content' in message && Array.isArray((message as any).content);
+}
+
+// Tool execution types
+export interface ToolExecutionContext {
+ toolName: string;
+ toolCallId: string;
+ isClientTool: boolean;
+ isLongRunning: boolean;
+}
+
+// Message conversion types
+export interface ConvertedMessage {
+ role: 'user' | 'assistant' | 'system';
+ content: string | Array<{ type: string; [key: string]: any }>;
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/src/utils/converters.ts b/integrations/claude-agent-sdk/typescript/src/utils/converters.ts
new file mode 100644
index 000000000..ba66d7913
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/src/utils/converters.ts
@@ -0,0 +1,201 @@
+/**
+ * Message format converters
+ */
+
+import type { Message } from '@ag-ui/client';
+import type { ConvertedMessage } from '../types';
+
+/**
+ * Convert AG-UI messages to a format suitable for Claude SDK
+ */
+export function convertAgUiMessagesToPrompt(messages: Message[]): string {
+ // For Claude SDK, we typically extract the last user message as the prompt
+ // The SDK maintains conversation history internally (in persistent mode)
+
+ // Find the last user message
+ for (let i = messages.length - 1; i >= 0; i--) {
+ const msg = messages[i];
+ if (msg.role === 'user') {
+ return extractMessageContent(msg);
+ }
+ }
+
+ // If no user message found, return a default prompt
+ return 'Hello';
+}
+
+/**
+ * Extract text content from a message
+ */
+export function extractMessageContent(message: Message): string {
+ if (typeof message.content === 'string') {
+ return message.content;
+ }
+
+ if (Array.isArray(message.content)) {
+ return message.content
+ .map((block: any) => {
+ if (typeof block === 'string') {
+ return block;
+ }
+ if (block.type === 'text') {
+ return block.text || '';
+ }
+ // For other types (image, file, etc.), we might need special handling
+ return '';
+ })
+ .filter(Boolean)
+ .join('\n');
+ }
+
+ return String(message.content);
+}
+
+/**
+ * Convert AG-UI message to Claude message format
+ */
+export function convertAgUiMessageToClaude(message: Message): ConvertedMessage {
+ const role = message.role as 'user' | 'assistant' | 'system';
+ const content = extractMessageContent(message);
+
+ return {
+ role,
+ content,
+ };
+}
+
+/**
+ * Convert multiple AG-UI messages to Claude format
+ */
+export function convertAgUiMessagesToClaude(messages: Message[]): ConvertedMessage[] {
+ return messages.map(convertAgUiMessageToClaude);
+}
+
+/**
+ * Check if messages contain tool results
+ */
+export function hasToolResults(messages: Message[]): boolean {
+ return messages.some((msg) => {
+ if (typeof msg.content === 'string') {
+ return false;
+ }
+ if (Array.isArray(msg.content)) {
+ return msg.content.some((block: any) => {
+ return typeof block === 'object' && block.type === 'tool_result';
+ });
+ }
+ return false;
+ });
+}
+
+/**
+ * Extract tool results from messages
+ */
+export function extractToolResults(messages: Message[]): Array<{
+ toolCallId: string;
+ result: string;
+}> {
+ const results: Array<{ toolCallId: string; result: string }> = [];
+
+ for (const msg of messages) {
+ if (typeof msg.content === 'string') {
+ continue;
+ }
+
+ if (Array.isArray(msg.content)) {
+ for (const block of msg.content as any[]) {
+ if (typeof block === 'object' && block.type === 'tool_result') {
+ results.push({
+ toolCallId: (block as any).toolCallId || (block as any).tool_use_id || '',
+ result: (block as any).result || (block as any).content || '',
+ });
+ }
+ }
+ }
+ }
+
+ return results;
+}
+
+/**
+ * Generate a unique run ID
+ */
+export function generateRunId(): string {
+ return `run_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
+}
+
+/**
+ * Generate a unique message ID
+ */
+export function generateMessageId(prefix: string = 'msg'): string {
+ return `${prefix}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
+}
+
+/**
+ * Safely parse JSON string
+ */
+export function safeJsonParse(json: string, defaultValue: any = null): any {
+ try {
+ return JSON.parse(json);
+ } catch {
+ return defaultValue;
+ }
+}
+
+/**
+ * Safely stringify JSON
+ */
+export function safeJsonStringify(obj: any, defaultValue: string = '{}'): string {
+ try {
+ return JSON.stringify(obj);
+ } catch {
+ return defaultValue;
+ }
+}
+
+/**
+ * Check if a message is a tool result submission
+ */
+export function isToolResultSubmission(messages: Message[]): boolean {
+ // Check if the last message contains tool results
+ if (messages.length === 0) {
+ return false;
+ }
+
+ const lastMessage = messages[messages.length - 1];
+ return hasToolResults([lastMessage]);
+}
+
+/**
+ * Format error message for display
+ */
+export function formatErrorMessage(error: any): string {
+ if (error instanceof Error) {
+ return error.message;
+ }
+ if (typeof error === 'string') {
+ return error;
+ }
+ return 'An unknown error occurred';
+}
+
+/**
+ * Truncate text to a maximum length
+ */
+export function truncateText(text: string, maxLength: number = 1000): string {
+ if (text.length <= maxLength) {
+ return text;
+ }
+ return text.slice(0, maxLength) + '...';
+}
+
+/**
+ * Merge consecutive text blocks
+ */
+export function mergeTextBlocks(blocks: Array<{ type: string; text?: string }>): string {
+ return blocks
+ .filter((block: any) => block.type === 'text' && block.text)
+ .map((block: any) => block.text)
+ .join('');
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/tsconfig.json b/integrations/claude-agent-sdk/typescript/tsconfig.json
new file mode 100644
index 000000000..051745ce9
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/tsconfig.json
@@ -0,0 +1,25 @@
+{
+ "compilerOptions": {
+ "target": "es2017",
+ "module": "esnext",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "declaration": true,
+ "declarationMap": true,
+ "sourceMap": true,
+ "moduleResolution": "node",
+ "skipLibCheck": true,
+ "strict": true,
+ "jsx": "react-jsx",
+ "esModuleInterop": true,
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./src/*"]
+ },
+ "stripInternal": true
+ },
+ "include": ["src"],
+ "exclude": ["node_modules", "dist", "__tests__"]
+}
+
diff --git a/integrations/claude-agent-sdk/typescript/tsup.config.ts b/integrations/claude-agent-sdk/typescript/tsup.config.ts
new file mode 100644
index 000000000..a6809a760
--- /dev/null
+++ b/integrations/claude-agent-sdk/typescript/tsup.config.ts
@@ -0,0 +1,14 @@
+import { defineConfig } from 'tsup';
+
+export default defineConfig({
+ entry: {
+ index: 'src/index.ts',
+ },
+ dts: true,
+ format: ['cjs', 'esm'],
+ splitting: false,
+ sourcemap: true,
+ clean: true,
+ external: ['@ag-ui/core', '@ag-ui/client', '@anthropic-ai/claude-agent-sdk'],
+});
+
diff --git a/integrations/community/spring-ai/typescript/package.json b/integrations/community/spring-ai/typescript/package.json
index a3441a42f..b379310cd 100644
--- a/integrations/community/spring-ai/typescript/package.json
+++ b/integrations/community/spring-ai/typescript/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/spring-ai",
"author": "Pascal Wilbrink",
- "version": "0.0.1",
+ "version": "0.0.2",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
diff --git a/integrations/community/spring-ai/typescript/src/index.ts b/integrations/community/spring-ai/typescript/src/index.ts
index 9d4f4a8c6..b347df14d 100644
--- a/integrations/community/spring-ai/typescript/src/index.ts
+++ b/integrations/community/spring-ai/typescript/src/index.ts
@@ -4,4 +4,8 @@
import { HttpAgent } from "@ag-ui/client";
-export class SpringAiAgent extends HttpAgent {}
+export class SpringAiAgent extends HttpAgent {
+ public override get maxVersion(): string {
+ return "0.0.39";
+ }
+}
diff --git a/integrations/crew-ai/typescript/package.json b/integrations/crew-ai/typescript/package.json
index b5c334022..de7c8b1da 100644
--- a/integrations/crew-ai/typescript/package.json
+++ b/integrations/crew-ai/typescript/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/crewai",
"author": "Markus Ecker ",
- "version": "0.0.2",
+ "version": "0.0.3",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
diff --git a/integrations/crew-ai/typescript/src/index.ts b/integrations/crew-ai/typescript/src/index.ts
index ec5d5c7e2..deb09e421 100644
--- a/integrations/crew-ai/typescript/src/index.ts
+++ b/integrations/crew-ai/typescript/src/index.ts
@@ -1,3 +1,7 @@
import { HttpAgent } from "@ag-ui/client";
-export class CrewAIAgent extends HttpAgent {}
+export class CrewAIAgent extends HttpAgent {
+ public override get maxVersion(): string {
+ return "0.0.39";
+ }
+}
diff --git a/integrations/langgraph/python/ag_ui_langgraph/agent.py b/integrations/langgraph/python/ag_ui_langgraph/agent.py
index a67deae3b..566ceba72 100644
--- a/integrations/langgraph/python/ag_ui_langgraph/agent.py
+++ b/integrations/langgraph/python/ag_ui_langgraph/agent.py
@@ -6,10 +6,10 @@
from langgraph.graph.state import CompiledStateGraph
try:
- from langchain.schema import BaseMessage, SystemMessage
+ from langchain.schema import BaseMessage, SystemMessage, ToolMessage
except ImportError:
# Langchain >= 1.0.0
- from langchain_core.messages import BaseMessage, SystemMessage
+ from langchain_core.messages import BaseMessage, SystemMessage, ToolMessage
from langchain_core.runnables import RunnableConfig, ensure_config
from langchain_core.messages import HumanMessage
@@ -235,7 +235,7 @@ async def _handle_stream_events(self, input: RunAgentInput) -> AsyncGenerator[st
CustomEvent(
type=EventType.CUSTOM,
name=LangGraphEventTypes.OnInterrupt.value,
- value=json.dumps(interrupt.value, default=json_safe_stringify) if not isinstance(interrupt.value, str) else interrupt.value,
+ value=dump_json_safe(interrupt.value),
raw_event=interrupt,
)
)
@@ -311,7 +311,7 @@ async def prepare_stream(self, input: RunAgentInput, agent_state: State, config:
CustomEvent(
type=EventType.CUSTOM,
name=LangGraphEventTypes.OnInterrupt.value,
- value=json.dumps(interrupt.value) if not isinstance(interrupt.value, str) else interrupt.value,
+ value=dump_json_safe(interrupt.value),
raw_event=interrupt,
)
)
@@ -682,6 +682,51 @@ async def _handle_single_event(self, event: Any, state: State) -> AsyncGenerator
elif event_type == LangGraphEventTypes.OnToolEnd:
tool_call_output = event["data"]["output"]
+
+ if isinstance(tool_call_output, Command):
+ # Extract ToolMessages from Command.update
+ messages = tool_call_output.update.get('messages', [])
+ tool_messages = [m for m in messages if isinstance(m, ToolMessage)]
+
+ # Process each tool message
+ for tool_msg in tool_messages:
+ if not self.active_run["has_function_streaming"]:
+ yield self._dispatch_event(
+ ToolCallStartEvent(
+ type=EventType.TOOL_CALL_START,
+ tool_call_id=tool_msg.tool_call_id,
+ tool_call_name=tool_msg.name,
+ parent_message_id=tool_msg.id,
+ raw_event=event,
+ )
+ )
+ yield self._dispatch_event(
+ ToolCallArgsEvent(
+ type=EventType.TOOL_CALL_ARGS,
+ tool_call_id=tool_msg.tool_call_id,
+ delta=json.dumps(event["data"].get("input", {})),
+ raw_event=event
+ )
+ )
+ yield self._dispatch_event(
+ ToolCallEndEvent(
+ type=EventType.TOOL_CALL_END,
+ tool_call_id=tool_msg.tool_call_id,
+ raw_event=event
+ )
+ )
+
+ yield self._dispatch_event(
+ ToolCallResultEvent(
+ type=EventType.TOOL_CALL_RESULT,
+ tool_call_id=tool_msg.tool_call_id,
+ message_id=str(uuid.uuid4()),
+ content=tool_msg.content,
+ role="tool"
+ )
+ )
+ return
+
if not self.active_run["has_function_streaming"]:
yield self._dispatch_event(
ToolCallStartEvent(
@@ -696,7 +741,7 @@ async def _handle_single_event(self, event: Any, state: State) -> AsyncGenerator
ToolCallArgsEvent(
type=EventType.TOOL_CALL_ARGS,
tool_call_id=tool_call_output.tool_call_id,
- delta=json.dumps(event["data"]["input"]),
+ delta=dump_json_safe(event["data"]["input"]),
raw_event=event
)
)
@@ -713,7 +758,7 @@ async def _handle_single_event(self, event: Any, state: State) -> AsyncGenerator
type=EventType.TOOL_CALL_RESULT,
tool_call_id=tool_call_output.tool_call_id,
message_id=str(uuid.uuid4()),
- content=tool_call_output.content,
+ content=dump_json_safe(tool_call_output.content),
role="tool"
)
)
@@ -872,3 +917,7 @@ def get_stream_kwargs(
kwargs.update(fork)
return kwargs
+
+
+def dump_json_safe(value):
+ return json.dumps(value, default=json_safe_stringify) if not isinstance(value, str) else value
\ No newline at end of file
diff --git a/integrations/langgraph/python/ag_ui_langgraph/utils.py b/integrations/langgraph/python/ag_ui_langgraph/utils.py
index ed5060887..4e0067512 100644
--- a/integrations/langgraph/python/ag_ui_langgraph/utils.py
+++ b/integrations/langgraph/python/ag_ui_langgraph/utils.py
@@ -13,6 +13,8 @@
ToolMessage as AGUIToolMessage,
ToolCall as AGUIToolCall,
FunctionCall as AGUIFunctionCall,
+ TextInputContent,
+ BinaryInputContent,
)
from .types import State, SchemaKeys, LangGraphReasoning
@@ -41,14 +43,56 @@ def stringify_if_needed(item: Any) -> str:
return item
return json.dumps(item)
+def convert_langchain_multimodal_to_agui(content: List[Dict[str, Any]]) -> List[Union[TextInputContent, BinaryInputContent]]:
+ """Convert LangChain's multimodal content to AG-UI format."""
+ agui_content = []
+ for item in content:
+ if isinstance(item, dict):
+ if item.get("type") == "text":
+ agui_content.append(TextInputContent(
+ type="text",
+ text=item.get("text", "")
+ ))
+ elif item.get("type") == "image_url":
+ image_url_data = item.get("image_url", {})
+ url = image_url_data.get("url", "") if isinstance(image_url_data, dict) else image_url_data
+
+ # Parse data URLs to extract base64 data
+ if url.startswith("data:"):
+ # Format: data:mime_type;base64,data
+ parts = url.split(",", 1)
+ header = parts[0]
+ data = parts[1] if len(parts) > 1 else ""
+ mime_type = header.split(":")[1].split(";")[0] if ":" in header else "image/png"
+
+ agui_content.append(BinaryInputContent(
+ type="binary",
+ mime_type=mime_type,
+ data=data
+ ))
+ else:
+ # Regular URL or ID
+ agui_content.append(BinaryInputContent(
+ type="binary",
+ mime_type="image/png", # Default MIME type
+ url=url
+ ))
+ return agui_content
+
def langchain_messages_to_agui(messages: List[BaseMessage]) -> List[AGUIMessage]:
agui_messages: List[AGUIMessage] = []
for message in messages:
if isinstance(message, HumanMessage):
+ # Handle multimodal content
+ if isinstance(message.content, list):
+ content = convert_langchain_multimodal_to_agui(message.content)
+ else:
+ content = stringify_if_needed(resolve_message_content(message.content))
+
agui_messages.append(AGUIUserMessage(
id=str(message.id),
role="user",
- content=stringify_if_needed(resolve_message_content(message.content)),
+ content=content,
name=message.name,
))
elif isinstance(message, AIMessage):
@@ -91,14 +135,49 @@ def langchain_messages_to_agui(messages: List[BaseMessage]) -> List[AGUIMessage]
raise TypeError(f"Unsupported message type: {type(message)}")
return agui_messages
+def convert_agui_multimodal_to_langchain(content: List[Union[TextInputContent, BinaryInputContent]]) -> List[Dict[str, Any]]:
+ """Convert AG-UI multimodal content to LangChain's multimodal format."""
+ langchain_content = []
+ for item in content:
+ if isinstance(item, TextInputContent):
+ langchain_content.append({
+ "type": "text",
+ "text": item.text
+ })
+ elif isinstance(item, BinaryInputContent):
+ # LangChain uses image_url format (OpenAI-style)
+ content_dict = {"type": "image_url"}
+
+ # Prioritize url, then data, then id
+ if item.url:
+ content_dict["image_url"] = {"url": item.url}
+ elif item.data:
+ # Construct data URL from base64 data
+ content_dict["image_url"] = {"url": f"data:{item.mime_type};base64,{item.data}"}
+ elif item.id:
+ # Use id as a reference (some providers may support this)
+ content_dict["image_url"] = {"url": item.id}
+
+ langchain_content.append(content_dict)
+
+ return langchain_content
+
def agui_messages_to_langchain(messages: List[AGUIMessage]) -> List[BaseMessage]:
langchain_messages = []
for message in messages:
role = message.role
if role == "user":
+ # Handle multimodal content
+ if isinstance(message.content, str):
+ content = message.content
+ elif isinstance(message.content, list):
+ content = convert_agui_multimodal_to_langchain(message.content)
+ else:
+ content = str(message.content)
+
langchain_messages.append(HumanMessage(
id=message.id,
- content=message.content,
+ content=content,
name=message.name,
))
elif role == "assistant":
@@ -177,6 +256,36 @@ def resolve_message_content(content: Any) -> str | None:
return None
+
+def flatten_user_content(content: Any) -> str:
+ """
+ Flatten multimodal content into plain text.
+ Used for backwards compatibility or when multimodal is not supported.
+ """
+ if content is None:
+ return ""
+
+ if isinstance(content, str):
+ return content
+
+ if isinstance(content, list):
+ parts = []
+ for item in content:
+ if isinstance(item, TextInputContent):
+ if item.text:
+ parts.append(item.text)
+ elif isinstance(item, BinaryInputContent):
+ # Add descriptive placeholder for binary content
+ if item.filename:
+ parts.append(f"[Binary content: {item.filename}]")
+ elif item.url:
+ parts.append(f"[Binary content: {item.url}]")
+ else:
+ parts.append(f"[Binary content: {item.mime_type}]")
+ return "\n".join(parts)
+
+ return str(content)
+
def camel_to_snake(name):
return re.sub(r'(? Any:
**make_json_safe(value.__dict__),
}
- return repr(value)
\ No newline at end of file
+ return repr(value)
diff --git a/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py b/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py
new file mode 100644
index 000000000..989a9b717
--- /dev/null
+++ b/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py
@@ -0,0 +1,51 @@
+"""
+Multimodal Messages Example
+
+This example demonstrates how to use AG-UI's multimodal message support
+to send and receive messages containing both text and images.
+
+Key features:
+- User messages can contain text and binary content (images, audio, files)
+- Automatic conversion between AG-UI and LangChain multimodal formats
+- Support for vision models like GPT-4o and Claude 3
+
+Example usage:
+
+```python
+from ag_ui.core import UserMessage, TextInputContent, BinaryInputContent
+
+# Create a multimodal user message
+message = UserMessage(
+ id="user-123",
+ content=[
+ TextInputContent(text="What's in this image?"),
+ BinaryInputContent(
+ mime_type="image/jpeg",
+ url="https://example.com/photo.jpg"
+ ),
+ ],
+)
+
+# Or with base64 encoded data
+message_with_data = UserMessage(
+ id="user-124",
+ content=[
+ TextInputContent(text="Describe this picture"),
+ BinaryInputContent(
+ mime_type="image/png",
+ data="iVBORw0KGgoAAAANSUhEUgAAAAUA...", # base64 encoded
+ filename="screenshot.png"
+ ),
+ ],
+)
+```
+
+The LangGraph integration automatically handles:
+1. Converting AG-UI multimodal format to LangChain's format
+2. Passing multimodal messages to vision models
+3. Converting responses back to AG-UI format
+"""
+
+from .agent import graph
+
+__all__ = ["graph"]
diff --git a/integrations/langgraph/python/examples/agents/multimodal_messages/agent.py b/integrations/langgraph/python/examples/agents/multimodal_messages/agent.py
new file mode 100644
index 000000000..067006f9b
--- /dev/null
+++ b/integrations/langgraph/python/examples/agents/multimodal_messages/agent.py
@@ -0,0 +1,90 @@
+"""
+An example demonstrating multimodal message support with images.
+
+This agent demonstrates how to:
+1. Receive user messages with images
+2. Process multimodal content (text + images)
+3. Use vision models to analyze images
+"""
+
+from typing import List, Any, Optional
+import os
+
+from langchain_core.runnables import RunnableConfig
+from langchain_core.messages import SystemMessage
+from langchain_openai import ChatOpenAI
+from langgraph.graph import StateGraph, END, START
+from langgraph.graph import MessagesState
+from langgraph.types import Command
+
+class AgentState(MessagesState):
+ """
+ State of our graph.
+ """
+ tools: List[Any]
+
+async def vision_chat_node(state: AgentState, config: Optional[RunnableConfig] = None):
+ """
+ Chat node that supports multimodal input including images.
+
+ The messages in state can contain multimodal content with text and images.
+ LangGraph will automatically handle the conversion from AG-UI format to
+ the format expected by the vision model.
+ """
+
+ # 1. Use a vision-capable model
+ # GPT-4o supports vision, as do other models like Claude 3
+ model = ChatOpenAI(model="gpt-4o")
+
+ # Define config for the model
+ if config is None:
+ config = RunnableConfig(recursion_limit=25)
+
+ # 2. Bind tools if needed
+ model_with_tools = model.bind_tools(
+ state.get("tools", []),
+ parallel_tool_calls=False,
+ )
+
+ # 3. Define the system message
+ system_message = SystemMessage(
+ content=(
+ "You are a helpful vision assistant. You can analyze images and "
+ "answer questions about them. Describe what you see in detail."
+ )
+ )
+
+ # 4. Run the model with multimodal messages
+ # The messages may contain both text and images
+ response = await model_with_tools.ainvoke([
+ system_message,
+ *state["messages"],
+ ], config)
+
+ # 5. Return the response
+ return Command(
+ goto=END,
+ update={
+ "messages": response
+ }
+ )
+
+# Define a new graph
+workflow = StateGraph(AgentState)
+workflow.add_node("vision_chat_node", vision_chat_node)
+workflow.set_entry_point("vision_chat_node")
+
+# Add edges
+workflow.add_edge(START, "vision_chat_node")
+workflow.add_edge("vision_chat_node", END)
+
+# Conditionally use a checkpointer based on the environment
+is_fast_api = os.environ.get("LANGGRAPH_FAST_API", "false").lower() == "true"
+
+# Compile the graph
+if is_fast_api:
+ from langgraph.checkpoint.memory import MemorySaver
+ memory = MemorySaver()
+ graph = workflow.compile(checkpointer=memory)
+else:
+ graph = workflow.compile()
diff --git a/integrations/langgraph/python/examples/poetry.lock b/integrations/langgraph/python/examples/poetry.lock
index 6bb4f1e00..58a6626f1 100644
--- a/integrations/langgraph/python/examples/poetry.lock
+++ b/integrations/langgraph/python/examples/poetry.lock
@@ -1,17 +1,16 @@
-# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
[[package]]
name = "ag-ui-langgraph"
-version = "0.0.17"
+version = "0.0.18a0"
description = "Implementation of the AG-UI protocol for LangGraph."
optional = false
python-versions = "<3.14,>=3.10"
-groups = ["main"]
files = []
develop = false
[package.dependencies]
-ag-ui-protocol = "==0.1.9"
+ag-ui-protocol = "==0.2.0a0"
langchain = ">=0.3.0"
langchain-core = ">=0.3.0"
langgraph = ">=0.3.25,<1.1.0"
@@ -25,14 +24,13 @@ url = ".."
[[package]]
name = "ag-ui-protocol"
-version = "0.1.9"
+version = "0.2.0a0"
description = ""
optional = false
python-versions = "<4.0,>=3.9"
-groups = ["main"]
files = [
- {file = "ag_ui_protocol-0.1.9-py3-none-any.whl", hash = "sha256:44c1238b0576a3915b3a16e1b3855724e08e92ebc96b1ff29379fbd3bfbd400b"},
- {file = "ag_ui_protocol-0.1.9.tar.gz", hash = "sha256:94d75e3919ff75e0b608a7eed445062ea0e6f11cd33b3386a7649047e0c7abd3"},
+ {file = "ag_ui_protocol-0.2.0a0-py3-none-any.whl", hash = "sha256:3f1fbf7ea1f0333ce8034cdc67df192b3c1a85a6c39dc866c35f9329df85b9cf"},
+ {file = "ag_ui_protocol-0.2.0a0.tar.gz", hash = "sha256:422bc284f9ab7019d2796641bac96faddd20eba815e1bad6122d72be1f989b80"},
]
[package.dependencies]
@@ -44,7 +42,6 @@ version = "2.6.1"
description = "Happy Eyeballs for asyncio"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"},
{file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"},
@@ -56,7 +53,6 @@ version = "3.11.16"
description = "Async http client/server framework (asyncio)"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb46bb0f24813e6cede6cc07b1961d4b04f331f7112a23b5e21f567da4ee50aa"},
{file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:54eb3aead72a5c19fad07219acd882c1643a1027fbcdefac9b502c267242f955"},
@@ -151,7 +147,7 @@ propcache = ">=0.2.0"
yarl = ">=1.17.0,<2.0"
[package.extras]
-speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
+speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"]
[[package]]
name = "aiosignal"
@@ -159,7 +155,6 @@ version = "1.3.2"
description = "aiosignal: a list of registered asynchronous callbacks"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"},
{file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"},
@@ -174,7 +169,6 @@ version = "0.7.0"
description = "Reusable constraint types to use with typing.Annotated"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
{file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
@@ -182,19 +176,19 @@ files = [
[[package]]
name = "anthropic"
-version = "0.61.0"
+version = "0.72.0"
description = "The official Python library for the anthropic API"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
- {file = "anthropic-0.61.0-py3-none-any.whl", hash = "sha256:798c8e6cc61e6315143c3f5847d2f220c45f1e69f433436872a237413ca58803"},
- {file = "anthropic-0.61.0.tar.gz", hash = "sha256:af4b3b8f3bc4626cca6af2d412e301974da1747179341ad9e271bdf5cbd2f008"},
+ {file = "anthropic-0.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d"},
+ {file = "anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a"},
]
[package.dependencies]
anyio = ">=3.5.0,<5"
distro = ">=1.7.0,<2"
+docstring-parser = ">=0.15,<1"
httpx = ">=0.25.0,<1"
jiter = ">=0.4.0,<1"
pydantic = ">=1.9.0,<3"
@@ -202,7 +196,7 @@ sniffio = "*"
typing-extensions = ">=4.10,<5"
[package.extras]
-aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"]
+aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.9)"]
bedrock = ["boto3 (>=1.28.57)", "botocore (>=1.31.57)"]
vertex = ["google-auth[requests] (>=2,<3)"]
@@ -212,7 +206,6 @@ version = "4.9.0"
description = "High level compatibility layer for multiple asynchronous event loop implementations"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"},
{file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"},
@@ -225,7 +218,7 @@ typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
[package.extras]
doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
-test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""]
+test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"]
trio = ["trio (>=0.26.1)"]
[[package]]
@@ -234,19 +227,18 @@ version = "25.3.0"
description = "Classes Without Boilerplate"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"},
{file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"},
]
[package.extras]
-benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
-cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
-dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
+benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"]
-tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
-tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""]
+tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
[[package]]
name = "cachetools"
@@ -254,7 +246,6 @@ version = "5.5.2"
description = "Extensible memoizing collections and decorators"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a"},
{file = "cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4"},
@@ -266,7 +257,6 @@ version = "2025.1.31"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
-groups = ["main"]
files = [
{file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"},
{file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"},
@@ -278,8 +268,6 @@ version = "1.17.1"
description = "Foreign Function Interface for Python calling C code."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
{file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
@@ -359,7 +347,6 @@ version = "3.4.1"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"},
@@ -461,7 +448,6 @@ version = "8.1.8"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
{file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
@@ -476,8 +462,6 @@ version = "0.4.6"
description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
-groups = ["main"]
-markers = "platform_system == \"Windows\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@@ -489,7 +473,6 @@ version = "0.6.7"
description = "Easily serialize dataclasses to and from JSON."
optional = false
python-versions = "<4.0,>=3.7"
-groups = ["main"]
files = [
{file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"},
{file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"},
@@ -505,19 +488,33 @@ version = "1.9.0"
description = "Distro - an OS platform information API"
optional = false
python-versions = ">=3.6"
-groups = ["main"]
files = [
{file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"},
{file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"},
]
+[[package]]
+name = "docstring-parser"
+version = "0.17.0"
+description = "Parse Python docstrings in reST, Google and Numpydoc format"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708"},
+ {file = "docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912"},
+]
+
+[package.extras]
+dev = ["pre-commit (>=2.16.0)", "pydoctor (>=25.4.0)", "pytest"]
+docs = ["pydoctor (>=25.4.0)"]
+test = ["pytest"]
+
[[package]]
name = "dotenv"
version = "0.9.9"
description = "Deprecated package"
optional = false
python-versions = "*"
-groups = ["main"]
files = [
{file = "dotenv-0.9.9-py2.py3-none-any.whl", hash = "sha256:29cf74a087b31dafdb5a446b6d7e11cbce8ed2741540e2339c69fbef92c94ce9"},
]
@@ -531,7 +528,6 @@ version = "0.115.12"
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"},
{file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"},
@@ -552,7 +548,6 @@ version = "1.2.0"
description = "Infer file type and MIME type of any file/buffer. No external dependencies."
optional = false
python-versions = "*"
-groups = ["main"]
files = [
{file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"},
{file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"},
@@ -564,7 +559,6 @@ version = "1.5.0"
description = "A list-like structure which implements collections.abc.MutableSequence"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"},
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"},
@@ -662,21 +656,21 @@ files = [
[[package]]
name = "google-ai-generativelanguage"
-version = "0.6.18"
+version = "0.9.0"
description = "Google Ai Generativelanguage API client library"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
- {file = "google_ai_generativelanguage-0.6.18-py3-none-any.whl", hash = "sha256:13d8174fea90b633f520789d32df7b422058fd5883b022989c349f1017db7fcf"},
- {file = "google_ai_generativelanguage-0.6.18.tar.gz", hash = "sha256:274ba9fcf69466ff64e971d565884434388e523300afd468fc8e3033cd8e606e"},
+ {file = "google_ai_generativelanguage-0.9.0-py3-none-any.whl", hash = "sha256:59f61e54cb341e602073098389876594c4d12e458617727558bb2628a86f3eb2"},
+ {file = "google_ai_generativelanguage-0.9.0.tar.gz", hash = "sha256:2524748f413917446febc8e0879dc0d4f026a064f89f17c42b81bea77ab76c84"},
]
[package.dependencies]
google-api-core = {version = ">=1.34.1,<2.0.dev0 || >=2.11.dev0,<3.0.0", extras = ["grpc"]}
google-auth = ">=2.14.1,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0"
+grpcio = ">=1.33.2,<2.0.0"
proto-plus = [
- {version = ">=1.22.3,<2.0.0"},
+ {version = ">=1.22.3,<2.0.0", markers = "python_version < \"3.13\""},
{version = ">=1.25.0,<2.0.0", markers = "python_version >= \"3.13\""},
]
protobuf = ">=3.20.2,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0"
@@ -687,7 +681,6 @@ version = "2.25.1"
description = "Google API client core library"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7"},
{file = "google_api_core-2.25.1.tar.gz", hash = "sha256:d2aaa0b13c78c61cb3f4282c464c046e45fbd75755683c9c525e6e8f7ed0a5e8"},
@@ -699,7 +692,7 @@ googleapis-common-protos = ">=1.56.2,<2.0.0"
grpcio = {version = ">=1.49.1,<2.0.0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}
grpcio-status = {version = ">=1.49.1,<2.0.0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}
proto-plus = [
- {version = ">=1.22.3,<2.0.0"},
+ {version = ">=1.22.3,<2.0.0", markers = "python_version < \"3.13\""},
{version = ">=1.25.0,<2.0.0", markers = "python_version >= \"3.13\""},
]
protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0"
@@ -707,7 +700,7 @@ requests = ">=2.18.0,<3.0.0"
[package.extras]
async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.0)"]
-grpc = ["grpcio (>=1.33.2,<2.0.0)", "grpcio (>=1.49.1,<2.0.0) ; python_version >= \"3.11\"", "grpcio-status (>=1.33.2,<2.0.0)", "grpcio-status (>=1.49.1,<2.0.0) ; python_version >= \"3.11\""]
+grpc = ["grpcio (>=1.33.2,<2.0.0)", "grpcio (>=1.49.1,<2.0.0)", "grpcio-status (>=1.33.2,<2.0.0)", "grpcio-status (>=1.49.1,<2.0.0)"]
grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"]
grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"]
@@ -717,7 +710,6 @@ version = "2.40.3"
description = "Google Authentication Library"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "google_auth-2.40.3-py2.py3-none-any.whl", hash = "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca"},
{file = "google_auth-2.40.3.tar.gz", hash = "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77"},
@@ -731,11 +723,11 @@ rsa = ">=3.1.4,<5"
[package.extras]
aiohttp = ["aiohttp (>=3.6.2,<4.0.0)", "requests (>=2.20.0,<3.0.0)"]
enterprise-cert = ["cryptography", "pyopenssl"]
-pyjwt = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"]
-pyopenssl = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"]
+pyjwt = ["cryptography (<39.0.0)", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"]
+pyopenssl = ["cryptography (<39.0.0)", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"]
reauth = ["pyu2f (>=0.1.5)"]
requests = ["requests (>=2.20.0,<3.0.0)"]
-testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "flask", "freezegun", "grpcio", "mock", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"]
+testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "cryptography (<39.0.0)", "cryptography (>=38.0.3)", "flask", "freezegun", "grpcio", "mock", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"]
urllib3 = ["packaging", "urllib3"]
[[package]]
@@ -744,7 +736,6 @@ version = "1.70.0"
description = "Common protobufs used in Google APIs"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8"},
{file = "googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257"},
@@ -762,8 +753,6 @@ version = "3.2.0"
description = "Lightweight in-process concurrent programming"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
-markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""
files = [
{file = "greenlet-3.2.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:b7a7b7f2bad3ca72eb2fa14643f1c4ca11d115614047299d89bc24a3b11ddd09"},
{file = "greenlet-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60e77242e38e99ecaede853755bbd8165e0b20a2f1f3abcaa6f0dceb826a7411"},
@@ -832,7 +821,6 @@ version = "1.74.0"
description = "HTTP/2-based RPC framework"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "grpcio-1.74.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:85bd5cdf4ed7b2d6438871adf6afff9af7096486fcf51818a81b77ef4dd30907"},
{file = "grpcio-1.74.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:68c8ebcca945efff9d86d8d6d7bfb0841cf0071024417e2d7f45c5e46b5b08eb"},
@@ -896,7 +884,6 @@ version = "1.74.0"
description = "Status proto mapping for gRPC"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "grpcio_status-1.74.0-py3-none-any.whl", hash = "sha256:52cdbd759a6760fc8f668098a03f208f493dd5c76bf8e02598bbbaf1f6fc2876"},
{file = "grpcio_status-1.74.0.tar.gz", hash = "sha256:c58c1b24aa454e30f1fc6a7e0dbbc194c54a408143971a94b5f4e40bb5831432"},
@@ -913,7 +900,6 @@ version = "0.14.0"
description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
@@ -925,7 +911,6 @@ version = "1.0.8"
description = "A minimal low-level HTTP client."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "httpcore-1.0.8-py3-none-any.whl", hash = "sha256:5254cf149bcb5f75e9d1b2b9f729ea4a4b883d1ad7379fc632b727cec23674be"},
{file = "httpcore-1.0.8.tar.gz", hash = "sha256:86e94505ed24ea06514883fd44d2bc02d90e77e7979c8eb71b90f41d364a1bad"},
@@ -947,7 +932,6 @@ version = "0.27.2"
description = "The next generation HTTP client."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"},
{file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"},
@@ -961,7 +945,7 @@ idna = "*"
sniffio = "*"
[package.extras]
-brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
+brotli = ["brotli", "brotlicffi"]
cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
http2 = ["h2 (>=3,<5)"]
socks = ["socksio (==1.*)"]
@@ -973,7 +957,6 @@ version = "0.4.0"
description = "Consume Server-Sent Event (SSE) messages with HTTPX."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "httpx-sse-0.4.0.tar.gz", hash = "sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721"},
{file = "httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f"},
@@ -985,7 +968,6 @@ version = "3.10"
description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
python-versions = ">=3.6"
-groups = ["main"]
files = [
{file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
{file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
@@ -1000,7 +982,6 @@ version = "0.8.2"
description = "Fast iterable JSON parser."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"},
{file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"},
@@ -1086,7 +1067,6 @@ version = "1.33"
description = "Apply JSON-Patches (RFC 6902)"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*"
-groups = ["main"]
files = [
{file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"},
{file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"},
@@ -1101,7 +1081,6 @@ version = "3.0.0"
description = "Identify specific nodes in a JSON document (RFC 6901)"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"},
{file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"},
@@ -1109,30 +1088,23 @@ files = [
[[package]]
name = "langchain"
-version = "0.3.23"
+version = "1.0.3"
description = "Building applications with LLMs through composability"
optional = false
-python-versions = "<4.0,>=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain-0.3.23-py3-none-any.whl", hash = "sha256:084f05ee7e80b7c3f378ebadd7309f2a37868ce2906fa0ae64365a67843ade3d"},
- {file = "langchain-0.3.23.tar.gz", hash = "sha256:d95004afe8abebb52d51d6026270248da3f4b53d93e9bf699f76005e0c83ad34"},
+ {file = "langchain-1.0.3-py3-none-any.whl", hash = "sha256:a7d57964ed16278c991de4ab15516a81937a58c5ac7d7aadccb18431ad8179b2"},
+ {file = "langchain-1.0.3.tar.gz", hash = "sha256:f96d8d185cb8cbba9793f5c648e7d5eeec688f8e3778f700d75d89d6570ae11e"},
]
[package.dependencies]
-langchain-core = ">=0.3.51,<1.0.0"
-langchain-text-splitters = ">=0.3.8,<1.0.0"
-langsmith = ">=0.1.17,<0.4"
+langchain-core = ">=1.0.0,<2.0.0"
+langgraph = ">=1.0.2,<1.1.0"
pydantic = ">=2.7.4,<3.0.0"
-PyYAML = ">=5.3"
-requests = ">=2,<3"
-SQLAlchemy = ">=1.4,<3"
[package.extras]
anthropic = ["langchain-anthropic"]
aws = ["langchain-aws"]
-azure-ai = ["langchain-azure-ai"]
-cohere = ["langchain-cohere"]
community = ["langchain-community"]
deepseek = ["langchain-deepseek"]
fireworks = ["langchain-fireworks"]
@@ -1149,151 +1121,166 @@ xai = ["langchain-xai"]
[[package]]
name = "langchain-anthropic"
-version = "0.3.18"
-description = "An integration package connecting AnthropicMessages and LangChain"
+version = "1.0.1"
+description = "Integration package connecting Claude (Anthropic) APIs and LangChain"
optional = false
-python-versions = ">=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain_anthropic-0.3.18-py3-none-any.whl", hash = "sha256:1be6ece317f08b3d780671fd4425b1dd05fd291a751e3debe3d4704bcf785082"},
- {file = "langchain_anthropic-0.3.18.tar.gz", hash = "sha256:f18970ae58fc4d79c8431dd67f8ab777de5e6d2f92285c8c9af1999cd126fb0a"},
+ {file = "langchain_anthropic-1.0.1-py3-none-any.whl", hash = "sha256:a883f1030c50c2422a57985c0a89b1f49e9e0abe3117d212e510e3b838df7417"},
+ {file = "langchain_anthropic-1.0.1.tar.gz", hash = "sha256:cd4c2f5d5d85d3aba290ea7b9976371d3e25fd58f6d70cfd0ef3323787862edc"},
]
[package.dependencies]
-anthropic = ">=0.60.0,<1"
-langchain-core = ">=0.3.72,<1.0.0"
+anthropic = ">=0.69.0,<1.0.0"
+langchain-core = ">=1.0.0,<2.0.0"
pydantic = ">=2.7.4,<3.0.0"
[[package]]
-name = "langchain-community"
-version = "0.3.21"
-description = "Community contributed LangChain integrations."
+name = "langchain-classic"
+version = "1.0.0"
+description = "Building applications with LLMs through composability"
optional = false
-python-versions = "<4.0,>=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain_community-0.3.21-py3-none-any.whl", hash = "sha256:8cb9bbb7ef15e5eea776193528dd0e0e1299047146d0c78b6c696ae2dc62e81f"},
- {file = "langchain_community-0.3.21.tar.gz", hash = "sha256:b87b9992cbeea7553ed93e3d39faf9893a8690318485f7dc861751c7878729f7"},
+ {file = "langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33"},
+ {file = "langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5"},
]
[package.dependencies]
-aiohttp = ">=3.8.3,<4.0.0"
-dataclasses-json = ">=0.5.7,<0.7"
-httpx-sse = ">=0.4.0,<1.0.0"
-langchain = ">=0.3.23,<1.0.0"
-langchain-core = ">=0.3.51,<1.0.0"
-langsmith = ">=0.1.125,<0.4"
-numpy = ">=1.26.2,<3"
-pydantic-settings = ">=2.4.0,<3.0.0"
-PyYAML = ">=5.3"
-requests = ">=2,<3"
-SQLAlchemy = ">=1.4,<3"
-tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10"
+langchain-core = ">=1.0.0,<2.0.0"
+langchain-text-splitters = ">=1.0.0,<2.0.0"
+langsmith = ">=0.1.17,<1.0.0"
+pydantic = ">=2.7.4,<3.0.0"
+pyyaml = ">=5.3.0,<7.0.0"
+requests = ">=2.0.0,<3.0.0"
+sqlalchemy = ">=1.4.0,<3.0.0"
+
+[package.extras]
+anthropic = ["langchain-anthropic"]
+aws = ["langchain-aws"]
+deepseek = ["langchain-deepseek"]
+fireworks = ["langchain-fireworks"]
+google-genai = ["langchain-google-genai"]
+google-vertexai = ["langchain-google-vertexai"]
+groq = ["langchain-groq"]
+mistralai = ["langchain-mistralai"]
+ollama = ["langchain-ollama"]
+openai = ["langchain-openai"]
+perplexity = ["langchain-perplexity"]
+together = ["langchain-together"]
+xai = ["langchain-xai"]
[[package]]
-name = "langchain-core"
-version = "0.3.72"
-description = "Building applications with LLMs through composability"
+name = "langchain-community"
+version = "0.4.1"
+description = "Community contributed LangChain integrations."
optional = false
-python-versions = ">=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain_core-0.3.72-py3-none-any.whl", hash = "sha256:9fa15d390600eb6b6544397a7aa84be9564939b6adf7a2b091179ea30405b240"},
- {file = "langchain_core-0.3.72.tar.gz", hash = "sha256:4de3828909b3d7910c313242ab07b241294650f5cb6eac17738dd3638b1cd7de"},
+ {file = "langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a"},
+ {file = "langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85"},
]
[package.dependencies]
-jsonpatch = ">=1.33,<2.0"
-langsmith = ">=0.3.45"
-packaging = ">=23.2"
-pydantic = ">=2.7.4"
-PyYAML = ">=5.3"
+aiohttp = ">=3.8.3,<4.0.0"
+dataclasses-json = ">=0.6.7,<0.7.0"
+httpx-sse = ">=0.4.0,<1.0.0"
+langchain-classic = ">=1.0.0,<2.0.0"
+langchain-core = ">=1.0.1,<2.0.0"
+langsmith = ">=0.1.125,<1.0.0"
+numpy = [
+ {version = ">=1.26.2", markers = "python_version < \"3.13\""},
+ {version = ">=2.1.0", markers = "python_version >= \"3.13\""},
+]
+pydantic-settings = ">=2.10.1,<3.0.0"
+PyYAML = ">=5.3.0,<7.0.0"
+requests = ">=2.32.5,<3.0.0"
+SQLAlchemy = ">=1.4.0,<3.0.0"
tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0"
-typing-extensions = ">=4.7"
[[package]]
-name = "langchain-experimental"
-version = "0.3.4"
+name = "langchain-core"
+version = "1.0.3"
description = "Building applications with LLMs through composability"
optional = false
-python-versions = "<4.0,>=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain_experimental-0.3.4-py3-none-any.whl", hash = "sha256:2e587306aea36b60fa5e5fc05dc7281bee9f60a806f0bf9d30916e0ee096af80"},
- {file = "langchain_experimental-0.3.4.tar.gz", hash = "sha256:937c4259ee4a639c618d19acf0e2c5c2898ef127050346edc5655259aa281a21"},
+ {file = "langchain_core-1.0.3-py3-none-any.whl", hash = "sha256:64f1bd45f04b174bbfd54c135a8adc52f4902b347c15a117d6383b412bf558a5"},
+ {file = "langchain_core-1.0.3.tar.gz", hash = "sha256:10744945d21168fb40d1162a5f1cf69bf0137ff6ad2b12c87c199a5297410887"},
]
[package.dependencies]
-langchain-community = ">=0.3.0,<0.4.0"
-langchain-core = ">=0.3.28,<0.4.0"
+jsonpatch = ">=1.33.0,<2.0.0"
+langsmith = ">=0.3.45,<1.0.0"
+packaging = ">=23.2.0,<26.0.0"
+pydantic = ">=2.7.4,<3.0.0"
+pyyaml = ">=5.3.0,<7.0.0"
+tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0"
+typing-extensions = ">=4.7.0,<5.0.0"
[[package]]
name = "langchain-google-genai"
-version = "2.1.9"
+version = "3.0.1"
description = "An integration package connecting Google's genai package and LangChain"
optional = false
-python-versions = "<4.0,>=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain_google_genai-2.1.9-py3-none-any.whl", hash = "sha256:8d3aab59706b8f8920a22bcfd63c5000ce430fe61db6ecdec262977d1a0be5b8"},
- {file = "langchain_google_genai-2.1.9.tar.gz", hash = "sha256:cd5d6f644b8dac3e312e30101bb97541aab240e82678e87a4df039ee1dc77531"},
+ {file = "langchain_google_genai-3.0.1-py3-none-any.whl", hash = "sha256:2420396c75d3911af42af1bffb2c2ddd3fff73f9db9d619963429b5385e5f55e"},
+ {file = "langchain_google_genai-3.0.1.tar.gz", hash = "sha256:d3f82fd274d2e9ca86448d5f89ac37b37b2d3cdfa6dec1af7bc792317b11dde7"},
]
[package.dependencies]
filetype = ">=1.2.0,<2.0.0"
-google-ai-generativelanguage = ">=0.6.18,<0.7.0"
-langchain-core = ">=0.3.68,<0.4.0"
-pydantic = ">=2,<3"
+google-ai-generativelanguage = ">=0.7.0,<1.0.0"
+langchain-core = ">=1.0.0,<2.0.0"
+pydantic = ">=2.0.0,<3.0.0"
[[package]]
name = "langchain-openai"
-version = "0.3.13"
+version = "1.0.2"
description = "An integration package connecting OpenAI and LangChain"
optional = false
-python-versions = "<4.0,>=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain_openai-0.3.13-py3-none-any.whl", hash = "sha256:2ca3f1865df32d03c3bd85c77f11f0ffd81b157b4e363291741c65c81463606a"},
- {file = "langchain_openai-0.3.13.tar.gz", hash = "sha256:75038efbf686f4b5fe2b6bdb75c43790d563ecd61984fd1d51d6d51c53609d64"},
+ {file = "langchain_openai-1.0.2-py3-none-any.whl", hash = "sha256:b3eb9b82752063b46452aa868d8c8bc1604e57631648c3bc325bba58d3aeb143"},
+ {file = "langchain_openai-1.0.2.tar.gz", hash = "sha256:621e8295c52db9a1fc74806a0bd227ea215c132c6c5e421d2982c9ee78468769"},
]
[package.dependencies]
-langchain-core = ">=0.3.52,<1.0.0"
-openai = ">=1.68.2,<2.0.0"
-tiktoken = ">=0.7,<1"
+langchain-core = ">=1.0.2,<2.0.0"
+openai = ">=1.109.1,<3.0.0"
+tiktoken = ">=0.7.0,<1.0.0"
[[package]]
name = "langchain-text-splitters"
-version = "0.3.8"
+version = "1.0.0"
description = "LangChain text splitting utilities"
optional = false
-python-versions = "<4.0,>=3.9"
-groups = ["main"]
+python-versions = "<4.0.0,>=3.10.0"
files = [
- {file = "langchain_text_splitters-0.3.8-py3-none-any.whl", hash = "sha256:e75cc0f4ae58dcf07d9f18776400cf8ade27fadd4ff6d264df6278bb302f6f02"},
- {file = "langchain_text_splitters-0.3.8.tar.gz", hash = "sha256:116d4b9f2a22dda357d0b79e30acf005c5518177971c66a9f1ab0edfdb0f912e"},
+ {file = "langchain_text_splitters-1.0.0-py3-none-any.whl", hash = "sha256:f00c8219d3468f2c5bd951b708b6a7dd9bc3c62d0cfb83124c377f7170f33b2e"},
+ {file = "langchain_text_splitters-1.0.0.tar.gz", hash = "sha256:d8580a20ad7ed10b432feb273e5758b2cc0902d094919629cec0e1ad691a6744"},
]
[package.dependencies]
-langchain-core = ">=0.3.51,<1.0.0"
+langchain-core = ">=1.0.0,<2.0.0"
[[package]]
name = "langgraph"
-version = "0.6.1"
+version = "1.0.2"
description = "Building stateful, multi-actor applications with LLMs"
optional = false
-python-versions = ">=3.9"
-groups = ["main"]
+python-versions = ">=3.10"
files = [
- {file = "langgraph-0.6.1-py3-none-any.whl", hash = "sha256:2736027faeb6cd5c0f1ab51a5345594cfcb5eb5beeb5ac1799a58fcecf4b4eae"},
- {file = "langgraph-0.6.1.tar.gz", hash = "sha256:e4399ac5ad0b70f58fa28d6fe05a41b84c15959f270d6d1a86edab4e92ae148b"},
+ {file = "langgraph-1.0.2-py3-none-any.whl", hash = "sha256:b3d56b8c01de857b5fb1da107e8eab6e30512a377685eeedb4f76456724c9729"},
+ {file = "langgraph-1.0.2.tar.gz", hash = "sha256:dae1af08d6025cb1fcaed68f502c01af7d634d9044787c853a46c791cfc52f67"},
]
[package.dependencies]
langchain-core = ">=0.1"
-langgraph-checkpoint = ">=2.1.0,<3.0.0"
-langgraph-prebuilt = ">=0.6.0,<0.7.0"
-langgraph-sdk = ">=0.2.0,<0.3.0"
+langgraph-checkpoint = ">=2.1.0,<4.0.0"
+langgraph-prebuilt = ">=1.0.2,<1.1.0"
+langgraph-sdk = ">=0.2.2,<0.3.0"
pydantic = ">=2.7.4"
xxhash = ">=3.5.0"
@@ -1303,7 +1290,6 @@ version = "2.1.1"
description = "Library with base interfaces for LangGraph checkpoint savers."
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "langgraph_checkpoint-2.1.1-py3-none-any.whl", hash = "sha256:5a779134fd28134a9a83d078be4450bbf0e0c79fdf5e992549658899e6fc5ea7"},
{file = "langgraph_checkpoint-2.1.1.tar.gz", hash = "sha256:72038c0f9e22260cb9bff1f3ebe5eb06d940b7ee5c1e4765019269d4f21cf92d"},
@@ -1315,30 +1301,28 @@ ormsgpack = ">=1.10.0"
[[package]]
name = "langgraph-prebuilt"
-version = "0.6.1"
+version = "1.0.2"
description = "Library with high-level APIs for creating and executing LangGraph agents and tools."
optional = false
-python-versions = ">=3.9"
-groups = ["main"]
+python-versions = ">=3.10"
files = [
- {file = "langgraph_prebuilt-0.6.1-py3-none-any.whl", hash = "sha256:a3a970451371ec66509c6969505286a5d92132af7062d0b2b6dab08c2e27b50f"},
- {file = "langgraph_prebuilt-0.6.1.tar.gz", hash = "sha256:574c409113e02d3c58157877c5ea638faa80647b259027647ab88830d7ecef00"},
+ {file = "langgraph_prebuilt-1.0.2-py3-none-any.whl", hash = "sha256:d9499f7c449fb637ee7b87e3f6a3b74095f4202053c74d33894bd839ea4c57c7"},
+ {file = "langgraph_prebuilt-1.0.2.tar.gz", hash = "sha256:9896dbabf04f086eb59df4294f54ab5bdb21cd78e27e0a10e695dffd1cc6097d"},
]
[package.dependencies]
-langchain-core = ">=0.3.67"
-langgraph-checkpoint = ">=2.1.0,<3.0.0"
+langchain-core = ">=1.0.0"
+langgraph-checkpoint = ">=2.1.0,<4.0.0"
[[package]]
name = "langgraph-sdk"
-version = "0.2.0"
+version = "0.2.9"
description = "SDK for interacting with LangGraph API"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
- {file = "langgraph_sdk-0.2.0-py3-none-any.whl", hash = "sha256:150722264f225c4d47bbe7394676be102fdbf04c4400a0dd1bd41a70c6430cc7"},
- {file = "langgraph_sdk-0.2.0.tar.gz", hash = "sha256:cd8b5f6595e5571be5cbffd04cf936978ab8f5d1005517c99715947ef871e246"},
+ {file = "langgraph_sdk-0.2.9-py3-none-any.whl", hash = "sha256:fbf302edadbf0fb343596f91c597794e936ef68eebc0d3e1d358b6f9f72a1429"},
+ {file = "langgraph_sdk-0.2.9.tar.gz", hash = "sha256:b3bd04c6be4fa382996cd2be8fbc1e7cc94857d2bc6b6f4599a7f2a245975303"},
]
[package.dependencies]
@@ -1351,7 +1335,6 @@ version = "0.3.45"
description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform."
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "langsmith-0.3.45-py3-none-any.whl", hash = "sha256:5b55f0518601fa65f3bb6b1a3100379a96aa7b3ed5e9380581615ba9c65ed8ed"},
{file = "langsmith-0.3.45.tar.gz", hash = "sha256:1df3c6820c73ed210b2c7bc5cdb7bfa19ddc9126cd03fdf0da54e2e171e6094d"},
@@ -1381,7 +1364,6 @@ version = "3.26.1"
description = "A lightweight library for converting complex datatypes to and from native Python datatypes."
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c"},
{file = "marshmallow-3.26.1.tar.gz", hash = "sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6"},
@@ -1401,7 +1383,6 @@ version = "6.4.3"
description = "multidict implementation"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "multidict-6.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32a998bd8a64ca48616eac5a8c1cc4fa38fb244a3facf2eeb14abe186e0f6cc5"},
{file = "multidict-6.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a54ec568f1fc7f3c313c2f3b16e5db346bf3660e1309746e7fccbbfded856188"},
@@ -1515,7 +1496,6 @@ version = "1.0.0"
description = "Type system extensions for programs checked with the mypy type checker."
optional = false
python-versions = ">=3.5"
-groups = ["main"]
files = [
{file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
{file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
@@ -1527,7 +1507,6 @@ version = "2.2.4"
description = "Fundamental package for array computing in Python"
optional = false
python-versions = ">=3.10"
-groups = ["main"]
files = [
{file = "numpy-2.2.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9"},
{file = "numpy-2.2.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e642d86b8f956098b564a45e6f6ce68a22c2c97a04f5acd3f221f57b8cb850ae"},
@@ -1588,14 +1567,13 @@ files = [
[[package]]
name = "openai"
-version = "1.74.0"
+version = "2.2.0"
description = "The official Python library for the openai API"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
- {file = "openai-1.74.0-py3-none-any.whl", hash = "sha256:aff3e0f9fb209836382ec112778667027f4fd6ae38bdb2334bc9e173598b092a"},
- {file = "openai-1.74.0.tar.gz", hash = "sha256:592c25b8747a7cad33a841958f5eb859a785caea9ee22b9e4f4a2ec062236526"},
+ {file = "openai-2.2.0-py3-none-any.whl", hash = "sha256:d222e63436e33f3134a3d7ce490dc2d2f146fa98036eb65cc225df3ce163916f"},
+ {file = "openai-2.2.0.tar.gz", hash = "sha256:bc49d077a8bf0e370eec4d038bc05e232c20855a19df0b58e5b3e5a8da7d33e0"},
]
[package.dependencies]
@@ -1609,6 +1587,7 @@ tqdm = ">4"
typing-extensions = ">=4.11,<5"
[package.extras]
+aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"]
datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"]
realtime = ["websockets (>=13,<16)"]
voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"]
@@ -1619,7 +1598,6 @@ version = "3.10.16"
description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "orjson-3.10.16-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:4cb473b8e79154fa778fb56d2d73763d977be3dcc140587e07dbc545bbfc38f8"},
{file = "orjson-3.10.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:622a8e85eeec1948690409a19ca1c7d9fd8ff116f4861d261e6ae2094fe59a00"},
@@ -1697,7 +1675,6 @@ version = "1.10.0"
description = "Fast, correct Python msgpack library supporting dataclasses, datetimes, and numpy"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "ormsgpack-1.10.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:8a52c7ce7659459f3dc8dec9fd6a6c76f855a0a7e2b61f26090982ac10b95216"},
{file = "ormsgpack-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:060f67fe927582f4f63a1260726d019204b72f460cf20930e6c925a1d129f373"},
@@ -1748,7 +1725,6 @@ version = "24.2"
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
@@ -1760,7 +1736,6 @@ version = "0.3.1"
description = "Accelerated property cache"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"},
{file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"},
@@ -1868,7 +1843,6 @@ version = "1.26.1"
description = "Beautiful, Pythonic protocol buffers"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "proto_plus-1.26.1-py3-none-any.whl", hash = "sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66"},
{file = "proto_plus-1.26.1.tar.gz", hash = "sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012"},
@@ -1886,7 +1860,6 @@ version = "6.31.1"
description = ""
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9"},
{file = "protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447"},
@@ -1905,7 +1878,6 @@ version = "0.6.1"
description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"},
{file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"},
@@ -1917,7 +1889,6 @@ version = "0.4.2"
description = "A collection of ASN.1-based protocols modules"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a"},
{file = "pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6"},
@@ -1932,8 +1903,6 @@ version = "2.22"
description = "C parser in Python"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
{file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
@@ -1945,7 +1914,6 @@ version = "2.11.3"
description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "pydantic-2.11.3-py3-none-any.whl", hash = "sha256:a082753436a07f9ba1289c6ffa01cd93db3548776088aa917cc43b63f68fa60f"},
{file = "pydantic-2.11.3.tar.gz", hash = "sha256:7471657138c16adad9322fe3070c0116dd6c3ad8d649300e3cbdfe91f4db4ec3"},
@@ -1959,7 +1927,7 @@ typing-inspection = ">=0.4.0"
[package.extras]
email = ["email-validator (>=2.0.0)"]
-timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""]
+timezone = ["tzdata"]
[[package]]
name = "pydantic-core"
@@ -1967,7 +1935,6 @@ version = "2.33.1"
description = "Core functionality for Pydantic validation and serialization"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"},
{file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"},
@@ -2075,22 +2042,24 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
[[package]]
name = "pydantic-settings"
-version = "2.8.1"
+version = "2.11.0"
description = "Settings management using Pydantic"
optional = false
-python-versions = ">=3.8"
-groups = ["main"]
+python-versions = ">=3.9"
files = [
- {file = "pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c"},
- {file = "pydantic_settings-2.8.1.tar.gz", hash = "sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585"},
+ {file = "pydantic_settings-2.11.0-py3-none-any.whl", hash = "sha256:fe2cea3413b9530d10f3a5875adffb17ada5c1e1bab0b2885546d7310415207c"},
+ {file = "pydantic_settings-2.11.0.tar.gz", hash = "sha256:d0e87a1c7d33593beb7194adb8470fc426e95ba02af83a0f23474a04c9a08180"},
]
[package.dependencies]
pydantic = ">=2.7.0"
python-dotenv = ">=0.21.0"
+typing-inspection = ">=0.4.0"
[package.extras]
+aws-secrets-manager = ["boto3 (>=1.35.0)", "boto3-stubs[secretsmanager]"]
azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"]
+gcp-secret-manager = ["google-cloud-secret-manager (>=2.23.1)"]
toml = ["tomli (>=2.0.1)"]
yaml = ["pyyaml (>=6.0.1)"]
@@ -2100,7 +2069,6 @@ version = "1.1.0"
description = "Read key-value pairs from a .env file and set them as environment variables"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"},
{file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"},
@@ -2115,7 +2083,6 @@ version = "6.0.2"
description = "YAML parser and emitter for Python"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
@@ -2178,7 +2145,6 @@ version = "2024.11.6"
description = "Alternative regular expression module, to replace re."
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"},
{file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"},
@@ -2278,19 +2244,18 @@ files = [
[[package]]
name = "requests"
-version = "2.32.3"
+version = "2.32.5"
description = "Python HTTP for Humans."
optional = false
-python-versions = ">=3.8"
-groups = ["main"]
+python-versions = ">=3.9"
files = [
- {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
- {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
+ {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"},
+ {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"},
]
[package.dependencies]
certifi = ">=2017.4.17"
-charset-normalizer = ">=2,<4"
+charset_normalizer = ">=2,<4"
idna = ">=2.5,<4"
urllib3 = ">=1.21.1,<3"
@@ -2304,7 +2269,6 @@ version = "1.0.0"
description = "A utility belt for advanced users of python-requests"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-groups = ["main"]
files = [
{file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"},
{file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"},
@@ -2319,7 +2283,6 @@ version = "4.9.1"
description = "Pure-Python RSA implementation"
optional = false
python-versions = "<4,>=3.6"
-groups = ["main"]
files = [
{file = "rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762"},
{file = "rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75"},
@@ -2334,7 +2297,6 @@ version = "1.3.1"
description = "Sniff out which async library your code is running under"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
@@ -2346,7 +2308,6 @@ version = "2.0.40"
description = "Database Abstraction Library"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "SQLAlchemy-2.0.40-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ae9597cab738e7cc823f04a704fb754a9249f0b6695a6aeb63b74055cd417a96"},
{file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37a5c21ab099a83d669ebb251fddf8f5cee4d75ea40a5a1653d9c43d60e20867"},
@@ -2442,7 +2403,6 @@ version = "0.46.2"
description = "The little ASGI library that shines."
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"},
{file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"},
@@ -2460,7 +2420,6 @@ version = "9.1.2"
description = "Retry code until it succeeds"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"},
{file = "tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb"},
@@ -2476,7 +2435,6 @@ version = "0.9.0"
description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "tiktoken-0.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:586c16358138b96ea804c034b8acf3f5d3f0258bd2bc3b0227af4af5d622e382"},
{file = "tiktoken-0.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d9c59ccc528c6c5dd51820b3474402f69d9a9e1d656226848ad68a8d5b2e5108"},
@@ -2524,7 +2482,6 @@ version = "4.67.1"
description = "Fast, Extensible Progress Meter"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"},
{file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"},
@@ -2546,7 +2503,6 @@ version = "4.13.2"
description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"},
{file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"},
@@ -2558,7 +2514,6 @@ version = "0.9.0"
description = "Runtime inspection utilities for typing module."
optional = false
python-versions = "*"
-groups = ["main"]
files = [
{file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"},
{file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"},
@@ -2574,7 +2529,6 @@ version = "0.4.0"
description = "Runtime typing introspection tools"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"},
{file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"},
@@ -2589,14 +2543,13 @@ version = "2.4.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"},
{file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"},
]
[package.extras]
-brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
h2 = ["h2 (>=4,<5)"]
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
zstd = ["zstandard (>=0.18.0)"]
@@ -2607,7 +2560,6 @@ version = "0.34.1"
description = "The lightning-fast ASGI server."
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "uvicorn-0.34.1-py3-none-any.whl", hash = "sha256:984c3a8c7ca18ebaad15995ee7401179212c59521e67bfc390c07fa2b8d2e065"},
{file = "uvicorn-0.34.1.tar.gz", hash = "sha256:af981725fc4b7ffc5cb3b0e9eda6258a90c4b52cb2a83ce567ae0a7ae1757afc"},
@@ -2618,7 +2570,7 @@ click = ">=7.0"
h11 = ">=0.8"
[package.extras]
-standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"]
+standard = ["colorama (>=0.4)", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"]
[[package]]
name = "xxhash"
@@ -2626,7 +2578,6 @@ version = "3.5.0"
description = "Python binding for xxHash"
optional = false
python-versions = ">=3.7"
-groups = ["main"]
files = [
{file = "xxhash-3.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ece616532c499ee9afbb83078b1b952beffef121d989841f7f4b3dc5ac0fd212"},
{file = "xxhash-3.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3171f693dbc2cef6477054a665dc255d996646b4023fe56cb4db80e26f4cc520"},
@@ -2759,7 +2710,6 @@ version = "1.19.0"
description = "Yet another URL library"
optional = false
python-versions = ">=3.9"
-groups = ["main"]
files = [
{file = "yarl-1.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0bae32f8ebd35c04d6528cedb4a26b8bf25339d3616b04613b97347f919b76d3"},
{file = "yarl-1.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8015a076daf77823e7ebdcba474156587391dab4e70c732822960368c01251e6"},
@@ -2861,7 +2811,6 @@ version = "0.23.0"
description = "Zstandard bindings for Python"
optional = false
python-versions = ">=3.8"
-groups = ["main"]
files = [
{file = "zstandard-0.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9"},
{file = "zstandard-0.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880"},
@@ -2969,6 +2918,6 @@ cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\
cffi = ["cffi (>=1.11)"]
[metadata]
-lock-version = "2.1"
+lock-version = "2.0"
python-versions = ">=3.12,<3.14"
-content-hash = "6f71ccd98fc91a3afa08c4407cce479e3dd9d2212015a800fec035fa97c33db0"
+content-hash = "4c35ba27df33f05f4bc754cc44eeebad8cee1d14a78a9697483a2bdfbad359d5"
diff --git a/integrations/langgraph/python/examples/pyproject.toml b/integrations/langgraph/python/examples/pyproject.toml
index 0e6841203..efccd802e 100644
--- a/integrations/langgraph/python/examples/pyproject.toml
+++ b/integrations/langgraph/python/examples/pyproject.toml
@@ -4,6 +4,7 @@ version = "0.1.0"
description = ""
readme = "README.md"
packages = [{ include = "agents" }]
+authors = ["Ran Shem Tov"]
[project]
name = "agents"
@@ -13,14 +14,13 @@ version = "0.0.1"
python = ">=3.12,<3.14"
uvicorn = "^0.34.0"
dotenv = "^0.9.9"
-langchain = ">=0.1.0"
-langchain-anthropic = ">=0.3.18"
-langchain-core = ">=0.1.5"
-langchain-community = ">=0.0.1"
-langchain-experimental = ">=0.0.11"
-langchain-google-genai = ">=2.1.9"
-langchain-openai = ">=0.0.1"
-langgraph = "^0.6.1"
+langchain = ">=1.0.3"
+langchain-anthropic = ">=1.0.1"
+langchain-core = ">=1.0.2"
+langchain-community = ">=0.0.36"
+langchain-google-genai = ">=2.1.12"
+langchain-openai = ">=1.0.1"
+langgraph = ">=1.0.0"
ag-ui-langgraph = { path = "../" }
python-dotenv = "^1.0.0"
fastapi = "^0.115.12"
diff --git a/integrations/langgraph/python/examples/uv.lock b/integrations/langgraph/python/examples/uv.lock
index d3d4eecac..3830bac2c 100644
--- a/integrations/langgraph/python/examples/uv.lock
+++ b/integrations/langgraph/python/examples/uv.lock
@@ -1,14 +1,13 @@
version = 1
-requires-python = ">=3.12"
+requires-python = ">=3.13"
resolution-markers = [
"python_full_version >= '3.14'",
- "python_full_version == '3.13.*'",
- "python_full_version < '3.13'",
+ "python_full_version < '3.14'",
]
[[package]]
name = "ag-ui-langgraph"
-version = "0.0.17"
+version = "0.0.18a0"
source = { directory = "../" }
dependencies = [
{ name = "ag-ui-protocol" },
@@ -19,7 +18,7 @@ dependencies = [
[package.metadata]
requires-dist = [
- { name = "ag-ui-protocol", specifier = "==0.1.9" },
+ { name = "ag-ui-protocol", specifier = "==0.2.0a0" },
{ name = "fastapi", marker = "extra == 'fastapi'", specifier = ">=0.115.12,<0.116.0" },
{ name = "langchain", specifier = ">=0.3.0" },
{ name = "langchain-core", specifier = ">=0.3.0" },
@@ -28,14 +27,14 @@ requires-dist = [
[[package]]
name = "ag-ui-protocol"
-version = "0.1.9"
+version = "0.2.0a0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pydantic" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/7b/d7/a8f8789b3b8b5f7263a902361468e8dfefd85ec63d1d5398579b9175d76d/ag_ui_protocol-0.1.9.tar.gz", hash = "sha256:94d75e3919ff75e0b608a7eed445062ea0e6f11cd33b3386a7649047e0c7abd3", size = 4988 }
+sdist = { url = "https://files.pythonhosted.org/packages/15/35/dd487e5d4930236c6fd2a9530863e1899eb003d9f96bc3b7800ac73530bb/ag_ui_protocol-0.2.0a0.tar.gz", hash = "sha256:422bc284f9ab7019d2796641bac96faddd20eba815e1bad6122d72be1f989b80", size = 5582 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/39/50/2bb71a2a9135f4d88706293773320d185789b592987c09f79e9bf2f4875f/ag_ui_protocol-0.1.9-py3-none-any.whl", hash = "sha256:44c1238b0576a3915b3a16e1b3855724e08e92ebc96b1ff29379fbd3bfbd400b", size = 7070 },
+ { url = "https://files.pythonhosted.org/packages/76/85/b2b1eacf49c09c9d40ca2be61213e8e3fdbc88e77eebb0d7668570cf4da3/ag_ui_protocol-0.2.0a0-py3-none-any.whl", hash = "sha256:3f1fbf7ea1f0333ce8034cdc67df192b3c1a85a6c39dc866c35f9329df85b9cf", size = 7674 },
]
[[package]]
@@ -50,7 +49,6 @@ dependencies = [
{ name = "langchain-anthropic" },
{ name = "langchain-community" },
{ name = "langchain-core" },
- { name = "langchain-experimental" },
{ name = "langchain-google-genai" },
{ name = "langchain-openai" },
{ name = "langgraph" },
@@ -63,14 +61,13 @@ requires-dist = [
{ name = "ag-ui-langgraph", directory = "../" },
{ name = "dotenv", specifier = ">=0.9.9,<0.10.0" },
{ name = "fastapi", specifier = ">=0.115.12,<0.116.0" },
- { name = "langchain", specifier = ">=0.1.0" },
- { name = "langchain-anthropic", specifier = ">=0.3.18" },
- { name = "langchain-community", specifier = ">=0.0.1" },
- { name = "langchain-core", specifier = ">=0.1.5" },
- { name = "langchain-experimental", specifier = ">=0.0.11" },
- { name = "langchain-google-genai", specifier = ">=2.1.9" },
- { name = "langchain-openai", specifier = ">=0.0.1" },
- { name = "langgraph", specifier = ">=0.6.1,<0.7.0" },
+ { name = "langchain", specifier = ">=1.0.3" },
+ { name = "langchain-anthropic", specifier = ">=1.0.1" },
+ { name = "langchain-community", specifier = ">=0.0.36" },
+ { name = "langchain-core", specifier = ">=1.0.2" },
+ { name = "langchain-google-genai", specifier = ">=2.1.12" },
+ { name = "langchain-openai", specifier = ">=1.0.1" },
+ { name = "langgraph", specifier = ">=1.0.0" },
{ name = "python-dotenv", specifier = ">=1.0.0,<2.0.0" },
{ name = "uvicorn", specifier = ">=0.34.0,<0.35.0" },
]
@@ -86,7 +83,7 @@ wheels = [
[[package]]
name = "aiohttp"
-version = "3.13.0"
+version = "3.13.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohappyeyeballs" },
@@ -97,76 +94,59 @@ dependencies = [
{ name = "propcache" },
{ name = "yarl" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/62/f1/8515650ac3121a9e55c7b217c60e7fae3e0134b5acfe65691781b5356929/aiohttp-3.13.0.tar.gz", hash = "sha256:378dbc57dd8cf341ce243f13fa1fa5394d68e2e02c15cd5f28eae35a70ec7f67", size = 7832348 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/3a/95/7e8bdfa6e79099a086d59d42589492f1fe9d29aae3cefb58b676015ce278/aiohttp-3.13.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1c272a9a18a5ecc48a7101882230046b83023bb2a662050ecb9bfcb28d9ab53a", size = 735585 },
- { url = "https://files.pythonhosted.org/packages/9f/20/2f1d3ee06ee94eafe516810705219bff234d09f135d6951661661d5595ae/aiohttp-3.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:97891a23d7fd4e1afe9c2f4473e04595e4acb18e4733b910b6577b74e7e21985", size = 490613 },
- { url = "https://files.pythonhosted.org/packages/74/15/ab8600ef6dc1dcd599009a81acfed2ea407037e654d32e47e344e0b08c34/aiohttp-3.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:475bd56492ce5f4cffe32b5533c6533ee0c406d1d0e6924879f83adcf51da0ae", size = 489750 },
- { url = "https://files.pythonhosted.org/packages/33/59/752640c2b86ca987fe5703a01733b00d375e6cd2392bc7574489934e64e5/aiohttp-3.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c32ada0abb4bc94c30be2b681c42f058ab104d048da6f0148280a51ce98add8c", size = 1736812 },
- { url = "https://files.pythonhosted.org/packages/3d/c6/dd6b86ddb852a7fdbcdc7a45b6bdc80178aef713c08279afcaee7a5a9f07/aiohttp-3.13.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4af1f8877ca46ecdd0bc0d4a6b66d4b2bddc84a79e2e8366bc0d5308e76bceb8", size = 1698535 },
- { url = "https://files.pythonhosted.org/packages/33/e2/27c92d205b9e8cee7661670e8e9f187931b71e26d42796b153d2a0ba6949/aiohttp-3.13.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e04ab827ec4f775817736b20cdc8350f40327f9b598dec4e18c9ffdcbea88a93", size = 1766573 },
- { url = "https://files.pythonhosted.org/packages/df/6a/1fc1ad71d130a30f7a207d8d958a41224c29b834463b5185efb2dbff6ad4/aiohttp-3.13.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a6d9487b9471ec36b0faedf52228cd732e89be0a2bbd649af890b5e2ce422353", size = 1865229 },
- { url = "https://files.pythonhosted.org/packages/14/51/d0c1701a79fcb0109cff5304da16226581569b89a282d8e7f1549a7e3ec0/aiohttp-3.13.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e66c57416352f36bf98f6641ddadd47c93740a22af7150d3e9a1ef6e983f9a8", size = 1750379 },
- { url = "https://files.pythonhosted.org/packages/ae/3d/2ec4b934f85856de1c0c18e90adc8902adadbfac2b3c0b831bfeb7214fc8/aiohttp-3.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:469167d5372f5bb3aedff4fc53035d593884fff2617a75317740e885acd48b04", size = 1560798 },
- { url = "https://files.pythonhosted.org/packages/38/56/e23d9c3e13006e599fdce3851517c70279e177871e3e567d22cf3baf5d6c/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a9f3546b503975a69b547c9fd1582cad10ede1ce6f3e313a2f547c73a3d7814f", size = 1697552 },
- { url = "https://files.pythonhosted.org/packages/56/cb/caa32c2ccaeca0a3dc39129079fd2ad02f9406c3a5f7924340435b87d4cd/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6b4174fcec98601f0cfdf308ee29a6ae53c55f14359e848dab4e94009112ee7d", size = 1718609 },
- { url = "https://files.pythonhosted.org/packages/fb/c0/5911856fef9e40fd1ccbb8c54a90116875d5753a92c1cac66ce2059b390d/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a533873a7a4ec2270fb362ee5a0d3b98752e4e1dc9042b257cd54545a96bd8ed", size = 1735887 },
- { url = "https://files.pythonhosted.org/packages/0e/48/8d6f4757a24c02f0a454c043556593a00645d10583859f7156db44d8b7d3/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ce887c5e54411d607ee0959cac15bb31d506d86a9bcaddf0b7e9d63325a7a802", size = 1553079 },
- { url = "https://files.pythonhosted.org/packages/39/fa/e82c9445e40b50e46770702b5b6ca2f767966d53e1a5eef03583ceac6df6/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d871f6a30d43e32fc9252dc7b9febe1a042b3ff3908aa83868d7cf7c9579a59b", size = 1762750 },
- { url = "https://files.pythonhosted.org/packages/3d/e6/9d30554e7f1e700bfeae4ab6b153d5dc7441606a9ec5e929288fa93a1477/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:222c828243b4789d79a706a876910f656fad4381661691220ba57b2ab4547865", size = 1717461 },
- { url = "https://files.pythonhosted.org/packages/1f/e5/29cca547990a59ea54f0674fc01de98519fc628cfceeab6175711750eca7/aiohttp-3.13.0-cp312-cp312-win32.whl", hash = "sha256:682d2e434ff2f1108314ff7f056ce44e457f12dbed0249b24e106e385cf154b9", size = 424633 },
- { url = "https://files.pythonhosted.org/packages/8b/68/46dd042d7bc62eab30bafdb8569f55ef125c3a88bb174270324224f8df56/aiohttp-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:0a2be20eb23888df130214b91c262a90e2de1553d6fb7de9e9010cec994c0ff2", size = 451401 },
- { url = "https://files.pythonhosted.org/packages/86/2c/ac53efdc9c10e41399acc2395af98f835b86d0141d5c3820857eb9f6a14a/aiohttp-3.13.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:00243e51f16f6ec0fb021659d4af92f675f3cf9f9b39efd142aa3ad641d8d1e6", size = 730090 },
- { url = "https://files.pythonhosted.org/packages/13/18/1ac95683e1c1d48ef4503965c96f5401618a04c139edae12e200392daae8/aiohttp-3.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:059978d2fddc462e9211362cbc8446747ecd930537fa559d3d25c256f032ff54", size = 488041 },
- { url = "https://files.pythonhosted.org/packages/fd/79/ef0d477c771a642d1a881b92d226314c43d3c74bc674c93e12e679397a97/aiohttp-3.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:564b36512a7da3b386143c611867e3f7cfb249300a1bf60889bd9985da67ab77", size = 486989 },
- { url = "https://files.pythonhosted.org/packages/37/b4/0e440481a0e77a551d6c5dcab5d11f1ff6b2b2ddb8dedc24f54f5caad732/aiohttp-3.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4aa995b9156ae499393d949a456a7ab0b994a8241a96db73a3b73c7a090eff6a", size = 1718331 },
- { url = "https://files.pythonhosted.org/packages/e6/59/76c421cc4a75bb1aceadb92f20ee6f05a990aa6960c64b59e8e0d340e3f5/aiohttp-3.13.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55ca0e95a3905f62f00900255ed807c580775174252999286f283e646d675a49", size = 1686263 },
- { url = "https://files.pythonhosted.org/packages/ec/ac/5095f12a79c7775f402cfc3e83651b6e0a92ade10ddf7f2c78c4fed79f71/aiohttp-3.13.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:49ce7525853a981fc35d380aa2353536a01a9ec1b30979ea4e35966316cace7e", size = 1754265 },
- { url = "https://files.pythonhosted.org/packages/05/d7/a48e4989bd76cc70600c505bbdd0d90ca1ad7f9053eceeb9dbcf9345a9ec/aiohttp-3.13.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2117be9883501eaf95503bd313eb4c7a23d567edd44014ba15835a1e9ec6d852", size = 1856486 },
- { url = "https://files.pythonhosted.org/packages/1e/02/45b388b49e37933f316e1fb39c0de6fb1d77384b0c8f4cf6af5f2cbe3ea6/aiohttp-3.13.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d169c47e40c911f728439da853b6fd06da83761012e6e76f11cb62cddae7282b", size = 1737545 },
- { url = "https://files.pythonhosted.org/packages/6c/a7/4fde058f1605c34a219348a83a99f14724cc64e68a42480fc03cf40f9ea3/aiohttp-3.13.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:703ad3f742fc81e543638a7bebddd35acadaa0004a5e00535e795f4b6f2c25ca", size = 1552958 },
- { url = "https://files.pythonhosted.org/packages/d1/12/0bac4d29231981e3aa234e88d1931f6ba38135ff4c2cf3afbb7895527630/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5bf635c3476f4119b940cc8d94ad454cbe0c377e61b4527f0192aabeac1e9370", size = 1681166 },
- { url = "https://files.pythonhosted.org/packages/71/95/b829eb5f8ac1ca1d8085bb8df614c8acf3ff32e23ad5ad1173c7c9761daa/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:cfe6285ef99e7ee51cef20609be2bc1dd0e8446462b71c9db8bb296ba632810a", size = 1710516 },
- { url = "https://files.pythonhosted.org/packages/47/6d/15ccf4ef3c254d899f62580e0c7fc717014f4d14a3ac31771e505d2c736c/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8af6391c5f2e69749d7f037b614b8c5c42093c251f336bdbfa4b03c57d6c4", size = 1731354 },
- { url = "https://files.pythonhosted.org/packages/46/6a/8acf6c57e03b6fdcc8b4c06392e66abaff3213ea275e41db3edb20738d91/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:12f5d820fadc5848d4559ea838aef733cf37ed2a1103bba148ac2f5547c14c29", size = 1548040 },
- { url = "https://files.pythonhosted.org/packages/75/7d/fbfd59ab2a83fe2578ce79ac3db49727b81e9f4c3376217ad09c03c6d279/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f1338b61ea66f4757a0544ed8a02ccbf60e38d9cfb3225888888dd4475ebb96", size = 1756031 },
- { url = "https://files.pythonhosted.org/packages/99/e7/cc9f0fdf06cab3ca61e6b62bff9a4b978b8ca736e9d76ddf54365673ab19/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:582770f82513419512da096e8df21ca44f86a2e56e25dc93c5ab4df0fe065bf0", size = 1714933 },
- { url = "https://files.pythonhosted.org/packages/db/43/7abbe1de94748a58a71881163ee280fd3217db36e8344d109f63638fe16a/aiohttp-3.13.0-cp313-cp313-win32.whl", hash = "sha256:3194b8cab8dbc882f37c13ef1262e0a3d62064fa97533d3aa124771f7bf1ecee", size = 423799 },
- { url = "https://files.pythonhosted.org/packages/c9/58/afab7f2b9e7df88c995995172eb78cae8a3d5a62d5681abaade86b3f0089/aiohttp-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:7897298b3eedc790257fef8a6ec582ca04e9dbe568ba4a9a890913b925b8ea21", size = 450138 },
- { url = "https://files.pythonhosted.org/packages/fe/c1/93bb1e35cd0c4665bb422b1ca3d87b588f4bca2656bbe9292b963d5b76a9/aiohttp-3.13.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c417f8c2e1137775569297c584a8a7144e5d1237789eae56af4faf1894a0b861", size = 733187 },
- { url = "https://files.pythonhosted.org/packages/5e/36/2d50eba91992d3fe7a6452506ccdab45d03685ee8d8acaa5b289384a7d4c/aiohttp-3.13.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f84b53326abf8e56ebc28a35cebf4a0f396a13a76300f500ab11fe0573bf0b52", size = 488684 },
- { url = "https://files.pythonhosted.org/packages/82/93/fa4b1d5ecdc7805bdf0815ef00257db4632ccf0a8bffd44f9fc4657b1677/aiohttp-3.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:990a53b9d6a30b2878789e490758e568b12b4a7fb2527d0c89deb9650b0e5813", size = 489255 },
- { url = "https://files.pythonhosted.org/packages/05/0f/85241f0d158da5e24e8ac9d50c0849ed24f882cafc53dc95749ef85eef09/aiohttp-3.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c811612711e01b901e18964b3e5dec0d35525150f5f3f85d0aee2935f059910a", size = 1715914 },
- { url = "https://files.pythonhosted.org/packages/ab/fc/c755590d6f6d2b5d1565c72d6ee658d3c30ec61acb18964d1e9bf991d9b5/aiohttp-3.13.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ee433e594d7948e760b5c2a78cc06ac219df33b0848793cf9513d486a9f90a52", size = 1665171 },
- { url = "https://files.pythonhosted.org/packages/3a/de/caa61e213ff546b8815aef5e931d7eae1dbe8c840a3f11ec5aa41c5ae462/aiohttp-3.13.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:19bb08e56f57c215e9572cd65cb6f8097804412c54081d933997ddde3e5ac579", size = 1755124 },
- { url = "https://files.pythonhosted.org/packages/fb/b7/40c3219dd2691aa35cf889b4fbb0c00e48a19092928707044bfe92068e01/aiohttp-3.13.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f27b7488144eb5dd9151cf839b195edd1569629d90ace4c5b6b18e4e75d1e63a", size = 1835949 },
- { url = "https://files.pythonhosted.org/packages/57/e8/66e3c32841fc0e26a09539c377aa0f3bbf6deac1957ac5182cf276c5719c/aiohttp-3.13.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d812838c109757a11354a161c95708ae4199c4fd4d82b90959b20914c1d097f6", size = 1714276 },
- { url = "https://files.pythonhosted.org/packages/6b/a5/c68e5b46ff0410fe3abfa508651b09372428f27036138beacf4ff6b7cb8c/aiohttp-3.13.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7c20db99da682f9180fa5195c90b80b159632fb611e8dbccdd99ba0be0970620", size = 1545929 },
- { url = "https://files.pythonhosted.org/packages/7a/a6/4c97dc27f9935c0c0aa6e3e10e5b4548823ab5d056636bde374fcd297256/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:cf8b0870047900eb1f17f453b4b3953b8ffbf203ef56c2f346780ff930a4d430", size = 1679988 },
- { url = "https://files.pythonhosted.org/packages/8e/1b/11f9c52fd72b786a47e796e6794883417280cdca8eb1032d8d0939928dfa/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5b8a5557d5af3f4e3add52a58c4cf2b8e6e59fc56b261768866f5337872d596d", size = 1678031 },
- { url = "https://files.pythonhosted.org/packages/ea/eb/948903d40505f3a25e53e051488d2714ded3afac1f961df135f2936680f9/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:052bcdd80c1c54b8a18a9ea0cd5e36f473dc8e38d51b804cea34841f677a9971", size = 1726184 },
- { url = "https://files.pythonhosted.org/packages/44/14/c8ced38c7dfe80804dec17a671963ccf3cb282f12700ec70b1f689d8de7d/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:76484ba17b2832776581b7ab466d094e48eba74cb65a60aea20154dae485e8bd", size = 1542344 },
- { url = "https://files.pythonhosted.org/packages/a4/6e/f2e6bff550a51fd7c45fdab116a1dab7cc502e5d942956f10fc5c626bb15/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:62d8a0adcdaf62ee56bfb37737153251ac8e4b27845b3ca065862fb01d99e247", size = 1740913 },
- { url = "https://files.pythonhosted.org/packages/da/00/8f057300d9b598a706348abb375b3de9a253195fb615f17c0b2be2a72836/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5004d727499ecb95f7c9147dd0bfc5b5670f71d355f0bd26d7af2d3af8e07d2f", size = 1695535 },
- { url = "https://files.pythonhosted.org/packages/8a/ab/6919d584d8f053a14b15f0bfa3f315b3f548435c2142145459da2efa8673/aiohttp-3.13.0-cp314-cp314-win32.whl", hash = "sha256:a1c20c26af48aea984f63f96e5d7af7567c32cb527e33b60a0ef0a6313cf8b03", size = 429548 },
- { url = "https://files.pythonhosted.org/packages/c5/59/5d9e78de6132079066f5077d9687bf524f764a2f8207e04d8d68790060c6/aiohttp-3.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:56f7d230ec66e799fbfd8350e9544f8a45a4353f1cf40c1fea74c1780f555b8f", size = 455548 },
- { url = "https://files.pythonhosted.org/packages/7c/ea/7d98da03d1e9798bb99c3ca4963229150d45c9b7a3a16210c5b4a5f89e07/aiohttp-3.13.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:2fd35177dc483ae702f07b86c782f4f4b100a8ce4e7c5778cea016979023d9fd", size = 765319 },
- { url = "https://files.pythonhosted.org/packages/5c/02/37f29beced8213bb467c52ad509a5e3b41e6e967de2f6eaf7f8db63bea54/aiohttp-3.13.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:4df1984c8804ed336089e88ac81a9417b1fd0db7c6f867c50a9264488797e778", size = 502567 },
- { url = "https://files.pythonhosted.org/packages/e7/22/b0afcafcfe3637bc8d7992abf08ee9452018366c0801e4e7d4efda2ed839/aiohttp-3.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e68c0076052dd911a81d3acc4ef2911cc4ef65bf7cadbfbc8ae762da24da858f", size = 507078 },
- { url = "https://files.pythonhosted.org/packages/49/4c/046c847b7a1993b49f3855cc3b97872d5df193d9240de835d0dc6a97b164/aiohttp-3.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc95c49853cd29613e4fe4ff96d73068ff89b89d61e53988442e127e8da8e7ba", size = 1862115 },
- { url = "https://files.pythonhosted.org/packages/1a/25/1449a59e3c6405da5e47b0138ee0855414dc12a8c306685d7fc3dd300e1f/aiohttp-3.13.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3b3bdc89413117b40cc39baae08fd09cbdeb839d421c4e7dce6a34f6b54b3ac1", size = 1717147 },
- { url = "https://files.pythonhosted.org/packages/23/8f/50cc34ad267b38608f21c6a74327015dd08a66f1dd8e7ceac954d0953191/aiohttp-3.13.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3e77a729df23be2116acc4e9de2767d8e92445fbca68886dd991dc912f473755", size = 1841443 },
- { url = "https://files.pythonhosted.org/packages/df/b9/b3ab1278faa0d1b8f434c85f9cf34eeb0a25016ffe1ee6bc361d09fef0ec/aiohttp-3.13.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e88ab34826d6eeb6c67e6e92400b9ec653faf5092a35f07465f44c9f1c429f82", size = 1933652 },
- { url = "https://files.pythonhosted.org/packages/88/e2/86050aaa3bd7021b115cdfc88477b754e8cf93ef0079867840eee22d3c34/aiohttp-3.13.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:019dbef24fe28ce2301419dd63a2b97250d9760ca63ee2976c2da2e3f182f82e", size = 1790682 },
- { url = "https://files.pythonhosted.org/packages/78/8d/9af903324c2ba24a0c4778e9bcc738b773c98dded3a4fcf8041d5211769f/aiohttp-3.13.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2c4aeaedd20771b7b4bcdf0ae791904445df6d856c02fc51d809d12d17cffdc7", size = 1622011 },
- { url = "https://files.pythonhosted.org/packages/84/97/5174971ba4986d913554ceb248b0401eb5358cb60672ea0166f9f596cd08/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b3a8e6a2058a0240cfde542b641d0e78b594311bc1a710cbcb2e1841417d5cb3", size = 1787148 },
- { url = "https://files.pythonhosted.org/packages/dd/ae/8b397e980ac613ef3ddd8e996aa7a40a1828df958257800d4bb325657db3/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:f8e38d55ca36c15f36d814ea414ecb2401d860de177c49f84a327a25b3ee752b", size = 1774816 },
- { url = "https://files.pythonhosted.org/packages/c7/54/0e8e2111dd92051c787e934b6bbf30c213daaa5e7ee5f51bca8913607492/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a921edbe971aade1bf45bcbb3494e30ba6863a5c78f28be992c42de980fd9108", size = 1788610 },
- { url = "https://files.pythonhosted.org/packages/fa/dd/c9283dbfd9325ed6fa6c91f009db6344d8d370a7bcf09f36e7b2fcbfae02/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:474cade59a447cb4019c0dce9f0434bf835fb558ea932f62c686fe07fe6db6a1", size = 1615498 },
- { url = "https://files.pythonhosted.org/packages/8c/f6/da76230679bd9ef175d876093f89e7fd6d6476c18505e115e3026fe5ef95/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:99a303ad960747c33b65b1cb65d01a62ac73fa39b72f08a2e1efa832529b01ed", size = 1815187 },
- { url = "https://files.pythonhosted.org/packages/d5/78/394003ac738703822616f4f922705b54e5b3d8e7185831ecc1c97904174d/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bb34001fc1f05f6b323e02c278090c07a47645caae3aa77ed7ed8a3ce6abcce9", size = 1760281 },
- { url = "https://files.pythonhosted.org/packages/bd/b0/4bad0a9dd5910bd01c3119f8bd3d71887cd412d4105e4acddcdacf3cfa76/aiohttp-3.13.0-cp314-cp314t-win32.whl", hash = "sha256:dea698b64235d053def7d2f08af9302a69fcd760d1c7bd9988fd5d3b6157e657", size = 462608 },
- { url = "https://files.pythonhosted.org/packages/bd/af/ad12d592f623aae2bd1d3463201dc39c201ea362f9ddee0d03efd9e83720/aiohttp-3.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1f164699a060c0b3616459d13c1464a981fddf36f892f0a5027cbd45121fb14b", size = 496010 },
+sdist = { url = "https://files.pythonhosted.org/packages/1c/ce/3b83ebba6b3207a7135e5fcaba49706f8a4b6008153b4e30540c982fae26/aiohttp-3.13.2.tar.gz", hash = "sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca", size = 7837994 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/bf/78/7e90ca79e5aa39f9694dcfd74f4720782d3c6828113bb1f3197f7e7c4a56/aiohttp-3.13.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be", size = 732139 },
+ { url = "https://files.pythonhosted.org/packages/db/ed/1f59215ab6853fbaa5c8495fa6cbc39edfc93553426152b75d82a5f32b76/aiohttp-3.13.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742", size = 490082 },
+ { url = "https://files.pythonhosted.org/packages/68/7b/fe0fe0f5e05e13629d893c760465173a15ad0039c0a5b0d0040995c8075e/aiohttp-3.13.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293", size = 489035 },
+ { url = "https://files.pythonhosted.org/packages/d2/04/db5279e38471b7ac801d7d36a57d1230feeee130bbe2a74f72731b23c2b1/aiohttp-3.13.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811", size = 1720387 },
+ { url = "https://files.pythonhosted.org/packages/31/07/8ea4326bd7dae2bd59828f69d7fdc6e04523caa55e4a70f4a8725a7e4ed2/aiohttp-3.13.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a", size = 1688314 },
+ { url = "https://files.pythonhosted.org/packages/48/ab/3d98007b5b87ffd519d065225438cc3b668b2f245572a8cb53da5dd2b1bc/aiohttp-3.13.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4", size = 1756317 },
+ { url = "https://files.pythonhosted.org/packages/97/3d/801ca172b3d857fafb7b50c7c03f91b72b867a13abca982ed6b3081774ef/aiohttp-3.13.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a", size = 1858539 },
+ { url = "https://files.pythonhosted.org/packages/f7/0d/4764669bdf47bd472899b3d3db91fffbe925c8e3038ec591a2fd2ad6a14d/aiohttp-3.13.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e", size = 1739597 },
+ { url = "https://files.pythonhosted.org/packages/c4/52/7bd3c6693da58ba16e657eb904a5b6decfc48ecd06e9ac098591653b1566/aiohttp-3.13.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb", size = 1555006 },
+ { url = "https://files.pythonhosted.org/packages/48/30/9586667acec5993b6f41d2ebcf96e97a1255a85f62f3c653110a5de4d346/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded", size = 1683220 },
+ { url = "https://files.pythonhosted.org/packages/71/01/3afe4c96854cfd7b30d78333852e8e851dceaec1c40fd00fec90c6402dd2/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b", size = 1712570 },
+ { url = "https://files.pythonhosted.org/packages/11/2c/22799d8e720f4697a9e66fd9c02479e40a49de3de2f0bbe7f9f78a987808/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8", size = 1733407 },
+ { url = "https://files.pythonhosted.org/packages/34/cb/90f15dd029f07cebbd91f8238a8b363978b530cd128488085b5703683594/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04", size = 1550093 },
+ { url = "https://files.pythonhosted.org/packages/69/46/12dce9be9d3303ecbf4d30ad45a7683dc63d90733c2d9fe512be6716cd40/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476", size = 1758084 },
+ { url = "https://files.pythonhosted.org/packages/f9/c8/0932b558da0c302ffd639fc6362a313b98fdf235dc417bc2493da8394df7/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23", size = 1716987 },
+ { url = "https://files.pythonhosted.org/packages/5d/8b/f5bd1a75003daed099baec373aed678f2e9b34f2ad40d85baa1368556396/aiohttp-3.13.2-cp313-cp313-win32.whl", hash = "sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254", size = 425859 },
+ { url = "https://files.pythonhosted.org/packages/5d/28/a8a9fc6957b2cee8902414e41816b5ab5536ecf43c3b1843c10e82c559b2/aiohttp-3.13.2-cp313-cp313-win_amd64.whl", hash = "sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a", size = 452192 },
+ { url = "https://files.pythonhosted.org/packages/9b/36/e2abae1bd815f01c957cbf7be817b3043304e1c87bad526292a0410fdcf9/aiohttp-3.13.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b", size = 735234 },
+ { url = "https://files.pythonhosted.org/packages/ca/e3/1ee62dde9b335e4ed41db6bba02613295a0d5b41f74a783c142745a12763/aiohttp-3.13.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61", size = 490733 },
+ { url = "https://files.pythonhosted.org/packages/1a/aa/7a451b1d6a04e8d15a362af3e9b897de71d86feac3babf8894545d08d537/aiohttp-3.13.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4", size = 491303 },
+ { url = "https://files.pythonhosted.org/packages/57/1e/209958dbb9b01174870f6a7538cd1f3f28274fdbc88a750c238e2c456295/aiohttp-3.13.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b", size = 1717965 },
+ { url = "https://files.pythonhosted.org/packages/08/aa/6a01848d6432f241416bc4866cae8dc03f05a5a884d2311280f6a09c73d6/aiohttp-3.13.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694", size = 1667221 },
+ { url = "https://files.pythonhosted.org/packages/87/4f/36c1992432d31bbc789fa0b93c768d2e9047ec8c7177e5cd84ea85155f36/aiohttp-3.13.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906", size = 1757178 },
+ { url = "https://files.pythonhosted.org/packages/ac/b4/8e940dfb03b7e0f68a82b88fd182b9be0a65cb3f35612fe38c038c3112cf/aiohttp-3.13.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9", size = 1838001 },
+ { url = "https://files.pythonhosted.org/packages/d7/ef/39f3448795499c440ab66084a9db7d20ca7662e94305f175a80f5b7e0072/aiohttp-3.13.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011", size = 1716325 },
+ { url = "https://files.pythonhosted.org/packages/d7/51/b311500ffc860b181c05d91c59a1313bdd05c82960fdd4035a15740d431e/aiohttp-3.13.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6", size = 1547978 },
+ { url = "https://files.pythonhosted.org/packages/31/64/b9d733296ef79815226dab8c586ff9e3df41c6aff2e16c06697b2d2e6775/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213", size = 1682042 },
+ { url = "https://files.pythonhosted.org/packages/3f/30/43d3e0f9d6473a6db7d472104c4eff4417b1e9df01774cb930338806d36b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49", size = 1680085 },
+ { url = "https://files.pythonhosted.org/packages/16/51/c709f352c911b1864cfd1087577760ced64b3e5bee2aa88b8c0c8e2e4972/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae", size = 1728238 },
+ { url = "https://files.pythonhosted.org/packages/19/e2/19bd4c547092b773caeb48ff5ae4b1ae86756a0ee76c16727fcfd281404b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa", size = 1544395 },
+ { url = "https://files.pythonhosted.org/packages/cf/87/860f2803b27dfc5ed7be532832a3498e4919da61299b4a1f8eb89b8ff44d/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4", size = 1742965 },
+ { url = "https://files.pythonhosted.org/packages/67/7f/db2fc7618925e8c7a601094d5cbe539f732df4fb570740be88ed9e40e99a/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a", size = 1697585 },
+ { url = "https://files.pythonhosted.org/packages/0c/07/9127916cb09bb38284db5036036042b7b2c514c8ebaeee79da550c43a6d6/aiohttp-3.13.2-cp314-cp314-win32.whl", hash = "sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940", size = 431621 },
+ { url = "https://files.pythonhosted.org/packages/fb/41/554a8a380df6d3a2bba8a7726429a23f4ac62aaf38de43bb6d6cde7b4d4d/aiohttp-3.13.2-cp314-cp314-win_amd64.whl", hash = "sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4", size = 457627 },
+ { url = "https://files.pythonhosted.org/packages/c7/8e/3824ef98c039d3951cb65b9205a96dd2b20f22241ee17d89c5701557c826/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673", size = 767360 },
+ { url = "https://files.pythonhosted.org/packages/a4/0f/6a03e3fc7595421274fa34122c973bde2d89344f8a881b728fa8c774e4f1/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd", size = 504616 },
+ { url = "https://files.pythonhosted.org/packages/c6/aa/ed341b670f1bc8a6f2c6a718353d13b9546e2cef3544f573c6a1ff0da711/aiohttp-3.13.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3", size = 509131 },
+ { url = "https://files.pythonhosted.org/packages/7f/f0/c68dac234189dae5c4bbccc0f96ce0cc16b76632cfc3a08fff180045cfa4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf", size = 1864168 },
+ { url = "https://files.pythonhosted.org/packages/8f/65/75a9a76db8364b5d0e52a0c20eabc5d52297385d9af9c35335b924fafdee/aiohttp-3.13.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e", size = 1719200 },
+ { url = "https://files.pythonhosted.org/packages/f5/55/8df2ed78d7f41d232f6bd3ff866b6f617026551aa1d07e2f03458f964575/aiohttp-3.13.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5", size = 1843497 },
+ { url = "https://files.pythonhosted.org/packages/e9/e0/94d7215e405c5a02ccb6a35c7a3a6cfff242f457a00196496935f700cde5/aiohttp-3.13.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad", size = 1935703 },
+ { url = "https://files.pythonhosted.org/packages/0b/78/1eeb63c3f9b2d1015a4c02788fb543141aad0a03ae3f7a7b669b2483f8d4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e", size = 1792738 },
+ { url = "https://files.pythonhosted.org/packages/41/75/aaf1eea4c188e51538c04cc568040e3082db263a57086ea74a7d38c39e42/aiohttp-3.13.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61", size = 1624061 },
+ { url = "https://files.pythonhosted.org/packages/9b/c2/3b6034de81fbcc43de8aeb209073a2286dfb50b86e927b4efd81cf848197/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661", size = 1789201 },
+ { url = "https://files.pythonhosted.org/packages/c9/38/c15dcf6d4d890217dae79d7213988f4e5fe6183d43893a9cf2fe9e84ca8d/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98", size = 1776868 },
+ { url = "https://files.pythonhosted.org/packages/04/75/f74fd178ac81adf4f283a74847807ade5150e48feda6aef024403716c30c/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693", size = 1790660 },
+ { url = "https://files.pythonhosted.org/packages/e7/80/7368bd0d06b16b3aba358c16b919e9c46cf11587dc572091031b0e9e3ef0/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a", size = 1617548 },
+ { url = "https://files.pythonhosted.org/packages/7d/4b/a6212790c50483cb3212e507378fbe26b5086d73941e1ec4b56a30439688/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be", size = 1817240 },
+ { url = "https://files.pythonhosted.org/packages/ff/f7/ba5f0ba4ea8d8f3c32850912944532b933acbf0f3a75546b89269b9b7dde/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c", size = 1762334 },
+ { url = "https://files.pythonhosted.org/packages/7e/83/1a5a1856574588b1cad63609ea9ad75b32a8353ac995d830bf5da9357364/aiohttp-3.13.2-cp314-cp314t-win32.whl", hash = "sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734", size = 464685 },
+ { url = "https://files.pythonhosted.org/packages/9f/4d/d22668674122c08f4d56972297c51a624e64b3ed1efaa40187607a7cb66e/aiohttp-3.13.2-cp314-cp314t-win_amd64.whl", hash = "sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f", size = 498093 },
]
[[package]]
@@ -175,7 +155,6 @@ version = "1.4.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "frozenlist" },
- { name = "typing-extensions", marker = "python_full_version < '3.13'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 }
wheels = [
@@ -193,7 +172,7 @@ wheels = [
[[package]]
name = "anthropic"
-version = "0.69.0"
+version = "0.72.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
@@ -205,9 +184,9 @@ dependencies = [
{ name = "sniffio" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/c8/9d/9ad1778b95f15c5b04e7d328c1b5f558f1e893857b7c33cd288c19c0057a/anthropic-0.69.0.tar.gz", hash = "sha256:c604d287f4d73640f40bd2c0f3265a2eb6ce034217ead0608f6b07a8bc5ae5f2", size = 480622 }
+sdist = { url = "https://files.pythonhosted.org/packages/49/07/61f3ca8e69c5dcdaec31b36b79a53ea21c5b4ca5e93c7df58c71f43bf8d8/anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a", size = 493721 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9b/38/75129688de5637eb5b383e5f2b1570a5cc3aecafa4de422da8eea4b90a6c/anthropic-0.69.0-py3-none-any.whl", hash = "sha256:1f73193040f33f11e27c2cd6ec25f24fe7c3f193dc1c5cde6b7a08b18a16bcc5", size = 337265 },
+ { url = "https://files.pythonhosted.org/packages/7b/b7/160d4fb30080395b4143f1d1a4f6c646ba9105561108d2a434b606c03579/anthropic-0.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d", size = 357464 },
]
[[package]]
@@ -217,7 +196,6 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "idna" },
{ name = "sniffio" },
- { name = "typing-extensions", marker = "python_full_version < '3.13'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094 }
wheels = [
@@ -257,22 +235,6 @@ version = "3.4.4"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425 },
- { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162 },
- { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558 },
- { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497 },
- { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240 },
- { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471 },
- { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864 },
- { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647 },
- { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110 },
- { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839 },
- { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667 },
- { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535 },
- { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816 },
- { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694 },
- { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131 },
- { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390 },
{ url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091 },
{ url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936 },
{ url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180 },
@@ -400,22 +362,6 @@ version = "1.8.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782 },
- { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594 },
- { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448 },
- { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411 },
- { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014 },
- { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909 },
- { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049 },
- { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485 },
- { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619 },
- { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320 },
- { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820 },
- { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518 },
- { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096 },
- { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985 },
- { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591 },
- { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102 },
{ url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717 },
{ url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651 },
{ url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417 },
@@ -485,22 +431,23 @@ wheels = [
[[package]]
name = "google-ai-generativelanguage"
-version = "0.7.0"
+version = "0.9.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "google-api-core", extra = ["grpc"] },
{ name = "google-auth" },
+ { name = "grpcio" },
{ name = "proto-plus" },
{ name = "protobuf" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/c5/35/af6c759bfde70386c741309df0cba6a1cb09b8bbd1d02c841df51f4c672d/google_ai_generativelanguage-0.7.0.tar.gz", hash = "sha256:207fed3089949e2e99f7cbd513e2d0ea5f2babdfa5a8f2f239c3ddffe6bd4297", size = 1475859 }
+sdist = { url = "https://files.pythonhosted.org/packages/ad/7e/67fdc46187541ead599e77f259d915f129c2f49568ebf5cadb322130712b/google_ai_generativelanguage-0.9.0.tar.gz", hash = "sha256:2524748f413917446febc8e0879dc0d4f026a064f89f17c42b81bea77ab76c84", size = 1481662 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f5/e7/b670b2d5b53f18ae51d331283278595fea93a156ea79baf59d4098effaec/google_ai_generativelanguage-0.7.0-py3-none-any.whl", hash = "sha256:3241215c16e669f37054f6111c84cca50fdb7a8e10a62933b9e68086ce71eefe", size = 1394333 },
+ { url = "https://files.pythonhosted.org/packages/5d/91/c2d39ad5d77813afadb0f0b8789d882d15c191710b6b6f7cb158376342ff/google_ai_generativelanguage-0.9.0-py3-none-any.whl", hash = "sha256:59f61e54cb341e602073098389876594c4d12e458617727558bb2628a86f3eb2", size = 1401288 },
]
[[package]]
name = "google-api-core"
-version = "2.26.0"
+version = "2.28.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "google-auth" },
@@ -509,9 +456,9 @@ dependencies = [
{ name = "protobuf" },
{ name = "requests" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/32/ea/e7b6ac3c7b557b728c2d0181010548cbbdd338e9002513420c5a354fa8df/google_api_core-2.26.0.tar.gz", hash = "sha256:e6e6d78bd6cf757f4aee41dcc85b07f485fbb069d5daa3afb126defba1e91a62", size = 166369 }
+sdist = { url = "https://files.pythonhosted.org/packages/61/da/83d7043169ac2c8c7469f0e375610d78ae2160134bf1b80634c482fa079c/google_api_core-2.28.1.tar.gz", hash = "sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8", size = 176759 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/77/ad/f73cf9fe9bd95918502b270e3ddb8764e4c900b3bbd7782b90c56fac14bb/google_api_core-2.26.0-py3-none-any.whl", hash = "sha256:2b204bd0da2c81f918e3582c48458e24c11771f987f6258e6e227212af78f3ed", size = 162505 },
+ { url = "https://files.pythonhosted.org/packages/ed/d4/90197b416cb61cefd316964fd9e7bd8324bcbafabf40eef14a9f20b81974/google_api_core-2.28.1-py3-none-any.whl", hash = "sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c", size = 173706 },
]
[package.optional-dependencies]
@@ -522,28 +469,28 @@ grpc = [
[[package]]
name = "google-auth"
-version = "2.41.1"
+version = "2.43.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "cachetools" },
{ name = "pyasn1-modules" },
{ name = "rsa" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/a8/af/5129ce5b2f9688d2fa49b463e544972a7c82b0fdb50980dafee92e121d9f/google_auth-2.41.1.tar.gz", hash = "sha256:b76b7b1f9e61f0cb7e88870d14f6a94aeef248959ef6992670efee37709cbfd2", size = 292284 }
+sdist = { url = "https://files.pythonhosted.org/packages/ff/ef/66d14cf0e01b08d2d51ffc3c20410c4e134a1548fc246a6081eae585a4fe/google_auth-2.43.0.tar.gz", hash = "sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483", size = 296359 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/be/a4/7319a2a8add4cc352be9e3efeff5e2aacee917c85ca2fa1647e29089983c/google_auth-2.41.1-py2.py3-none-any.whl", hash = "sha256:754843be95575b9a19c604a848a41be03f7f2afd8c019f716dc1f51ee41c639d", size = 221302 },
+ { url = "https://files.pythonhosted.org/packages/6f/d1/385110a9ae86d91cc14c5282c61fe9f4dc41c0b9f7d423c6ad77038c4448/google_auth-2.43.0-py2.py3-none-any.whl", hash = "sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16", size = 223114 },
]
[[package]]
name = "googleapis-common-protos"
-version = "1.70.0"
+version = "1.71.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "protobuf" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/39/24/33db22342cf4a2ea27c9955e6713140fedd51e8b141b5ce5260897020f1a/googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257", size = 145903 }
+sdist = { url = "https://files.pythonhosted.org/packages/30/43/b25abe02db2911397819003029bef768f68a974f2ece483e6084d1a5f754/googleapis_common_protos-1.71.0.tar.gz", hash = "sha256:1aec01e574e29da63c80ba9f7bbf1ccfaacf1da877f23609fe236ca7c72a2e2e", size = 146454 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/86/f1/62a193f0227cf15a920390abe675f386dec35f7ae3ffe6da582d3ade42c7/googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8", size = 294530 },
+ { url = "https://files.pythonhosted.org/packages/25/e8/eba9fece11d57a71e3e22ea672742c8f3cf23b35730c9e96db768b295216/googleapis_common_protos-1.71.0-py3-none-any.whl", hash = "sha256:59034a1d849dc4d18971997a72ac56246570afdd17f9369a0ff68218d50ab78c", size = 294576 },
]
[[package]]
@@ -552,15 +499,6 @@ version = "3.2.4"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079 },
- { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997 },
- { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185 },
- { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926 },
- { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839 },
- { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586 },
- { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281 },
- { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142 },
- { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899 },
{ url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814 },
{ url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073 },
{ url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191 },
@@ -569,6 +507,8 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497 },
{ url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662 },
{ url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210 },
+ { url = "https://files.pythonhosted.org/packages/1c/53/f9c440463b3057485b8594d7a638bed53ba531165ef0ca0e6c364b5cc807/greenlet-3.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e343822feb58ac4d0a1211bd9399de2b3a04963ddeec21530fc426cc121f19b", size = 1564759 },
+ { url = "https://files.pythonhosted.org/packages/47/e4/3bb4240abdd0a8d23f4f88adec746a3099f0d86bfedb623f063b2e3b4df0/greenlet-3.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca7f6f1f2649b89ce02f6f229d7c19f680a6238af656f61e0115b24857917929", size = 1634288 },
{ url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685 },
{ url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586 },
{ url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346 },
@@ -576,62 +516,54 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", size = 694659 },
{ url = "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", size = 695355 },
{ url = "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", size = 657512 },
+ { url = "https://files.pythonhosted.org/packages/23/6e/74407aed965a4ab6ddd93a7ded3180b730d281c77b765788419484cdfeef/greenlet-3.2.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2917bdf657f5859fbf3386b12d68ede4cf1f04c90c3a6bc1f013dd68a22e2269", size = 1612508 },
+ { url = "https://files.pythonhosted.org/packages/0d/da/343cd760ab2f92bac1845ca07ee3faea9fe52bee65f7bcb19f16ad7de08b/greenlet-3.2.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:015d48959d4add5d6c9f6c5210ee3803a830dce46356e3bc326d6776bde54681", size = 1680760 },
{ url = "https://files.pythonhosted.org/packages/e3/a5/6ddab2b4c112be95601c13428db1d8b6608a8b6039816f2ba09c346c08fc/greenlet-3.2.4-cp314-cp314-win_amd64.whl", hash = "sha256:e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01", size = 303425 },
]
[[package]]
name = "grpcio"
-version = "1.75.1"
+version = "1.76.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/9d/f7/8963848164c7604efb3a3e6ee457fdb3a469653e19002bd24742473254f8/grpcio-1.75.1.tar.gz", hash = "sha256:3e81d89ece99b9ace23a6916880baca613c03a799925afb2857887efa8b1b3d2", size = 12731327 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/3a/81/42be79e73a50aaa20af66731c2defeb0e8c9008d9935a64dd8ea8e8c44eb/grpcio-1.75.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:7b888b33cd14085d86176b1628ad2fcbff94cfbbe7809465097aa0132e58b018", size = 5668314 },
- { url = "https://files.pythonhosted.org/packages/c5/a7/3686ed15822fedc58c22f82b3a7403d9faf38d7c33de46d4de6f06e49426/grpcio-1.75.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8775036efe4ad2085975531d221535329f5dac99b6c2a854a995456098f99546", size = 11476125 },
- { url = "https://files.pythonhosted.org/packages/14/85/21c71d674f03345ab183c634ecd889d3330177e27baea8d5d247a89b6442/grpcio-1.75.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb658f703468d7fbb5dcc4037c65391b7dc34f808ac46ed9136c24fc5eeb041d", size = 6246335 },
- { url = "https://files.pythonhosted.org/packages/fd/db/3beb661bc56a385ae4fa6b0e70f6b91ac99d47afb726fe76aaff87ebb116/grpcio-1.75.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4b7177a1cdb3c51b02b0c0a256b0a72fdab719600a693e0e9037949efffb200b", size = 6916309 },
- { url = "https://files.pythonhosted.org/packages/1e/9c/eda9fe57f2b84343d44c1b66cf3831c973ba29b078b16a27d4587a1fdd47/grpcio-1.75.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d4fa6ccc3ec2e68a04f7b883d354d7fea22a34c44ce535a2f0c0049cf626ddf", size = 6435419 },
- { url = "https://files.pythonhosted.org/packages/c3/b8/090c98983e0a9d602e3f919a6e2d4e470a8b489452905f9a0fa472cac059/grpcio-1.75.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3d86880ecaeb5b2f0a8afa63824de93adb8ebe4e49d0e51442532f4e08add7d6", size = 7064893 },
- { url = "https://files.pythonhosted.org/packages/ec/c0/6d53d4dbbd00f8bd81571f5478d8a95528b716e0eddb4217cc7cb45aae5f/grpcio-1.75.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a8041d2f9e8a742aeae96f4b047ee44e73619f4f9d24565e84d5446c623673b6", size = 8011922 },
- { url = "https://files.pythonhosted.org/packages/f2/7c/48455b2d0c5949678d6982c3e31ea4d89df4e16131b03f7d5c590811cbe9/grpcio-1.75.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3652516048bf4c314ce12be37423c79829f46efffb390ad64149a10c6071e8de", size = 7466181 },
- { url = "https://files.pythonhosted.org/packages/fd/12/04a0e79081e3170b6124f8cba9b6275871276be06c156ef981033f691880/grpcio-1.75.1-cp312-cp312-win32.whl", hash = "sha256:44b62345d8403975513af88da2f3d5cc76f73ca538ba46596f92a127c2aea945", size = 3938543 },
- { url = "https://files.pythonhosted.org/packages/5f/d7/11350d9d7fb5adc73d2b0ebf6ac1cc70135577701e607407fe6739a90021/grpcio-1.75.1-cp312-cp312-win_amd64.whl", hash = "sha256:b1e191c5c465fa777d4cafbaacf0c01e0d5278022082c0abbd2ee1d6454ed94d", size = 4641938 },
- { url = "https://files.pythonhosted.org/packages/46/74/bac4ab9f7722164afdf263ae31ba97b8174c667153510322a5eba4194c32/grpcio-1.75.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:3bed22e750d91d53d9e31e0af35a7b0b51367e974e14a4ff229db5b207647884", size = 5672779 },
- { url = "https://files.pythonhosted.org/packages/a6/52/d0483cfa667cddaa294e3ab88fd2c2a6e9dc1a1928c0e5911e2e54bd5b50/grpcio-1.75.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:5b8f381eadcd6ecaa143a21e9e80a26424c76a0a9b3d546febe6648f3a36a5ac", size = 11470623 },
- { url = "https://files.pythonhosted.org/packages/cf/e4/d1954dce2972e32384db6a30273275e8c8ea5a44b80347f9055589333b3f/grpcio-1.75.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5bf4001d3293e3414d0cf99ff9b1139106e57c3a66dfff0c5f60b2a6286ec133", size = 6248838 },
- { url = "https://files.pythonhosted.org/packages/06/43/073363bf63826ba8077c335d797a8d026f129dc0912b69c42feaf8f0cd26/grpcio-1.75.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:9f82ff474103e26351dacfe8d50214e7c9322960d8d07ba7fa1d05ff981c8b2d", size = 6922663 },
- { url = "https://files.pythonhosted.org/packages/c2/6f/076ac0df6c359117676cacfa8a377e2abcecec6a6599a15a672d331f6680/grpcio-1.75.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ee119f4f88d9f75414217823d21d75bfe0e6ed40135b0cbbfc6376bc9f7757d", size = 6436149 },
- { url = "https://files.pythonhosted.org/packages/6b/27/1d08824f1d573fcb1fa35ede40d6020e68a04391709939e1c6f4193b445f/grpcio-1.75.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:664eecc3abe6d916fa6cf8dd6b778e62fb264a70f3430a3180995bf2da935446", size = 7067989 },
- { url = "https://files.pythonhosted.org/packages/c6/98/98594cf97b8713feb06a8cb04eeef60b4757e3e2fb91aa0d9161da769843/grpcio-1.75.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c32193fa08b2fbebf08fe08e84f8a0aad32d87c3ad42999c65e9449871b1c66e", size = 8010717 },
- { url = "https://files.pythonhosted.org/packages/8c/7e/bb80b1bba03c12158f9254762cdf5cced4a9bc2e8ed51ed335915a5a06ef/grpcio-1.75.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5cebe13088b9254f6e615bcf1da9131d46cfa4e88039454aca9cb65f639bd3bc", size = 7463822 },
- { url = "https://files.pythonhosted.org/packages/23/1c/1ea57fdc06927eb5640f6750c697f596f26183573069189eeaf6ef86ba2d/grpcio-1.75.1-cp313-cp313-win32.whl", hash = "sha256:4b4c678e7ed50f8ae8b8dbad15a865ee73ce12668b6aaf411bf3258b5bc3f970", size = 3938490 },
- { url = "https://files.pythonhosted.org/packages/4b/24/fbb8ff1ccadfbf78ad2401c41aceaf02b0d782c084530d8871ddd69a2d49/grpcio-1.75.1-cp313-cp313-win_amd64.whl", hash = "sha256:5573f51e3f296a1bcf71e7a690c092845fb223072120f4bdb7a5b48e111def66", size = 4642538 },
- { url = "https://files.pythonhosted.org/packages/f2/1b/9a0a5cecd24302b9fdbcd55d15ed6267e5f3d5b898ff9ac8cbe17ee76129/grpcio-1.75.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:c05da79068dd96723793bffc8d0e64c45f316248417515f28d22204d9dae51c7", size = 5673319 },
- { url = "https://files.pythonhosted.org/packages/c6/ec/9d6959429a83fbf5df8549c591a8a52bb313976f6646b79852c4884e3225/grpcio-1.75.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:06373a94fd16ec287116a825161dca179a0402d0c60674ceeec8c9fba344fe66", size = 11480347 },
- { url = "https://files.pythonhosted.org/packages/09/7a/26da709e42c4565c3d7bf999a9569da96243ce34a8271a968dee810a7cf1/grpcio-1.75.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4484f4b7287bdaa7a5b3980f3c7224c3c622669405d20f69549f5fb956ad0421", size = 6254706 },
- { url = "https://files.pythonhosted.org/packages/f1/08/dcb26a319d3725f199c97e671d904d84ee5680de57d74c566a991cfab632/grpcio-1.75.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2720c239c1180eee69f7883c1d4c83fc1a495a2535b5fa322887c70bf02b16e8", size = 6922501 },
- { url = "https://files.pythonhosted.org/packages/78/66/044d412c98408a5e23cb348845979a2d17a2e2b6c3c34c1ec91b920f49d0/grpcio-1.75.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:07a554fa31c668cf0e7a188678ceeca3cb8fead29bbe455352e712ec33ca701c", size = 6437492 },
- { url = "https://files.pythonhosted.org/packages/4e/9d/5e3e362815152aa1afd8b26ea613effa005962f9da0eec6e0e4527e7a7d1/grpcio-1.75.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3e71a2105210366bfc398eef7f57a664df99194f3520edb88b9c3a7e46ee0d64", size = 7081061 },
- { url = "https://files.pythonhosted.org/packages/1e/1a/46615682a19e100f46e31ddba9ebc297c5a5ab9ddb47b35443ffadb8776c/grpcio-1.75.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8679aa8a5b67976776d3c6b0521e99d1c34db8a312a12bcfd78a7085cb9b604e", size = 8010849 },
- { url = "https://files.pythonhosted.org/packages/67/8e/3204b94ac30b0f675ab1c06540ab5578660dc8b690db71854d3116f20d00/grpcio-1.75.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:aad1c774f4ebf0696a7f148a56d39a3432550612597331792528895258966dc0", size = 7464478 },
- { url = "https://files.pythonhosted.org/packages/b7/97/2d90652b213863b2cf466d9c1260ca7e7b67a16780431b3eb1d0420e3d5b/grpcio-1.75.1-cp314-cp314-win32.whl", hash = "sha256:62ce42d9994446b307649cb2a23335fa8e927f7ab2cbf5fcb844d6acb4d85f9c", size = 4012672 },
- { url = "https://files.pythonhosted.org/packages/f9/df/e2e6e9fc1c985cd1a59e6996a05647c720fe8a03b92f5ec2d60d366c531e/grpcio-1.75.1-cp314-cp314-win_amd64.whl", hash = "sha256:f86e92275710bea3000cb79feca1762dc0ad3b27830dd1a74e82ab321d4ee464", size = 4772475 },
+sdist = { url = "https://files.pythonhosted.org/packages/b6/e0/318c1ce3ae5a17894d5791e87aea147587c9e702f24122cc7a5c8bbaeeb1/grpcio-1.76.0.tar.gz", hash = "sha256:7be78388d6da1a25c0d5ec506523db58b18be22d9c37d8d3a32c08be4987bd73", size = 12785182 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/fc/ed/71467ab770effc9e8cef5f2e7388beb2be26ed642d567697bb103a790c72/grpcio-1.76.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:26ef06c73eb53267c2b319f43e6634c7556ea37672029241a056629af27c10e2", size = 5807716 },
+ { url = "https://files.pythonhosted.org/packages/2c/85/c6ed56f9817fab03fa8a111ca91469941fb514e3e3ce6d793cb8f1e1347b/grpcio-1.76.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:45e0111e73f43f735d70786557dc38141185072d7ff8dc1829d6a77ac1471468", size = 11821522 },
+ { url = "https://files.pythonhosted.org/packages/ac/31/2b8a235ab40c39cbc141ef647f8a6eb7b0028f023015a4842933bc0d6831/grpcio-1.76.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:83d57312a58dcfe2a3a0f9d1389b299438909a02db60e2f2ea2ae2d8034909d3", size = 6362558 },
+ { url = "https://files.pythonhosted.org/packages/bd/64/9784eab483358e08847498ee56faf8ff6ea8e0a4592568d9f68edc97e9e9/grpcio-1.76.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3e2a27c89eb9ac3d81ec8835e12414d73536c6e620355d65102503064a4ed6eb", size = 7049990 },
+ { url = "https://files.pythonhosted.org/packages/2b/94/8c12319a6369434e7a184b987e8e9f3b49a114c489b8315f029e24de4837/grpcio-1.76.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61f69297cba3950a524f61c7c8ee12e55c486cb5f7db47ff9dcee33da6f0d3ae", size = 6575387 },
+ { url = "https://files.pythonhosted.org/packages/15/0f/f12c32b03f731f4a6242f771f63039df182c8b8e2cf8075b245b409259d4/grpcio-1.76.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6a15c17af8839b6801d554263c546c69c4d7718ad4321e3166175b37eaacca77", size = 7166668 },
+ { url = "https://files.pythonhosted.org/packages/ff/2d/3ec9ce0c2b1d92dd59d1c3264aaec9f0f7c817d6e8ac683b97198a36ed5a/grpcio-1.76.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:25a18e9810fbc7e7f03ec2516addc116a957f8cbb8cbc95ccc80faa072743d03", size = 8124928 },
+ { url = "https://files.pythonhosted.org/packages/1a/74/fd3317be5672f4856bcdd1a9e7b5e17554692d3db9a3b273879dc02d657d/grpcio-1.76.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:931091142fd8cc14edccc0845a79248bc155425eee9a98b2db2ea4f00a235a42", size = 7589983 },
+ { url = "https://files.pythonhosted.org/packages/45/bb/ca038cf420f405971f19821c8c15bcbc875505f6ffadafe9ffd77871dc4c/grpcio-1.76.0-cp313-cp313-win32.whl", hash = "sha256:5e8571632780e08526f118f74170ad8d50fb0a48c23a746bef2a6ebade3abd6f", size = 3984727 },
+ { url = "https://files.pythonhosted.org/packages/41/80/84087dc56437ced7cdd4b13d7875e7439a52a261e3ab4e06488ba6173b0a/grpcio-1.76.0-cp313-cp313-win_amd64.whl", hash = "sha256:f9f7bd5faab55f47231ad8dba7787866b69f5e93bc306e3915606779bbfb4ba8", size = 4702799 },
+ { url = "https://files.pythonhosted.org/packages/b4/46/39adac80de49d678e6e073b70204091e76631e03e94928b9ea4ecf0f6e0e/grpcio-1.76.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:ff8a59ea85a1f2191a0ffcc61298c571bc566332f82e5f5be1b83c9d8e668a62", size = 5808417 },
+ { url = "https://files.pythonhosted.org/packages/9c/f5/a4531f7fb8b4e2a60b94e39d5d924469b7a6988176b3422487be61fe2998/grpcio-1.76.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:06c3d6b076e7b593905d04fdba6a0525711b3466f43b3400266f04ff735de0cd", size = 11828219 },
+ { url = "https://files.pythonhosted.org/packages/4b/1c/de55d868ed7a8bd6acc6b1d6ddc4aa36d07a9f31d33c912c804adb1b971b/grpcio-1.76.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fd5ef5932f6475c436c4a55e4336ebbe47bd3272be04964a03d316bbf4afbcbc", size = 6367826 },
+ { url = "https://files.pythonhosted.org/packages/59/64/99e44c02b5adb0ad13ab3adc89cb33cb54bfa90c74770f2607eea629b86f/grpcio-1.76.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b331680e46239e090f5b3cead313cc772f6caa7d0fc8de349337563125361a4a", size = 7049550 },
+ { url = "https://files.pythonhosted.org/packages/43/28/40a5be3f9a86949b83e7d6a2ad6011d993cbe9b6bd27bea881f61c7788b6/grpcio-1.76.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2229ae655ec4e8999599469559e97630185fdd53ae1e8997d147b7c9b2b72cba", size = 6575564 },
+ { url = "https://files.pythonhosted.org/packages/4b/a9/1be18e6055b64467440208a8559afac243c66a8b904213af6f392dc2212f/grpcio-1.76.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:490fa6d203992c47c7b9e4a9d39003a0c2bcc1c9aa3c058730884bbbb0ee9f09", size = 7176236 },
+ { url = "https://files.pythonhosted.org/packages/0f/55/dba05d3fcc151ce6e81327541d2cc8394f442f6b350fead67401661bf041/grpcio-1.76.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:479496325ce554792dba6548fae3df31a72cef7bad71ca2e12b0e58f9b336bfc", size = 8125795 },
+ { url = "https://files.pythonhosted.org/packages/4a/45/122df922d05655f63930cf42c9e3f72ba20aadb26c100ee105cad4ce4257/grpcio-1.76.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1c9b93f79f48b03ada57ea24725d83a30284a012ec27eab2cf7e50a550cbbbcc", size = 7592214 },
+ { url = "https://files.pythonhosted.org/packages/4a/6e/0b899b7f6b66e5af39e377055fb4a6675c9ee28431df5708139df2e93233/grpcio-1.76.0-cp314-cp314-win32.whl", hash = "sha256:747fa73efa9b8b1488a95d0ba1039c8e2dca0f741612d80415b1e1c560febf4e", size = 4062961 },
+ { url = "https://files.pythonhosted.org/packages/19/41/0b430b01a2eb38ee887f88c1f07644a1df8e289353b78e82b37ef988fb64/grpcio-1.76.0-cp314-cp314-win_amd64.whl", hash = "sha256:922fa70ba549fce362d2e2871ab542082d66e2aaf0c19480ea453905b01f384e", size = 4834462 },
]
[[package]]
name = "grpcio-status"
-version = "1.75.1"
+version = "1.76.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "googleapis-common-protos" },
{ name = "grpcio" },
{ name = "protobuf" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/74/5b/1ce0e3eedcdc08b4739b3da5836f31142ec8bee1a9ae0ad8dc0dc39a14bf/grpcio_status-1.75.1.tar.gz", hash = "sha256:8162afa21833a2085c91089cc395ad880fac1378a1d60233d976649ed724cbf8", size = 13671 }
+sdist = { url = "https://files.pythonhosted.org/packages/3f/46/e9f19d5be65e8423f886813a2a9d0056ba94757b0c5007aa59aed1a961fa/grpcio_status-1.76.0.tar.gz", hash = "sha256:25fcbfec74c15d1a1cb5da3fab8ee9672852dc16a5a9eeb5baf7d7a9952943cd", size = 13679 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/d8/ad/6f414bb0b36eee20d93af6907256f208ffcda992ae6d3d7b6a778afe31e6/grpcio_status-1.75.1-py3-none-any.whl", hash = "sha256:f681b301be26dcf7abf5c765d4a22e4098765e1a65cbdfa3efca384edf8e4e3c", size = 14428 },
+ { url = "https://files.pythonhosted.org/packages/8c/cc/27ba60ad5a5f2067963e6a858743500df408eb5855e98be778eaef8c9b02/grpcio_status-1.76.0-py3-none-any.whl", hash = "sha256:380568794055a8efbbd8871162df92012e0228a5f6dffaf57f2a00c534103b18", size = 14425 },
]
[[package]]
@@ -691,51 +623,61 @@ wheels = [
[[package]]
name = "jiter"
-version = "0.11.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/9d/c0/a3bb4cc13aced219dd18191ea66e874266bd8aa7b96744e495e1c733aa2d/jiter-0.11.0.tar.gz", hash = "sha256:1d9637eaf8c1d6a63d6562f2a6e5ab3af946c66037eb1b894e8fad75422266e4", size = 167094 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/ba/b5/3009b112b8f673e568ef79af9863d8309a15f0a8cdcc06ed6092051f377e/jiter-0.11.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:2fb7b377688cc3850bbe5c192a6bd493562a0bc50cbc8b047316428fbae00ada", size = 305510 },
- { url = "https://files.pythonhosted.org/packages/fe/82/15514244e03b9e71e086bbe2a6de3e4616b48f07d5f834200c873956fb8c/jiter-0.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a1b7cbe3f25bd0d8abb468ba4302a5d45617ee61b2a7a638f63fee1dc086be99", size = 316521 },
- { url = "https://files.pythonhosted.org/packages/92/94/7a2e905f40ad2d6d660e00b68d818f9e29fb87ffe82774f06191e93cbe4a/jiter-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0a7f0ec81d5b7588c5cade1eb1925b91436ae6726dc2df2348524aeabad5de6", size = 338214 },
- { url = "https://files.pythonhosted.org/packages/a8/9c/5791ed5bdc76f12110158d3316a7a3ec0b1413d018b41c5ed399549d3ad5/jiter-0.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07630bb46ea2a6b9c6ed986c6e17e35b26148cce2c535454b26ee3f0e8dcaba1", size = 361280 },
- { url = "https://files.pythonhosted.org/packages/d4/7f/b7d82d77ff0d2cb06424141000176b53a9e6b16a1125525bb51ea4990c2e/jiter-0.11.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7764f27d28cd4a9cbc61704dfcd80c903ce3aad106a37902d3270cd6673d17f4", size = 487895 },
- { url = "https://files.pythonhosted.org/packages/42/44/10a1475d46f1fc1fd5cc2e82c58e7bca0ce5852208e0fa5df2f949353321/jiter-0.11.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d4a6c4a737d486f77f842aeb22807edecb4a9417e6700c7b981e16d34ba7c72", size = 378421 },
- { url = "https://files.pythonhosted.org/packages/9a/5f/0dc34563d8164d31d07bc09d141d3da08157a68dcd1f9b886fa4e917805b/jiter-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf408d2a0abd919b60de8c2e7bc5eeab72d4dafd18784152acc7c9adc3291591", size = 347932 },
- { url = "https://files.pythonhosted.org/packages/f7/de/b68f32a4fcb7b4a682b37c73a0e5dae32180140cd1caf11aef6ad40ddbf2/jiter-0.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cdef53eda7d18e799625023e1e250dbc18fbc275153039b873ec74d7e8883e09", size = 386959 },
- { url = "https://files.pythonhosted.org/packages/76/0a/c08c92e713b6e28972a846a81ce374883dac2f78ec6f39a0dad9f2339c3a/jiter-0.11.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:53933a38ef7b551dd9c7f1064f9d7bb235bb3168d0fa5f14f0798d1b7ea0d9c5", size = 517187 },
- { url = "https://files.pythonhosted.org/packages/89/b5/4a283bec43b15aad54fcae18d951f06a2ec3f78db5708d3b59a48e9c3fbd/jiter-0.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11840d2324c9ab5162fc1abba23bc922124fedcff0d7b7f85fffa291e2f69206", size = 509461 },
- { url = "https://files.pythonhosted.org/packages/34/a5/f8bad793010534ea73c985caaeef8cc22dfb1fedb15220ecdf15c623c07a/jiter-0.11.0-cp312-cp312-win32.whl", hash = "sha256:4f01a744d24a5f2bb4a11657a1b27b61dc038ae2e674621a74020406e08f749b", size = 206664 },
- { url = "https://files.pythonhosted.org/packages/ed/42/5823ec2b1469395a160b4bf5f14326b4a098f3b6898fbd327366789fa5d3/jiter-0.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:29fff31190ab3a26de026da2f187814f4b9c6695361e20a9ac2123e4d4378a4c", size = 203520 },
- { url = "https://files.pythonhosted.org/packages/97/c4/d530e514d0f4f29b2b68145e7b389cbc7cac7f9c8c23df43b04d3d10fa3e/jiter-0.11.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4441a91b80a80249f9a6452c14b2c24708f139f64de959943dfeaa6cb915e8eb", size = 305021 },
- { url = "https://files.pythonhosted.org/packages/7a/77/796a19c567c5734cbfc736a6f987affc0d5f240af8e12063c0fb93990ffa/jiter-0.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ff85fc6d2a431251ad82dbd1ea953affb5a60376b62e7d6809c5cd058bb39471", size = 314384 },
- { url = "https://files.pythonhosted.org/packages/14/9c/824334de0b037b91b6f3fa9fe5a191c83977c7ec4abe17795d3cb6d174cf/jiter-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5e86126d64706fd28dfc46f910d496923c6f95b395138c02d0e252947f452bd", size = 337389 },
- { url = "https://files.pythonhosted.org/packages/a2/95/ed4feab69e6cf9b2176ea29d4ef9d01a01db210a3a2c8a31a44ecdc68c38/jiter-0.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4ad8bd82165961867a10f52010590ce0b7a8c53da5ddd8bbb62fef68c181b921", size = 360519 },
- { url = "https://files.pythonhosted.org/packages/b5/0c/2ad00f38d3e583caba3909d95b7da1c3a7cd82c0aa81ff4317a8016fb581/jiter-0.11.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b42c2cd74273455ce439fd9528db0c6e84b5623cb74572305bdd9f2f2961d3df", size = 487198 },
- { url = "https://files.pythonhosted.org/packages/ea/8b/919b64cf3499b79bdfba6036da7b0cac5d62d5c75a28fb45bad7819e22f0/jiter-0.11.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0062dab98172dd0599fcdbf90214d0dcde070b1ff38a00cc1b90e111f071982", size = 377835 },
- { url = "https://files.pythonhosted.org/packages/29/7f/8ebe15b6e0a8026b0d286c083b553779b4dd63db35b43a3f171b544de91d/jiter-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb948402821bc76d1f6ef0f9e19b816f9b09f8577844ba7140f0b6afe994bc64", size = 347655 },
- { url = "https://files.pythonhosted.org/packages/8e/64/332127cef7e94ac75719dda07b9a472af6158ba819088d87f17f3226a769/jiter-0.11.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25a5b1110cca7329fd0daf5060faa1234be5c11e988948e4f1a1923b6a457fe1", size = 386135 },
- { url = "https://files.pythonhosted.org/packages/20/c8/557b63527442f84c14774159948262a9d4fabb0d61166f11568f22fc60d2/jiter-0.11.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:bf11807e802a214daf6c485037778843fadd3e2ec29377ae17e0706ec1a25758", size = 516063 },
- { url = "https://files.pythonhosted.org/packages/86/13/4164c819df4a43cdc8047f9a42880f0ceef5afeb22e8b9675c0528ebdccd/jiter-0.11.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:dbb57da40631c267861dd0090461222060960012d70fd6e4c799b0f62d0ba166", size = 508139 },
- { url = "https://files.pythonhosted.org/packages/fa/70/6e06929b401b331d41ddb4afb9f91cd1168218e3371972f0afa51c9f3c31/jiter-0.11.0-cp313-cp313-win32.whl", hash = "sha256:8e36924dad32c48d3c5e188d169e71dc6e84d6cb8dedefea089de5739d1d2f80", size = 206369 },
- { url = "https://files.pythonhosted.org/packages/f4/0d/8185b8e15de6dce24f6afae63380e16377dd75686d56007baa4f29723ea1/jiter-0.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:452d13e4fd59698408087235259cebe67d9d49173b4dacb3e8d35ce4acf385d6", size = 202538 },
- { url = "https://files.pythonhosted.org/packages/13/3a/d61707803260d59520721fa326babfae25e9573a88d8b7b9cb54c5423a59/jiter-0.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:089f9df9f69532d1339e83142438668f52c97cd22ee2d1195551c2b1a9e6cf33", size = 313737 },
- { url = "https://files.pythonhosted.org/packages/cd/cc/c9f0eec5d00f2a1da89f6bdfac12b8afdf8d5ad974184863c75060026457/jiter-0.11.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29ed1fe69a8c69bf0f2a962d8d706c7b89b50f1332cd6b9fbda014f60bd03a03", size = 346183 },
- { url = "https://files.pythonhosted.org/packages/a6/87/fc632776344e7aabbab05a95a0075476f418c5d29ab0f2eec672b7a1f0ac/jiter-0.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:a4d71d7ea6ea8786291423fe209acf6f8d398a0759d03e7f24094acb8ab686ba", size = 204225 },
- { url = "https://files.pythonhosted.org/packages/ee/3b/e7f45be7d3969bdf2e3cd4b816a7a1d272507cd0edd2d6dc4b07514f2d9a/jiter-0.11.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9a6dff27eca70930bdbe4cbb7c1a4ba8526e13b63dc808c0670083d2d51a4a72", size = 304414 },
- { url = "https://files.pythonhosted.org/packages/06/32/13e8e0d152631fcc1907ceb4943711471be70496d14888ec6e92034e2caf/jiter-0.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b1ae2a7593a62132c7d4c2abbee80bbbb94fdc6d157e2c6cc966250c564ef774", size = 314223 },
- { url = "https://files.pythonhosted.org/packages/0c/7e/abedd5b5a20ca083f778d96bba0d2366567fcecb0e6e34ff42640d5d7a18/jiter-0.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b13a431dba4b059e9e43019d3022346d009baf5066c24dcdea321a303cde9f0", size = 337306 },
- { url = "https://files.pythonhosted.org/packages/ac/e2/30d59bdc1204c86aa975ec72c48c482fee6633120ee9c3ab755e4dfefea8/jiter-0.11.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:af62e84ca3889604ebb645df3b0a3f3bcf6b92babbff642bd214616f57abb93a", size = 360565 },
- { url = "https://files.pythonhosted.org/packages/fe/88/567288e0d2ed9fa8f7a3b425fdaf2cb82b998633c24fe0d98f5417321aa8/jiter-0.11.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6f3b32bb723246e6b351aecace52aba78adb8eeb4b2391630322dc30ff6c773", size = 486465 },
- { url = "https://files.pythonhosted.org/packages/18/6e/7b72d09273214cadd15970e91dd5ed9634bee605176107db21e1e4205eb1/jiter-0.11.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:adcab442f4a099a358a7f562eaa54ed6456fb866e922c6545a717be51dbed7d7", size = 377581 },
- { url = "https://files.pythonhosted.org/packages/58/52/4db456319f9d14deed325f70102577492e9d7e87cf7097bda9769a1fcacb/jiter-0.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9967c2ab338ee2b2c0102fd379ec2693c496abf71ffd47e4d791d1f593b68e2", size = 347102 },
- { url = "https://files.pythonhosted.org/packages/ce/b4/433d5703c38b26083aec7a733eb5be96f9c6085d0e270a87ca6482cbf049/jiter-0.11.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e7d0bed3b187af8b47a981d9742ddfc1d9b252a7235471ad6078e7e4e5fe75c2", size = 386477 },
- { url = "https://files.pythonhosted.org/packages/c8/7a/a60bfd9c55b55b07c5c441c5085f06420b6d493ce9db28d069cc5b45d9f3/jiter-0.11.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:f6fe0283e903ebc55f1a6cc569b8c1f3bf4abd026fed85e3ff8598a9e6f982f0", size = 516004 },
- { url = "https://files.pythonhosted.org/packages/2e/46/f8363e5ecc179b4ed0ca6cb0a6d3bfc266078578c71ff30642ea2ce2f203/jiter-0.11.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:4ee5821e3d66606b29ae5b497230b304f1376f38137d69e35f8d2bd5f310ff73", size = 507855 },
- { url = "https://files.pythonhosted.org/packages/90/33/396083357d51d7ff0f9805852c288af47480d30dd31d8abc74909b020761/jiter-0.11.0-cp314-cp314-win32.whl", hash = "sha256:c2d13ba7567ca8799f17c76ed56b1d49be30df996eb7fa33e46b62800562a5e2", size = 205802 },
- { url = "https://files.pythonhosted.org/packages/e7/ab/eb06ca556b2551d41de7d03bf2ee24285fa3d0c58c5f8d95c64c9c3281b1/jiter-0.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fb4790497369d134a07fc763cc88888c46f734abdd66f9fdf7865038bf3a8f40", size = 313405 },
- { url = "https://files.pythonhosted.org/packages/af/22/7ab7b4ec3a1c1f03aef376af11d23b05abcca3fb31fbca1e7557053b1ba2/jiter-0.11.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e2bbf24f16ba5ad4441a9845e40e4ea0cb9eed00e76ba94050664ef53ef4406", size = 347102 },
- { url = "https://files.pythonhosted.org/packages/70/f3/ce100253c80063a7b8b406e1d1562657fd4b9b4e1b562db40e68645342fb/jiter-0.11.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:902b43386c04739229076bd1c4c69de5d115553d982ab442a8ae82947c72ede7", size = 336380 },
+version = "0.11.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/a3/68/0357982493a7b20925aece061f7fb7a2678e3b232f8d73a6edb7e5304443/jiter-0.11.1.tar.gz", hash = "sha256:849dcfc76481c0ea0099391235b7ca97d7279e0fa4c86005457ac7c88e8b76dc", size = 168385 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/7c/4b/e4dd3c76424fad02a601d570f4f2a8438daea47ba081201a721a903d3f4c/jiter-0.11.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:71b6a920a5550f057d49d0e8bcc60945a8da998019e83f01adf110e226267663", size = 305272 },
+ { url = "https://files.pythonhosted.org/packages/67/83/2cd3ad5364191130f4de80eacc907f693723beaab11a46c7d155b07a092c/jiter-0.11.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b3de72e925388453a5171be83379549300db01284f04d2a6f244d1d8de36f94", size = 314038 },
+ { url = "https://files.pythonhosted.org/packages/d3/3c/8e67d9ba524e97d2f04c8f406f8769a23205026b13b0938d16646d6e2d3e/jiter-0.11.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc19dd65a2bd3d9c044c5b4ebf657ca1e6003a97c0fc10f555aa4f7fb9821c00", size = 345977 },
+ { url = "https://files.pythonhosted.org/packages/8d/a5/489ce64d992c29bccbffabb13961bbb0435e890d7f2d266d1f3df5e917d2/jiter-0.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d58faaa936743cd1464540562f60b7ce4fd927e695e8bc31b3da5b914baa9abd", size = 364503 },
+ { url = "https://files.pythonhosted.org/packages/d4/c0/e321dd83ee231d05c8fe4b1a12caf1f0e8c7a949bf4724d58397104f10f2/jiter-0.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:902640c3103625317291cb73773413b4d71847cdf9383ba65528745ff89f1d14", size = 487092 },
+ { url = "https://files.pythonhosted.org/packages/f9/5e/8f24ec49c8d37bd37f34ec0112e0b1a3b4b5a7b456c8efff1df5e189ad43/jiter-0.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30405f726e4c2ed487b176c09f8b877a957f535d60c1bf194abb8dadedb5836f", size = 376328 },
+ { url = "https://files.pythonhosted.org/packages/7f/70/ded107620e809327cf7050727e17ccfa79d6385a771b7fe38fb31318ef00/jiter-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3217f61728b0baadd2551844870f65219ac4a1285d5e1a4abddff3d51fdabe96", size = 356632 },
+ { url = "https://files.pythonhosted.org/packages/19/53/c26f7251613f6a9079275ee43c89b8a973a95ff27532c421abc2a87afb04/jiter-0.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1364cc90c03a8196f35f396f84029f12abe925415049204446db86598c8b72c", size = 384358 },
+ { url = "https://files.pythonhosted.org/packages/84/16/e0f2cc61e9c4d0b62f6c1bd9b9781d878a427656f88293e2a5335fa8ff07/jiter-0.11.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:53a54bf8e873820ab186b2dca9f6c3303f00d65ae5e7b7d6bda1b95aa472d646", size = 517279 },
+ { url = "https://files.pythonhosted.org/packages/60/5c/4cd095eaee68961bca3081acbe7c89e12ae24a5dae5fd5d2a13e01ed2542/jiter-0.11.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7e29aca023627b0e0c2392d4248f6414d566ff3974fa08ff2ac8dbb96dfee92a", size = 508276 },
+ { url = "https://files.pythonhosted.org/packages/4f/25/f459240e69b0e09a7706d96ce203ad615ca36b0fe832308d2b7123abf2d0/jiter-0.11.1-cp313-cp313-win32.whl", hash = "sha256:f153e31d8bca11363751e875c0a70b3d25160ecbaee7b51e457f14498fb39d8b", size = 205593 },
+ { url = "https://files.pythonhosted.org/packages/7c/16/461bafe22bae79bab74e217a09c907481a46d520c36b7b9fe71ee8c9e983/jiter-0.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:f773f84080b667c69c4ea0403fc67bb08b07e2b7ce1ef335dea5868451e60fed", size = 203518 },
+ { url = "https://files.pythonhosted.org/packages/7b/72/c45de6e320edb4fa165b7b1a414193b3cae302dd82da2169d315dcc78b44/jiter-0.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:635ecd45c04e4c340d2187bcb1cea204c7cc9d32c1364d251564bf42e0e39c2d", size = 188062 },
+ { url = "https://files.pythonhosted.org/packages/65/9b/4a57922437ca8753ef823f434c2dec5028b237d84fa320f06a3ba1aec6e8/jiter-0.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d892b184da4d94d94ddb4031296931c74ec8b325513a541ebfd6dfb9ae89904b", size = 313814 },
+ { url = "https://files.pythonhosted.org/packages/76/50/62a0683dadca25490a4bedc6a88d59de9af2a3406dd5a576009a73a1d392/jiter-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa22c223a3041dacb2fcd37c70dfd648b44662b4a48e242592f95bda5ab09d58", size = 344987 },
+ { url = "https://files.pythonhosted.org/packages/da/00/2355dbfcbf6cdeaddfdca18287f0f38ae49446bb6378e4a5971e9356fc8a/jiter-0.11.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330e8e6a11ad4980cd66a0f4a3e0e2e0f646c911ce047014f984841924729789", size = 356399 },
+ { url = "https://files.pythonhosted.org/packages/c9/07/c2bd748d578fa933d894a55bff33f983bc27f75fc4e491b354bef7b78012/jiter-0.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:09e2e386ebf298547ca3a3704b729471f7ec666c2906c5c26c1a915ea24741ec", size = 203289 },
+ { url = "https://files.pythonhosted.org/packages/e6/ee/ace64a853a1acbd318eb0ca167bad1cf5ee037207504b83a868a5849747b/jiter-0.11.1-cp313-cp313t-win_arm64.whl", hash = "sha256:fe4a431c291157e11cee7c34627990ea75e8d153894365a3bc84b7a959d23ca8", size = 188284 },
+ { url = "https://files.pythonhosted.org/packages/8d/00/d6006d069e7b076e4c66af90656b63da9481954f290d5eca8c715f4bf125/jiter-0.11.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:0fa1f70da7a8a9713ff8e5f75ec3f90c0c870be6d526aa95e7c906f6a1c8c676", size = 304624 },
+ { url = "https://files.pythonhosted.org/packages/fc/45/4a0e31eb996b9ccfddbae4d3017b46f358a599ccf2e19fbffa5e531bd304/jiter-0.11.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:569ee559e5046a42feb6828c55307cf20fe43308e3ae0d8e9e4f8d8634d99944", size = 315042 },
+ { url = "https://files.pythonhosted.org/packages/e7/91/22f5746f5159a28c76acdc0778801f3c1181799aab196dbea2d29e064968/jiter-0.11.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f69955fa1d92e81987f092b233f0be49d4c937da107b7f7dcf56306f1d3fcce9", size = 346357 },
+ { url = "https://files.pythonhosted.org/packages/f5/4f/57620857d4e1dc75c8ff4856c90cb6c135e61bff9b4ebfb5dc86814e82d7/jiter-0.11.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:090f4c9d4a825e0fcbd0a2647c9a88a0f366b75654d982d95a9590745ff0c48d", size = 365057 },
+ { url = "https://files.pythonhosted.org/packages/ce/34/caf7f9cc8ae0a5bb25a5440cc76c7452d264d1b36701b90fdadd28fe08ec/jiter-0.11.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf3d8cedf9e9d825233e0dcac28ff15c47b7c5512fdfe2e25fd5bbb6e6b0cee", size = 487086 },
+ { url = "https://files.pythonhosted.org/packages/50/17/85b5857c329d533d433fedf98804ebec696004a1f88cabad202b2ddc55cf/jiter-0.11.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa9b1958f9c30d3d1a558b75f0626733c60eb9b7774a86b34d88060be1e67fe", size = 376083 },
+ { url = "https://files.pythonhosted.org/packages/85/d3/2d9f973f828226e6faebdef034097a2918077ea776fb4d88489949024787/jiter-0.11.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42d1ca16590b768c5e7d723055acd2633908baacb3628dd430842e2e035aa90", size = 357825 },
+ { url = "https://files.pythonhosted.org/packages/f4/55/848d4dabf2c2c236a05468c315c2cb9dc736c5915e65449ccecdba22fb6f/jiter-0.11.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5db4c2486a023820b701a17aec9c5a6173c5ba4393f26662f032f2de9c848b0f", size = 383933 },
+ { url = "https://files.pythonhosted.org/packages/0b/6c/204c95a4fbb0e26dfa7776c8ef4a878d0c0b215868011cc904bf44f707e2/jiter-0.11.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:4573b78777ccfac954859a6eff45cbd9d281d80c8af049d0f1a3d9fc323d5c3a", size = 517118 },
+ { url = "https://files.pythonhosted.org/packages/88/25/09956644ea5a2b1e7a2a0f665cb69a973b28f4621fa61fc0c0f06ff40a31/jiter-0.11.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7593ac6f40831d7961cb67633c39b9fef6689a211d7919e958f45710504f52d3", size = 508194 },
+ { url = "https://files.pythonhosted.org/packages/09/49/4d1657355d7f5c9e783083a03a3f07d5858efa6916a7d9634d07db1c23bd/jiter-0.11.1-cp314-cp314-win32.whl", hash = "sha256:87202ec6ff9626ff5f9351507def98fcf0df60e9a146308e8ab221432228f4ea", size = 203961 },
+ { url = "https://files.pythonhosted.org/packages/76/bd/f063bd5cc2712e7ca3cf6beda50894418fc0cfeb3f6ff45a12d87af25996/jiter-0.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:a5dd268f6531a182c89d0dd9a3f8848e86e92dfff4201b77a18e6b98aa59798c", size = 202804 },
+ { url = "https://files.pythonhosted.org/packages/52/ca/4d84193dfafef1020bf0bedd5e1a8d0e89cb67c54b8519040effc694964b/jiter-0.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:5d761f863f912a44748a21b5c4979c04252588ded8d1d2760976d2e42cd8d991", size = 188001 },
+ { url = "https://files.pythonhosted.org/packages/d5/fa/3b05e5c9d32efc770a8510eeb0b071c42ae93a5b576fd91cee9af91689a1/jiter-0.11.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2cc5a3965285ddc33e0cab933e96b640bc9ba5940cea27ebbbf6695e72d6511c", size = 312561 },
+ { url = "https://files.pythonhosted.org/packages/50/d3/335822eb216154ddb79a130cbdce88fdf5c3e2b43dc5dba1fd95c485aaf5/jiter-0.11.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b572b3636a784c2768b2342f36a23078c8d3aa6d8a30745398b1bab58a6f1a8", size = 344551 },
+ { url = "https://files.pythonhosted.org/packages/31/6d/a0bed13676b1398f9b3ba61f32569f20a3ff270291161100956a577b2dd3/jiter-0.11.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad93e3d67a981f96596d65d2298fe8d1aa649deb5374a2fb6a434410ee11915e", size = 363051 },
+ { url = "https://files.pythonhosted.org/packages/a4/03/313eda04aa08545a5a04ed5876e52f49ab76a4d98e54578896ca3e16313e/jiter-0.11.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a83097ce379e202dcc3fe3fc71a16d523d1ee9192c8e4e854158f96b3efe3f2f", size = 485897 },
+ { url = "https://files.pythonhosted.org/packages/5f/13/a1011b9d325e40b53b1b96a17c010b8646013417f3902f97a86325b19299/jiter-0.11.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7042c51e7fbeca65631eb0c332f90c0c082eab04334e7ccc28a8588e8e2804d9", size = 375224 },
+ { url = "https://files.pythonhosted.org/packages/92/da/1b45026b19dd39b419e917165ff0ea629dbb95f374a3a13d2df95e40a6ac/jiter-0.11.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a68d679c0e47649a61df591660507608adc2652442de7ec8276538ac46abe08", size = 356606 },
+ { url = "https://files.pythonhosted.org/packages/7a/0c/9acb0e54d6a8ba59ce923a180ebe824b4e00e80e56cefde86cc8e0a948be/jiter-0.11.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1b0da75dbf4b6ec0b3c9e604d1ee8beaf15bc046fff7180f7d89e3cdbd3bb51", size = 384003 },
+ { url = "https://files.pythonhosted.org/packages/3f/2b/e5a5fe09d6da2145e4eed651e2ce37f3c0cf8016e48b1d302e21fb1628b7/jiter-0.11.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:69dd514bf0fa31c62147d6002e5ca2b3e7ef5894f5ac6f0a19752385f4e89437", size = 516946 },
+ { url = "https://files.pythonhosted.org/packages/5f/fe/db936e16e0228d48eb81f9934e8327e9fde5185e84f02174fcd22a01be87/jiter-0.11.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:bb31ac0b339efa24c0ca606febd8b77ef11c58d09af1b5f2be4c99e907b11111", size = 507614 },
+ { url = "https://files.pythonhosted.org/packages/86/db/c4438e8febfb303486d13c6b72f5eb71cf851e300a0c1f0b4140018dd31f/jiter-0.11.1-cp314-cp314t-win32.whl", hash = "sha256:b2ce0d6156a1d3ad41da3eec63b17e03e296b78b0e0da660876fccfada86d2f7", size = 204043 },
+ { url = "https://files.pythonhosted.org/packages/36/59/81badb169212f30f47f817dfaabf965bc9b8204fed906fab58104ee541f9/jiter-0.11.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f4db07d127b54c4a2d43b4cf05ff0193e4f73e0dd90c74037e16df0b29f666e1", size = 204046 },
+ { url = "https://files.pythonhosted.org/packages/dd/01/43f7b4eb61db3e565574c4c5714685d042fb652f9eef7e5a3de6aafa943a/jiter-0.11.1-cp314-cp314t-win_arm64.whl", hash = "sha256:28e4fdf2d7ebfc935523e50d1efa3970043cfaa161674fe66f9642409d001dfe", size = 188069 },
+ { url = "https://files.pythonhosted.org/packages/9d/51/bd41562dd284e2a18b6dc0a99d195fd4a3560d52ab192c42e56fe0316643/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:e642b5270e61dd02265866398707f90e365b5db2eb65a4f30c789d826682e1f6", size = 306871 },
+ { url = "https://files.pythonhosted.org/packages/ba/cb/64e7f21dd357e8cd6b3c919c26fac7fc198385bbd1d85bb3b5355600d787/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:464ba6d000585e4e2fd1e891f31f1231f497273414f5019e27c00a4b8f7a24ad", size = 301454 },
+ { url = "https://files.pythonhosted.org/packages/55/b0/54bdc00da4ef39801b1419a01035bd8857983de984fd3776b0be6b94add7/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:055568693ab35e0bf3a171b03bb40b2dcb10352359e0ab9b5ed0da2bf1eb6f6f", size = 336801 },
+ { url = "https://files.pythonhosted.org/packages/de/8f/87176ed071d42e9db415ed8be787ef4ef31a4fa27f52e6a4fbf34387bd28/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c69ea798d08a915ba4478113efa9e694971e410056392f4526d796f136d3fa", size = 343452 },
+ { url = "https://files.pythonhosted.org/packages/a6/bc/950dd7f170c6394b6fdd73f989d9e729bd98907bcc4430ef080a72d06b77/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:0d4d6993edc83cf75e8c6828a8d6ce40a09ee87e38c7bfba6924f39e1337e21d", size = 302626 },
+ { url = "https://files.pythonhosted.org/packages/3a/65/43d7971ca82ee100b7b9b520573eeef7eabc0a45d490168ebb9a9b5bb8b2/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f78d151c83a87a6cf5461d5ee55bc730dd9ae227377ac6f115b922989b95f838", size = 297034 },
+ { url = "https://files.pythonhosted.org/packages/19/4c/000e1e0c0c67e96557a279f8969487ea2732d6c7311698819f977abae837/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9022974781155cd5521d5cb10997a03ee5e31e8454c9d999dcdccd253f2353f", size = 337328 },
+ { url = "https://files.pythonhosted.org/packages/d9/71/71408b02c6133153336d29fa3ba53000f1e1a3f78bb2fc2d1a1865d2e743/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18c77aaa9117510d5bdc6a946baf21b1f0cfa58ef04d31c8d016f206f2118960", size = 343697 },
]
[[package]]
@@ -761,45 +703,59 @@ wheels = [
[[package]]
name = "langchain"
-version = "0.3.27"
+version = "1.0.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
- { name = "langchain-text-splitters" },
- { name = "langsmith" },
+ { name = "langgraph" },
{ name = "pydantic" },
- { name = "pyyaml" },
- { name = "requests" },
- { name = "sqlalchemy" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/83/f6/f4f7f3a56626fe07e2bb330feb61254dbdf06c506e6b59a536a337da51cf/langchain-0.3.27.tar.gz", hash = "sha256:aa6f1e6274ff055d0fd36254176770f356ed0a8994297d1df47df341953cec62", size = 10233809 }
+sdist = { url = "https://files.pythonhosted.org/packages/37/08/1708495e03eadbeef5d51e6b7cdcae4752a113a9b6313f46c70e165149c4/langchain-1.0.3.tar.gz", hash = "sha256:f96d8d185cb8cbba9793f5c648e7d5eeec688f8e3778f700d75d89d6570ae11e", size = 444810 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f6/d5/4861816a95b2f6993f1360cfb605aacb015506ee2090433a71de9cca8477/langchain-0.3.27-py3-none-any.whl", hash = "sha256:7b20c4f338826acb148d885b20a73a16e410ede9ee4f19bb02011852d5f98798", size = 1018194 },
+ { url = "https://files.pythonhosted.org/packages/68/c8/b5dcfdde8b96369e5445f0fbac52fe8495bbd11b23ca83691d90d464eb15/langchain-1.0.3-py3-none-any.whl", hash = "sha256:a7d57964ed16278c991de4ab15516a81937a58c5ac7d7aadccb18431ad8179b2", size = 91970 },
]
[[package]]
name = "langchain-anthropic"
-version = "0.3.22"
+version = "1.0.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anthropic" },
{ name = "langchain-core" },
{ name = "pydantic" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/b8/ac/4791e4451e1972f80cb517e19d003678239921fc0685a4c4b265fe47e216/langchain_anthropic-0.3.22.tar.gz", hash = "sha256:6c440278bd8012bc94ae341f416bfc724fdc5d2d2b69630fe6e82fa6ee9682ac", size = 471312 }
+sdist = { url = "https://files.pythonhosted.org/packages/7e/12/f622dccb2886a9a016e149b74df2a2d9f7f6d6fafee087a010aa7415227e/langchain_anthropic-1.0.1.tar.gz", hash = "sha256:cd4c2f5d5d85d3aba290ea7b9976371d3e25fd58f6d70cfd0ef3323787862edc", size = 667647 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/46/2c/2dcbf58526fa59b5464f79b5369a3abd81460ad3b737399cc3fd55bfb0cb/langchain_anthropic-1.0.1-py3-none-any.whl", hash = "sha256:a883f1030c50c2422a57985c0a89b1f49e9e0abe3117d212e510e3b838df7417", size = 46421 },
+]
+
+[[package]]
+name = "langchain-classic"
+version = "1.0.0"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "langchain-core" },
+ { name = "langchain-text-splitters" },
+ { name = "langsmith" },
+ { name = "pydantic" },
+ { name = "pyyaml" },
+ { name = "requests" },
+ { name = "sqlalchemy" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/d9/b1/a66babeccb2c05ed89690a534296688c0349bee7a71641e91ecc2afd72fd/langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5", size = 10514930 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/d1/ac/019fd9d45716a4d74c154f160665074ae49885ff4764c8313737f5fda348/langchain_anthropic-0.3.22-py3-none-any.whl", hash = "sha256:17721b240342a1a3f70bf0b2ff33520ba60d69008e3b9433190a62a52ff87cf6", size = 32592 },
+ { url = "https://files.pythonhosted.org/packages/74/74/246f809a3741c21982f985ca0113ec92d3c84896308561cc4414823f6951/langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33", size = 1040701 },
]
[[package]]
name = "langchain-community"
-version = "0.3.31"
+version = "0.4.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohttp" },
{ name = "dataclasses-json" },
{ name = "httpx-sse" },
- { name = "langchain" },
+ { name = "langchain-classic" },
{ name = "langchain-core" },
{ name = "langsmith" },
{ name = "numpy" },
@@ -809,14 +765,14 @@ dependencies = [
{ name = "sqlalchemy" },
{ name = "tenacity" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/83/49/2ff5354273809e9811392bc24bcffda545a196070666aef27bc6aacf1c21/langchain_community-0.3.31.tar.gz", hash = "sha256:250e4c1041539130f6d6ac6f9386cb018354eafccd917b01a4cff1950b80fd81", size = 33241237 }
+sdist = { url = "https://files.pythonhosted.org/packages/53/97/a03585d42b9bdb6fbd935282d6e3348b10322a24e6ce12d0c99eb461d9af/langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85", size = 33241144 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/e6/0a/b8848db67ad7c8d4652cb6f4cb78d49b5b5e6e8e51d695d62025aa3f7dbc/langchain_community-0.3.31-py3-none-any.whl", hash = "sha256:1c727e3ebbacd4d891b07bd440647668001cea3e39cbe732499ad655ec5cb569", size = 2532920 },
+ { url = "https://files.pythonhosted.org/packages/f0/a4/c4fde67f193401512337456cabc2148f2c43316e445f5decd9f8806e2992/langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a", size = 2533285 },
]
[[package]]
name = "langchain-core"
-version = "0.3.79"
+version = "1.0.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "jsonpatch" },
@@ -827,27 +783,14 @@ dependencies = [
{ name = "tenacity" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/c8/99/f926495f467e0f43289f12e951655d267d1eddc1136c3cf4dd907794a9a7/langchain_core-0.3.79.tar.gz", hash = "sha256:024ba54a346dd9b13fb8b2342e0c83d0111e7f26fa01f545ada23ad772b55a60", size = 580895 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/fc/71/46b0efaf3fc6ad2c2bd600aef500f1cb2b7038a4042f58905805630dd29d/langchain_core-0.3.79-py3-none-any.whl", hash = "sha256:92045bfda3e741f8018e1356f83be203ec601561c6a7becfefe85be5ddc58fdb", size = 449779 },
-]
-
-[[package]]
-name = "langchain-experimental"
-version = "0.3.4"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "langchain-community" },
- { name = "langchain-core" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/27/56/a8acbb08a03383c28875b3b151e4cefea5612266917fbd6fc3c14c21e172/langchain_experimental-0.3.4.tar.gz", hash = "sha256:937c4259ee4a639c618d19acf0e2c5c2898ef127050346edc5655259aa281a21", size = 140532 }
+sdist = { url = "https://files.pythonhosted.org/packages/41/15/dfe0c2af463d63296fe18608a06570ce3a4b245253d4f26c301481380f7d/langchain_core-1.0.3.tar.gz", hash = "sha256:10744945d21168fb40d1162a5f1cf69bf0137ff6ad2b12c87c199a5297410887", size = 770278 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/b2/27/fe8caa4884611286b1f7d6c5cfd76e1fef188faaa946db4fde6daa1cd2cd/langchain_experimental-0.3.4-py3-none-any.whl", hash = "sha256:2e587306aea36b60fa5e5fc05dc7281bee9f60a806f0bf9d30916e0ee096af80", size = 209154 },
+ { url = "https://files.pythonhosted.org/packages/f2/1b/b0a37674bdcbd2931944e12ea742fd167098de5212ee2391e91dce631162/langchain_core-1.0.3-py3-none-any.whl", hash = "sha256:64f1bd45f04b174bbfd54c135a8adc52f4902b347c15a117d6383b412bf558a5", size = 469927 },
]
[[package]]
name = "langchain-google-genai"
-version = "2.1.12"
+version = "3.0.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "filetype" },
@@ -855,40 +798,40 @@ dependencies = [
{ name = "langchain-core" },
{ name = "pydantic" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/09/38/8b3a71c729bd03e9eb0fd8bdb19e06a074c35bc2eaa61b1b9edfa863f38d/langchain_google_genai-2.1.12.tar.gz", hash = "sha256:4a98371e545eb97fcdf483086a4aebbb8eceeb9597ca5a9c4c35e92f4fbbd271", size = 77566 }
+sdist = { url = "https://files.pythonhosted.org/packages/b9/62/4352390e10b95d8a42da769b9bd7a7547af9aafd71e4012159f7394f7513/langchain_google_genai-3.0.1.tar.gz", hash = "sha256:d3f82fd274d2e9ca86448d5f89ac37b37b2d3cdfa6dec1af7bc792317b11dde7", size = 92794 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/e1/8d/9dd9653e5414e73cae3480e5947bbbbd94ba7fa824efdf46e7ff2c0faef2/langchain_google_genai-2.1.12-py3-none-any.whl", hash = "sha256:4c07630419a8fbe7a2ec512c6dea68289663bfe7d5fae0ba431d2cd59a0d0880", size = 50746 },
+ { url = "https://files.pythonhosted.org/packages/75/4f/4694f86ad0dfa920f8a7cd22000fa7f87e12551cbb40f26c40d5ce2c7205/langchain_google_genai-3.0.1-py3-none-any.whl", hash = "sha256:2420396c75d3911af42af1bffb2c2ddd3fff73f9db9d619963429b5385e5f55e", size = 58145 },
]
[[package]]
name = "langchain-openai"
-version = "0.3.35"
+version = "1.0.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
{ name = "openai" },
{ name = "tiktoken" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/fb/96/06d0d25a37e05a0ff2d918f0a4b0bf0732aed6a43b472b0b68426ce04ef8/langchain_openai-0.3.35.tar.gz", hash = "sha256:fa985fd041c3809da256a040c98e8a43e91c6d165b96dcfeb770d8bd457bf76f", size = 786635 }
+sdist = { url = "https://files.pythonhosted.org/packages/b3/3c/edb7ffca76fdcfd938ce8380bf8ec79a0a8be41ba7fdbf6f9fe1cb5fd1a8/langchain_openai-1.0.2.tar.gz", hash = "sha256:621e8295c52db9a1fc74806a0bd227ea215c132c6c5e421d2982c9ee78468769", size = 1025578 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/d8/d5/c90c5478215c20ee71d8feaf676f7ffd78d0568f8c98bd83f81ce7562ed7/langchain_openai-0.3.35-py3-none-any.whl", hash = "sha256:76d5707e6e81fd461d33964ad618bd326cb661a1975cef7c1cb0703576bdada5", size = 75952 },
+ { url = "https://files.pythonhosted.org/packages/78/9b/7af1d539a051d195c5ecc5990ebd483f208c40f75a8a9532846d16762704/langchain_openai-1.0.2-py3-none-any.whl", hash = "sha256:b3eb9b82752063b46452aa868d8c8bc1604e57631648c3bc325bba58d3aeb143", size = 81934 },
]
[[package]]
name = "langchain-text-splitters"
-version = "0.3.11"
+version = "1.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/11/43/dcda8fd25f0b19cb2835f2f6bb67f26ad58634f04ac2d8eae00526b0fa55/langchain_text_splitters-0.3.11.tar.gz", hash = "sha256:7a50a04ada9a133bbabb80731df7f6ddac51bc9f1b9cab7fa09304d71d38a6cc", size = 46458 }
+sdist = { url = "https://files.pythonhosted.org/packages/fa/2e/c833dcc379c1c086453708ef5eef7d4d1f808559ca4458bd6569d5d83ad7/langchain_text_splitters-1.0.0.tar.gz", hash = "sha256:d8580a20ad7ed10b432feb273e5758b2cc0902d094919629cec0e1ad691a6744", size = 264257 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/58/0d/41a51b40d24ff0384ec4f7ab8dd3dcea8353c05c973836b5e289f1465d4f/langchain_text_splitters-0.3.11-py3-none-any.whl", hash = "sha256:cf079131166a487f1372c8ab5d0bfaa6c0a4291733d9c43a34a16ac9bcd6a393", size = 33845 },
+ { url = "https://files.pythonhosted.org/packages/1e/97/d362353ab04f865af6f81d4d46e7aa428734aa032de0017934b771fc34b7/langchain_text_splitters-1.0.0-py3-none-any.whl", hash = "sha256:f00c8219d3468f2c5bd951b708b6a7dd9bc3c62d0cfb83124c377f7170f33b2e", size = 33851 },
]
[[package]]
name = "langgraph"
-version = "0.6.10"
+version = "1.0.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
@@ -898,35 +841,35 @@ dependencies = [
{ name = "pydantic" },
{ name = "xxhash" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/e2/9c/bc34cf47e7a8845f9abe5a09cf6ed892162b899708fae5c59252fa44ed24/langgraph-0.6.10.tar.gz", hash = "sha256:37457595ef3becebca94b3c4711a8bcd539b5eae7560f2cec409eae0d8113c59", size = 492079 }
+sdist = { url = "https://files.pythonhosted.org/packages/0e/25/18e6e056ee1a8af64fcab441b4a3f2e158399935b08f148c7718fc42ecdb/langgraph-1.0.2.tar.gz", hash = "sha256:dae1af08d6025cb1fcaed68f502c01af7d634d9044787c853a46c791cfc52f67", size = 482660 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/e6/75/c2972a484581389b5c193f16e8e36531e6574b280f23700735b0d6729365/langgraph-0.6.10-py3-none-any.whl", hash = "sha256:b16baacd38895f6f4aa51e03b8a5b5f8695cff96fd0e8b637b725186ea27237c", size = 155422 },
+ { url = "https://files.pythonhosted.org/packages/d7/b1/9f4912e13d4ed691f2685c8a4b764b5a9237a30cca0c5782bc213d9f0a9a/langgraph-1.0.2-py3-none-any.whl", hash = "sha256:b3d56b8c01de857b5fb1da107e8eab6e30512a377685eeedb4f76456724c9729", size = 156751 },
]
[[package]]
name = "langgraph-checkpoint"
-version = "2.1.2"
+version = "3.0.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
{ name = "ormsgpack" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/29/83/6404f6ed23a91d7bc63d7df902d144548434237d017820ceaa8d014035f2/langgraph_checkpoint-2.1.2.tar.gz", hash = "sha256:112e9d067a6eff8937caf198421b1ffba8d9207193f14ac6f89930c1260c06f9", size = 142420 }
+sdist = { url = "https://files.pythonhosted.org/packages/0f/07/2b1c042fa87d40cf2db5ca27dc4e8dd86f9a0436a10aa4361a8982718ae7/langgraph_checkpoint-3.0.1.tar.gz", hash = "sha256:59222f875f85186a22c494aedc65c4e985a3df27e696e5016ba0b98a5ed2cee0", size = 137785 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c4/f2/06bf5addf8ee664291e1b9ffa1f28fc9d97e59806dc7de5aea9844cbf335/langgraph_checkpoint-2.1.2-py3-none-any.whl", hash = "sha256:911ebffb069fd01775d4b5184c04aaafc2962fcdf50cf49d524cd4367c4d0c60", size = 45763 },
+ { url = "https://files.pythonhosted.org/packages/48/e3/616e3a7ff737d98c1bbb5700dd62278914e2a9ded09a79a1fa93cf24ce12/langgraph_checkpoint-3.0.1-py3-none-any.whl", hash = "sha256:9b04a8d0edc0474ce4eaf30c5d731cee38f11ddff50a6177eead95b5c4e4220b", size = 46249 },
]
[[package]]
name = "langgraph-prebuilt"
-version = "0.6.4"
+version = "1.0.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
{ name = "langgraph-checkpoint" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/d6/21/9b198d11732101ee8cdf30af98d0b4f11254c768de15173e57f5260fd14b/langgraph_prebuilt-0.6.4.tar.gz", hash = "sha256:e9e53b906ee5df46541d1dc5303239e815d3ec551e52bb03dd6463acc79ec28f", size = 125695 }
+sdist = { url = "https://files.pythonhosted.org/packages/33/2f/b940590436e07b3450fe6d791aad5e581363ad536c4f1771e3ba46530268/langgraph_prebuilt-1.0.2.tar.gz", hash = "sha256:9896dbabf04f086eb59df4294f54ab5bdb21cd78e27e0a10e695dffd1cc6097d", size = 142075 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/0a/7f/973b0d9729d9693d6e5b4bc5f3ae41138d194cb7b16b0ed230020beeb13a/langgraph_prebuilt-0.6.4-py3-none-any.whl", hash = "sha256:819f31d88b84cb2729ff1b79db2d51e9506b8fb7aaacfc0d359d4fe16e717344", size = 28025 },
+ { url = "https://files.pythonhosted.org/packages/27/2f/9a7d00d4afa036e65294059c7c912002fb72ba5dbbd5c2a871ca06360278/langgraph_prebuilt-1.0.2-py3-none-any.whl", hash = "sha256:d9499f7c449fb637ee7b87e3f6a3b74095f4202053c74d33894bd839ea4c57c7", size = 34286 },
]
[[package]]
@@ -944,7 +887,7 @@ wheels = [
[[package]]
name = "langsmith"
-version = "0.4.35"
+version = "0.4.41"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
@@ -955,9 +898,9 @@ dependencies = [
{ name = "requests-toolbelt" },
{ name = "zstandard" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/f4/e4/937e20de425eea337c275475d5283402c31284f79c37016c8d6e8a08c5bd/langsmith-0.4.35.tar.gz", hash = "sha256:de589346911ed2bfeb92de9f634a7090efb8961a0c842fd1fb17c75ceefa5be7", size = 966172 }
+sdist = { url = "https://files.pythonhosted.org/packages/dc/7d/5c658251230b233958cbf8be46600254d6248613081d670dc7fe9b241778/langsmith-0.4.41.tar.gz", hash = "sha256:b88d03bb157cf69d1afee250a658d847003babbbd9647f720edcc9b03a0857cd", size = 949854 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/e8/a9/40cfd19ab7f2c2737d94d1bd6cb3dc3da85232705d7a563044397d0479e8/langsmith-0.4.35-py3-none-any.whl", hash = "sha256:3c3e6ec236e31099c0be175918d21a342cdb87df35138051205da726b9058b8e", size = 387139 },
+ { url = "https://files.pythonhosted.org/packages/98/4c/6c0c338ca7182e4ecb7af61049415e7b3513cc6cea9aa5bf8ca508f53539/langsmith-0.4.41-py3-none-any.whl", hash = "sha256:5cdc554e5f0361bf791fdd5e8dea16d5ba9dfce09b3b8f8bba5e99450c569b27", size = 399279 },
]
[[package]]
@@ -978,24 +921,6 @@ version = "6.7.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/80/1e/5492c365f222f907de1039b91f922b93fa4f764c713ee858d235495d8f50/multidict-6.7.0.tar.gz", hash = "sha256:c6e99d9a65ca282e578dfea819cfa9c0a62b2499d8677392e09feaf305e9e6f5", size = 101834 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c2/9e/9f61ac18d9c8b475889f32ccfa91c9f59363480613fc807b6e3023d6f60b/multidict-6.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8a3862568a36d26e650a19bb5cbbba14b71789032aebc0423f8cc5f150730184", size = 76877 },
- { url = "https://files.pythonhosted.org/packages/38/6f/614f09a04e6184f8824268fce4bc925e9849edfa654ddd59f0b64508c595/multidict-6.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:960c60b5849b9b4f9dcc9bea6e3626143c252c74113df2c1540aebce70209b45", size = 45467 },
- { url = "https://files.pythonhosted.org/packages/b3/93/c4f67a436dd026f2e780c433277fff72be79152894d9fc36f44569cab1a6/multidict-6.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2049be98fb57a31b4ccf870bf377af2504d4ae35646a19037ec271e4c07998aa", size = 43834 },
- { url = "https://files.pythonhosted.org/packages/7f/f5/013798161ca665e4a422afbc5e2d9e4070142a9ff8905e482139cd09e4d0/multidict-6.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0934f3843a1860dd465d38895c17fce1f1cb37295149ab05cd1b9a03afacb2a7", size = 250545 },
- { url = "https://files.pythonhosted.org/packages/71/2f/91dbac13e0ba94669ea5119ba267c9a832f0cb65419aca75549fcf09a3dc/multidict-6.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b3e34f3a1b8131ba06f1a73adab24f30934d148afcd5f5de9a73565a4404384e", size = 258305 },
- { url = "https://files.pythonhosted.org/packages/ef/b0/754038b26f6e04488b48ac621f779c341338d78503fb45403755af2df477/multidict-6.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:efbb54e98446892590dc2458c19c10344ee9a883a79b5cec4bc34d6656e8d546", size = 242363 },
- { url = "https://files.pythonhosted.org/packages/87/15/9da40b9336a7c9fa606c4cf2ed80a649dffeb42b905d4f63a1d7eb17d746/multidict-6.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a35c5fc61d4f51eb045061e7967cfe3123d622cd500e8868e7c0c592a09fedc4", size = 268375 },
- { url = "https://files.pythonhosted.org/packages/82/72/c53fcade0cc94dfaad583105fd92b3a783af2091eddcb41a6d5a52474000/multidict-6.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29fe6740ebccba4175af1b9b87bf553e9c15cd5868ee967e010efcf94e4fd0f1", size = 269346 },
- { url = "https://files.pythonhosted.org/packages/0d/e2/9baffdae21a76f77ef8447f1a05a96ec4bc0a24dae08767abc0a2fe680b8/multidict-6.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:123e2a72e20537add2f33a79e605f6191fba2afda4cbb876e35c1a7074298a7d", size = 256107 },
- { url = "https://files.pythonhosted.org/packages/3c/06/3f06f611087dc60d65ef775f1fb5aca7c6d61c6db4990e7cda0cef9b1651/multidict-6.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b284e319754366c1aee2267a2036248b24eeb17ecd5dc16022095e747f2f4304", size = 253592 },
- { url = "https://files.pythonhosted.org/packages/20/24/54e804ec7945b6023b340c412ce9c3f81e91b3bf5fa5ce65558740141bee/multidict-6.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:803d685de7be4303b5a657b76e2f6d1240e7e0a8aa2968ad5811fa2285553a12", size = 251024 },
- { url = "https://files.pythonhosted.org/packages/14/48/011cba467ea0b17ceb938315d219391d3e421dfd35928e5dbdc3f4ae76ef/multidict-6.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c04a328260dfd5db8c39538f999f02779012268f54614902d0afc775d44e0a62", size = 251484 },
- { url = "https://files.pythonhosted.org/packages/0d/2f/919258b43bb35b99fa127435cfb2d91798eb3a943396631ef43e3720dcf4/multidict-6.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8a19cdb57cd3df4cd865849d93ee14920fb97224300c88501f16ecfa2604b4e0", size = 263579 },
- { url = "https://files.pythonhosted.org/packages/31/22/a0e884d86b5242b5a74cf08e876bdf299e413016b66e55511f7a804a366e/multidict-6.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b2fd74c52accced7e75de26023b7dccee62511a600e62311b918ec5c168fc2a", size = 259654 },
- { url = "https://files.pythonhosted.org/packages/b2/e5/17e10e1b5c5f5a40f2fcbb45953c9b215f8a4098003915e46a93f5fcaa8f/multidict-6.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e8bfdd0e487acf992407a140d2589fe598238eaeffa3da8448d63a63cd363f8", size = 251511 },
- { url = "https://files.pythonhosted.org/packages/e3/9a/201bb1e17e7af53139597069c375e7b0dcbd47594604f65c2d5359508566/multidict-6.7.0-cp312-cp312-win32.whl", hash = "sha256:dd32a49400a2c3d52088e120ee00c1e3576cbff7e10b98467962c74fdb762ed4", size = 41895 },
- { url = "https://files.pythonhosted.org/packages/46/e2/348cd32faad84eaf1d20cce80e2bb0ef8d312c55bca1f7fa9865e7770aaf/multidict-6.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:92abb658ef2d7ef22ac9f8bb88e8b6c3e571671534e029359b6d9e845923eb1b", size = 46073 },
- { url = "https://files.pythonhosted.org/packages/25/ec/aad2613c1910dce907480e0c3aa306905830f25df2e54ccc9dea450cb5aa/multidict-6.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:490dab541a6a642ce1a9d61a4781656b346a55c13038f0b1244653828e3a83ec", size = 43226 },
{ url = "https://files.pythonhosted.org/packages/d2/86/33272a544eeb36d66e4d9a920602d1a2f57d4ebea4ef3cdfe5a912574c95/multidict-6.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bee7c0588aa0076ce77c0ea5d19a68d76ad81fcd9fe8501003b9a24f9d4000f6", size = 76135 },
{ url = "https://files.pythonhosted.org/packages/91/1c/eb97db117a1ebe46d457a3d235a7b9d2e6dcab174f42d1b67663dd9e5371/multidict-6.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7ef6b61cad77091056ce0e7ce69814ef72afacb150b7ac6a3e9470def2198159", size = 45117 },
{ url = "https://files.pythonhosted.org/packages/f1/d8/6c3442322e41fb1dd4de8bd67bfd11cd72352ac131f6368315617de752f1/multidict-6.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c0359b1ec12b1d6849c59f9d319610b7f20ef990a6d454ab151aa0e3b9f78ca", size = 43472 },
@@ -1082,70 +1007,59 @@ wheels = [
[[package]]
name = "numpy"
-version = "2.3.3"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/d0/19/95b3d357407220ed24c139018d2518fab0a61a948e68286a25f1a4d049ff/numpy-2.3.3.tar.gz", hash = "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", size = 20576648 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/51/5d/bb7fc075b762c96329147799e1bcc9176ab07ca6375ea976c475482ad5b3/numpy-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cfdd09f9c84a1a934cde1eec2267f0a43a7cd44b2cca4ff95b7c0d14d144b0bf", size = 20957014 },
- { url = "https://files.pythonhosted.org/packages/6b/0e/c6211bb92af26517acd52125a237a92afe9c3124c6a68d3b9f81b62a0568/numpy-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb32e3cf0f762aee47ad1ddc6672988f7f27045b0783c887190545baba73aa25", size = 14185220 },
- { url = "https://files.pythonhosted.org/packages/22/f2/07bb754eb2ede9073f4054f7c0286b0d9d2e23982e090a80d478b26d35ca/numpy-2.3.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:396b254daeb0a57b1fe0ecb5e3cff6fa79a380fa97c8f7781a6d08cd429418fe", size = 5113918 },
- { url = "https://files.pythonhosted.org/packages/81/0a/afa51697e9fb74642f231ea36aca80fa17c8fb89f7a82abd5174023c3960/numpy-2.3.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:067e3d7159a5d8f8a0b46ee11148fc35ca9b21f61e3c49fbd0a027450e65a33b", size = 6647922 },
- { url = "https://files.pythonhosted.org/packages/5d/f5/122d9cdb3f51c520d150fef6e87df9279e33d19a9611a87c0d2cf78a89f4/numpy-2.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c02d0629d25d426585fb2e45a66154081b9fa677bc92a881ff1d216bc9919a8", size = 14281991 },
- { url = "https://files.pythonhosted.org/packages/51/64/7de3c91e821a2debf77c92962ea3fe6ac2bc45d0778c1cbe15d4fce2fd94/numpy-2.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20", size = 16641643 },
- { url = "https://files.pythonhosted.org/packages/30/e4/961a5fa681502cd0d68907818b69f67542695b74e3ceaa513918103b7e80/numpy-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cd7de500a5b66319db419dc3c345244404a164beae0d0937283b907d8152e6ea", size = 16056787 },
- { url = "https://files.pythonhosted.org/packages/99/26/92c912b966e47fbbdf2ad556cb17e3a3088e2e1292b9833be1dfa5361a1a/numpy-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93d4962d8f82af58f0b2eb85daaf1b3ca23fe0a85d0be8f1f2b7bb46034e56d7", size = 18579598 },
- { url = "https://files.pythonhosted.org/packages/17/b6/fc8f82cb3520768718834f310c37d96380d9dc61bfdaf05fe5c0b7653e01/numpy-2.3.3-cp312-cp312-win32.whl", hash = "sha256:5534ed6b92f9b7dca6c0a19d6df12d41c68b991cef051d108f6dbff3babc4ebf", size = 6320800 },
- { url = "https://files.pythonhosted.org/packages/32/ee/de999f2625b80d043d6d2d628c07d0d5555a677a3cf78fdf868d409b8766/numpy-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:497d7cad08e7092dba36e3d296fe4c97708c93daf26643a1ae4b03f6294d30eb", size = 12786615 },
- { url = "https://files.pythonhosted.org/packages/49/6e/b479032f8a43559c383acb20816644f5f91c88f633d9271ee84f3b3a996c/numpy-2.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:ca0309a18d4dfea6fc6262a66d06c26cfe4640c3926ceec90e57791a82b6eee5", size = 10195936 },
- { url = "https://files.pythonhosted.org/packages/7d/b9/984c2b1ee61a8b803bf63582b4ac4242cf76e2dbd663efeafcb620cc0ccb/numpy-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f5415fb78995644253370985342cd03572ef8620b934da27d77377a2285955bf", size = 20949588 },
- { url = "https://files.pythonhosted.org/packages/a6/e4/07970e3bed0b1384d22af1e9912527ecbeb47d3b26e9b6a3bced068b3bea/numpy-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7", size = 14177802 },
- { url = "https://files.pythonhosted.org/packages/35/c7/477a83887f9de61f1203bad89cf208b7c19cc9fef0cebef65d5a1a0619f2/numpy-2.3.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9dc13c6a5829610cc07422bc74d3ac083bd8323f14e2827d992f9e52e22cd6a6", size = 5106537 },
- { url = "https://files.pythonhosted.org/packages/52/47/93b953bd5866a6f6986344d045a207d3f1cfbad99db29f534ea9cee5108c/numpy-2.3.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d79715d95f1894771eb4e60fb23f065663b2298f7d22945d66877aadf33d00c7", size = 6640743 },
- { url = "https://files.pythonhosted.org/packages/23/83/377f84aaeb800b64c0ef4de58b08769e782edcefa4fea712910b6f0afd3c/numpy-2.3.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952cfd0748514ea7c3afc729a0fc639e61655ce4c55ab9acfab14bda4f402b4c", size = 14278881 },
- { url = "https://files.pythonhosted.org/packages/9a/a5/bf3db6e66c4b160d6ea10b534c381a1955dfab34cb1017ea93aa33c70ed3/numpy-2.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b83648633d46f77039c29078751f80da65aa64d5622a3cd62aaef9d835b6c93", size = 16636301 },
- { url = "https://files.pythonhosted.org/packages/a2/59/1287924242eb4fa3f9b3a2c30400f2e17eb2707020d1c5e3086fe7330717/numpy-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b001bae8cea1c7dfdb2ae2b017ed0a6f2102d7a70059df1e338e307a4c78a8ae", size = 16053645 },
- { url = "https://files.pythonhosted.org/packages/e6/93/b3d47ed882027c35e94ac2320c37e452a549f582a5e801f2d34b56973c97/numpy-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e9aced64054739037d42fb84c54dd38b81ee238816c948c8f3ed134665dcd86", size = 18578179 },
- { url = "https://files.pythonhosted.org/packages/20/d9/487a2bccbf7cc9d4bfc5f0f197761a5ef27ba870f1e3bbb9afc4bbe3fcc2/numpy-2.3.3-cp313-cp313-win32.whl", hash = "sha256:9591e1221db3f37751e6442850429b3aabf7026d3b05542d102944ca7f00c8a8", size = 6312250 },
- { url = "https://files.pythonhosted.org/packages/1b/b5/263ebbbbcede85028f30047eab3d58028d7ebe389d6493fc95ae66c636ab/numpy-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f0dadeb302887f07431910f67a14d57209ed91130be0adea2f9793f1a4f817cf", size = 12783269 },
- { url = "https://files.pythonhosted.org/packages/fa/75/67b8ca554bbeaaeb3fac2e8bce46967a5a06544c9108ec0cf5cece559b6c/numpy-2.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:3c7cf302ac6e0b76a64c4aecf1a09e51abd9b01fc7feee80f6c43e3ab1b1dbc5", size = 10195314 },
- { url = "https://files.pythonhosted.org/packages/11/d0/0d1ddec56b162042ddfafeeb293bac672de9b0cfd688383590090963720a/numpy-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:eda59e44957d272846bb407aad19f89dc6f58fecf3504bd144f4c5cf81a7eacc", size = 21048025 },
- { url = "https://files.pythonhosted.org/packages/36/9e/1996ca6b6d00415b6acbdd3c42f7f03ea256e2c3f158f80bd7436a8a19f3/numpy-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:823d04112bc85ef5c4fda73ba24e6096c8f869931405a80aa8b0e604510a26bc", size = 14301053 },
- { url = "https://files.pythonhosted.org/packages/05/24/43da09aa764c68694b76e84b3d3f0c44cb7c18cdc1ba80e48b0ac1d2cd39/numpy-2.3.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:40051003e03db4041aa325da2a0971ba41cf65714e65d296397cc0e32de6018b", size = 5229444 },
- { url = "https://files.pythonhosted.org/packages/bc/14/50ffb0f22f7218ef8af28dd089f79f68289a7a05a208db9a2c5dcbe123c1/numpy-2.3.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ee9086235dd6ab7ae75aba5662f582a81ced49f0f1c6de4260a78d8f2d91a19", size = 6738039 },
- { url = "https://files.pythonhosted.org/packages/55/52/af46ac0795e09657d45a7f4db961917314377edecf66db0e39fa7ab5c3d3/numpy-2.3.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94fcaa68757c3e2e668ddadeaa86ab05499a70725811e582b6a9858dd472fb30", size = 14352314 },
- { url = "https://files.pythonhosted.org/packages/a7/b1/dc226b4c90eb9f07a3fff95c2f0db3268e2e54e5cce97c4ac91518aee71b/numpy-2.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da1a74b90e7483d6ce5244053399a614b1d6b7bc30a60d2f570e5071f8959d3e", size = 16701722 },
- { url = "https://files.pythonhosted.org/packages/9d/9d/9d8d358f2eb5eced14dba99f110d83b5cd9a4460895230f3b396ad19a323/numpy-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2990adf06d1ecee3b3dcbb4977dfab6e9f09807598d647f04d385d29e7a3c3d3", size = 16132755 },
- { url = "https://files.pythonhosted.org/packages/b6/27/b3922660c45513f9377b3fb42240bec63f203c71416093476ec9aa0719dc/numpy-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ed635ff692483b8e3f0fcaa8e7eb8a75ee71aa6d975388224f70821421800cea", size = 18651560 },
- { url = "https://files.pythonhosted.org/packages/5b/8e/3ab61a730bdbbc201bb245a71102aa609f0008b9ed15255500a99cd7f780/numpy-2.3.3-cp313-cp313t-win32.whl", hash = "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", size = 6442776 },
- { url = "https://files.pythonhosted.org/packages/1c/3a/e22b766b11f6030dc2decdeff5c2fb1610768055603f9f3be88b6d192fb2/numpy-2.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", size = 12927281 },
- { url = "https://files.pythonhosted.org/packages/7b/42/c2e2bc48c5e9b2a83423f99733950fbefd86f165b468a3d85d52b30bf782/numpy-2.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", size = 10265275 },
- { url = "https://files.pythonhosted.org/packages/6b/01/342ad585ad82419b99bcf7cebe99e61da6bedb89e213c5fd71acc467faee/numpy-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", size = 20951527 },
- { url = "https://files.pythonhosted.org/packages/ef/d8/204e0d73fc1b7a9ee80ab1fe1983dd33a4d64a4e30a05364b0208e9a241a/numpy-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", size = 14186159 },
- { url = "https://files.pythonhosted.org/packages/22/af/f11c916d08f3a18fb8ba81ab72b5b74a6e42ead4c2846d270eb19845bf74/numpy-2.3.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", size = 5114624 },
- { url = "https://files.pythonhosted.org/packages/fb/11/0ed919c8381ac9d2ffacd63fd1f0c34d27e99cab650f0eb6f110e6ae4858/numpy-2.3.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", size = 6642627 },
- { url = "https://files.pythonhosted.org/packages/ee/83/deb5f77cb0f7ba6cb52b91ed388b47f8f3c2e9930d4665c600408d9b90b9/numpy-2.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", size = 14296926 },
- { url = "https://files.pythonhosted.org/packages/77/cc/70e59dcb84f2b005d4f306310ff0a892518cc0c8000a33d0e6faf7ca8d80/numpy-2.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", size = 16638958 },
- { url = "https://files.pythonhosted.org/packages/b6/5a/b2ab6c18b4257e099587d5b7f903317bd7115333ad8d4ec4874278eafa61/numpy-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", size = 16071920 },
- { url = "https://files.pythonhosted.org/packages/b8/f1/8b3fdc44324a259298520dd82147ff648979bed085feeacc1250ef1656c0/numpy-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", size = 18577076 },
- { url = "https://files.pythonhosted.org/packages/f0/a1/b87a284fb15a42e9274e7fcea0dad259d12ddbf07c1595b26883151ca3b4/numpy-2.3.3-cp314-cp314-win32.whl", hash = "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", size = 6366952 },
- { url = "https://files.pythonhosted.org/packages/70/5f/1816f4d08f3b8f66576d8433a66f8fa35a5acfb3bbd0bf6c31183b003f3d/numpy-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", size = 12919322 },
- { url = "https://files.pythonhosted.org/packages/8c/de/072420342e46a8ea41c324a555fa90fcc11637583fb8df722936aed1736d/numpy-2.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", size = 10478630 },
- { url = "https://files.pythonhosted.org/packages/d5/df/ee2f1c0a9de7347f14da5dd3cd3c3b034d1b8607ccb6883d7dd5c035d631/numpy-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", size = 21047987 },
- { url = "https://files.pythonhosted.org/packages/d6/92/9453bdc5a4e9e69cf4358463f25e8260e2ffc126d52e10038b9077815989/numpy-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", size = 14301076 },
- { url = "https://files.pythonhosted.org/packages/13/77/1447b9eb500f028bb44253105bd67534af60499588a5149a94f18f2ca917/numpy-2.3.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", size = 5229491 },
- { url = "https://files.pythonhosted.org/packages/3d/f9/d72221b6ca205f9736cb4b2ce3b002f6e45cd67cd6a6d1c8af11a2f0b649/numpy-2.3.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", size = 6737913 },
- { url = "https://files.pythonhosted.org/packages/3c/5f/d12834711962ad9c46af72f79bb31e73e416ee49d17f4c797f72c96b6ca5/numpy-2.3.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", size = 14352811 },
- { url = "https://files.pythonhosted.org/packages/a1/0d/fdbec6629d97fd1bebed56cd742884e4eead593611bbe1abc3eb40d304b2/numpy-2.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", size = 16702689 },
- { url = "https://files.pythonhosted.org/packages/9b/09/0a35196dc5575adde1eb97ddfbc3e1687a814f905377621d18ca9bc2b7dd/numpy-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", size = 16133855 },
- { url = "https://files.pythonhosted.org/packages/7a/ca/c9de3ea397d576f1b6753eaa906d4cdef1bf97589a6d9825a349b4729cc2/numpy-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", size = 18652520 },
- { url = "https://files.pythonhosted.org/packages/fd/c2/e5ed830e08cd0196351db55db82f65bc0ab05da6ef2b72a836dcf1936d2f/numpy-2.3.3-cp314-cp314t-win32.whl", hash = "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", size = 6515371 },
- { url = "https://files.pythonhosted.org/packages/47/c7/b0f6b5b67f6788a0725f744496badbb604d226bf233ba716683ebb47b570/numpy-2.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", size = 13112576 },
- { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953 },
+version = "2.3.4"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/098d2270d52b41f1bd7db9fc288aaa0400cb48c2a3e2af6fa365d9720947/numpy-2.3.4.tar.gz", hash = "sha256:a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a", size = 20582187 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/57/7e/b72610cc91edf138bc588df5150957a4937221ca6058b825b4725c27be62/numpy-2.3.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c090d4860032b857d94144d1a9976b8e36709e40386db289aaf6672de2a81966", size = 20950335 },
+ { url = "https://files.pythonhosted.org/packages/3e/46/bdd3370dcea2f95ef14af79dbf81e6927102ddf1cc54adc0024d61252fd9/numpy-2.3.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a13fc473b6db0be619e45f11f9e81260f7302f8d180c49a22b6e6120022596b3", size = 14179878 },
+ { url = "https://files.pythonhosted.org/packages/ac/01/5a67cb785bda60f45415d09c2bc245433f1c68dd82eef9c9002c508b5a65/numpy-2.3.4-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:3634093d0b428e6c32c3a69b78e554f0cd20ee420dcad5a9f3b2a63762ce4197", size = 5108673 },
+ { url = "https://files.pythonhosted.org/packages/c2/cd/8428e23a9fcebd33988f4cb61208fda832800ca03781f471f3727a820704/numpy-2.3.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:043885b4f7e6e232d7df4f51ffdef8c36320ee9d5f227b380ea636722c7ed12e", size = 6641438 },
+ { url = "https://files.pythonhosted.org/packages/3e/d1/913fe563820f3c6b079f992458f7331278dcd7ba8427e8e745af37ddb44f/numpy-2.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ee6a571d1e4f0ea6d5f22d6e5fbd6ed1dc2b18542848e1e7301bd190500c9d7", size = 14281290 },
+ { url = "https://files.pythonhosted.org/packages/9e/7e/7d306ff7cb143e6d975cfa7eb98a93e73495c4deabb7d1b5ecf09ea0fd69/numpy-2.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc8a63918b04b8571789688b2780ab2b4a33ab44bfe8ccea36d3eba51228c953", size = 16636543 },
+ { url = "https://files.pythonhosted.org/packages/47/6a/8cfc486237e56ccfb0db234945552a557ca266f022d281a2f577b98e955c/numpy-2.3.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:40cc556d5abbc54aabe2b1ae287042d7bdb80c08edede19f0c0afb36ae586f37", size = 16056117 },
+ { url = "https://files.pythonhosted.org/packages/b1/0e/42cb5e69ea901e06ce24bfcc4b5664a56f950a70efdcf221f30d9615f3f3/numpy-2.3.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ecb63014bb7f4ce653f8be7f1df8cbc6093a5a2811211770f6606cc92b5a78fd", size = 18577788 },
+ { url = "https://files.pythonhosted.org/packages/86/92/41c3d5157d3177559ef0a35da50f0cda7fa071f4ba2306dd36818591a5bc/numpy-2.3.4-cp313-cp313-win32.whl", hash = "sha256:e8370eb6925bb8c1c4264fec52b0384b44f675f191df91cbe0140ec9f0955646", size = 6282620 },
+ { url = "https://files.pythonhosted.org/packages/09/97/fd421e8bc50766665ad35536c2bb4ef916533ba1fdd053a62d96cc7c8b95/numpy-2.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:56209416e81a7893036eea03abcb91c130643eb14233b2515c90dcac963fe99d", size = 12784672 },
+ { url = "https://files.pythonhosted.org/packages/ad/df/5474fb2f74970ca8eb978093969b125a84cc3d30e47f82191f981f13a8a0/numpy-2.3.4-cp313-cp313-win_arm64.whl", hash = "sha256:a700a4031bc0fd6936e78a752eefb79092cecad2599ea9c8039c548bc097f9bc", size = 10196702 },
+ { url = "https://files.pythonhosted.org/packages/11/83/66ac031464ec1767ea3ed48ce40f615eb441072945e98693bec0bcd056cc/numpy-2.3.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:86966db35c4040fdca64f0816a1c1dd8dbd027d90fca5a57e00e1ca4cd41b879", size = 21049003 },
+ { url = "https://files.pythonhosted.org/packages/5f/99/5b14e0e686e61371659a1d5bebd04596b1d72227ce36eed121bb0aeab798/numpy-2.3.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:838f045478638b26c375ee96ea89464d38428c69170360b23a1a50fa4baa3562", size = 14302980 },
+ { url = "https://files.pythonhosted.org/packages/2c/44/e9486649cd087d9fc6920e3fc3ac2aba10838d10804b1e179fb7cbc4e634/numpy-2.3.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d7315ed1dab0286adca467377c8381cd748f3dc92235f22a7dfc42745644a96a", size = 5231472 },
+ { url = "https://files.pythonhosted.org/packages/3e/51/902b24fa8887e5fe2063fd61b1895a476d0bbf46811ab0c7fdf4bd127345/numpy-2.3.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:84f01a4d18b2cc4ade1814a08e5f3c907b079c847051d720fad15ce37aa930b6", size = 6739342 },
+ { url = "https://files.pythonhosted.org/packages/34/f1/4de9586d05b1962acdcdb1dc4af6646361a643f8c864cef7c852bf509740/numpy-2.3.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:817e719a868f0dacde4abdfc5c1910b301877970195db9ab6a5e2c4bd5b121f7", size = 14354338 },
+ { url = "https://files.pythonhosted.org/packages/1f/06/1c16103b425de7969d5a76bdf5ada0804b476fed05d5f9e17b777f1cbefd/numpy-2.3.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85e071da78d92a214212cacea81c6da557cab307f2c34b5f85b628e94803f9c0", size = 16702392 },
+ { url = "https://files.pythonhosted.org/packages/34/b2/65f4dc1b89b5322093572b6e55161bb42e3e0487067af73627f795cc9d47/numpy-2.3.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2ec646892819370cf3558f518797f16597b4e4669894a2ba712caccc9da53f1f", size = 16134998 },
+ { url = "https://files.pythonhosted.org/packages/d4/11/94ec578896cdb973aaf56425d6c7f2aff4186a5c00fac15ff2ec46998b46/numpy-2.3.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:035796aaaddfe2f9664b9a9372f089cfc88bd795a67bd1bfe15e6e770934cf64", size = 18651574 },
+ { url = "https://files.pythonhosted.org/packages/62/b7/7efa763ab33dbccf56dade36938a77345ce8e8192d6b39e470ca25ff3cd0/numpy-2.3.4-cp313-cp313t-win32.whl", hash = "sha256:fea80f4f4cf83b54c3a051f2f727870ee51e22f0248d3114b8e755d160b38cfb", size = 6413135 },
+ { url = "https://files.pythonhosted.org/packages/43/70/aba4c38e8400abcc2f345e13d972fb36c26409b3e644366db7649015f291/numpy-2.3.4-cp313-cp313t-win_amd64.whl", hash = "sha256:15eea9f306b98e0be91eb344a94c0e630689ef302e10c2ce5f7e11905c704f9c", size = 12928582 },
+ { url = "https://files.pythonhosted.org/packages/67/63/871fad5f0073fc00fbbdd7232962ea1ac40eeaae2bba66c76214f7954236/numpy-2.3.4-cp313-cp313t-win_arm64.whl", hash = "sha256:b6c231c9c2fadbae4011ca5e7e83e12dc4a5072f1a1d85a0a7b3ed754d145a40", size = 10266691 },
+ { url = "https://files.pythonhosted.org/packages/72/71/ae6170143c115732470ae3a2d01512870dd16e0953f8a6dc89525696069b/numpy-2.3.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:81c3e6d8c97295a7360d367f9f8553973651b76907988bb6066376bc2252f24e", size = 20955580 },
+ { url = "https://files.pythonhosted.org/packages/af/39/4be9222ffd6ca8a30eda033d5f753276a9c3426c397bb137d8e19dedd200/numpy-2.3.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7c26b0b2bf58009ed1f38a641f3db4be8d960a417ca96d14e5b06df1506d41ff", size = 14188056 },
+ { url = "https://files.pythonhosted.org/packages/6c/3d/d85f6700d0a4aa4f9491030e1021c2b2b7421b2b38d01acd16734a2bfdc7/numpy-2.3.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:62b2198c438058a20b6704351b35a1d7db881812d8512d67a69c9de1f18ca05f", size = 5116555 },
+ { url = "https://files.pythonhosted.org/packages/bf/04/82c1467d86f47eee8a19a464c92f90a9bb68ccf14a54c5224d7031241ffb/numpy-2.3.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:9d729d60f8d53a7361707f4b68a9663c968882dd4f09e0d58c044c8bf5faee7b", size = 6643581 },
+ { url = "https://files.pythonhosted.org/packages/0c/d3/c79841741b837e293f48bd7db89d0ac7a4f2503b382b78a790ef1dc778a5/numpy-2.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd0c630cf256b0a7fd9d0a11c9413b42fef5101219ce6ed5a09624f5a65392c7", size = 14299186 },
+ { url = "https://files.pythonhosted.org/packages/e8/7e/4a14a769741fbf237eec5a12a2cbc7a4c4e061852b6533bcb9e9a796c908/numpy-2.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5e081bc082825f8b139f9e9fe42942cb4054524598aaeb177ff476cc76d09d2", size = 16638601 },
+ { url = "https://files.pythonhosted.org/packages/93/87/1c1de269f002ff0a41173fe01dcc925f4ecff59264cd8f96cf3b60d12c9b/numpy-2.3.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15fb27364ed84114438fff8aaf998c9e19adbeba08c0b75409f8c452a8692c52", size = 16074219 },
+ { url = "https://files.pythonhosted.org/packages/cd/28/18f72ee77408e40a76d691001ae599e712ca2a47ddd2c4f695b16c65f077/numpy-2.3.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:85d9fb2d8cd998c84d13a79a09cc0c1091648e848e4e6249b0ccd7f6b487fa26", size = 18576702 },
+ { url = "https://files.pythonhosted.org/packages/c3/76/95650169b465ececa8cf4b2e8f6df255d4bf662775e797ade2025cc51ae6/numpy-2.3.4-cp314-cp314-win32.whl", hash = "sha256:e73d63fd04e3a9d6bc187f5455d81abfad05660b212c8804bf3b407e984cd2bc", size = 6337136 },
+ { url = "https://files.pythonhosted.org/packages/dc/89/a231a5c43ede5d6f77ba4a91e915a87dea4aeea76560ba4d2bf185c683f0/numpy-2.3.4-cp314-cp314-win_amd64.whl", hash = "sha256:3da3491cee49cf16157e70f607c03a217ea6647b1cea4819c4f48e53d49139b9", size = 12920542 },
+ { url = "https://files.pythonhosted.org/packages/0d/0c/ae9434a888f717c5ed2ff2393b3f344f0ff6f1c793519fa0c540461dc530/numpy-2.3.4-cp314-cp314-win_arm64.whl", hash = "sha256:6d9cd732068e8288dbe2717177320723ccec4fb064123f0caf9bbd90ab5be868", size = 10480213 },
+ { url = "https://files.pythonhosted.org/packages/83/4b/c4a5f0841f92536f6b9592694a5b5f68c9ab37b775ff342649eadf9055d3/numpy-2.3.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:22758999b256b595cf0b1d102b133bb61866ba5ceecf15f759623b64c020c9ec", size = 21052280 },
+ { url = "https://files.pythonhosted.org/packages/3e/80/90308845fc93b984d2cc96d83e2324ce8ad1fd6efea81b324cba4b673854/numpy-2.3.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9cb177bc55b010b19798dc5497d540dea67fd13a8d9e882b2dae71de0cf09eb3", size = 14302930 },
+ { url = "https://files.pythonhosted.org/packages/3d/4e/07439f22f2a3b247cec4d63a713faae55e1141a36e77fb212881f7cda3fb/numpy-2.3.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0f2bcc76f1e05e5ab58893407c63d90b2029908fa41f9f1cc51eecce936c3365", size = 5231504 },
+ { url = "https://files.pythonhosted.org/packages/ab/de/1e11f2547e2fe3d00482b19721855348b94ada8359aef5d40dd57bfae9df/numpy-2.3.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8dc20bde86802df2ed8397a08d793da0ad7a5fd4ea3ac85d757bf5dd4ad7c252", size = 6739405 },
+ { url = "https://files.pythonhosted.org/packages/3b/40/8cd57393a26cebe2e923005db5134a946c62fa56a1087dc7c478f3e30837/numpy-2.3.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e199c087e2aa71c8f9ce1cb7a8e10677dc12457e7cc1be4798632da37c3e86e", size = 14354866 },
+ { url = "https://files.pythonhosted.org/packages/93/39/5b3510f023f96874ee6fea2e40dfa99313a00bf3ab779f3c92978f34aace/numpy-2.3.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85597b2d25ddf655495e2363fe044b0ae999b75bc4d630dc0d886484b03a5eb0", size = 16703296 },
+ { url = "https://files.pythonhosted.org/packages/41/0d/19bb163617c8045209c1996c4e427bccbc4bbff1e2c711f39203c8ddbb4a/numpy-2.3.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04a69abe45b49c5955923cf2c407843d1c85013b424ae8a560bba16c92fe44a0", size = 16136046 },
+ { url = "https://files.pythonhosted.org/packages/e2/c1/6dba12fdf68b02a21ac411c9df19afa66bed2540f467150ca64d246b463d/numpy-2.3.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e1708fac43ef8b419c975926ce1eaf793b0c13b7356cfab6ab0dc34c0a02ac0f", size = 18652691 },
+ { url = "https://files.pythonhosted.org/packages/f8/73/f85056701dbbbb910c51d846c58d29fd46b30eecd2b6ba760fc8b8a1641b/numpy-2.3.4-cp314-cp314t-win32.whl", hash = "sha256:863e3b5f4d9915aaf1b8ec79ae560ad21f0b8d5e3adc31e73126491bb86dee1d", size = 6485782 },
+ { url = "https://files.pythonhosted.org/packages/17/90/28fa6f9865181cb817c2471ee65678afa8a7e2a1fb16141473d5fa6bacc3/numpy-2.3.4-cp314-cp314t-win_amd64.whl", hash = "sha256:962064de37b9aef801d33bc579690f8bfe6c5e70e29b61783f60bcba838a14d6", size = 13113301 },
+ { url = "https://files.pythonhosted.org/packages/54/23/08c002201a8e7e1f9afba93b97deceb813252d9cfd0d3351caed123dcf97/numpy-2.3.4-cp314-cp314t-win_arm64.whl", hash = "sha256:8b5a9a39c45d852b62693d9b3f3e0fe052541f804296ff401a72a1b60edafb29", size = 10547532 },
]
[[package]]
name = "openai"
-version = "2.3.0"
+version = "2.7.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
@@ -1157,96 +1071,76 @@ dependencies = [
{ name = "tqdm" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/de/90/8f26554d24d63ed4f94d33c24271559863223a67e624f4d2e65ba8e48dca/openai-2.3.0.tar.gz", hash = "sha256:8d213ee5aaf91737faea2d7fc1cd608657a5367a18966372a3756ceaabfbd812", size = 589616 }
+sdist = { url = "https://files.pythonhosted.org/packages/51/a2/f4023c1e0c868a6a5854955b3374f17153388aed95e835af114a17eac95b/openai-2.7.1.tar.gz", hash = "sha256:df4d4a3622b2df3475ead8eb0fbb3c27fd1c070fa2e55d778ca4f40e0186c726", size = 595933 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9c/5b/4be258ff072ed8ee15f6bfd8d5a1a4618aa4704b127c0c5959212ad177d6/openai-2.3.0-py3-none-any.whl", hash = "sha256:a7aa83be6f7b0ab2e4d4d7bcaf36e3d790874c0167380c5d0afd0ed99a86bd7b", size = 999768 },
+ { url = "https://files.pythonhosted.org/packages/8c/74/6bfc3adc81f6c2cea4439f2a734c40e3a420703bbcdc539890096a732bbd/openai-2.7.1-py3-none-any.whl", hash = "sha256:2f2530354d94c59c614645a4662b9dab0a5b881c5cd767a8587398feac0c9021", size = 1008780 },
]
[[package]]
name = "orjson"
-version = "3.11.3"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/be/4d/8df5f83256a809c22c4d6792ce8d43bb503be0fb7a8e4da9025754b09658/orjson-3.11.3.tar.gz", hash = "sha256:1c0603b1d2ffcd43a411d64797a19556ef76958aef1c182f22dc30860152a98a", size = 5482394 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/3d/b0/a7edab2a00cdcb2688e1c943401cb3236323e7bfd2839815c6131a3742f4/orjson-3.11.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8c752089db84333e36d754c4baf19c0e1437012242048439c7e80eb0e6426e3b", size = 238259 },
- { url = "https://files.pythonhosted.org/packages/e1/c6/ff4865a9cc398a07a83342713b5932e4dc3cb4bf4bc04e8f83dedfc0d736/orjson-3.11.3-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:9b8761b6cf04a856eb544acdd82fc594b978f12ac3602d6374a7edb9d86fd2c2", size = 127633 },
- { url = "https://files.pythonhosted.org/packages/6e/e6/e00bea2d9472f44fe8794f523e548ce0ad51eb9693cf538a753a27b8bda4/orjson-3.11.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b13974dc8ac6ba22feaa867fc19135a3e01a134b4f7c9c28162fed4d615008a", size = 123061 },
- { url = "https://files.pythonhosted.org/packages/54/31/9fbb78b8e1eb3ac605467cb846e1c08d0588506028b37f4ee21f978a51d4/orjson-3.11.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f83abab5bacb76d9c821fd5c07728ff224ed0e52d7a71b7b3de822f3df04e15c", size = 127956 },
- { url = "https://files.pythonhosted.org/packages/36/88/b0604c22af1eed9f98d709a96302006915cfd724a7ebd27d6dd11c22d80b/orjson-3.11.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6fbaf48a744b94091a56c62897b27c31ee2da93d826aa5b207131a1e13d4064", size = 130790 },
- { url = "https://files.pythonhosted.org/packages/0e/9d/1c1238ae9fffbfed51ba1e507731b3faaf6b846126a47e9649222b0fd06f/orjson-3.11.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc779b4f4bba2847d0d2940081a7b6f7b5877e05408ffbb74fa1faf4a136c424", size = 132385 },
- { url = "https://files.pythonhosted.org/packages/a3/b5/c06f1b090a1c875f337e21dd71943bc9d84087f7cdf8c6e9086902c34e42/orjson-3.11.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd4b909ce4c50faa2192da6bb684d9848d4510b736b0611b6ab4020ea6fd2d23", size = 135305 },
- { url = "https://files.pythonhosted.org/packages/a0/26/5f028c7d81ad2ebbf84414ba6d6c9cac03f22f5cd0d01eb40fb2d6a06b07/orjson-3.11.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:524b765ad888dc5518bbce12c77c2e83dee1ed6b0992c1790cc5fb49bb4b6667", size = 132875 },
- { url = "https://files.pythonhosted.org/packages/fe/d4/b8df70d9cfb56e385bf39b4e915298f9ae6c61454c8154a0f5fd7efcd42e/orjson-3.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:84fd82870b97ae3cdcea9d8746e592b6d40e1e4d4527835fc520c588d2ded04f", size = 130940 },
- { url = "https://files.pythonhosted.org/packages/da/5e/afe6a052ebc1a4741c792dd96e9f65bf3939d2094e8b356503b68d48f9f5/orjson-3.11.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fbecb9709111be913ae6879b07bafd4b0785b44c1eb5cac8ac76da048b3885a1", size = 403852 },
- { url = "https://files.pythonhosted.org/packages/f8/90/7bbabafeb2ce65915e9247f14a56b29c9334003536009ef5b122783fe67e/orjson-3.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9dba358d55aee552bd868de348f4736ca5a4086d9a62e2bfbbeeb5629fe8b0cc", size = 146293 },
- { url = "https://files.pythonhosted.org/packages/27/b3/2d703946447da8b093350570644a663df69448c9d9330e5f1d9cce997f20/orjson-3.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eabcf2e84f1d7105f84580e03012270c7e97ecb1fb1618bda395061b2a84a049", size = 135470 },
- { url = "https://files.pythonhosted.org/packages/38/70/b14dcfae7aff0e379b0119c8a812f8396678919c431efccc8e8a0263e4d9/orjson-3.11.3-cp312-cp312-win32.whl", hash = "sha256:3782d2c60b8116772aea8d9b7905221437fdf53e7277282e8d8b07c220f96cca", size = 136248 },
- { url = "https://files.pythonhosted.org/packages/35/b8/9e3127d65de7fff243f7f3e53f59a531bf6bb295ebe5db024c2503cc0726/orjson-3.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:79b44319268af2eaa3e315b92298de9a0067ade6e6003ddaef72f8e0bedb94f1", size = 131437 },
- { url = "https://files.pythonhosted.org/packages/51/92/a946e737d4d8a7fd84a606aba96220043dcc7d6988b9e7551f7f6d5ba5ad/orjson-3.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:0e92a4e83341ef79d835ca21b8bd13e27c859e4e9e4d7b63defc6e58462a3710", size = 125978 },
- { url = "https://files.pythonhosted.org/packages/fc/79/8932b27293ad35919571f77cb3693b5906cf14f206ef17546052a241fdf6/orjson-3.11.3-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:af40c6612fd2a4b00de648aa26d18186cd1322330bd3a3cc52f87c699e995810", size = 238127 },
- { url = "https://files.pythonhosted.org/packages/1c/82/cb93cd8cf132cd7643b30b6c5a56a26c4e780c7a145db6f83de977b540ce/orjson-3.11.3-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:9f1587f26c235894c09e8b5b7636a38091a9e6e7fe4531937534749c04face43", size = 127494 },
- { url = "https://files.pythonhosted.org/packages/a4/b8/2d9eb181a9b6bb71463a78882bcac1027fd29cf62c38a40cc02fc11d3495/orjson-3.11.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61dcdad16da5bb486d7227a37a2e789c429397793a6955227cedbd7252eb5a27", size = 123017 },
- { url = "https://files.pythonhosted.org/packages/b4/14/a0e971e72d03b509190232356d54c0f34507a05050bd026b8db2bf2c192c/orjson-3.11.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11c6d71478e2cbea0a709e8a06365fa63da81da6498a53e4c4f065881d21ae8f", size = 127898 },
- { url = "https://files.pythonhosted.org/packages/8e/af/dc74536722b03d65e17042cc30ae586161093e5b1f29bccda24765a6ae47/orjson-3.11.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff94112e0098470b665cb0ed06efb187154b63649403b8d5e9aedeb482b4548c", size = 130742 },
- { url = "https://files.pythonhosted.org/packages/62/e6/7a3b63b6677bce089fe939353cda24a7679825c43a24e49f757805fc0d8a/orjson-3.11.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae8b756575aaa2a855a75192f356bbda11a89169830e1439cfb1a3e1a6dde7be", size = 132377 },
- { url = "https://files.pythonhosted.org/packages/fc/cd/ce2ab93e2e7eaf518f0fd15e3068b8c43216c8a44ed82ac2b79ce5cef72d/orjson-3.11.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9416cc19a349c167ef76135b2fe40d03cea93680428efee8771f3e9fb66079d", size = 135313 },
- { url = "https://files.pythonhosted.org/packages/d0/b4/f98355eff0bd1a38454209bbc73372ce351ba29933cb3e2eba16c04b9448/orjson-3.11.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b822caf5b9752bc6f246eb08124c3d12bf2175b66ab74bac2ef3bbf9221ce1b2", size = 132908 },
- { url = "https://files.pythonhosted.org/packages/eb/92/8f5182d7bc2a1bed46ed960b61a39af8389f0ad476120cd99e67182bfb6d/orjson-3.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:414f71e3bdd5573893bf5ecdf35c32b213ed20aa15536fe2f588f946c318824f", size = 130905 },
- { url = "https://files.pythonhosted.org/packages/1a/60/c41ca753ce9ffe3d0f67b9b4c093bdd6e5fdb1bc53064f992f66bb99954d/orjson-3.11.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:828e3149ad8815dc14468f36ab2a4b819237c155ee1370341b91ea4c8672d2ee", size = 403812 },
- { url = "https://files.pythonhosted.org/packages/dd/13/e4a4f16d71ce1868860db59092e78782c67082a8f1dc06a3788aef2b41bc/orjson-3.11.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac9e05f25627ffc714c21f8dfe3a579445a5c392a9c8ae7ba1d0e9fb5333f56e", size = 146277 },
- { url = "https://files.pythonhosted.org/packages/8d/8b/bafb7f0afef9344754a3a0597a12442f1b85a048b82108ef2c956f53babd/orjson-3.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e44fbe4000bd321d9f3b648ae46e0196d21577cf66ae684a96ff90b1f7c93633", size = 135418 },
- { url = "https://files.pythonhosted.org/packages/60/d4/bae8e4f26afb2c23bea69d2f6d566132584d1c3a5fe89ee8c17b718cab67/orjson-3.11.3-cp313-cp313-win32.whl", hash = "sha256:2039b7847ba3eec1f5886e75e6763a16e18c68a63efc4b029ddf994821e2e66b", size = 136216 },
- { url = "https://files.pythonhosted.org/packages/88/76/224985d9f127e121c8cad882cea55f0ebe39f97925de040b75ccd4b33999/orjson-3.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:29be5ac4164aa8bdcba5fa0700a3c9c316b411d8ed9d39ef8a882541bd452fae", size = 131362 },
- { url = "https://files.pythonhosted.org/packages/e2/cf/0dce7a0be94bd36d1346be5067ed65ded6adb795fdbe3abd234c8d576d01/orjson-3.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:18bd1435cb1f2857ceb59cfb7de6f92593ef7b831ccd1b9bfb28ca530e539dce", size = 125989 },
- { url = "https://files.pythonhosted.org/packages/ef/77/d3b1fef1fc6aaeed4cbf3be2b480114035f4df8fa1a99d2dac1d40d6e924/orjson-3.11.3-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:cf4b81227ec86935568c7edd78352a92e97af8da7bd70bdfdaa0d2e0011a1ab4", size = 238115 },
- { url = "https://files.pythonhosted.org/packages/e4/6d/468d21d49bb12f900052edcfbf52c292022d0a323d7828dc6376e6319703/orjson-3.11.3-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:bc8bc85b81b6ac9fc4dae393a8c159b817f4c2c9dee5d12b773bddb3b95fc07e", size = 127493 },
- { url = "https://files.pythonhosted.org/packages/67/46/1e2588700d354aacdf9e12cc2d98131fb8ac6f31ca65997bef3863edb8ff/orjson-3.11.3-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:88dcfc514cfd1b0de038443c7b3e6a9797ffb1b3674ef1fd14f701a13397f82d", size = 122998 },
- { url = "https://files.pythonhosted.org/packages/3b/94/11137c9b6adb3779f1b34fd98be51608a14b430dbc02c6d41134fbba484c/orjson-3.11.3-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d61cd543d69715d5fc0a690c7c6f8dcc307bc23abef9738957981885f5f38229", size = 132915 },
- { url = "https://files.pythonhosted.org/packages/10/61/dccedcf9e9bcaac09fdabe9eaee0311ca92115699500efbd31950d878833/orjson-3.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2b7b153ed90ababadbef5c3eb39549f9476890d339cf47af563aea7e07db2451", size = 130907 },
- { url = "https://files.pythonhosted.org/packages/0e/fd/0e935539aa7b08b3ca0f817d73034f7eb506792aae5ecc3b7c6e679cdf5f/orjson-3.11.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7909ae2460f5f494fecbcd10613beafe40381fd0316e35d6acb5f3a05bfda167", size = 403852 },
- { url = "https://files.pythonhosted.org/packages/4a/2b/50ae1a5505cd1043379132fdb2adb8a05f37b3e1ebffe94a5073321966fd/orjson-3.11.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:2030c01cbf77bc67bee7eef1e7e31ecf28649353987775e3583062c752da0077", size = 146309 },
- { url = "https://files.pythonhosted.org/packages/cd/1d/a473c158e380ef6f32753b5f39a69028b25ec5be331c2049a2201bde2e19/orjson-3.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a0169ebd1cbd94b26c7a7ad282cf5c2744fce054133f959e02eb5265deae1872", size = 135424 },
- { url = "https://files.pythonhosted.org/packages/da/09/17d9d2b60592890ff7382e591aa1d9afb202a266b180c3d4049b1ec70e4a/orjson-3.11.3-cp314-cp314-win32.whl", hash = "sha256:0c6d7328c200c349e3a4c6d8c83e0a5ad029bdc2d417f234152bf34842d0fc8d", size = 136266 },
- { url = "https://files.pythonhosted.org/packages/15/58/358f6846410a6b4958b74734727e582ed971e13d335d6c7ce3e47730493e/orjson-3.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:317bbe2c069bbc757b1a2e4105b64aacd3bc78279b66a6b9e51e846e4809f804", size = 131351 },
- { url = "https://files.pythonhosted.org/packages/28/01/d6b274a0635be0468d4dbd9cafe80c47105937a0d42434e805e67cd2ed8b/orjson-3.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:e8f6a7a27d7b7bec81bd5924163e9af03d49bbb63013f107b48eb5d16db711bc", size = 125985 },
+version = "3.11.4"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/c6/fe/ed708782d6709cc60eb4c2d8a361a440661f74134675c72990f2c48c785f/orjson-3.11.4.tar.gz", hash = "sha256:39485f4ab4c9b30a3943cfe99e1a213c4776fb69e8abd68f66b83d5a0b0fdc6d", size = 5945188 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/23/15/c52aa7112006b0f3d6180386c3a46ae057f932ab3425bc6f6ac50431cca1/orjson-3.11.4-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2d6737d0e616a6e053c8b4acc9eccea6b6cce078533666f32d140e4f85002534", size = 243525 },
+ { url = "https://files.pythonhosted.org/packages/ec/38/05340734c33b933fd114f161f25a04e651b0c7c33ab95e9416ade5cb44b8/orjson-3.11.4-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:afb14052690aa328cc118a8e09f07c651d301a72e44920b887c519b313d892ff", size = 128871 },
+ { url = "https://files.pythonhosted.org/packages/55/b9/ae8d34899ff0c012039b5a7cb96a389b2476e917733294e498586b45472d/orjson-3.11.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:38aa9e65c591febb1b0aed8da4d469eba239d434c218562df179885c94e1a3ad", size = 130055 },
+ { url = "https://files.pythonhosted.org/packages/33/aa/6346dd5073730451bee3681d901e3c337e7ec17342fb79659ec9794fc023/orjson-3.11.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f2cf4dfaf9163b0728d061bebc1e08631875c51cd30bf47cb9e3293bfbd7dcd5", size = 129061 },
+ { url = "https://files.pythonhosted.org/packages/39/e4/8eea51598f66a6c853c380979912d17ec510e8e66b280d968602e680b942/orjson-3.11.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89216ff3dfdde0e4070932e126320a1752c9d9a758d6a32ec54b3b9334991a6a", size = 136541 },
+ { url = "https://files.pythonhosted.org/packages/9a/47/cb8c654fa9adcc60e99580e17c32b9e633290e6239a99efa6b885aba9dbc/orjson-3.11.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9daa26ca8e97fae0ce8aa5d80606ef8f7914e9b129b6b5df9104266f764ce436", size = 137535 },
+ { url = "https://files.pythonhosted.org/packages/43/92/04b8cc5c2b729f3437ee013ce14a60ab3d3001465d95c184758f19362f23/orjson-3.11.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c8b2769dc31883c44a9cd126560327767f848eb95f99c36c9932f51090bfce9", size = 136703 },
+ { url = "https://files.pythonhosted.org/packages/aa/fd/d0733fcb9086b8be4ebcfcda2d0312865d17d0d9884378b7cffb29d0763f/orjson-3.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1469d254b9884f984026bd9b0fa5bbab477a4bfe558bba6848086f6d43eb5e73", size = 136293 },
+ { url = "https://files.pythonhosted.org/packages/c2/d7/3c5514e806837c210492d72ae30ccf050ce3f940f45bf085bab272699ef4/orjson-3.11.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:68e44722541983614e37117209a194e8c3ad07838ccb3127d96863c95ec7f1e0", size = 140131 },
+ { url = "https://files.pythonhosted.org/packages/9c/dd/ba9d32a53207babf65bd510ac4d0faaa818bd0df9a9c6f472fe7c254f2e3/orjson-3.11.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8e7805fda9672c12be2f22ae124dcd7b03928d6c197544fe12174b86553f3196", size = 406164 },
+ { url = "https://files.pythonhosted.org/packages/8e/f9/f68ad68f4af7c7bde57cd514eaa2c785e500477a8bc8f834838eb696a685/orjson-3.11.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:04b69c14615fb4434ab867bf6f38b2d649f6f300af30a6705397e895f7aec67a", size = 149859 },
+ { url = "https://files.pythonhosted.org/packages/b6/d2/7f847761d0c26818395b3d6b21fb6bc2305d94612a35b0a30eae65a22728/orjson-3.11.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:639c3735b8ae7f970066930e58cf0ed39a852d417c24acd4a25fc0b3da3c39a6", size = 139926 },
+ { url = "https://files.pythonhosted.org/packages/9f/37/acd14b12dc62db9a0e1d12386271b8661faae270b22492580d5258808975/orjson-3.11.4-cp313-cp313-win32.whl", hash = "sha256:6c13879c0d2964335491463302a6ca5ad98105fc5db3565499dcb80b1b4bd839", size = 136007 },
+ { url = "https://files.pythonhosted.org/packages/c0/a9/967be009ddf0a1fffd7a67de9c36656b28c763659ef91352acc02cbe364c/orjson-3.11.4-cp313-cp313-win_amd64.whl", hash = "sha256:09bf242a4af98732db9f9a1ec57ca2604848e16f132e3f72edfd3c5c96de009a", size = 131314 },
+ { url = "https://files.pythonhosted.org/packages/cb/db/399abd6950fbd94ce125cb8cd1a968def95174792e127b0642781e040ed4/orjson-3.11.4-cp313-cp313-win_arm64.whl", hash = "sha256:a85f0adf63319d6c1ba06fb0dbf997fced64a01179cf17939a6caca662bf92de", size = 126152 },
+ { url = "https://files.pythonhosted.org/packages/25/e3/54ff63c093cc1697e758e4fceb53164dd2661a7d1bcd522260ba09f54533/orjson-3.11.4-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:42d43a1f552be1a112af0b21c10a5f553983c2a0938d2bbb8ecd8bc9fb572803", size = 243501 },
+ { url = "https://files.pythonhosted.org/packages/ac/7d/e2d1076ed2e8e0ae9badca65bf7ef22710f93887b29eaa37f09850604e09/orjson-3.11.4-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:26a20f3fbc6c7ff2cb8e89c4c5897762c9d88cf37330c6a117312365d6781d54", size = 128862 },
+ { url = "https://files.pythonhosted.org/packages/9f/37/ca2eb40b90621faddfa9517dfe96e25f5ae4d8057a7c0cdd613c17e07b2c/orjson-3.11.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e3f20be9048941c7ffa8fc523ccbd17f82e24df1549d1d1fe9317712d19938e", size = 130047 },
+ { url = "https://files.pythonhosted.org/packages/c7/62/1021ed35a1f2bad9040f05fa4cc4f9893410df0ba3eaa323ccf899b1c90a/orjson-3.11.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aac364c758dc87a52e68e349924d7e4ded348dedff553889e4d9f22f74785316", size = 129073 },
+ { url = "https://files.pythonhosted.org/packages/e8/3f/f84d966ec2a6fd5f73b1a707e7cd876813422ae4bf9f0145c55c9c6a0f57/orjson-3.11.4-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5c54a6d76e3d741dcc3f2707f8eeb9ba2a791d3adbf18f900219b62942803b1", size = 136597 },
+ { url = "https://files.pythonhosted.org/packages/32/78/4fa0aeca65ee82bbabb49e055bd03fa4edea33f7c080c5c7b9601661ef72/orjson-3.11.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f28485bdca8617b79d44627f5fb04336897041dfd9fa66d383a49d09d86798bc", size = 137515 },
+ { url = "https://files.pythonhosted.org/packages/c1/9d/0c102e26e7fde40c4c98470796d050a2ec1953897e2c8ab0cb95b0759fa2/orjson-3.11.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bfc2a484cad3585e4ba61985a6062a4c2ed5c7925db6d39f1fa267c9d166487f", size = 136703 },
+ { url = "https://files.pythonhosted.org/packages/df/ac/2de7188705b4cdfaf0b6c97d2f7849c17d2003232f6e70df98602173f788/orjson-3.11.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e34dbd508cb91c54f9c9788923daca129fe5b55c5b4eebe713bf5ed3791280cf", size = 136311 },
+ { url = "https://files.pythonhosted.org/packages/e0/52/847fcd1a98407154e944feeb12e3b4d487a0e264c40191fb44d1269cbaa1/orjson-3.11.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b13c478fa413d4b4ee606ec8e11c3b2e52683a640b006bb586b3041c2ca5f606", size = 140127 },
+ { url = "https://files.pythonhosted.org/packages/c1/ae/21d208f58bdb847dd4d0d9407e2929862561841baa22bdab7aea10ca088e/orjson-3.11.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:724ca721ecc8a831b319dcd72cfa370cc380db0bf94537f08f7edd0a7d4e1780", size = 406201 },
+ { url = "https://files.pythonhosted.org/packages/8d/55/0789d6de386c8366059db098a628e2ad8798069e94409b0d8935934cbcb9/orjson-3.11.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:977c393f2e44845ce1b540e19a786e9643221b3323dae190668a98672d43fb23", size = 149872 },
+ { url = "https://files.pythonhosted.org/packages/cc/1d/7ff81ea23310e086c17b41d78a72270d9de04481e6113dbe2ac19118f7fb/orjson-3.11.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1e539e382cf46edec157ad66b0b0872a90d829a6b71f17cb633d6c160a223155", size = 139931 },
+ { url = "https://files.pythonhosted.org/packages/77/92/25b886252c50ed64be68c937b562b2f2333b45afe72d53d719e46a565a50/orjson-3.11.4-cp314-cp314-win32.whl", hash = "sha256:d63076d625babab9db5e7836118bdfa086e60f37d8a174194ae720161eb12394", size = 136065 },
+ { url = "https://files.pythonhosted.org/packages/63/b8/718eecf0bb7e9d64e4956afaafd23db9f04c776d445f59fe94f54bdae8f0/orjson-3.11.4-cp314-cp314-win_amd64.whl", hash = "sha256:0a54d6635fa3aaa438ae32e8570b9f0de36f3f6562c308d2a2a452e8b0592db1", size = 131310 },
+ { url = "https://files.pythonhosted.org/packages/1a/bf/def5e25d4d8bfce296a9a7c8248109bf58622c21618b590678f945a2c59c/orjson-3.11.4-cp314-cp314-win_arm64.whl", hash = "sha256:78b999999039db3cf58f6d230f524f04f75f129ba3d1ca2ed121f8657e575d3d", size = 126151 },
]
[[package]]
name = "ormsgpack"
-version = "1.11.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/65/f8/224c342c0e03e131aaa1a1f19aa2244e167001783a433f4eed10eedd834b/ormsgpack-1.11.0.tar.gz", hash = "sha256:7c9988e78fedba3292541eb3bb274fa63044ef4da2ddb47259ea70c05dee4206", size = 49357 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/1e/16/2805ebfb3d2cbb6c661b5fae053960fc90a2611d0d93e2207e753e836117/ormsgpack-1.11.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3434d0c8d67de27d9010222de07fb6810fb9af3bb7372354ffa19257ac0eb83b", size = 368474 },
- { url = "https://files.pythonhosted.org/packages/6f/39/6afae47822dca0ce4465d894c0bbb860a850ce29c157882dbdf77a5dd26e/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2da5bd097e8dbfa4eb0d4ccfe79acd6f538dee4493579e2debfe4fc8f4ca89b", size = 195321 },
- { url = "https://files.pythonhosted.org/packages/f6/54/11eda6b59f696d2f16de469bfbe539c9f469c4b9eef5a513996b5879c6e9/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fdbaa0a5a8606a486960b60c24f2d5235d30ac7a8b98eeaea9854bffef14dc3d", size = 206036 },
- { url = "https://files.pythonhosted.org/packages/1e/86/890430f704f84c4699ddad61c595d171ea2fd77a51fbc106f83981e83939/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3682f24f800c1837017ee90ce321086b2cbaef88db7d4cdbbda1582aa6508159", size = 207615 },
- { url = "https://files.pythonhosted.org/packages/b6/b9/77383e16c991c0ecb772205b966fc68d9c519e0b5f9c3913283cbed30ffe/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fcca21202bb05ccbf3e0e92f560ee59b9331182e4c09c965a28155efbb134993", size = 377195 },
- { url = "https://files.pythonhosted.org/packages/20/e2/15f9f045d4947f3c8a5e0535259fddf027b17b1215367488b3565c573b9d/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c30e5c4655ba46152d722ec7468e8302195e6db362ec1ae2c206bc64f6030e43", size = 470960 },
- { url = "https://files.pythonhosted.org/packages/b8/61/403ce188c4c495bc99dff921a0ad3d9d352dd6d3c4b629f3638b7f0cf79b/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7138a341f9e2c08c59368f03d3be25e8b87b3baaf10d30fb1f6f6b52f3d47944", size = 381174 },
- { url = "https://files.pythonhosted.org/packages/14/a8/94c94bc48c68da4374870a851eea03fc5a45eb041182ad4c5ed9acfc05a4/ormsgpack-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:d4bd8589b78a11026d47f4edf13c1ceab9088bb12451f34396afe6497db28a27", size = 112314 },
- { url = "https://files.pythonhosted.org/packages/19/d0/aa4cf04f04e4cc180ce7a8d8ddb5a7f3af883329cbc59645d94d3ba157a5/ormsgpack-1.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:e5e746a1223e70f111d4001dab9585ac8639eee8979ca0c8db37f646bf2961da", size = 106072 },
- { url = "https://files.pythonhosted.org/packages/8b/35/e34722edb701d053cf2240f55974f17b7dbfd11fdef72bd2f1835bcebf26/ormsgpack-1.11.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e7b36ab7b45cb95217ae1f05f1318b14a3e5ef73cb00804c0f06233f81a14e8", size = 368502 },
- { url = "https://files.pythonhosted.org/packages/2f/6a/c2fc369a79d6aba2aa28c8763856c95337ac7fcc0b2742185cd19397212a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43402d67e03a9a35cc147c8c03f0c377cad016624479e1ee5b879b8425551484", size = 195344 },
- { url = "https://files.pythonhosted.org/packages/8b/6a/0f8e24b7489885534c1a93bdba7c7c434b9b8638713a68098867db9f254c/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:64fd992f932764d6306b70ddc755c1bc3405c4c6a69f77a36acf7af1c8f5ada4", size = 206045 },
- { url = "https://files.pythonhosted.org/packages/99/71/8b460ba264f3c6f82ef5b1920335720094e2bd943057964ce5287d6df83a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0362fb7fe4a29c046c8ea799303079a09372653a1ce5a5a588f3bbb8088368d0", size = 207641 },
- { url = "https://files.pythonhosted.org/packages/50/cf/f369446abaf65972424ed2651f2df2b7b5c3b735c93fc7fa6cfb81e34419/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:de2f7a65a9d178ed57be49eba3d0fc9b833c32beaa19dbd4ba56014d3c20b152", size = 377211 },
- { url = "https://files.pythonhosted.org/packages/2f/3f/948bb0047ce0f37c2efc3b9bb2bcfdccc61c63e0b9ce8088d4903ba39dcf/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:f38cfae95461466055af966fc922d06db4e1654966385cda2828653096db34da", size = 470973 },
- { url = "https://files.pythonhosted.org/packages/31/a4/92a8114d1d017c14aaa403445060f345df9130ca532d538094f38e535988/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c88396189d238f183cea7831b07a305ab5c90d6d29b53288ae11200bd956357b", size = 381161 },
- { url = "https://files.pythonhosted.org/packages/d0/64/5b76447da654798bfcfdfd64ea29447ff2b7f33fe19d0e911a83ad5107fc/ormsgpack-1.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:5403d1a945dd7c81044cebeca3f00a28a0f4248b33242a5d2d82111628043725", size = 112321 },
- { url = "https://files.pythonhosted.org/packages/46/5e/89900d06db9ab81e7ec1fd56a07c62dfbdcda398c435718f4252e1dc52a0/ormsgpack-1.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c57357b8d43b49722b876edf317bdad9e6d52071b523fdd7394c30cd1c67d5a0", size = 106084 },
- { url = "https://files.pythonhosted.org/packages/4c/0b/c659e8657085c8c13f6a0224789f422620cef506e26573b5434defe68483/ormsgpack-1.11.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d390907d90fd0c908211592c485054d7a80990697ef4dff4e436ac18e1aab98a", size = 368497 },
- { url = "https://files.pythonhosted.org/packages/1b/0e/451e5848c7ed56bd287e8a2b5cb5926e54466f60936e05aec6cb299f9143/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6153c2e92e789509098e04c9aa116b16673bd88ec78fbe0031deeb34ab642d10", size = 195385 },
- { url = "https://files.pythonhosted.org/packages/4c/28/90f78cbbe494959f2439c2ec571f08cd3464c05a6a380b0d621c622122a9/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c2b2c2a065a94d742212b2018e1fecd8f8d72f3c50b53a97d1f407418093446d", size = 206114 },
- { url = "https://files.pythonhosted.org/packages/fb/db/34163f4c0923bea32dafe42cd878dcc66795a3e85669bc4b01c1e2b92a7b/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:110e65b5340f3d7ef8b0009deae3c6b169437e6b43ad5a57fd1748085d29d2ac", size = 207679 },
- { url = "https://files.pythonhosted.org/packages/b6/14/04ee741249b16f380a9b4a0cc19d4134d0b7c74bab27a2117da09e525eb9/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c27e186fca96ab34662723e65b420919910acbbc50fc8e1a44e08f26268cb0e0", size = 377237 },
- { url = "https://files.pythonhosted.org/packages/89/ff/53e588a6aaa833237471caec679582c2950f0e7e1a8ba28c1511b465c1f4/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d56b1f877c13d499052d37a3db2378a97d5e1588d264f5040b3412aee23d742c", size = 471021 },
- { url = "https://files.pythonhosted.org/packages/a6/f9/f20a6d9ef2be04da3aad05e8f5699957e9a30c6d5c043a10a296afa7e890/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c88e28cd567c0a3269f624b4ade28142d5e502c8e826115093c572007af5be0a", size = 381205 },
- { url = "https://files.pythonhosted.org/packages/f8/64/96c07d084b479ac8b7821a77ffc8d3f29d8b5c95ebfdf8db1c03dff02762/ormsgpack-1.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:8811160573dc0a65f62f7e0792c4ca6b7108dfa50771edb93f9b84e2d45a08ae", size = 112374 },
- { url = "https://files.pythonhosted.org/packages/88/a5/5dcc18b818d50213a3cadfe336bb6163a102677d9ce87f3d2f1a1bee0f8c/ormsgpack-1.11.0-cp314-cp314-win_arm64.whl", hash = "sha256:23e30a8d3c17484cf74e75e6134322255bd08bc2b5b295cc9c442f4bae5f3c2d", size = 106056 },
- { url = "https://files.pythonhosted.org/packages/19/2b/776d1b411d2be50f77a6e6e94a25825cca55dcacfe7415fd691a144db71b/ormsgpack-1.11.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:2905816502adfaf8386a01dd85f936cd378d243f4f5ee2ff46f67f6298dc90d5", size = 368661 },
- { url = "https://files.pythonhosted.org/packages/a9/0c/81a19e6115b15764db3d241788f9fac093122878aaabf872cc545b0c4650/ormsgpack-1.11.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c04402fb9a0a9b9f18fbafd6d5f8398ee99b3ec619fb63952d3a954bc9d47daa", size = 195539 },
- { url = "https://files.pythonhosted.org/packages/97/86/e5b50247a61caec5718122feb2719ea9d451d30ac0516c288c1dbc6408e8/ormsgpack-1.11.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a025ec07ac52056ecfd9e57b5cbc6fff163f62cb9805012b56cda599157f8ef2", size = 207718 },
+version = "1.12.0"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/6c/67/d5ef41c3b4a94400be801984ef7c7fc9623e1a82b643e74eeec367e7462b/ormsgpack-1.12.0.tar.gz", hash = "sha256:94be818fdbb0285945839b88763b269987787cb2f7ef280cad5d6ec815b7e608", size = 49959 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/2e/e8/35f11ce9313111488b26b3035e4cbe55caa27909c0b6c8b5b5cd59f9661e/ormsgpack-1.12.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:766f2f3b512d85cd375b26a8b1329b99843560b50b93d3880718e634ad4a5de5", size = 369574 },
+ { url = "https://files.pythonhosted.org/packages/61/b0/77461587f412d4e598d3687bafe23455ed0f26269f44be20252eddaa624e/ormsgpack-1.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84b285b1f3f185aad7da45641b873b30acfd13084cf829cf668c4c6480a81583", size = 195893 },
+ { url = "https://files.pythonhosted.org/packages/c6/67/e197ceb04c3b550589e5407fc9fdae10f4e2e2eba5fdac921a269e02e974/ormsgpack-1.12.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e23604fc79fe110292cb365f4c8232e64e63a34f470538be320feae3921f271b", size = 206503 },
+ { url = "https://files.pythonhosted.org/packages/0b/b1/7fa8ba82a25cef678983c7976f85edeef5014f5c26495f338258e6a3cf1c/ormsgpack-1.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc32b156c113a0fae2975051417d8d9a7a5247c34b2d7239410c46b75ce9348a", size = 208257 },
+ { url = "https://files.pythonhosted.org/packages/ce/b1/759e999390000d2589e6d0797f7265e6ec28378547075d28d3736248ab63/ormsgpack-1.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:94ac500dd10c20fa8b8a23bc55606250bfe711bf9716828d9f3d44dfd1f25668", size = 377852 },
+ { url = "https://files.pythonhosted.org/packages/51/e7/0af737c94272494d9d84a3c29cc42c973ef7fd2342917020906596db863c/ormsgpack-1.12.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c5201ff7ec24f721f813a182885a17064cffdbe46b2412685a52e6374a872c8f", size = 471456 },
+ { url = "https://files.pythonhosted.org/packages/f4/ba/c81f0aa4f19fbf457213395945b672e6fde3ce777e3587456e7f0fca2147/ormsgpack-1.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a9740bb3839c9368aacae1cbcfc474ee6976458f41cc135372b7255d5206c953", size = 381813 },
+ { url = "https://files.pythonhosted.org/packages/ce/15/429c72d64323503fd42cc4ca8398930ded8aa8b3470df8a86b3bbae7a35c/ormsgpack-1.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ed37f29772432048b58174e920a1d4c4cde0404a5d448d3d8bbcc95d86a6918", size = 112949 },
+ { url = "https://files.pythonhosted.org/packages/55/b9/e72c451a40f8c57bfc229e0b8e536ecea7203c8f0a839676df2ffb605c62/ormsgpack-1.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:b03994bbec5d6d42e03d6604e327863f885bde67aa61e06107ce1fa5bdd3e71d", size = 106689 },
+ { url = "https://files.pythonhosted.org/packages/13/16/13eab1a75da531b359105fdee90dda0b6bd1ca0a09880250cf91d8bdfdea/ormsgpack-1.12.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0f3981ba3cba80656012090337e548e597799e14b41e3d0b595ab5ab05a23d7f", size = 369620 },
+ { url = "https://files.pythonhosted.org/packages/a0/c1/cbcc38b7af4ce58d8893e56d3595c0c8dcd117093bf048f889cf351bdba0/ormsgpack-1.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:901f6f55184d6776dbd5183cbce14caf05bf7f467eef52faf9b094686980bf71", size = 195925 },
+ { url = "https://files.pythonhosted.org/packages/5c/59/4fa4dc0681490e12b75333440a1c0fd9741b0ebff272b1db4a29d35c2021/ormsgpack-1.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e13b15412571422b711b40f45e3fe6d993ea3314b5e97d1a853fe99226c5effc", size = 206594 },
+ { url = "https://files.pythonhosted.org/packages/39/67/249770896bc32bb91b22c30256961f935d0915cbcf6e289a7fc961d9b14c/ormsgpack-1.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91fa8a452553a62e5fb3fbab471e7faf7b3bec3c87a2f355ebf3d7aab290fe4f", size = 208307 },
+ { url = "https://files.pythonhosted.org/packages/07/0a/e041a248cd72f2f4c07e155913e0a3ede4c86cf21a40ae6cd79f135f2847/ormsgpack-1.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:74ec101f69624695eec4ce7c953192d97748254abe78fb01b591f06d529e1952", size = 377844 },
+ { url = "https://files.pythonhosted.org/packages/d8/71/6f7773e4ffda73a358ce4bba69b3e8bee9d40a7a06315e4c1cd7a3ea9d02/ormsgpack-1.12.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:9bbf7896580848326c1f9bd7531f264e561f98db7e08e15aa75963d83832c717", size = 471572 },
+ { url = "https://files.pythonhosted.org/packages/65/29/af6769a4289c07acc71e7bda1d64fb31800563147d73142686e185e82348/ormsgpack-1.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7567917da613b8f8d591c1674e411fd3404bea41ef2b9a0e0a1e049c0f9406d7", size = 381842 },
+ { url = "https://files.pythonhosted.org/packages/0b/dd/0a86195ee7a1a96c088aefc8504385e881cf56f4563ed81bafe21cbf1fb0/ormsgpack-1.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e418256c5d8622b8bc92861936f7c6a0131355e7bcad88a42102ae8227f8a1c", size = 113008 },
+ { url = "https://files.pythonhosted.org/packages/4c/57/fafc79e32f3087f6f26f509d80b8167516326bfea38d30502627c01617e0/ormsgpack-1.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:433ace29aa02713554f714c62a4e4dcad0c9e32674ba4f66742c91a4c3b1b969", size = 106648 },
+ { url = "https://files.pythonhosted.org/packages/b3/cf/5d58d9b132128d2fe5d586355dde76af386554abef00d608f66b913bff1f/ormsgpack-1.12.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:e57164be4ca34b64e210ec515059193280ac84df4d6f31a6fcbfb2fc8436de55", size = 369803 },
+ { url = "https://files.pythonhosted.org/packages/67/42/968a2da361eaff2e4cbb17c82c7599787babf16684110ad70409646cc1e4/ormsgpack-1.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:904f96289deaa92fc6440b122edc27c5bdc28234edd63717f6d853d88c823a83", size = 195991 },
+ { url = "https://files.pythonhosted.org/packages/03/f0/9696c6c6cf8ad35170f0be8d0ef3523cc258083535f6c8071cb8235ebb8b/ormsgpack-1.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b291d086e524a1062d57d1b7b5a8bcaaf29caebf0212fec12fd86240bd33633", size = 208316 },
]
[[package]]
@@ -1264,21 +1158,6 @@ version = "0.4.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061 },
- { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037 },
- { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324 },
- { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505 },
- { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242 },
- { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474 },
- { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575 },
- { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736 },
- { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019 },
- { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376 },
- { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988 },
- { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615 },
- { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066 },
- { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655 },
- { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789 },
{ url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750 },
{ url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780 },
{ url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308 },
@@ -1356,16 +1235,17 @@ wheels = [
[[package]]
name = "protobuf"
-version = "6.32.1"
+version = "6.33.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/fa/a4/cc17347aa2897568beece2e674674359f911d6fe21b0b8d6268cd42727ac/protobuf-6.32.1.tar.gz", hash = "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d", size = 440635 }
+sdist = { url = "https://files.pythonhosted.org/packages/19/ff/64a6c8f420818bb873713988ca5492cba3a7946be57e027ac63495157d97/protobuf-6.33.0.tar.gz", hash = "sha256:140303d5c8d2037730c548f8c7b93b20bb1dc301be280c378b82b8894589c954", size = 443463 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c0/98/645183ea03ab3995d29086b8bf4f7562ebd3d10c9a4b14ee3f20d47cfe50/protobuf-6.32.1-cp310-abi3-win32.whl", hash = "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", size = 424411 },
- { url = "https://files.pythonhosted.org/packages/8c/f3/6f58f841f6ebafe076cebeae33fc336e900619d34b1c93e4b5c97a81fdfa/protobuf-6.32.1-cp310-abi3-win_amd64.whl", hash = "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", size = 435738 },
- { url = "https://files.pythonhosted.org/packages/10/56/a8a3f4e7190837139e68c7002ec749190a163af3e330f65d90309145a210/protobuf-6.32.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", size = 426454 },
- { url = "https://files.pythonhosted.org/packages/3f/be/8dd0a927c559b37d7a6c8ab79034fd167dcc1f851595f2e641ad62be8643/protobuf-6.32.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", size = 322874 },
- { url = "https://files.pythonhosted.org/packages/5c/f6/88d77011b605ef979aace37b7703e4eefad066f7e84d935e5a696515c2dd/protobuf-6.32.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", size = 322013 },
- { url = "https://files.pythonhosted.org/packages/97/b7/15cc7d93443d6c6a84626ae3258a91f4c6ac8c0edd5df35ea7658f71b79c/protobuf-6.32.1-py3-none-any.whl", hash = "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", size = 169289 },
+ { url = "https://files.pythonhosted.org/packages/7e/ee/52b3fa8feb6db4a833dfea4943e175ce645144532e8a90f72571ad85df4e/protobuf-6.33.0-cp310-abi3-win32.whl", hash = "sha256:d6101ded078042a8f17959eccd9236fb7a9ca20d3b0098bbcb91533a5680d035", size = 425593 },
+ { url = "https://files.pythonhosted.org/packages/7b/c6/7a465f1825872c55e0341ff4a80198743f73b69ce5d43ab18043699d1d81/protobuf-6.33.0-cp310-abi3-win_amd64.whl", hash = "sha256:9a031d10f703f03768f2743a1c403af050b6ae1f3480e9c140f39c45f81b13ee", size = 436882 },
+ { url = "https://files.pythonhosted.org/packages/e1/a9/b6eee662a6951b9c3640e8e452ab3e09f117d99fc10baa32d1581a0d4099/protobuf-6.33.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:905b07a65f1a4b72412314082c7dbfae91a9e8b68a0cc1577515f8df58ecf455", size = 427521 },
+ { url = "https://files.pythonhosted.org/packages/10/35/16d31e0f92c6d2f0e77c2a3ba93185130ea13053dd16200a57434c882f2b/protobuf-6.33.0-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:e0697ece353e6239b90ee43a9231318302ad8353c70e6e45499fa52396debf90", size = 324445 },
+ { url = "https://files.pythonhosted.org/packages/e6/eb/2a981a13e35cda8b75b5585aaffae2eb904f8f351bdd3870769692acbd8a/protobuf-6.33.0-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:e0a1715e4f27355afd9570f3ea369735afc853a6c3951a6afe1f80d8569ad298", size = 339159 },
+ { url = "https://files.pythonhosted.org/packages/21/51/0b1cbad62074439b867b4e04cc09b93f6699d78fd191bed2bbb44562e077/protobuf-6.33.0-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:35be49fd3f4fefa4e6e2aacc35e8b837d6703c37a2168a55ac21e9b1bc7559ef", size = 323172 },
+ { url = "https://files.pythonhosted.org/packages/07/d1/0a28c21707807c6aacd5dc9c3704b2aa1effbf37adebd8caeaf68b17a636/protobuf-6.33.0-py3-none-any.whl", hash = "sha256:25c9e1963c6734448ea2d308cfa610e692b801304ba0908d7bfa564ac5132995", size = 170477 },
]
[[package]]
@@ -1391,7 +1271,7 @@ wheels = [
[[package]]
name = "pydantic"
-version = "2.12.2"
+version = "2.12.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "annotated-types" },
@@ -1399,80 +1279,70 @@ dependencies = [
{ name = "typing-extensions" },
{ name = "typing-inspection" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/8d/35/d319ed522433215526689bad428a94058b6dd12190ce7ddd78618ac14b28/pydantic-2.12.2.tar.gz", hash = "sha256:7b8fa15b831a4bbde9d5b84028641ac3080a4ca2cbd4a621a661687e741624fd", size = 816358 }
+sdist = { url = "https://files.pythonhosted.org/packages/96/ad/a17bc283d7d81837c061c49e3eaa27a45991759a1b7eae1031921c6bd924/pydantic-2.12.4.tar.gz", hash = "sha256:0f8cb9555000a4b5b617f66bfd2566264c4984b27589d3b845685983e8ea85ac", size = 821038 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/6c/98/468cb649f208a6f1279448e6e5247b37ae79cf5e4041186f1e2ef3d16345/pydantic-2.12.2-py3-none-any.whl", hash = "sha256:25ff718ee909acd82f1ff9b1a4acfd781bb23ab3739adaa7144f19a6a4e231ae", size = 460628 },
+ { url = "https://files.pythonhosted.org/packages/82/2f/e68750da9b04856e2a7ec56fc6f034a5a79775e9b9a81882252789873798/pydantic-2.12.4-py3-none-any.whl", hash = "sha256:92d3d202a745d46f9be6df459ac5a064fdaa3c1c4cd8adcfa332ccf3c05f871e", size = 463400 },
]
[[package]]
name = "pydantic-core"
-version = "2.41.4"
+version = "2.41.5"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz", hash = "sha256:70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5", size = 457557 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/e9/81/d3b3e95929c4369d30b2a66a91db63c8ed0a98381ae55a45da2cd1cc1288/pydantic_core-2.41.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ab06d77e053d660a6faaf04894446df7b0a7e7aba70c2797465a0a1af00fc887", size = 2099043 },
- { url = "https://files.pythonhosted.org/packages/58/da/46fdac49e6717e3a94fc9201403e08d9d61aa7a770fab6190b8740749047/pydantic_core-2.41.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c53ff33e603a9c1179a9364b0a24694f183717b2e0da2b5ad43c316c956901b2", size = 1910699 },
- { url = "https://files.pythonhosted.org/packages/1e/63/4d948f1b9dd8e991a5a98b77dd66c74641f5f2e5225fee37994b2e07d391/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:304c54176af2c143bd181d82e77c15c41cbacea8872a2225dd37e6544dce9999", size = 1952121 },
- { url = "https://files.pythonhosted.org/packages/b2/a7/e5fc60a6f781fc634ecaa9ecc3c20171d238794cef69ae0af79ac11b89d7/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025ba34a4cf4fb32f917d5d188ab5e702223d3ba603be4d8aca2f82bede432a4", size = 2041590 },
- { url = "https://files.pythonhosted.org/packages/70/69/dce747b1d21d59e85af433428978a1893c6f8a7068fa2bb4a927fba7a5ff/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9f5f30c402ed58f90c70e12eff65547d3ab74685ffe8283c719e6bead8ef53f", size = 2219869 },
- { url = "https://files.pythonhosted.org/packages/83/6a/c070e30e295403bf29c4df1cb781317b6a9bac7cd07b8d3acc94d501a63c/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd96e5d15385d301733113bcaa324c8bcf111275b7675a9c6e88bfb19fc05e3b", size = 2345169 },
- { url = "https://files.pythonhosted.org/packages/f0/83/06d001f8043c336baea7fd202a9ac7ad71f87e1c55d8112c50b745c40324/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98f348cbb44fae6e9653c1055db7e29de67ea6a9ca03a5fa2c2e11a47cff0e47", size = 2070165 },
- { url = "https://files.pythonhosted.org/packages/14/0a/e567c2883588dd12bcbc110232d892cf385356f7c8a9910311ac997ab715/pydantic_core-2.41.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec22626a2d14620a83ca583c6f5a4080fa3155282718b6055c2ea48d3ef35970", size = 2189067 },
- { url = "https://files.pythonhosted.org/packages/f4/1d/3d9fca34273ba03c9b1c5289f7618bc4bd09c3ad2289b5420481aa051a99/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a95d4590b1f1a43bf33ca6d647b990a88f4a3824a8c4572c708f0b45a5290ed", size = 2132997 },
- { url = "https://files.pythonhosted.org/packages/52/70/d702ef7a6cd41a8afc61f3554922b3ed8d19dd54c3bd4bdbfe332e610827/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:f9672ab4d398e1b602feadcffcdd3af44d5f5e6ddc15bc7d15d376d47e8e19f8", size = 2307187 },
- { url = "https://files.pythonhosted.org/packages/68/4c/c06be6e27545d08b802127914156f38d10ca287a9e8489342793de8aae3c/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:84d8854db5f55fead3b579f04bda9a36461dab0730c5d570e1526483e7bb8431", size = 2305204 },
- { url = "https://files.pythonhosted.org/packages/b0/e5/35ae4919bcd9f18603419e23c5eaf32750224a89d41a8df1a3704b69f77e/pydantic_core-2.41.4-cp312-cp312-win32.whl", hash = "sha256:9be1c01adb2ecc4e464392c36d17f97e9110fbbc906bcbe1c943b5b87a74aabd", size = 1972536 },
- { url = "https://files.pythonhosted.org/packages/1e/c2/49c5bb6d2a49eb2ee3647a93e3dae7080c6409a8a7558b075027644e879c/pydantic_core-2.41.4-cp312-cp312-win_amd64.whl", hash = "sha256:d682cf1d22bab22a5be08539dca3d1593488a99998f9f412137bc323179067ff", size = 2031132 },
- { url = "https://files.pythonhosted.org/packages/06/23/936343dbcba6eec93f73e95eb346810fc732f71ba27967b287b66f7b7097/pydantic_core-2.41.4-cp312-cp312-win_arm64.whl", hash = "sha256:833eebfd75a26d17470b58768c1834dfc90141b7afc6eb0429c21fc5a21dcfb8", size = 1969483 },
- { url = "https://files.pythonhosted.org/packages/13/d0/c20adabd181a029a970738dfe23710b52a31f1258f591874fcdec7359845/pydantic_core-2.41.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:85e050ad9e5f6fe1004eec65c914332e52f429bc0ae12d6fa2092407a462c746", size = 2105688 },
- { url = "https://files.pythonhosted.org/packages/00/b6/0ce5c03cec5ae94cca220dfecddc453c077d71363b98a4bbdb3c0b22c783/pydantic_core-2.41.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7393f1d64792763a48924ba31d1e44c2cfbc05e3b1c2c9abb4ceeadd912cced", size = 1910807 },
- { url = "https://files.pythonhosted.org/packages/68/3e/800d3d02c8beb0b5c069c870cbb83799d085debf43499c897bb4b4aaff0d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94dab0940b0d1fb28bcab847adf887c66a27a40291eedf0b473be58761c9799a", size = 1956669 },
- { url = "https://files.pythonhosted.org/packages/60/a4/24271cc71a17f64589be49ab8bd0751f6a0a03046c690df60989f2f95c2c/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de7c42f897e689ee6f9e93c4bec72b99ae3b32a2ade1c7e4798e690ff5246e02", size = 2051629 },
- { url = "https://files.pythonhosted.org/packages/68/de/45af3ca2f175d91b96bfb62e1f2d2f1f9f3b14a734afe0bfeff079f78181/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:664b3199193262277b8b3cd1e754fb07f2c6023289c815a1e1e8fb415cb247b1", size = 2224049 },
- { url = "https://files.pythonhosted.org/packages/af/8f/ae4e1ff84672bf869d0a77af24fd78387850e9497753c432875066b5d622/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95b253b88f7d308b1c0b417c4624f44553ba4762816f94e6986819b9c273fb2", size = 2342409 },
- { url = "https://files.pythonhosted.org/packages/18/62/273dd70b0026a085c7b74b000394e1ef95719ea579c76ea2f0cc8893736d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1351f5bbdbbabc689727cb91649a00cb9ee7203e0a6e54e9f5ba9e22e384b84", size = 2069635 },
- { url = "https://files.pythonhosted.org/packages/30/03/cf485fff699b4cdaea469bc481719d3e49f023241b4abb656f8d422189fc/pydantic_core-2.41.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1affa4798520b148d7182da0615d648e752de4ab1a9566b7471bc803d88a062d", size = 2194284 },
- { url = "https://files.pythonhosted.org/packages/f9/7e/c8e713db32405dfd97211f2fc0a15d6bf8adb7640f3d18544c1f39526619/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7b74e18052fea4aa8dea2fb7dbc23d15439695da6cbe6cfc1b694af1115df09d", size = 2137566 },
- { url = "https://files.pythonhosted.org/packages/04/f7/db71fd4cdccc8b75990f79ccafbbd66757e19f6d5ee724a6252414483fb4/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:285b643d75c0e30abda9dc1077395624f314a37e3c09ca402d4015ef5979f1a2", size = 2316809 },
- { url = "https://files.pythonhosted.org/packages/76/63/a54973ddb945f1bca56742b48b144d85c9fc22f819ddeb9f861c249d5464/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f52679ff4218d713b3b33f88c89ccbf3a5c2c12ba665fb80ccc4192b4608dbab", size = 2311119 },
- { url = "https://files.pythonhosted.org/packages/f8/03/5d12891e93c19218af74843a27e32b94922195ded2386f7b55382f904d2f/pydantic_core-2.41.4-cp313-cp313-win32.whl", hash = "sha256:ecde6dedd6fff127c273c76821bb754d793be1024bc33314a120f83a3c69460c", size = 1981398 },
- { url = "https://files.pythonhosted.org/packages/be/d8/fd0de71f39db91135b7a26996160de71c073d8635edfce8b3c3681be0d6d/pydantic_core-2.41.4-cp313-cp313-win_amd64.whl", hash = "sha256:d081a1f3800f05409ed868ebb2d74ac39dd0c1ff6c035b5162356d76030736d4", size = 2030735 },
- { url = "https://files.pythonhosted.org/packages/72/86/c99921c1cf6650023c08bfab6fe2d7057a5142628ef7ccfa9921f2dda1d5/pydantic_core-2.41.4-cp313-cp313-win_arm64.whl", hash = "sha256:f8e49c9c364a7edcbe2a310f12733aad95b022495ef2a8d653f645e5d20c1564", size = 1973209 },
- { url = "https://files.pythonhosted.org/packages/36/0d/b5706cacb70a8414396efdda3d72ae0542e050b591119e458e2490baf035/pydantic_core-2.41.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ed97fd56a561f5eb5706cebe94f1ad7c13b84d98312a05546f2ad036bafe87f4", size = 1877324 },
- { url = "https://files.pythonhosted.org/packages/de/2d/cba1fa02cfdea72dfb3a9babb067c83b9dff0bbcb198368e000a6b756ea7/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a870c307bf1ee91fc58a9a61338ff780d01bfae45922624816878dce784095d2", size = 1884515 },
- { url = "https://files.pythonhosted.org/packages/07/ea/3df927c4384ed9b503c9cc2d076cf983b4f2adb0c754578dfb1245c51e46/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25e97bc1f5f8f7985bdc2335ef9e73843bb561eb1fa6831fdfc295c1c2061cf", size = 2042819 },
- { url = "https://files.pythonhosted.org/packages/6a/ee/df8e871f07074250270a3b1b82aad4cd0026b588acd5d7d3eb2fcb1471a3/pydantic_core-2.41.4-cp313-cp313t-win_amd64.whl", hash = "sha256:d405d14bea042f166512add3091c1af40437c2e7f86988f3915fabd27b1e9cd2", size = 1995866 },
- { url = "https://files.pythonhosted.org/packages/fc/de/b20f4ab954d6d399499c33ec4fafc46d9551e11dc1858fb7f5dca0748ceb/pydantic_core-2.41.4-cp313-cp313t-win_arm64.whl", hash = "sha256:19f3684868309db5263a11bace3c45d93f6f24afa2ffe75a647583df22a2ff89", size = 1970034 },
- { url = "https://files.pythonhosted.org/packages/54/28/d3325da57d413b9819365546eb9a6e8b7cbd9373d9380efd5f74326143e6/pydantic_core-2.41.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:e9205d97ed08a82ebb9a307e92914bb30e18cdf6f6b12ca4bedadb1588a0bfe1", size = 2102022 },
- { url = "https://files.pythonhosted.org/packages/9e/24/b58a1bc0d834bf1acc4361e61233ee217169a42efbdc15a60296e13ce438/pydantic_core-2.41.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:82df1f432b37d832709fbcc0e24394bba04a01b6ecf1ee87578145c19cde12ac", size = 1905495 },
- { url = "https://files.pythonhosted.org/packages/fb/a4/71f759cc41b7043e8ecdaab81b985a9b6cad7cec077e0b92cff8b71ecf6b/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3b4cc4539e055cfa39a3763c939f9d409eb40e85813257dcd761985a108554", size = 1956131 },
- { url = "https://files.pythonhosted.org/packages/b0/64/1e79ac7aa51f1eec7c4cda8cbe456d5d09f05fdd68b32776d72168d54275/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1eb1754fce47c63d2ff57fdb88c351a6c0150995890088b33767a10218eaa4e", size = 2052236 },
- { url = "https://files.pythonhosted.org/packages/e9/e3/a3ffc363bd4287b80f1d43dc1c28ba64831f8dfc237d6fec8f2661138d48/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6ab5ab30ef325b443f379ddb575a34969c333004fca5a1daa0133a6ffaad616", size = 2223573 },
- { url = "https://files.pythonhosted.org/packages/28/27/78814089b4d2e684a9088ede3790763c64693c3d1408ddc0a248bc789126/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31a41030b1d9ca497634092b46481b937ff9397a86f9f51bd41c4767b6fc04af", size = 2342467 },
- { url = "https://files.pythonhosted.org/packages/92/97/4de0e2a1159cb85ad737e03306717637842c88c7fd6d97973172fb183149/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a44ac1738591472c3d020f61c6df1e4015180d6262ebd39bf2aeb52571b60f12", size = 2063754 },
- { url = "https://files.pythonhosted.org/packages/0f/50/8cb90ce4b9efcf7ae78130afeb99fd1c86125ccdf9906ef64b9d42f37c25/pydantic_core-2.41.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d72f2b5e6e82ab8f94ea7d0d42f83c487dc159c5240d8f83beae684472864e2d", size = 2196754 },
- { url = "https://files.pythonhosted.org/packages/34/3b/ccdc77af9cd5082723574a1cc1bcae7a6acacc829d7c0a06201f7886a109/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:c4d1e854aaf044487d31143f541f7aafe7b482ae72a022c664b2de2e466ed0ad", size = 2137115 },
- { url = "https://files.pythonhosted.org/packages/ca/ba/e7c7a02651a8f7c52dc2cff2b64a30c313e3b57c7d93703cecea76c09b71/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b568af94267729d76e6ee5ececda4e283d07bbb28e8148bb17adad93d025d25a", size = 2317400 },
- { url = "https://files.pythonhosted.org/packages/2c/ba/6c533a4ee8aec6b812c643c49bb3bd88d3f01e3cebe451bb85512d37f00f/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6d55fb8b1e8929b341cc313a81a26e0d48aa3b519c1dbaadec3a6a2b4fcad025", size = 2312070 },
- { url = "https://files.pythonhosted.org/packages/22/ae/f10524fcc0ab8d7f96cf9a74c880243576fd3e72bd8ce4f81e43d22bcab7/pydantic_core-2.41.4-cp314-cp314-win32.whl", hash = "sha256:5b66584e549e2e32a1398df11da2e0a7eff45d5c2d9db9d5667c5e6ac764d77e", size = 1982277 },
- { url = "https://files.pythonhosted.org/packages/b4/dc/e5aa27aea1ad4638f0c3fb41132f7eb583bd7420ee63204e2d4333a3bbf9/pydantic_core-2.41.4-cp314-cp314-win_amd64.whl", hash = "sha256:557a0aab88664cc552285316809cab897716a372afaf8efdbef756f8b890e894", size = 2024608 },
- { url = "https://files.pythonhosted.org/packages/3e/61/51d89cc2612bd147198e120a13f150afbf0bcb4615cddb049ab10b81b79e/pydantic_core-2.41.4-cp314-cp314-win_arm64.whl", hash = "sha256:3f1ea6f48a045745d0d9f325989d8abd3f1eaf47dd00485912d1a3a63c623a8d", size = 1967614 },
- { url = "https://files.pythonhosted.org/packages/0d/c2/472f2e31b95eff099961fa050c376ab7156a81da194f9edb9f710f68787b/pydantic_core-2.41.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6c1fe4c5404c448b13188dd8bd2ebc2bdd7e6727fa61ff481bcc2cca894018da", size = 1876904 },
- { url = "https://files.pythonhosted.org/packages/4a/07/ea8eeb91173807ecdae4f4a5f4b150a520085b35454350fc219ba79e66a3/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:523e7da4d43b113bf8e7b49fa4ec0c35bf4fe66b2230bfc5c13cc498f12c6c3e", size = 1882538 },
- { url = "https://files.pythonhosted.org/packages/1e/29/b53a9ca6cd366bfc928823679c6a76c7a4c69f8201c0ba7903ad18ebae2f/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5729225de81fb65b70fdb1907fcf08c75d498f4a6f15af005aabb1fdadc19dfa", size = 2041183 },
- { url = "https://files.pythonhosted.org/packages/c7/3d/f8c1a371ceebcaf94d6dd2d77c6cf4b1c078e13a5837aee83f760b4f7cfd/pydantic_core-2.41.4-cp314-cp314t-win_amd64.whl", hash = "sha256:de2cfbb09e88f0f795fd90cf955858fc2c691df65b1f21f0aa00b99f3fbc661d", size = 1993542 },
- { url = "https://files.pythonhosted.org/packages/8a/ac/9fc61b4f9d079482a290afe8d206b8f490e9fd32d4fc03ed4fc698214e01/pydantic_core-2.41.4-cp314-cp314t-win_arm64.whl", hash = "sha256:d34f950ae05a83e0ede899c595f312ca976023ea1db100cd5aa188f7005e3ab0", size = 1973897 },
- { url = "https://files.pythonhosted.org/packages/b0/12/5ba58daa7f453454464f92b3ca7b9d7c657d8641c48e370c3ebc9a82dd78/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:a1b2cfec3879afb742a7b0bcfa53e4f22ba96571c9e54d6a3afe1052d17d843b", size = 2122139 },
- { url = "https://files.pythonhosted.org/packages/21/fb/6860126a77725c3108baecd10fd3d75fec25191d6381b6eb2ac660228eac/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:d175600d975b7c244af6eb9c9041f10059f20b8bbffec9e33fdd5ee3f67cdc42", size = 1936674 },
- { url = "https://files.pythonhosted.org/packages/de/be/57dcaa3ed595d81f8757e2b44a38240ac5d37628bce25fb20d02c7018776/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f184d657fa4947ae5ec9c47bd7e917730fa1cbb78195037e32dcbab50aca5ee", size = 1956398 },
- { url = "https://files.pythonhosted.org/packages/2f/1d/679a344fadb9695f1a6a294d739fbd21d71fa023286daeea8c0ed49e7c2b/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ed810568aeffed3edc78910af32af911c835cc39ebbfacd1f0ab5dd53028e5c", size = 2138674 },
- { url = "https://files.pythonhosted.org/packages/c4/48/ae937e5a831b7c0dc646b2ef788c27cd003894882415300ed21927c21efa/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:4f5d640aeebb438517150fdeec097739614421900e4a08db4a3ef38898798537", size = 2112087 },
- { url = "https://files.pythonhosted.org/packages/5e/db/6db8073e3d32dae017da7e0d16a9ecb897d0a4d92e00634916e486097961/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:4a9ab037b71927babc6d9e7fc01aea9e66dc2a4a34dff06ef0724a4049629f94", size = 1920387 },
- { url = "https://files.pythonhosted.org/packages/0d/c1/dd3542d072fcc336030d66834872f0328727e3b8de289c662faa04aa270e/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4dab9484ec605c3016df9ad4fd4f9a390bc5d816a3b10c6550f8424bb80b18c", size = 1951495 },
- { url = "https://files.pythonhosted.org/packages/2b/c6/db8d13a1f8ab3f1eb08c88bd00fd62d44311e3456d1e85c0e59e0a0376e7/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8a5028425820731d8c6c098ab642d7b8b999758e24acae03ed38a66eca8335", size = 2139008 },
+sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403 },
+ { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206 },
+ { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307 },
+ { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258 },
+ { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917 },
+ { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186 },
+ { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164 },
+ { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146 },
+ { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788 },
+ { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133 },
+ { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852 },
+ { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679 },
+ { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766 },
+ { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005 },
+ { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622 },
+ { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725 },
+ { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040 },
+ { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691 },
+ { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897 },
+ { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302 },
+ { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877 },
+ { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680 },
+ { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960 },
+ { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102 },
+ { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039 },
+ { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126 },
+ { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489 },
+ { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288 },
+ { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255 },
+ { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760 },
+ { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092 },
+ { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385 },
+ { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832 },
+ { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585 },
+ { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078 },
+ { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914 },
+ { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560 },
+ { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244 },
+ { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955 },
+ { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906 },
+ { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607 },
+ { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769 },
+ { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441 },
+ { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291 },
+ { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632 },
+ { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905 },
+ { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495 },
+ { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388 },
+ { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879 },
+ { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017 },
]
[[package]]
@@ -1491,11 +1361,11 @@ wheels = [
[[package]]
name = "python-dotenv"
-version = "1.1.1"
+version = "1.2.1"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978 }
+sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556 },
+ { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230 },
]
[[package]]
@@ -1504,16 +1374,6 @@ version = "6.0.3"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063 },
- { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973 },
- { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116 },
- { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011 },
- { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870 },
- { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089 },
- { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181 },
- { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658 },
- { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003 },
- { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344 },
{ url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669 },
{ url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252 },
{ url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081 },
@@ -1546,80 +1406,66 @@ wheels = [
[[package]]
name = "regex"
-version = "2025.9.18"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/49/d3/eaa0d28aba6ad1827ad1e716d9a93e1ba963ada61887498297d3da715133/regex-2025.9.18.tar.gz", hash = "sha256:c5ba23274c61c6fef447ba6a39333297d0c247f53059dba0bca415cac511edc4", size = 400917 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/b0/99/05859d87a66ae7098222d65748f11ef7f2dff51bfd7482a4e2256c90d72b/regex-2025.9.18-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:436e1b31d7efd4dcd52091d076482031c611dde58bf9c46ca6d0a26e33053a7e", size = 486335 },
- { url = "https://files.pythonhosted.org/packages/97/7e/d43d4e8b978890932cf7b0957fce58c5b08c66f32698f695b0c2c24a48bf/regex-2025.9.18-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c190af81e5576b9c5fdc708f781a52ff20f8b96386c6e2e0557a78402b029f4a", size = 289720 },
- { url = "https://files.pythonhosted.org/packages/bb/3b/ff80886089eb5dcf7e0d2040d9aaed539e25a94300403814bb24cc775058/regex-2025.9.18-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e4121f1ce2b2b5eec4b397cc1b277686e577e658d8f5870b7eb2d726bd2300ab", size = 287257 },
- { url = "https://files.pythonhosted.org/packages/ee/66/243edf49dd8720cba8d5245dd4d6adcb03a1defab7238598c0c97cf549b8/regex-2025.9.18-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:300e25dbbf8299d87205e821a201057f2ef9aa3deb29caa01cd2cac669e508d5", size = 797463 },
- { url = "https://files.pythonhosted.org/packages/df/71/c9d25a1142c70432e68bb03211d4a82299cd1c1fbc41db9409a394374ef5/regex-2025.9.18-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7b47fcf9f5316c0bdaf449e879407e1b9937a23c3b369135ca94ebc8d74b1742", size = 862670 },
- { url = "https://files.pythonhosted.org/packages/f8/8f/329b1efc3a64375a294e3a92d43372bf1a351aa418e83c21f2f01cf6ec41/regex-2025.9.18-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:57a161bd3acaa4b513220b49949b07e252165e6b6dc910ee7617a37ff4f5b425", size = 910881 },
- { url = "https://files.pythonhosted.org/packages/35/9e/a91b50332a9750519320ed30ec378b74c996f6befe282cfa6bb6cea7e9fd/regex-2025.9.18-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f130c3a7845ba42de42f380fff3c8aebe89a810747d91bcf56d40a069f15352", size = 802011 },
- { url = "https://files.pythonhosted.org/packages/a4/1d/6be3b8d7856b6e0d7ee7f942f437d0a76e0d5622983abbb6d21e21ab9a17/regex-2025.9.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f96fa342b6f54dcba928dd452e8d8cb9f0d63e711d1721cd765bb9f73bb048d", size = 786668 },
- { url = "https://files.pythonhosted.org/packages/cb/ce/4a60e53df58bd157c5156a1736d3636f9910bdcc271d067b32b7fcd0c3a8/regex-2025.9.18-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0f0d676522d68c207828dcd01fb6f214f63f238c283d9f01d85fc664c7c85b56", size = 856578 },
- { url = "https://files.pythonhosted.org/packages/86/e8/162c91bfe7217253afccde112868afb239f94703de6580fb235058d506a6/regex-2025.9.18-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:40532bff8a1a0621e7903ae57fce88feb2e8a9a9116d341701302c9302aef06e", size = 849017 },
- { url = "https://files.pythonhosted.org/packages/35/34/42b165bc45289646ea0959a1bc7531733e90b47c56a72067adfe6b3251f6/regex-2025.9.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:039f11b618ce8d71a1c364fdee37da1012f5a3e79b1b2819a9f389cd82fd6282", size = 788150 },
- { url = "https://files.pythonhosted.org/packages/79/5d/cdd13b1f3c53afa7191593a7ad2ee24092a5a46417725ffff7f64be8342d/regex-2025.9.18-cp312-cp312-win32.whl", hash = "sha256:e1dd06f981eb226edf87c55d523131ade7285137fbde837c34dc9d1bf309f459", size = 264536 },
- { url = "https://files.pythonhosted.org/packages/e0/f5/4a7770c9a522e7d2dc1fa3ffc83ab2ab33b0b22b447e62cffef186805302/regex-2025.9.18-cp312-cp312-win_amd64.whl", hash = "sha256:3d86b5247bf25fa3715e385aa9ff272c307e0636ce0c9595f64568b41f0a9c77", size = 275501 },
- { url = "https://files.pythonhosted.org/packages/df/05/9ce3e110e70d225ecbed455b966003a3afda5e58e8aec2964042363a18f4/regex-2025.9.18-cp312-cp312-win_arm64.whl", hash = "sha256:032720248cbeeae6444c269b78cb15664458b7bb9ed02401d3da59fe4d68c3a5", size = 268601 },
- { url = "https://files.pythonhosted.org/packages/d2/c7/5c48206a60ce33711cf7dcaeaed10dd737733a3569dc7e1dce324dd48f30/regex-2025.9.18-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a40f929cd907c7e8ac7566ac76225a77701a6221bca937bdb70d56cb61f57b2", size = 485955 },
- { url = "https://files.pythonhosted.org/packages/e9/be/74fc6bb19a3c491ec1ace943e622b5a8539068771e8705e469b2da2306a7/regex-2025.9.18-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c90471671c2cdf914e58b6af62420ea9ecd06d1554d7474d50133ff26ae88feb", size = 289583 },
- { url = "https://files.pythonhosted.org/packages/25/c4/9ceaa433cb5dc515765560f22a19578b95b92ff12526e5a259321c4fc1a0/regex-2025.9.18-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a351aff9e07a2dabb5022ead6380cff17a4f10e4feb15f9100ee56c4d6d06af", size = 287000 },
- { url = "https://files.pythonhosted.org/packages/7d/e6/68bc9393cb4dc68018456568c048ac035854b042bc7c33cb9b99b0680afa/regex-2025.9.18-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc4b8e9d16e20ddfe16430c23468a8707ccad3365b06d4536142e71823f3ca29", size = 797535 },
- { url = "https://files.pythonhosted.org/packages/6a/1c/ebae9032d34b78ecfe9bd4b5e6575b55351dc8513485bb92326613732b8c/regex-2025.9.18-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4b8cdbddf2db1c5e80338ba2daa3cfa3dec73a46fff2a7dda087c8efbf12d62f", size = 862603 },
- { url = "https://files.pythonhosted.org/packages/3b/74/12332c54b3882557a4bcd2b99f8be581f5c6a43cf1660a85b460dd8ff468/regex-2025.9.18-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a276937d9d75085b2c91fb48244349c6954f05ee97bba0963ce24a9d915b8b68", size = 910829 },
- { url = "https://files.pythonhosted.org/packages/86/70/ba42d5ed606ee275f2465bfc0e2208755b06cdabd0f4c7c4b614d51b57ab/regex-2025.9.18-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92a8e375ccdc1256401c90e9dc02b8642894443d549ff5e25e36d7cf8a80c783", size = 802059 },
- { url = "https://files.pythonhosted.org/packages/da/c5/fcb017e56396a7f2f8357412638d7e2963440b131a3ca549be25774b3641/regex-2025.9.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0dc6893b1f502d73037cf807a321cdc9be29ef3d6219f7970f842475873712ac", size = 786781 },
- { url = "https://files.pythonhosted.org/packages/c6/ee/21c4278b973f630adfb3bcb23d09d83625f3ab1ca6e40ebdffe69901c7a1/regex-2025.9.18-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a61e85bfc63d232ac14b015af1261f826260c8deb19401c0597dbb87a864361e", size = 856578 },
- { url = "https://files.pythonhosted.org/packages/87/0b/de51550dc7274324435c8f1539373ac63019b0525ad720132866fff4a16a/regex-2025.9.18-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1ef86a9ebc53f379d921fb9a7e42b92059ad3ee800fcd9e0fe6181090e9f6c23", size = 849119 },
- { url = "https://files.pythonhosted.org/packages/60/52/383d3044fc5154d9ffe4321696ee5b2ee4833a28c29b137c22c33f41885b/regex-2025.9.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d3bc882119764ba3a119fbf2bd4f1b47bc56c1da5d42df4ed54ae1e8e66fdf8f", size = 788219 },
- { url = "https://files.pythonhosted.org/packages/20/bd/2614fc302671b7359972ea212f0e3a92df4414aaeacab054a8ce80a86073/regex-2025.9.18-cp313-cp313-win32.whl", hash = "sha256:3810a65675845c3bdfa58c3c7d88624356dd6ee2fc186628295e0969005f928d", size = 264517 },
- { url = "https://files.pythonhosted.org/packages/07/0f/ab5c1581e6563a7bffdc1974fb2d25f05689b88e2d416525271f232b1946/regex-2025.9.18-cp313-cp313-win_amd64.whl", hash = "sha256:16eaf74b3c4180ede88f620f299e474913ab6924d5c4b89b3833bc2345d83b3d", size = 275481 },
- { url = "https://files.pythonhosted.org/packages/49/22/ee47672bc7958f8c5667a587c2600a4fba8b6bab6e86bd6d3e2b5f7cac42/regex-2025.9.18-cp313-cp313-win_arm64.whl", hash = "sha256:4dc98ba7dd66bd1261927a9f49bd5ee2bcb3660f7962f1ec02617280fc00f5eb", size = 268598 },
- { url = "https://files.pythonhosted.org/packages/e8/83/6887e16a187c6226cb85d8301e47d3b73ecc4505a3a13d8da2096b44fd76/regex-2025.9.18-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:fe5d50572bc885a0a799410a717c42b1a6b50e2f45872e2b40f4f288f9bce8a2", size = 489765 },
- { url = "https://files.pythonhosted.org/packages/51/c5/e2f7325301ea2916ff301c8d963ba66b1b2c1b06694191df80a9c4fea5d0/regex-2025.9.18-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b9d9a2d6cda6621551ca8cf7a06f103adf72831153f3c0d982386110870c4d3", size = 291228 },
- { url = "https://files.pythonhosted.org/packages/91/60/7d229d2bc6961289e864a3a3cfebf7d0d250e2e65323a8952cbb7e22d824/regex-2025.9.18-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:13202e4c4ac0ef9a317fff817674b293c8f7e8c68d3190377d8d8b749f566e12", size = 289270 },
- { url = "https://files.pythonhosted.org/packages/3c/d7/b4f06868ee2958ff6430df89857fbf3d43014bbf35538b6ec96c2704e15d/regex-2025.9.18-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:874ff523b0fecffb090f80ae53dc93538f8db954c8bb5505f05b7787ab3402a0", size = 806326 },
- { url = "https://files.pythonhosted.org/packages/d6/e4/bca99034a8f1b9b62ccf337402a8e5b959dd5ba0e5e5b2ead70273df3277/regex-2025.9.18-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d13ab0490128f2bb45d596f754148cd750411afc97e813e4b3a61cf278a23bb6", size = 871556 },
- { url = "https://files.pythonhosted.org/packages/6d/df/e06ffaf078a162f6dd6b101a5ea9b44696dca860a48136b3ae4a9caf25e2/regex-2025.9.18-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:05440bc172bc4b4b37fb9667e796597419404dbba62e171e1f826d7d2a9ebcef", size = 913817 },
- { url = "https://files.pythonhosted.org/packages/9e/05/25b05480b63292fd8e84800b1648e160ca778127b8d2367a0a258fa2e225/regex-2025.9.18-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5514b8e4031fdfaa3d27e92c75719cbe7f379e28cacd939807289bce76d0e35a", size = 811055 },
- { url = "https://files.pythonhosted.org/packages/70/97/7bc7574655eb651ba3a916ed4b1be6798ae97af30104f655d8efd0cab24b/regex-2025.9.18-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:65d3c38c39efce73e0d9dc019697b39903ba25b1ad45ebbd730d2cf32741f40d", size = 794534 },
- { url = "https://files.pythonhosted.org/packages/b4/c2/d5da49166a52dda879855ecdba0117f073583db2b39bb47ce9a3378a8e9e/regex-2025.9.18-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ae77e447ebc144d5a26d50055c6ddba1d6ad4a865a560ec7200b8b06bc529368", size = 866684 },
- { url = "https://files.pythonhosted.org/packages/bd/2d/0a5c4e6ec417de56b89ff4418ecc72f7e3feca806824c75ad0bbdae0516b/regex-2025.9.18-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e3ef8cf53dc8df49d7e28a356cf824e3623764e9833348b655cfed4524ab8a90", size = 853282 },
- { url = "https://files.pythonhosted.org/packages/f4/8e/d656af63e31a86572ec829665d6fa06eae7e144771e0330650a8bb865635/regex-2025.9.18-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9feb29817df349c976da9a0debf775c5c33fc1c8ad7b9f025825da99374770b7", size = 797830 },
- { url = "https://files.pythonhosted.org/packages/db/ce/06edc89df8f7b83ffd321b6071be4c54dc7332c0f77860edc40ce57d757b/regex-2025.9.18-cp313-cp313t-win32.whl", hash = "sha256:168be0d2f9b9d13076940b1ed774f98595b4e3c7fc54584bba81b3cc4181742e", size = 267281 },
- { url = "https://files.pythonhosted.org/packages/83/9a/2b5d9c8b307a451fd17068719d971d3634ca29864b89ed5c18e499446d4a/regex-2025.9.18-cp313-cp313t-win_amd64.whl", hash = "sha256:d59ecf3bb549e491c8104fea7313f3563c7b048e01287db0a90485734a70a730", size = 278724 },
- { url = "https://files.pythonhosted.org/packages/3d/70/177d31e8089a278a764f8ec9a3faac8d14a312d622a47385d4b43905806f/regex-2025.9.18-cp313-cp313t-win_arm64.whl", hash = "sha256:dbef80defe9fb21310948a2595420b36c6d641d9bea4c991175829b2cc4bc06a", size = 269771 },
- { url = "https://files.pythonhosted.org/packages/44/b7/3b4663aa3b4af16819f2ab6a78c4111c7e9b066725d8107753c2257448a5/regex-2025.9.18-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c6db75b51acf277997f3adcd0ad89045d856190d13359f15ab5dda21581d9129", size = 486130 },
- { url = "https://files.pythonhosted.org/packages/80/5b/4533f5d7ac9c6a02a4725fe8883de2aebc713e67e842c04cf02626afb747/regex-2025.9.18-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8f9698b6f6895d6db810e0bda5364f9ceb9e5b11328700a90cae573574f61eea", size = 289539 },
- { url = "https://files.pythonhosted.org/packages/b8/8d/5ab6797c2750985f79e9995fad3254caa4520846580f266ae3b56d1cae58/regex-2025.9.18-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:29cd86aa7cb13a37d0f0d7c21d8d949fe402ffa0ea697e635afedd97ab4b69f1", size = 287233 },
- { url = "https://files.pythonhosted.org/packages/cb/1e/95afcb02ba8d3a64e6ffeb801718ce73471ad6440c55d993f65a4a5e7a92/regex-2025.9.18-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c9f285a071ee55cd9583ba24dde006e53e17780bb309baa8e4289cd472bcc47", size = 797876 },
- { url = "https://files.pythonhosted.org/packages/c8/fb/720b1f49cec1f3b5a9fea5b34cd22b88b5ebccc8c1b5de9cc6f65eed165a/regex-2025.9.18-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5adf266f730431e3be9021d3e5b8d5ee65e563fec2883ea8093944d21863b379", size = 863385 },
- { url = "https://files.pythonhosted.org/packages/a9/ca/e0d07ecf701e1616f015a720dc13b84c582024cbfbb3fc5394ae204adbd7/regex-2025.9.18-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1137cabc0f38807de79e28d3f6e3e3f2cc8cfb26bead754d02e6d1de5f679203", size = 910220 },
- { url = "https://files.pythonhosted.org/packages/b6/45/bba86413b910b708eca705a5af62163d5d396d5f647ed9485580c7025209/regex-2025.9.18-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cc9e5525cada99699ca9223cce2d52e88c52a3d2a0e842bd53de5497c604164", size = 801827 },
- { url = "https://files.pythonhosted.org/packages/b8/a6/740fbd9fcac31a1305a8eed30b44bf0f7f1e042342be0a4722c0365ecfca/regex-2025.9.18-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bbb9246568f72dce29bcd433517c2be22c7791784b223a810225af3b50d1aafb", size = 786843 },
- { url = "https://files.pythonhosted.org/packages/80/a7/0579e8560682645906da640c9055506465d809cb0f5415d9976f417209a6/regex-2025.9.18-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:6a52219a93dd3d92c675383efff6ae18c982e2d7651c792b1e6d121055808743", size = 857430 },
- { url = "https://files.pythonhosted.org/packages/8d/9b/4dc96b6c17b38900cc9fee254fc9271d0dde044e82c78c0811b58754fde5/regex-2025.9.18-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:ae9b3840c5bd456780e3ddf2f737ab55a79b790f6409182012718a35c6d43282", size = 848612 },
- { url = "https://files.pythonhosted.org/packages/b3/6a/6f659f99bebb1775e5ac81a3fb837b85897c1a4ef5acffd0ff8ffe7e67fb/regex-2025.9.18-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d488c236ac497c46a5ac2005a952c1a0e22a07be9f10c3e735bc7d1209a34773", size = 787967 },
- { url = "https://files.pythonhosted.org/packages/61/35/9e35665f097c07cf384a6b90a1ac11b0b1693084a0b7a675b06f760496c6/regex-2025.9.18-cp314-cp314-win32.whl", hash = "sha256:0c3506682ea19beefe627a38872d8da65cc01ffa25ed3f2e422dffa1474f0788", size = 269847 },
- { url = "https://files.pythonhosted.org/packages/af/64/27594dbe0f1590b82de2821ebfe9a359b44dcb9b65524876cd12fabc447b/regex-2025.9.18-cp314-cp314-win_amd64.whl", hash = "sha256:57929d0f92bebb2d1a83af372cd0ffba2263f13f376e19b1e4fa32aec4efddc3", size = 278755 },
- { url = "https://files.pythonhosted.org/packages/30/a3/0cd8d0d342886bd7d7f252d701b20ae1a3c72dc7f34ef4b2d17790280a09/regex-2025.9.18-cp314-cp314-win_arm64.whl", hash = "sha256:6a4b44df31d34fa51aa5c995d3aa3c999cec4d69b9bd414a8be51984d859f06d", size = 271873 },
- { url = "https://files.pythonhosted.org/packages/99/cb/8a1ab05ecf404e18b54348e293d9b7a60ec2bd7aa59e637020c5eea852e8/regex-2025.9.18-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:b176326bcd544b5e9b17d6943f807697c0cb7351f6cfb45bf5637c95ff7e6306", size = 489773 },
- { url = "https://files.pythonhosted.org/packages/93/3b/6543c9b7f7e734d2404fa2863d0d710c907bef99d4598760ed4563d634c3/regex-2025.9.18-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:0ffd9e230b826b15b369391bec167baed57c7ce39efc35835448618860995946", size = 291221 },
- { url = "https://files.pythonhosted.org/packages/cd/91/e9fdee6ad6bf708d98c5d17fded423dcb0661795a49cba1b4ffb8358377a/regex-2025.9.18-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ec46332c41add73f2b57e2f5b642f991f6b15e50e9f86285e08ffe3a512ac39f", size = 289268 },
- { url = "https://files.pythonhosted.org/packages/94/a6/bc3e8a918abe4741dadeaeb6c508e3a4ea847ff36030d820d89858f96a6c/regex-2025.9.18-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b80fa342ed1ea095168a3f116637bd1030d39c9ff38dc04e54ef7c521e01fc95", size = 806659 },
- { url = "https://files.pythonhosted.org/packages/2b/71/ea62dbeb55d9e6905c7b5a49f75615ea1373afcad95830047e4e310db979/regex-2025.9.18-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4d97071c0ba40f0cf2a93ed76e660654c399a0a04ab7d85472239460f3da84b", size = 871701 },
- { url = "https://files.pythonhosted.org/packages/6a/90/fbe9dedb7dad24a3a4399c0bae64bfa932ec8922a0a9acf7bc88db30b161/regex-2025.9.18-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0ac936537ad87cef9e0e66c5144484206c1354224ee811ab1519a32373e411f3", size = 913742 },
- { url = "https://files.pythonhosted.org/packages/f0/1c/47e4a8c0e73d41eb9eb9fdeba3b1b810110a5139a2526e82fd29c2d9f867/regex-2025.9.18-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dec57f96d4def58c422d212d414efe28218d58537b5445cf0c33afb1b4768571", size = 811117 },
- { url = "https://files.pythonhosted.org/packages/2a/da/435f29fddfd015111523671e36d30af3342e8136a889159b05c1d9110480/regex-2025.9.18-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:48317233294648bf7cd068857f248e3a57222259a5304d32c7552e2284a1b2ad", size = 794647 },
- { url = "https://files.pythonhosted.org/packages/23/66/df5e6dcca25c8bc57ce404eebc7342310a0d218db739d7882c9a2b5974a3/regex-2025.9.18-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:274687e62ea3cf54846a9b25fc48a04459de50af30a7bd0b61a9e38015983494", size = 866747 },
- { url = "https://files.pythonhosted.org/packages/82/42/94392b39b531f2e469b2daa40acf454863733b674481fda17462a5ffadac/regex-2025.9.18-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a78722c86a3e7e6aadf9579e3b0ad78d955f2d1f1a8ca4f67d7ca258e8719d4b", size = 853434 },
- { url = "https://files.pythonhosted.org/packages/a8/f8/dcc64c7f7bbe58842a8f89622b50c58c3598fbbf4aad0a488d6df2c699f1/regex-2025.9.18-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:06104cd203cdef3ade989a1c45b6215bf42f8b9dd705ecc220c173233f7cba41", size = 798024 },
- { url = "https://files.pythonhosted.org/packages/20/8d/edf1c5d5aa98f99a692313db813ec487732946784f8f93145e0153d910e5/regex-2025.9.18-cp314-cp314t-win32.whl", hash = "sha256:2e1eddc06eeaffd249c0adb6fafc19e2118e6308c60df9db27919e96b5656096", size = 273029 },
- { url = "https://files.pythonhosted.org/packages/a7/24/02d4e4f88466f17b145f7ea2b2c11af3a942db6222429c2c146accf16054/regex-2025.9.18-cp314-cp314t-win_amd64.whl", hash = "sha256:8620d247fb8c0683ade51217b459cb4a1081c0405a3072235ba43a40d355c09a", size = 282680 },
- { url = "https://files.pythonhosted.org/packages/1f/a3/c64894858aaaa454caa7cc47e2f225b04d3ed08ad649eacf58d45817fad2/regex-2025.9.18-cp314-cp314t-win_arm64.whl", hash = "sha256:b7531a8ef61de2c647cdf68b3229b071e46ec326b3138b2180acb4275f470b01", size = 273034 },
+version = "2025.11.3"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/cc/a9/546676f25e573a4cf00fe8e119b78a37b6a8fe2dc95cda877b30889c9c45/regex-2025.11.3.tar.gz", hash = "sha256:1fedc720f9bb2494ce31a58a1631f9c82df6a09b49c19517ea5cc280b4541e01", size = 414669 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e1/a7/dda24ebd49da46a197436ad96378f17df30ceb40e52e859fc42cac45b850/regex-2025.11.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c1e448051717a334891f2b9a620fe36776ebf3dd8ec46a0b877c8ae69575feb4", size = 489081 },
+ { url = "https://files.pythonhosted.org/packages/19/22/af2dc751aacf88089836aa088a1a11c4f21a04707eb1b0478e8e8fb32847/regex-2025.11.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9b5aca4d5dfd7fbfbfbdaf44850fcc7709a01146a797536a8f84952e940cca76", size = 291123 },
+ { url = "https://files.pythonhosted.org/packages/a3/88/1a3ea5672f4b0a84802ee9891b86743438e7c04eb0b8f8c4e16a42375327/regex-2025.11.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:04d2765516395cf7dda331a244a3282c0f5ae96075f728629287dfa6f76ba70a", size = 288814 },
+ { url = "https://files.pythonhosted.org/packages/fb/8c/f5987895bf42b8ddeea1b315c9fedcfe07cadee28b9c98cf50d00adcb14d/regex-2025.11.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d9903ca42bfeec4cebedba8022a7c97ad2aab22e09573ce9976ba01b65e4361", size = 798592 },
+ { url = "https://files.pythonhosted.org/packages/99/2a/6591ebeede78203fa77ee46a1c36649e02df9eaa77a033d1ccdf2fcd5d4e/regex-2025.11.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:639431bdc89d6429f6721625e8129413980ccd62e9d3f496be618a41d205f160", size = 864122 },
+ { url = "https://files.pythonhosted.org/packages/94/d6/be32a87cf28cf8ed064ff281cfbd49aefd90242a83e4b08b5a86b38e8eb4/regex-2025.11.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f117efad42068f9715677c8523ed2be1518116d1c49b1dd17987716695181efe", size = 912272 },
+ { url = "https://files.pythonhosted.org/packages/62/11/9bcef2d1445665b180ac7f230406ad80671f0fc2a6ffb93493b5dd8cd64c/regex-2025.11.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4aecb6f461316adf9f1f0f6a4a1a3d79e045f9b71ec76055a791affa3b285850", size = 803497 },
+ { url = "https://files.pythonhosted.org/packages/e5/a7/da0dc273d57f560399aa16d8a68ae7f9b57679476fc7ace46501d455fe84/regex-2025.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3b3a5f320136873cc5561098dfab677eea139521cb9a9e8db98b7e64aef44cbc", size = 787892 },
+ { url = "https://files.pythonhosted.org/packages/da/4b/732a0c5a9736a0b8d6d720d4945a2f1e6f38f87f48f3173559f53e8d5d82/regex-2025.11.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:75fa6f0056e7efb1f42a1c34e58be24072cb9e61a601340cc1196ae92326a4f9", size = 858462 },
+ { url = "https://files.pythonhosted.org/packages/0c/f5/a2a03df27dc4c2d0c769220f5110ba8c4084b0bfa9ab0f9b4fcfa3d2b0fc/regex-2025.11.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:dbe6095001465294f13f1adcd3311e50dd84e5a71525f20a10bd16689c61ce0b", size = 850528 },
+ { url = "https://files.pythonhosted.org/packages/d6/09/e1cd5bee3841c7f6eb37d95ca91cdee7100b8f88b81e41c2ef426910891a/regex-2025.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:454d9b4ae7881afbc25015b8627c16d88a597479b9dea82b8c6e7e2e07240dc7", size = 789866 },
+ { url = "https://files.pythonhosted.org/packages/eb/51/702f5ea74e2a9c13d855a6a85b7f80c30f9e72a95493260193c07f3f8d74/regex-2025.11.3-cp313-cp313-win32.whl", hash = "sha256:28ba4d69171fc6e9896337d4fc63a43660002b7da53fc15ac992abcf3410917c", size = 266189 },
+ { url = "https://files.pythonhosted.org/packages/8b/00/6e29bb314e271a743170e53649db0fdb8e8ff0b64b4f425f5602f4eb9014/regex-2025.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:bac4200befe50c670c405dc33af26dad5a3b6b255dd6c000d92fe4629f9ed6a5", size = 277054 },
+ { url = "https://files.pythonhosted.org/packages/25/f1/b156ff9f2ec9ac441710764dda95e4edaf5f36aca48246d1eea3f1fd96ec/regex-2025.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:2292cd5a90dab247f9abe892ac584cb24f0f54680c73fcb4a7493c66c2bf2467", size = 270325 },
+ { url = "https://files.pythonhosted.org/packages/20/28/fd0c63357caefe5680b8ea052131acbd7f456893b69cc2a90cc3e0dc90d4/regex-2025.11.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1eb1ebf6822b756c723e09f5186473d93236c06c579d2cc0671a722d2ab14281", size = 491984 },
+ { url = "https://files.pythonhosted.org/packages/df/ec/7014c15626ab46b902b3bcc4b28a7bae46d8f281fc7ea9c95e22fcaaa917/regex-2025.11.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1e00ec2970aab10dc5db34af535f21fcf32b4a31d99e34963419636e2f85ae39", size = 292673 },
+ { url = "https://files.pythonhosted.org/packages/23/ab/3b952ff7239f20d05f1f99e9e20188513905f218c81d52fb5e78d2bf7634/regex-2025.11.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a4cb042b615245d5ff9b3794f56be4138b5adc35a4166014d31d1814744148c7", size = 291029 },
+ { url = "https://files.pythonhosted.org/packages/21/7e/3dc2749fc684f455f162dcafb8a187b559e2614f3826877d3844a131f37b/regex-2025.11.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44f264d4bf02f3176467d90b294d59bf1db9fe53c141ff772f27a8b456b2a9ed", size = 807437 },
+ { url = "https://files.pythonhosted.org/packages/1b/0b/d529a85ab349c6a25d1ca783235b6e3eedf187247eab536797021f7126c6/regex-2025.11.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7be0277469bf3bd7a34a9c57c1b6a724532a0d235cd0dc4e7f4316f982c28b19", size = 873368 },
+ { url = "https://files.pythonhosted.org/packages/7d/18/2d868155f8c9e3e9d8f9e10c64e9a9f496bb8f7e037a88a8bed26b435af6/regex-2025.11.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0d31e08426ff4b5b650f68839f5af51a92a5b51abd8554a60c2fbc7c71f25d0b", size = 914921 },
+ { url = "https://files.pythonhosted.org/packages/2d/71/9d72ff0f354fa783fe2ba913c8734c3b433b86406117a8db4ea2bf1c7a2f/regex-2025.11.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e43586ce5bd28f9f285a6e729466841368c4a0353f6fd08d4ce4630843d3648a", size = 812708 },
+ { url = "https://files.pythonhosted.org/packages/e7/19/ce4bf7f5575c97f82b6e804ffb5c4e940c62609ab2a0d9538d47a7fdf7d4/regex-2025.11.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:0f9397d561a4c16829d4e6ff75202c1c08b68a3bdbfe29dbfcdb31c9830907c6", size = 795472 },
+ { url = "https://files.pythonhosted.org/packages/03/86/fd1063a176ffb7b2315f9a1b08d17b18118b28d9df163132615b835a26ee/regex-2025.11.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:dd16e78eb18ffdb25ee33a0682d17912e8cc8a770e885aeee95020046128f1ce", size = 868341 },
+ { url = "https://files.pythonhosted.org/packages/12/43/103fb2e9811205e7386366501bc866a164a0430c79dd59eac886a2822950/regex-2025.11.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:ffcca5b9efe948ba0661e9df0fa50d2bc4b097c70b9810212d6b62f05d83b2dd", size = 854666 },
+ { url = "https://files.pythonhosted.org/packages/7d/22/e392e53f3869b75804762c7c848bd2dd2abf2b70fb0e526f58724638bd35/regex-2025.11.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c56b4d162ca2b43318ac671c65bd4d563e841a694ac70e1a976ac38fcf4ca1d2", size = 799473 },
+ { url = "https://files.pythonhosted.org/packages/4f/f9/8bd6b656592f925b6845fcbb4d57603a3ac2fb2373344ffa1ed70aa6820a/regex-2025.11.3-cp313-cp313t-win32.whl", hash = "sha256:9ddc42e68114e161e51e272f667d640f97e84a2b9ef14b7477c53aac20c2d59a", size = 268792 },
+ { url = "https://files.pythonhosted.org/packages/e5/87/0e7d603467775ff65cd2aeabf1b5b50cc1c3708556a8b849a2fa4dd1542b/regex-2025.11.3-cp313-cp313t-win_amd64.whl", hash = "sha256:7a7c7fdf755032ffdd72c77e3d8096bdcb0eb92e89e17571a196f03d88b11b3c", size = 280214 },
+ { url = "https://files.pythonhosted.org/packages/8d/d0/2afc6f8e94e2b64bfb738a7c2b6387ac1699f09f032d363ed9447fd2bb57/regex-2025.11.3-cp313-cp313t-win_arm64.whl", hash = "sha256:df9eb838c44f570283712e7cff14c16329a9f0fb19ca492d21d4b7528ee6821e", size = 271469 },
+ { url = "https://files.pythonhosted.org/packages/31/e9/f6e13de7e0983837f7b6d238ad9458800a874bf37c264f7923e63409944c/regex-2025.11.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9697a52e57576c83139d7c6f213d64485d3df5bf84807c35fa409e6c970801c6", size = 489089 },
+ { url = "https://files.pythonhosted.org/packages/a3/5c/261f4a262f1fa65141c1b74b255988bd2fa020cc599e53b080667d591cfc/regex-2025.11.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e18bc3f73bd41243c9b38a6d9f2366cd0e0137a9aebe2d8ff76c5b67d4c0a3f4", size = 291059 },
+ { url = "https://files.pythonhosted.org/packages/8e/57/f14eeb7f072b0e9a5a090d1712741fd8f214ec193dba773cf5410108bb7d/regex-2025.11.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:61a08bcb0ec14ff4e0ed2044aad948d0659604f824cbd50b55e30b0ec6f09c73", size = 288900 },
+ { url = "https://files.pythonhosted.org/packages/3c/6b/1d650c45e99a9b327586739d926a1cd4e94666b1bd4af90428b36af66dc7/regex-2025.11.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9c30003b9347c24bcc210958c5d167b9e4f9be786cb380a7d32f14f9b84674f", size = 799010 },
+ { url = "https://files.pythonhosted.org/packages/99/ee/d66dcbc6b628ce4e3f7f0cbbb84603aa2fc0ffc878babc857726b8aab2e9/regex-2025.11.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4e1e592789704459900728d88d41a46fe3969b82ab62945560a31732ffc19a6d", size = 864893 },
+ { url = "https://files.pythonhosted.org/packages/bf/2d/f238229f1caba7ac87a6c4153d79947fb0261415827ae0f77c304260c7d3/regex-2025.11.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6538241f45eb5a25aa575dbba1069ad786f68a4f2773a29a2bd3dd1f9de787be", size = 911522 },
+ { url = "https://files.pythonhosted.org/packages/bd/3d/22a4eaba214a917c80e04f6025d26143690f0419511e0116508e24b11c9b/regex-2025.11.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce22519c989bb72a7e6b36a199384c53db7722fe669ba891da75907fe3587db", size = 803272 },
+ { url = "https://files.pythonhosted.org/packages/84/b1/03188f634a409353a84b5ef49754b97dbcc0c0f6fd6c8ede505a8960a0a4/regex-2025.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:66d559b21d3640203ab9075797a55165d79017520685fb407b9234d72ab63c62", size = 787958 },
+ { url = "https://files.pythonhosted.org/packages/99/6a/27d072f7fbf6fadd59c64d210305e1ff865cc3b78b526fd147db768c553b/regex-2025.11.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:669dcfb2e38f9e8c69507bace46f4889e3abbfd9b0c29719202883c0a603598f", size = 859289 },
+ { url = "https://files.pythonhosted.org/packages/9a/70/1b3878f648e0b6abe023172dacb02157e685564853cc363d9961bcccde4e/regex-2025.11.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:32f74f35ff0f25a5021373ac61442edcb150731fbaa28286bbc8bb1582c89d02", size = 850026 },
+ { url = "https://files.pythonhosted.org/packages/dd/d5/68e25559b526b8baab8e66839304ede68ff6727237a47727d240006bd0ff/regex-2025.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e6c7a21dffba883234baefe91bc3388e629779582038f75d2a5be918e250f0ed", size = 789499 },
+ { url = "https://files.pythonhosted.org/packages/fc/df/43971264857140a350910d4e33df725e8c94dd9dee8d2e4729fa0d63d49e/regex-2025.11.3-cp314-cp314-win32.whl", hash = "sha256:795ea137b1d809eb6836b43748b12634291c0ed55ad50a7d72d21edf1cd565c4", size = 271604 },
+ { url = "https://files.pythonhosted.org/packages/01/6f/9711b57dc6894a55faf80a4c1b5aa4f8649805cb9c7aef46f7d27e2b9206/regex-2025.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:9f95fbaa0ee1610ec0fc6b26668e9917a582ba80c52cc6d9ada15e30aa9ab9ad", size = 280320 },
+ { url = "https://files.pythonhosted.org/packages/f1/7e/f6eaa207d4377481f5e1775cdeb5a443b5a59b392d0065f3417d31d80f87/regex-2025.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:dfec44d532be4c07088c3de2876130ff0fbeeacaa89a137decbbb5f665855a0f", size = 273372 },
+ { url = "https://files.pythonhosted.org/packages/c3/06/49b198550ee0f5e4184271cee87ba4dfd9692c91ec55289e6282f0f86ccf/regex-2025.11.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ba0d8a5d7f04f73ee7d01d974d47c5834f8a1b0224390e4fe7c12a3a92a78ecc", size = 491985 },
+ { url = "https://files.pythonhosted.org/packages/ce/bf/abdafade008f0b1c9da10d934034cb670432d6cf6cbe38bbb53a1cfd6cf8/regex-2025.11.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:442d86cf1cfe4faabf97db7d901ef58347efd004934da045c745e7b5bd57ac49", size = 292669 },
+ { url = "https://files.pythonhosted.org/packages/f9/ef/0c357bb8edbd2ad8e273fcb9e1761bc37b8acbc6e1be050bebd6475f19c1/regex-2025.11.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fd0a5e563c756de210bb964789b5abe4f114dacae9104a47e1a649b910361536", size = 291030 },
+ { url = "https://files.pythonhosted.org/packages/79/06/edbb67257596649b8fb088d6aeacbcb248ac195714b18a65e018bf4c0b50/regex-2025.11.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf3490bcbb985a1ae97b2ce9ad1c0f06a852d5b19dde9b07bdf25bf224248c95", size = 807674 },
+ { url = "https://files.pythonhosted.org/packages/f4/d9/ad4deccfce0ea336296bd087f1a191543bb99ee1c53093dcd4c64d951d00/regex-2025.11.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3809988f0a8b8c9dcc0f92478d6501fac7200b9ec56aecf0ec21f4a2ec4b6009", size = 873451 },
+ { url = "https://files.pythonhosted.org/packages/13/75/a55a4724c56ef13e3e04acaab29df26582f6978c000ac9cd6810ad1f341f/regex-2025.11.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f4ff94e58e84aedb9c9fce66d4ef9f27a190285b451420f297c9a09f2b9abee9", size = 914980 },
+ { url = "https://files.pythonhosted.org/packages/67/1e/a1657ee15bd9116f70d4a530c736983eed997b361e20ecd8f5ca3759d5c5/regex-2025.11.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eb542fd347ce61e1321b0a6b945d5701528dca0cd9759c2e3bb8bd57e47964d", size = 812852 },
+ { url = "https://files.pythonhosted.org/packages/b8/6f/f7516dde5506a588a561d296b2d0044839de06035bb486b326065b4c101e/regex-2025.11.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d6c2d5919075a1f2e413c00b056ea0c2f065b3f5fe83c3d07d325ab92dce51d6", size = 795566 },
+ { url = "https://files.pythonhosted.org/packages/d9/dd/3d10b9e170cc16fb34cb2cef91513cf3df65f440b3366030631b2984a264/regex-2025.11.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:3f8bf11a4827cc7ce5a53d4ef6cddd5ad25595d3c1435ef08f76825851343154", size = 868463 },
+ { url = "https://files.pythonhosted.org/packages/f5/8e/935e6beff1695aa9085ff83195daccd72acc82c81793df480f34569330de/regex-2025.11.3-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:22c12d837298651e5550ac1d964e4ff57c3f56965fc1812c90c9fb2028eaf267", size = 854694 },
+ { url = "https://files.pythonhosted.org/packages/92/12/10650181a040978b2f5720a6a74d44f841371a3d984c2083fc1752e4acf6/regex-2025.11.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:62ba394a3dda9ad41c7c780f60f6e4a70988741415ae96f6d1bf6c239cf01379", size = 799691 },
+ { url = "https://files.pythonhosted.org/packages/67/90/8f37138181c9a7690e7e4cb388debbd389342db3c7381d636d2875940752/regex-2025.11.3-cp314-cp314t-win32.whl", hash = "sha256:4bf146dca15cdd53224a1bf46d628bd7590e4a07fbb69e720d561aea43a32b38", size = 274583 },
+ { url = "https://files.pythonhosted.org/packages/8f/cd/867f5ec442d56beb56f5f854f40abcfc75e11d10b11fdb1869dd39c63aaf/regex-2025.11.3-cp314-cp314t-win_amd64.whl", hash = "sha256:adad1a1bcf1c9e76346e091d22d23ac54ef28e1365117d99521631078dfec9de", size = 284286 },
+ { url = "https://files.pythonhosted.org/packages/20/31/32c0c4610cbc070362bf1d2e4ea86d1ea29014d400a6d6c2486fcfd57766/regex-2025.11.3-cp314-cp314t-win_arm64.whl", hash = "sha256:c54f768482cef41e219720013cd05933b6f971d9562544d691c68699bf2b6801", size = 274741 },
]
[[package]]
@@ -1680,14 +1526,6 @@ dependencies = [
]
sdist = { url = "https://files.pythonhosted.org/packages/f0/f2/840d7b9496825333f532d2e3976b8eadbf52034178aac53630d09fe6e1ef/sqlalchemy-2.0.44.tar.gz", hash = "sha256:0ae7454e1ab1d780aee69fd2aae7d6b8670a581d8847f2d1e0f7ddfbf47e5a22", size = 9819830 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/62/c4/59c7c9b068e6813c898b771204aad36683c96318ed12d4233e1b18762164/sqlalchemy-2.0.44-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72fea91746b5890f9e5e0997f16cbf3d53550580d76355ba2d998311b17b2250", size = 2139675 },
- { url = "https://files.pythonhosted.org/packages/d6/ae/eeb0920537a6f9c5a3708e4a5fc55af25900216bdb4847ec29cfddf3bf3a/sqlalchemy-2.0.44-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:585c0c852a891450edbb1eaca8648408a3cc125f18cf433941fa6babcc359e29", size = 2127726 },
- { url = "https://files.pythonhosted.org/packages/d8/d5/2ebbabe0379418eda8041c06b0b551f213576bfe4c2f09d77c06c07c8cc5/sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b94843a102efa9ac68a7a30cd46df3ff1ed9c658100d30a725d10d9c60a2f44", size = 3327603 },
- { url = "https://files.pythonhosted.org/packages/45/e5/5aa65852dadc24b7d8ae75b7efb8d19303ed6ac93482e60c44a585930ea5/sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:119dc41e7a7defcefc57189cfa0e61b1bf9c228211aba432b53fb71ef367fda1", size = 3337842 },
- { url = "https://files.pythonhosted.org/packages/41/92/648f1afd3f20b71e880ca797a960f638d39d243e233a7082c93093c22378/sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0765e318ee9179b3718c4fd7ba35c434f4dd20332fbc6857a5e8df17719c24d7", size = 3264558 },
- { url = "https://files.pythonhosted.org/packages/40/cf/e27d7ee61a10f74b17740918e23cbc5bc62011b48282170dc4c66da8ec0f/sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2e7b5b079055e02d06a4308d0481658e4f06bc7ef211567edc8f7d5dce52018d", size = 3301570 },
- { url = "https://files.pythonhosted.org/packages/3b/3d/3116a9a7b63e780fb402799b6da227435be878b6846b192f076d2f838654/sqlalchemy-2.0.44-cp312-cp312-win32.whl", hash = "sha256:846541e58b9a81cce7dee8329f352c318de25aa2f2bbe1e31587eb1f057448b4", size = 2103447 },
- { url = "https://files.pythonhosted.org/packages/25/83/24690e9dfc241e6ab062df82cc0df7f4231c79ba98b273fa496fb3dd78ed/sqlalchemy-2.0.44-cp312-cp312-win_amd64.whl", hash = "sha256:7cbcb47fd66ab294703e1644f78971f6f2f1126424d2b300678f419aa73c7b6e", size = 2130912 },
{ url = "https://files.pythonhosted.org/packages/45/d3/c67077a2249fdb455246e6853166360054c331db4613cda3e31ab1cadbef/sqlalchemy-2.0.44-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ff486e183d151e51b1d694c7aa1695747599bb00b9f5f604092b54b74c64a8e1", size = 2135479 },
{ url = "https://files.pythonhosted.org/packages/2b/91/eabd0688330d6fd114f5f12c4f89b0d02929f525e6bf7ff80aa17ca802af/sqlalchemy-2.0.44-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b1af8392eb27b372ddb783b317dea0f650241cea5bd29199b22235299ca2e45", size = 2123212 },
{ url = "https://files.pythonhosted.org/packages/b0/bb/43e246cfe0e81c018076a16036d9b548c4cc649de241fa27d8d9ca6f85ab/sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b61188657e3a2b9ac4e8f04d6cf8e51046e28175f79464c67f2fd35bceb0976", size = 3255353 },
@@ -1730,13 +1568,6 @@ dependencies = [
]
sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728 },
- { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049 },
- { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008 },
- { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665 },
- { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230 },
- { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688 },
- { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694 },
{ url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802 },
{ url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995 },
{ url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948 },
@@ -1841,21 +1672,6 @@ version = "3.6.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744 },
- { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816 },
- { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035 },
- { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914 },
- { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163 },
- { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411 },
- { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883 },
- { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392 },
- { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898 },
- { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655 },
- { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001 },
- { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431 },
- { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617 },
- { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534 },
- { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876 },
{ url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738 },
{ url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821 },
{ url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127 },
@@ -1929,22 +1745,6 @@ dependencies = [
]
sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000 },
- { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338 },
- { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909 },
- { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940 },
- { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825 },
- { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705 },
- { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518 },
- { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267 },
- { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797 },
- { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535 },
- { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324 },
- { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803 },
- { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220 },
- { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589 },
- { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213 },
- { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330 },
{ url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980 },
{ url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424 },
{ url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821 },
@@ -2018,23 +1818,6 @@ version = "0.25.0"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/82/fc/f26eb6ef91ae723a03e16eddb198abcfce2bc5a42e224d44cc8b6765e57e/zstandard-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b", size = 795738 },
- { url = "https://files.pythonhosted.org/packages/aa/1c/d920d64b22f8dd028a8b90e2d756e431a5d86194caa78e3819c7bf53b4b3/zstandard-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00", size = 640436 },
- { url = "https://files.pythonhosted.org/packages/53/6c/288c3f0bd9fcfe9ca41e2c2fbfd17b2097f6af57b62a81161941f09afa76/zstandard-0.25.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64", size = 5343019 },
- { url = "https://files.pythonhosted.org/packages/1e/15/efef5a2f204a64bdb5571e6161d49f7ef0fffdbca953a615efbec045f60f/zstandard-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea", size = 5063012 },
- { url = "https://files.pythonhosted.org/packages/b7/37/a6ce629ffdb43959e92e87ebdaeebb5ac81c944b6a75c9c47e300f85abdf/zstandard-0.25.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb", size = 5394148 },
- { url = "https://files.pythonhosted.org/packages/e3/79/2bf870b3abeb5c070fe2d670a5a8d1057a8270f125ef7676d29ea900f496/zstandard-0.25.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a", size = 5451652 },
- { url = "https://files.pythonhosted.org/packages/53/60/7be26e610767316c028a2cbedb9a3beabdbe33e2182c373f71a1c0b88f36/zstandard-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902", size = 5546993 },
- { url = "https://files.pythonhosted.org/packages/85/c7/3483ad9ff0662623f3648479b0380d2de5510abf00990468c286c6b04017/zstandard-0.25.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f", size = 5046806 },
- { url = "https://files.pythonhosted.org/packages/08/b3/206883dd25b8d1591a1caa44b54c2aad84badccf2f1de9e2d60a446f9a25/zstandard-0.25.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b", size = 5576659 },
- { url = "https://files.pythonhosted.org/packages/9d/31/76c0779101453e6c117b0ff22565865c54f48f8bd807df2b00c2c404b8e0/zstandard-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6", size = 4953933 },
- { url = "https://files.pythonhosted.org/packages/18/e1/97680c664a1bf9a247a280a053d98e251424af51f1b196c6d52f117c9720/zstandard-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91", size = 5268008 },
- { url = "https://files.pythonhosted.org/packages/1e/73/316e4010de585ac798e154e88fd81bb16afc5c5cb1a72eeb16dd37e8024a/zstandard-0.25.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708", size = 5433517 },
- { url = "https://files.pythonhosted.org/packages/5b/60/dd0f8cfa8129c5a0ce3ea6b7f70be5b33d2618013a161e1ff26c2b39787c/zstandard-0.25.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512", size = 5814292 },
- { url = "https://files.pythonhosted.org/packages/fc/5f/75aafd4b9d11b5407b641b8e41a57864097663699f23e9ad4dbb91dc6bfe/zstandard-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa", size = 5360237 },
- { url = "https://files.pythonhosted.org/packages/ff/8d/0309daffea4fcac7981021dbf21cdb2e3427a9e76bafbcdbdf5392ff99a4/zstandard-0.25.0-cp312-cp312-win32.whl", hash = "sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd", size = 436922 },
- { url = "https://files.pythonhosted.org/packages/79/3b/fa54d9015f945330510cb5d0b0501e8253c127cca7ebe8ba46a965df18c5/zstandard-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01", size = 506276 },
- { url = "https://files.pythonhosted.org/packages/ea/6b/8b51697e5319b1f9ac71087b0af9a40d8a6288ff8025c36486e0c12abcc4/zstandard-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9", size = 462679 },
{ url = "https://files.pythonhosted.org/packages/35/0b/8df9c4ad06af91d39e94fa96cc010a24ac4ef1378d3efab9223cc8593d40/zstandard-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94", size = 795735 },
{ url = "https://files.pythonhosted.org/packages/3f/06/9ae96a3e5dcfd119377ba33d4c42a7d89da1efabd5cb3e366b156c45ff4d/zstandard-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1", size = 640440 },
{ url = "https://files.pythonhosted.org/packages/d9/14/933d27204c2bd404229c69f445862454dcc101cd69ef8c6068f15aaec12c/zstandard-0.25.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f", size = 5343070 },
diff --git a/integrations/langgraph/python/poetry.lock b/integrations/langgraph/python/poetry.lock
index d5ffe403a..aa5300483 100644
--- a/integrations/langgraph/python/poetry.lock
+++ b/integrations/langgraph/python/poetry.lock
@@ -1,19 +1,21 @@
-# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand.
[[package]]
name = "ag-ui-protocol"
-version = "0.1.7"
+version = "0.1.9"
description = ""
optional = false
-python-versions = "<4.0,>=3.9"
+python-versions = "^3.9"
groups = ["main"]
-files = [
- {file = "ag_ui_protocol-0.1.7-py3-none-any.whl", hash = "sha256:8c821662ca6e9852569022f449b9f7aeb3f16aa75390fa8c28ceae2cce642baa"},
- {file = "ag_ui_protocol-0.1.7.tar.gz", hash = "sha256:0e93fd9f7c74d52afbd824d6e9738bd3422e859503905ba7582481cbc3c67ab2"},
-]
+files = []
+develop = true
[package.dependencies]
-pydantic = ">=2.11.2,<3.0.0"
+pydantic = "^2.11.2"
+
+[package.source]
+type = "directory"
+url = "../../../sdks/python"
[[package]]
name = "annotated-types"
@@ -1473,4 +1475,4 @@ fastapi = ["fastapi"]
[metadata]
lock-version = "2.1"
python-versions = "<3.14,>=3.10"
-content-hash = "b4f98fd8fba22b450b106c36ab12b2dc3bdc656b060ac257b5d21b40b51b4f17"
+content-hash = "7b62eac41b70b284f5d430698b1e0c8dd23dca37f9178ee00f10edc774f006f5"
diff --git a/integrations/langgraph/python/pyproject.toml b/integrations/langgraph/python/pyproject.toml
index e64a0051e..8c0db183a 100644
--- a/integrations/langgraph/python/pyproject.toml
+++ b/integrations/langgraph/python/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "ag-ui-langgraph"
-version = "0.0.17"
+version = "0.0.19"
description = "Implementation of the AG-UI protocol for LangGraph."
authors = ["Ran Shem Tov "]
readme = "README.md"
@@ -10,7 +10,7 @@ exclude = [
[tool.poetry.dependencies]
python = "<3.14,>=3.10"
-ag-ui-protocol = "==0.1.9"
+ag-ui-protocol = "==0.2.0a0"
fastapi = { version = "^0.115.12", optional = true }
langchain = ">=0.3.0"
langchain-core = ">=0.3.0"
diff --git a/integrations/langgraph/python/tests/test_multimodal.py b/integrations/langgraph/python/tests/test_multimodal.py
new file mode 100644
index 000000000..afc68fffc
--- /dev/null
+++ b/integrations/langgraph/python/tests/test_multimodal.py
@@ -0,0 +1,227 @@
+"""
+Tests for multimodal message conversion between AG-UI and LangChain formats.
+"""
+
+import unittest
+from ag_ui.core import (
+ UserMessage,
+ TextInputContent,
+ BinaryInputContent,
+)
+from langchain_core.messages import HumanMessage
+
+from ag_ui_langgraph.utils import (
+ agui_messages_to_langchain,
+ langchain_messages_to_agui,
+ convert_agui_multimodal_to_langchain,
+ convert_langchain_multimodal_to_agui,
+ flatten_user_content,
+)
+
+
+class TestMultimodalConversion(unittest.TestCase):
+ """Test multimodal message conversion between AG-UI and LangChain."""
+
+ def test_agui_text_only_to_langchain(self):
+ """Test converting a text-only AG-UI message to LangChain."""
+ agui_message = UserMessage(
+ id="test-1",
+ role="user",
+ content="Hello, world!"
+ )
+
+ lc_messages = agui_messages_to_langchain([agui_message])
+
+ self.assertEqual(len(lc_messages), 1)
+ self.assertIsInstance(lc_messages[0], HumanMessage)
+ self.assertEqual(lc_messages[0].content, "Hello, world!")
+ self.assertEqual(lc_messages[0].id, "test-1")
+
+ def test_agui_multimodal_to_langchain(self):
+ """Test converting a multimodal AG-UI message to LangChain."""
+ agui_message = UserMessage(
+ id="test-2",
+ role="user",
+ content=[
+ TextInputContent(type="text", text="What's in this image?"),
+ BinaryInputContent(
+ type="binary",
+ mime_type="image/jpeg",
+ url="https://example.com/photo.jpg"
+ ),
+ ]
+ )
+
+ lc_messages = agui_messages_to_langchain([agui_message])
+
+ self.assertEqual(len(lc_messages), 1)
+ self.assertIsInstance(lc_messages[0], HumanMessage)
+ self.assertIsInstance(lc_messages[0].content, list)
+ self.assertEqual(len(lc_messages[0].content), 2)
+
+ # Check text content
+ self.assertEqual(lc_messages[0].content[0]["type"], "text")
+ self.assertEqual(lc_messages[0].content[0]["text"], "What's in this image?")
+
+ # Check image content
+ self.assertEqual(lc_messages[0].content[1]["type"], "image_url")
+ self.assertEqual(
+ lc_messages[0].content[1]["image_url"]["url"],
+ "https://example.com/photo.jpg"
+ )
+
+ def test_agui_multimodal_with_data_to_langchain(self):
+ """Test converting AG-UI message with base64 data to LangChain."""
+ agui_message = UserMessage(
+ id="test-3",
+ role="user",
+ content=[
+ TextInputContent(type="text", text="Analyze this"),
+ BinaryInputContent(
+ type="binary",
+ mime_type="image/png",
+ data="iVBORw0KGgoAAAANSUhEUgAAAAUA",
+ filename="test.png"
+ ),
+ ]
+ )
+
+ lc_messages = agui_messages_to_langchain([agui_message])
+
+ self.assertEqual(len(lc_messages), 1)
+ self.assertIsInstance(lc_messages[0].content, list)
+ self.assertEqual(len(lc_messages[0].content), 2)
+
+ # Check that data URL is properly formatted
+ image_content = lc_messages[0].content[1]
+ self.assertEqual(image_content["type"], "image_url")
+ self.assertTrue(
+ image_content["image_url"]["url"].startswith("data:image/png;base64,")
+ )
+
+ def test_langchain_multimodal_to_agui(self):
+ """Test converting LangChain multimodal message to AG-UI."""
+ lc_message = HumanMessage(
+ id="test-4",
+ content=[
+ {"type": "text", "text": "What do you see?"},
+ {
+ "type": "image_url",
+ "image_url": {"url": "https://example.com/image.jpg"}
+ },
+ ]
+ )
+
+ agui_messages = langchain_messages_to_agui([lc_message])
+
+ self.assertEqual(len(agui_messages), 1)
+ self.assertEqual(agui_messages[0].role, "user")
+ self.assertIsInstance(agui_messages[0].content, list)
+ self.assertEqual(len(agui_messages[0].content), 2)
+
+ # Check text content
+ self.assertIsInstance(agui_messages[0].content[0], TextInputContent)
+ self.assertEqual(agui_messages[0].content[0].text, "What do you see?")
+
+ # Check binary content
+ self.assertIsInstance(agui_messages[0].content[1], BinaryInputContent)
+ self.assertEqual(agui_messages[0].content[1].mime_type, "image/png")
+ self.assertEqual(agui_messages[0].content[1].url, "https://example.com/image.jpg")
+
+ def test_langchain_data_url_to_agui(self):
+ """Test converting LangChain data URL to AG-UI."""
+ lc_message = HumanMessage(
+ id="test-5",
+ content=[
+ {"type": "text", "text": "Check this out"},
+ {
+ "type": "image_url",
+ "image_url": {"url": "data:image/png;base64,iVBORw0KGgo"}
+ },
+ ]
+ )
+
+ agui_messages = langchain_messages_to_agui([lc_message])
+
+ self.assertEqual(len(agui_messages), 1)
+ self.assertIsInstance(agui_messages[0].content, list)
+ self.assertEqual(len(agui_messages[0].content), 2)
+
+ # Check that data URL was parsed correctly
+ binary_content = agui_messages[0].content[1]
+ self.assertIsInstance(binary_content, BinaryInputContent)
+ self.assertEqual(binary_content.mime_type, "image/png")
+ self.assertEqual(binary_content.data, "iVBORw0KGgo")
+
+ def test_flatten_multimodal_content(self):
+ """Test flattening multimodal content to plain text."""
+ content = [
+ TextInputContent(type="text", text="Hello"),
+ BinaryInputContent(
+ type="binary",
+ mime_type="image/jpeg",
+ url="https://example.com/image.jpg"
+ ),
+ TextInputContent(type="text", text="World"),
+ ]
+
+ flattened = flatten_user_content(content)
+
+ self.assertIn("Hello", flattened)
+ self.assertIn("World", flattened)
+ self.assertIn("[Binary content: https://example.com/image.jpg]", flattened)
+
+ def test_flatten_with_filename(self):
+ """Test flattening binary content with filename."""
+ content = [
+ TextInputContent(type="text", text="Check this file"),
+ BinaryInputContent(
+ type="binary",
+ mime_type="application/pdf",
+ url="https://example.com/doc.pdf",
+ filename="report.pdf"
+ ),
+ ]
+
+ flattened = flatten_user_content(content)
+
+ self.assertIn("Check this file", flattened)
+ self.assertIn("[Binary content: report.pdf]", flattened)
+
+ def test_convert_agui_multimodal_to_langchain_helper(self):
+ """Test the convert_agui_multimodal_to_langchain helper function."""
+ agui_content = [
+ TextInputContent(type="text", text="Test text"),
+ BinaryInputContent(
+ type="binary",
+ mime_type="image/png",
+ url="https://example.com/test.png"
+ ),
+ ]
+
+ lc_content = convert_agui_multimodal_to_langchain(agui_content)
+
+ self.assertEqual(len(lc_content), 2)
+ self.assertEqual(lc_content[0]["type"], "text")
+ self.assertEqual(lc_content[0]["text"], "Test text")
+ self.assertEqual(lc_content[1]["type"], "image_url")
+ self.assertEqual(lc_content[1]["image_url"]["url"], "https://example.com/test.png")
+
+ def test_convert_langchain_multimodal_to_agui_helper(self):
+ """Test the convert_langchain_multimodal_to_agui helper function."""
+ lc_content = [
+ {"type": "text", "text": "Test text"},
+ {"type": "image_url", "image_url": {"url": "https://example.com/test.png"}},
+ ]
+
+ agui_content = convert_langchain_multimodal_to_agui(lc_content)
+
+ self.assertEqual(len(agui_content), 2)
+ self.assertIsInstance(agui_content[0], TextInputContent)
+ self.assertEqual(agui_content[0].text, "Test text")
+ self.assertIsInstance(agui_content[1], BinaryInputContent)
+ self.assertEqual(agui_content[1].url, "https://example.com/test.png")
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/integrations/langgraph/typescript/examples/pnpm-lock.yaml b/integrations/langgraph/typescript/examples/pnpm-lock.yaml
deleted file mode 100644
index 7a1da5201..000000000
--- a/integrations/langgraph/typescript/examples/pnpm-lock.yaml
+++ /dev/null
@@ -1,393 +0,0 @@
-lockfileVersion: '9.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-importers:
-
- .:
- dependencies:
- '@langchain/core':
- specifier: ^0.3.66
- version: 0.3.66(openai@5.10.2(zod@3.25.76))
- '@langchain/langgraph':
- specifier: ^0.2.65
- version: 0.2.74(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))(zod-to-json-schema@3.24.6(zod@3.25.76))
- '@langchain/openai':
- specifier: ^0.6.3
- version: 0.6.3(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))
- dotenv:
- specifier: ^16.4.5
- version: 16.6.1
- uuid:
- specifier: ^10.0.0
- version: 10.0.0
- devDependencies:
- '@types/node':
- specifier: ^20.0.0
- version: 20.19.9
- '@types/uuid':
- specifier: ^10.0.0
- version: 10.0.0
- typescript:
- specifier: ^5.0.0
- version: 5.8.3
-
-packages:
-
- '@cfworker/json-schema@4.1.1':
- resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==}
-
- '@langchain/core@0.3.66':
- resolution: {integrity: sha512-d3SgSDOlgOjdIbReIXVQl9HaQzKqO/5+E+o3kJwoKXLGP9dxi7+lMyaII7yv7G8/aUxMWLwFES9zc1jFoeJEZw==}
- engines: {node: '>=18'}
-
- '@langchain/langgraph-checkpoint@0.0.18':
- resolution: {integrity: sha512-IS7zJj36VgY+4pf8ZjsVuUWef7oTwt1y9ylvwu0aLuOn1d0fg05Om9DLm3v2GZ2Df6bhLV1kfWAM0IAl9O5rQQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.2.31 <0.4.0'
-
- '@langchain/langgraph-sdk@0.0.104':
- resolution: {integrity: sha512-wUO6GMy65Y7DsWtjTJ3dA59enrZy2wN4o48AMYN7dF7u/PMXXYyBjBCKSzgVWqO6uWH2yNpyGDrcMwKuk5kQLA==}
- peerDependencies:
- '@langchain/core': '>=0.2.31 <0.4.0'
- react: ^18 || ^19
- react-dom: ^18 || ^19
- peerDependenciesMeta:
- '@langchain/core':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
-
- '@langchain/langgraph@0.2.74':
- resolution: {integrity: sha512-oHpEi5sTZTPaeZX1UnzfM2OAJ21QGQrwReTV6+QnX7h8nDCBzhtipAw1cK616S+X8zpcVOjgOtJuaJhXa4mN8w==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.40 < 0.4.0'
- zod-to-json-schema: ^3.x
- peerDependenciesMeta:
- zod-to-json-schema:
- optional: true
-
- '@langchain/openai@0.6.3':
- resolution: {integrity: sha512-dSNuXDTJitDzN8D2wFNqWVELDbBRhMpJiFeiWpHjfPuq7R6wSjzNNY/Uk6x+FLpvbOs/zKNWy5+0q0p3KrCjRQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.3.58 <0.4.0'
-
- '@types/json-schema@7.0.15':
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
-
- '@types/node@20.19.9':
- resolution: {integrity: sha512-cuVNgarYWZqxRJDQHEB58GEONhOK79QVR/qYx4S7kcUObQvUwvFnYxJuuHUKm2aieN9X3yZB4LZsuYNU1Qphsw==}
-
- '@types/retry@0.12.0':
- resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
-
- '@types/uuid@10.0.0':
- resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- ansi-styles@5.2.0:
- resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
- engines: {node: '>=10'}
-
- base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
-
- camelcase@6.3.0:
- resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
- engines: {node: '>=10'}
-
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- console-table-printer@2.14.6:
- resolution: {integrity: sha512-MCBl5HNVaFuuHW6FGbL/4fB7N/ormCy+tQ+sxTrF6QtSbSNETvPuOVbkJBhzDgYhvjWGrTma4eYJa37ZuoQsPw==}
-
- decamelize@1.2.0:
- resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
- engines: {node: '>=0.10.0'}
-
- dotenv@16.6.1:
- resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
- engines: {node: '>=12'}
-
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- js-tiktoken@1.0.20:
- resolution: {integrity: sha512-Xlaqhhs8VfCd6Sh7a1cFkZHQbYTLCwVJJWiHVxBYzLPxW0XsoxBy1hitmjkdIjD3Aon5BXLHFwU5O8WUx6HH+A==}
-
- langsmith@0.3.49:
- resolution: {integrity: sha512-hVLpGzTDq4dFffScKuF9yIuwXqp6LJCsvxK4UjmLae+oEodfnFIQ6yVmNyhxFnm3QuRl1NY8qLFul3k+R1YnGQ==}
- peerDependencies:
- '@opentelemetry/api': '*'
- '@opentelemetry/exporter-trace-otlp-proto': '*'
- '@opentelemetry/sdk-trace-base': '*'
- openai: '*'
- peerDependenciesMeta:
- '@opentelemetry/api':
- optional: true
- '@opentelemetry/exporter-trace-otlp-proto':
- optional: true
- '@opentelemetry/sdk-trace-base':
- optional: true
- openai:
- optional: true
-
- mustache@4.2.0:
- resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
- hasBin: true
-
- openai@5.10.2:
- resolution: {integrity: sha512-n+vi74LzHtvlKcDPn9aApgELGiu5CwhaLG40zxLTlFQdoSJCLACORIPC2uVQ3JEYAbqapM+XyRKFy2Thej7bIw==}
- hasBin: true
- peerDependencies:
- ws: ^8.18.0
- zod: ^3.23.8
- peerDependenciesMeta:
- ws:
- optional: true
- zod:
- optional: true
-
- p-finally@1.0.0:
- resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
- engines: {node: '>=4'}
-
- p-queue@6.6.2:
- resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
- engines: {node: '>=8'}
-
- p-retry@4.6.2:
- resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
- engines: {node: '>=8'}
-
- p-timeout@3.2.0:
- resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
- engines: {node: '>=8'}
-
- retry@0.13.1:
- resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
- engines: {node: '>= 4'}
-
- semver@7.7.2:
- resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
- engines: {node: '>=10'}
- hasBin: true
-
- simple-wcswidth@1.1.2:
- resolution: {integrity: sha512-j7piyCjAeTDSjzTSQ7DokZtMNwNlEAyxqSZeCS+CXH7fJ4jx3FuJ/mTW3mE+6JLs4VJBbcll0Kjn+KXI5t21Iw==}
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- typescript@5.8.3:
- resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- undici-types@6.21.0:
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
-
- uuid@10.0.0:
- resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
- hasBin: true
-
- uuid@9.0.1:
- resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
- hasBin: true
-
- zod-to-json-schema@3.24.6:
- resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==}
- peerDependencies:
- zod: ^3.24.1
-
- zod@3.25.76:
- resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
-
-snapshots:
-
- '@cfworker/json-schema@4.1.1': {}
-
- '@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76))':
- dependencies:
- '@cfworker/json-schema': 4.1.1
- ansi-styles: 5.2.0
- camelcase: 6.3.0
- decamelize: 1.2.0
- js-tiktoken: 1.0.20
- langsmith: 0.3.49(openai@5.10.2(zod@3.25.76))
- mustache: 4.2.0
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 10.0.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - openai
-
- '@langchain/langgraph-checkpoint@0.0.18(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))':
- dependencies:
- '@langchain/core': 0.3.66(openai@5.10.2(zod@3.25.76))
- uuid: 10.0.0
-
- '@langchain/langgraph-sdk@0.0.104(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))':
- dependencies:
- '@types/json-schema': 7.0.15
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 9.0.1
- optionalDependencies:
- '@langchain/core': 0.3.66(openai@5.10.2(zod@3.25.76))
-
- '@langchain/langgraph@0.2.74(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))(zod-to-json-schema@3.24.6(zod@3.25.76))':
- dependencies:
- '@langchain/core': 0.3.66(openai@5.10.2(zod@3.25.76))
- '@langchain/langgraph-checkpoint': 0.0.18(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))
- '@langchain/langgraph-sdk': 0.0.104(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))
- uuid: 10.0.0
- zod: 3.25.76
- optionalDependencies:
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - react
- - react-dom
-
- '@langchain/openai@0.6.3(@langchain/core@0.3.66(openai@5.10.2(zod@3.25.76)))':
- dependencies:
- '@langchain/core': 0.3.66(openai@5.10.2(zod@3.25.76))
- js-tiktoken: 1.0.20
- openai: 5.10.2(zod@3.25.76)
- zod: 3.25.76
- transitivePeerDependencies:
- - ws
-
- '@types/json-schema@7.0.15': {}
-
- '@types/node@20.19.9':
- dependencies:
- undici-types: 6.21.0
-
- '@types/retry@0.12.0': {}
-
- '@types/uuid@10.0.0': {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- ansi-styles@5.2.0: {}
-
- base64-js@1.5.1: {}
-
- camelcase@6.3.0: {}
-
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
- console-table-printer@2.14.6:
- dependencies:
- simple-wcswidth: 1.1.2
-
- decamelize@1.2.0: {}
-
- dotenv@16.6.1: {}
-
- eventemitter3@4.0.7: {}
-
- has-flag@4.0.0: {}
-
- js-tiktoken@1.0.20:
- dependencies:
- base64-js: 1.5.1
-
- langsmith@0.3.49(openai@5.10.2(zod@3.25.76)):
- dependencies:
- '@types/uuid': 10.0.0
- chalk: 4.1.2
- console-table-printer: 2.14.6
- p-queue: 6.6.2
- p-retry: 4.6.2
- semver: 7.7.2
- uuid: 10.0.0
- optionalDependencies:
- openai: 5.10.2(zod@3.25.76)
-
- mustache@4.2.0: {}
-
- openai@5.10.2(zod@3.25.76):
- optionalDependencies:
- zod: 3.25.76
-
- p-finally@1.0.0: {}
-
- p-queue@6.6.2:
- dependencies:
- eventemitter3: 4.0.7
- p-timeout: 3.2.0
-
- p-retry@4.6.2:
- dependencies:
- '@types/retry': 0.12.0
- retry: 0.13.1
-
- p-timeout@3.2.0:
- dependencies:
- p-finally: 1.0.0
-
- retry@0.13.1: {}
-
- semver@7.7.2: {}
-
- simple-wcswidth@1.1.2: {}
-
- supports-color@7.2.0:
- dependencies:
- has-flag: 4.0.0
-
- typescript@5.8.3: {}
-
- undici-types@6.21.0: {}
-
- uuid@10.0.0: {}
-
- uuid@9.0.1: {}
-
- zod-to-json-schema@3.24.6(zod@3.25.76):
- dependencies:
- zod: 3.25.76
-
- zod@3.25.76: {}
diff --git a/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts b/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts
new file mode 100644
index 000000000..f6c0ac7da
--- /dev/null
+++ b/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts
@@ -0,0 +1,120 @@
+/**
+ * An example demonstrating multimodal message support with images.
+ *
+ * This agent demonstrates how to:
+ * 1. Receive user messages with images
+ * 2. Process multimodal content (text + images)
+ * 3. Use vision models to analyze images
+ *
+ * Example usage:
+ *
+ * ```typescript
+ * import { UserMessage, TextInputContent, BinaryInputContent } from "@ag-ui/core";
+ *
+ * // Create a multimodal user message
+ * const message: UserMessage = {
+ * id: "user-123",
+ * role: "user",
+ * content: [
+ * { type: "text", text: "What's in this image?" },
+ * {
+ * type: "binary",
+ * mimeType: "image/jpeg",
+ * url: "https://example.com/photo.jpg"
+ * },
+ * ],
+ * };
+ *
+ * // Or with base64 encoded data
+ * const messageWithData: UserMessage = {
+ * id: "user-124",
+ * role: "user",
+ * content: [
+ * { type: "text", text: "Describe this picture" },
+ * {
+ * type: "binary",
+ * mimeType: "image/png",
+ * data: "iVBORw0KGgoAAAANSUhEUgAAAAUA...", // base64 encoded
+ * filename: "screenshot.png"
+ * },
+ * ],
+ * };
+ * ```
+ *
+ * The LangGraph integration automatically handles:
+ * 1. Converting AG-UI multimodal format to LangChain's format
+ * 2. Passing multimodal messages to vision models
+ * 3. Converting responses back to AG-UI format
+ */
+
+import { ChatOpenAI } from "@langchain/openai";
+import { SystemMessage } from "@langchain/core/messages";
+import { RunnableConfig } from "@langchain/core/runnables";
+import { Annotation, MessagesAnnotation, StateGraph, Command, START, END } from "@langchain/langgraph";
+
+const AgentStateAnnotation = Annotation.Root({
+ tools: Annotation({
+ reducer: (x, y) => y ?? x,
+ default: () => []
+ }),
+ ...MessagesAnnotation.spec,
+});
+
+type AgentState = typeof AgentStateAnnotation.State;
+
+async function visionChatNode(state: AgentState, config?: RunnableConfig) {
+ /**
+ * Chat node that supports multimodal input including images.
+ *
+ * The messages in state can contain multimodal content with text and images.
+ * LangGraph will automatically handle the conversion from AG-UI format to
+ * the format expected by the vision model.
+ */
+
+ // 1. Use a vision-capable model
+ // GPT-4o supports vision, as do other models like Claude 3
+ const model = new ChatOpenAI({ model: "gpt-4o" });
+
+ // Define config for the model
+ if (!config) {
+ config = { recursionLimit: 25 };
+ }
+
+ // 2. Bind tools if needed
+ const modelWithTools = model.bindTools(
+ state.tools ?? [],
+ {
+ parallel_tool_calls: false,
+ }
+ );
+
+ // 3. Define the system message
+ const systemMessage = new SystemMessage({
+ content: "You are a helpful vision assistant. You can analyze images and " +
+ "answer questions about them. Describe what you see in detail."
+ });
+
+ // 4. Run the model with multimodal messages
+ // The messages may contain both text and images
+ const response = await modelWithTools.invoke([
+ systemMessage,
+ ...state.messages,
+ ], config);
+
+ // 5. Return the response
+ return new Command({
+ goto: END,
+ update: {
+ messages: [response]
+ }
+ });
+}
+
+// Define a new graph
+const workflow = new StateGraph(AgentStateAnnotation)
+ .addNode("visionChatNode", visionChatNode)
+ .addEdge(START, "visionChatNode")
+ .addEdge("visionChatNode", END);
+
+// Compile the graph
+export const graph = workflow.compile();
diff --git a/integrations/langgraph/typescript/package.json b/integrations/langgraph/typescript/package.json
index e465fb9d5..e6e4cd5a1 100644
--- a/integrations/langgraph/typescript/package.json
+++ b/integrations/langgraph/typescript/package.json
@@ -1,6 +1,6 @@
{
"name": "@ag-ui/langgraph",
- "version": "0.0.18",
+ "version": "0.0.19-alpha.1",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -29,8 +29,8 @@
"rxjs": "7.8.1"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.38",
- "@ag-ui/client": ">=0.0.38"
+ "@ag-ui/core": "0.0.40-alpha.7",
+ "@ag-ui/client": "0.0.40-alpha.7"
},
"devDependencies": {
"@ag-ui/core": "workspace:*",
diff --git a/integrations/langgraph/typescript/src/utils.test.ts b/integrations/langgraph/typescript/src/utils.test.ts
new file mode 100644
index 000000000..5042c6e20
--- /dev/null
+++ b/integrations/langgraph/typescript/src/utils.test.ts
@@ -0,0 +1,224 @@
+/**
+ * Tests for multimodal message conversion between AG-UI and LangChain formats.
+ */
+
+import { Message as LangGraphMessage } from "@langchain/langgraph-sdk";
+import { Message, UserMessage, TextInputContent, BinaryInputContent } from "@ag-ui/client";
+import { aguiMessagesToLangChain, langchainMessagesToAgui } from "./utils";
+
+describe("Multimodal Message Conversion", () => {
+ describe("aguiMessagesToLangChain", () => {
+ it("should convert text-only AG-UI message to LangChain", () => {
+ const aguiMessage: UserMessage = {
+ id: "test-1",
+ role: "user",
+ content: "Hello, world!",
+ };
+
+ const lcMessages = aguiMessagesToLangChain([aguiMessage]);
+
+ expect(lcMessages).toHaveLength(1);
+ expect(lcMessages[0].type).toBe("human");
+ expect(lcMessages[0].content).toBe("Hello, world!");
+ expect(lcMessages[0].id).toBe("test-1");
+ });
+
+ it("should convert multimodal AG-UI message to LangChain", () => {
+ const aguiMessage: UserMessage = {
+ id: "test-2",
+ role: "user",
+ content: [
+ { type: "text", text: "What's in this image?" },
+ {
+ type: "binary",
+ mimeType: "image/jpeg",
+ url: "https://example.com/photo.jpg",
+ },
+ ],
+ };
+
+ const lcMessages = aguiMessagesToLangChain([aguiMessage]);
+
+ expect(lcMessages).toHaveLength(1);
+ expect(lcMessages[0].type).toBe("human");
+ expect(Array.isArray(lcMessages[0].content)).toBe(true);
+
+ const content = lcMessages[0].content as Array;
+ expect(content).toHaveLength(2);
+
+ // Check text content
+ expect(content[0].type).toBe("text");
+ expect(content[0].text).toBe("What's in this image?");
+
+ // Check image content
+ expect(content[1].type).toBe("image_url");
+ expect(content[1].image_url.url).toBe("https://example.com/photo.jpg");
+ });
+
+ it("should convert AG-UI message with base64 data to LangChain", () => {
+ const aguiMessage: UserMessage = {
+ id: "test-3",
+ role: "user",
+ content: [
+ { type: "text", text: "Analyze this" },
+ {
+ type: "binary",
+ mimeType: "image/png",
+ data: "iVBORw0KGgoAAAANSUhEUgAAAAUA",
+ filename: "test.png",
+ },
+ ],
+ };
+
+ const lcMessages = aguiMessagesToLangChain([aguiMessage]);
+
+ expect(lcMessages).toHaveLength(1);
+ expect(Array.isArray(lcMessages[0].content)).toBe(true);
+
+ const content = lcMessages[0].content as Array;
+ expect(content).toHaveLength(2);
+
+ // Check that data URL is properly formatted
+ const imageContent = content[1];
+ expect(imageContent.type).toBe("image_url");
+ expect(imageContent.image_url.url).toContain("data:image/png;base64,");
+ });
+ });
+
+ describe("langchainMessagesToAgui", () => {
+ it("should convert text-only LangChain message to AG-UI", () => {
+ const lcMessage: LangGraphMessage = {
+ id: "test-4",
+ type: "human",
+ content: "Hello from LangChain",
+ };
+
+ const aguiMessages = langchainMessagesToAgui([lcMessage]);
+
+ expect(aguiMessages).toHaveLength(1);
+ expect(aguiMessages[0].role).toBe("user");
+ expect(aguiMessages[0].content).toBe("Hello from LangChain");
+ });
+
+ it("should convert LangChain multimodal message to AG-UI", () => {
+ const lcMessage: LangGraphMessage = {
+ id: "test-5",
+ type: "human",
+ content: [
+ { type: "text", text: "What do you see?" },
+ {
+ type: "image_url",
+ image_url: { url: "https://example.com/image.jpg" },
+ },
+ ] as any,
+ };
+
+ const aguiMessages = langchainMessagesToAgui([lcMessage]);
+
+ expect(aguiMessages).toHaveLength(1);
+ expect(aguiMessages[0].role).toBe("user");
+ expect(Array.isArray(aguiMessages[0].content)).toBe(true);
+
+ const content = aguiMessages[0].content as Array;
+ expect(content).toHaveLength(2);
+
+ // Check text content
+ expect(content[0].type).toBe("text");
+ expect((content[0] as TextInputContent).text).toBe("What do you see?");
+
+ // Check binary content
+ expect(content[1].type).toBe("binary");
+ expect((content[1] as BinaryInputContent).mimeType).toBe("image/png");
+ expect((content[1] as BinaryInputContent).url).toBe("https://example.com/image.jpg");
+ });
+
+ it("should convert LangChain data URL to AG-UI", () => {
+ const lcMessage: LangGraphMessage = {
+ id: "test-6",
+ type: "human",
+ content: [
+ { type: "text", text: "Check this out" },
+ {
+ type: "image_url",
+ image_url: { url: "data:image/png;base64,iVBORw0KGgo" },
+ },
+ ] as any,
+ };
+
+ const aguiMessages = langchainMessagesToAgui([lcMessage]);
+
+ expect(aguiMessages).toHaveLength(1);
+ expect(Array.isArray(aguiMessages[0].content)).toBe(true);
+
+ const content = aguiMessages[0].content as Array;
+ expect(content).toHaveLength(2);
+
+ // Check that data URL was parsed correctly
+ const binaryContent = content[1] as BinaryInputContent;
+ expect(binaryContent.type).toBe("binary");
+ expect(binaryContent.mimeType).toBe("image/png");
+ expect(binaryContent.data).toBe("iVBORw0KGgo");
+ });
+ });
+
+ describe("Edge cases", () => {
+ it("should handle empty content arrays", () => {
+ const aguiMessage: UserMessage = {
+ id: "test-7",
+ role: "user",
+ content: [],
+ };
+
+ const lcMessages = aguiMessagesToLangChain([aguiMessage]);
+
+ expect(lcMessages).toHaveLength(1);
+ expect(Array.isArray(lcMessages[0].content)).toBe(true);
+ expect((lcMessages[0].content as Array)).toHaveLength(0);
+ });
+
+ it("should handle binary content with only id", () => {
+ const aguiMessage: UserMessage = {
+ id: "test-8",
+ role: "user",
+ content: [
+ {
+ type: "binary",
+ mimeType: "image/jpeg",
+ id: "img-123",
+ },
+ ],
+ };
+
+ const lcMessages = aguiMessagesToLangChain([aguiMessage]);
+
+ expect(lcMessages).toHaveLength(1);
+ const content = lcMessages[0].content as Array;
+ expect(content).toHaveLength(1);
+ expect(content[0].type).toBe("image_url");
+ expect(content[0].image_url.url).toBe("img-123");
+ });
+
+ it("should skip binary content without any source", () => {
+ const aguiMessage: UserMessage = {
+ id: "test-9",
+ role: "user",
+ content: [
+ { type: "text", text: "Hello" },
+ {
+ type: "binary",
+ mimeType: "image/jpeg",
+ // No url, data, or id
+ } as BinaryInputContent,
+ ],
+ };
+
+ const lcMessages = aguiMessagesToLangChain([aguiMessage]);
+
+ expect(lcMessages).toHaveLength(1);
+ const content = lcMessages[0].content as Array;
+ // Binary content should be skipped, only text remains
+ expect(content).toHaveLength(1);
+ expect(content[0].type).toBe("text");
+ });
+ });
+});
diff --git a/integrations/langgraph/typescript/src/utils.ts b/integrations/langgraph/typescript/src/utils.ts
index d69ac6778..8866a9d7f 100644
--- a/integrations/langgraph/typescript/src/utils.ts
+++ b/integrations/langgraph/typescript/src/utils.ts
@@ -1,6 +1,6 @@
import { Message as LangGraphMessage } from "@langchain/langgraph-sdk";
import { State, SchemaKeys, LangGraphReasoning } from "./types";
-import { Message, ToolCall } from "@ag-ui/client";
+import { Message, ToolCall, TextInputContent, BinaryInputContent, InputContent , UserMessage} from "@ag-ui/client";
export const DEFAULT_SCHEMA_KEYS = ["messages", "tools"];
@@ -26,21 +26,118 @@ export function getStreamPayloadInput({
return input;
}
+/**
+ * Convert LangChain's multimodal content to AG-UI format
+ */
+function convertLangchainMultimodalToAgui(
+ content: Array<{ type: string; text?: string; image_url?: any }>
+): InputContent[] {
+ const aguiContent: InputContent[] = [];
+
+ for (const item of content) {
+ if (item.type === "text" && item.text) {
+ aguiContent.push({
+ type: "text",
+ text: item.text,
+ });
+ } else if (item.type === "image_url") {
+ const imageUrl = typeof item.image_url === "string"
+ ? item.image_url
+ : item.image_url?.url;
+
+ if (!imageUrl) continue;
+
+ // Parse data URLs to extract base64 data
+ if (imageUrl.startsWith("data:")) {
+ // Format: data:mime_type;base64,data
+ const [header, data] = imageUrl.split(",", 2);
+ const mimeType = header.includes(":")
+ ? header.split(":")[1].split(";")[0]
+ : "image/png";
+
+ aguiContent.push({
+ type: "binary",
+ mimeType,
+ data: data || "",
+ });
+ } else {
+ // Regular URL or ID
+ aguiContent.push({
+ type: "binary",
+ mimeType: "image/png", // Default MIME type
+ url: imageUrl,
+ });
+ }
+ }
+ }
+
+ return aguiContent;
+}
+
+/**
+ * Convert AG-UI multimodal content to LangChain's format
+ */
+function convertAguiMultimodalToLangchain(
+ content: InputContent[]
+): Array<{ type: string; text?: string; image_url?: { url: string } }> {
+ const langchainContent: Array<{ type: string; text?: string; image_url?: { url: string } }> = [];
+
+ for (const item of content) {
+ if (item.type === "text") {
+ langchainContent.push({
+ type: "text",
+ text: item.text,
+ });
+ } else if (item.type === "binary") {
+ // LangChain uses image_url format (OpenAI-style)
+ let url: string;
+
+ // Prioritize url, then data, then id
+ if (item.url) {
+ url = item.url;
+ } else if (item.data) {
+ // Construct data URL from base64 data
+ url = `data:${item.mimeType};base64,${item.data}`;
+ } else if (item.id) {
+ // Use id as a reference
+ url = item.id;
+ } else {
+ continue; // Skip if no source is provided
+ }
+
+ langchainContent.push({
+ type: "image_url",
+ image_url: { url },
+ });
+ }
+ }
+
+ return langchainContent;
+}
+
export function langchainMessagesToAgui(messages: LangGraphMessage[]): Message[] {
return messages.map((message) => {
switch (message.type) {
case "human":
+ // Handle multimodal content
+ let userContent: string | InputContent[];
+ if (Array.isArray(message.content)) {
+ userContent = convertLangchainMultimodalToAgui(message.content as any);
+ } else {
+ userContent = stringifyIfNeeded(resolveMessageContent(message.content));
+ }
+
return {
id: message.id!,
role: "user",
- content: stringifyIfNeeded(resolveMessageContent(message.content)),
+ content: userContent,
};
case "ai":
- const content = resolveMessageContent(message.content)
+ const aiContent = resolveMessageContent(message.content)
return {
id: message.id!,
role: "assistant",
- content: content ? stringifyIfNeeded(content) : '',
+ content: aiContent ? stringifyIfNeeded(aiContent) : '',
toolCalls: message.tool_calls?.map((tc) => ({
id: tc.id!,
type: "function",
@@ -73,12 +170,22 @@ export function aguiMessagesToLangChain(messages: Message[]): LangGraphMessage[]
return messages.map((message, index) => {
switch (message.role) {
case "user":
+ // Handle multimodal content
+ let content: UserMessage['content'];
+ if (typeof message.content === "string") {
+ content = message.content;
+ } else if (Array.isArray(message.content)) {
+ content = convertAguiMultimodalToLangchain(message.content) as any;
+ } else {
+ content = String(message.content);
+ }
+
return {
id: message.id,
role: message.role,
- content: message.content,
+ content,
type: "human",
- };
+ } as LangGraphMessage;
case "assistant":
return {
id: message.id,
@@ -119,6 +226,42 @@ function stringifyIfNeeded(item: any) {
return JSON.stringify(item);
}
+/**
+ * Flatten multimodal content into plain text.
+ * Used for backwards compatibility or when multimodal is not supported.
+ */
+function flattenUserContent(content: Message["content"]): string {
+ if (typeof content === "string") {
+ return content;
+ }
+
+ if (!Array.isArray(content)) {
+ return "";
+ }
+
+ const parts: string[] = [];
+
+ for (const item of content) {
+ if (item.type === "text" && "text" in item) {
+ if (item.text) {
+ parts.push(item.text);
+ }
+ } else if (item.type === "binary" && "mimeType" in item) {
+ // Add descriptive placeholder for binary content
+ const binaryItem = item as BinaryInputContent;
+ if (binaryItem.filename) {
+ parts.push(`[Binary content: ${binaryItem.filename}]`);
+ } else if (binaryItem.url) {
+ parts.push(`[Binary content: ${binaryItem.url}]`);
+ } else {
+ parts.push(`[Binary content: ${binaryItem.mimeType}]`);
+ }
+ }
+ }
+
+ return parts.join("\n");
+}
+
export function resolveReasoningContent(eventData: any): LangGraphReasoning | null {
const content = eventData.chunk?.content
diff --git a/integrations/llama-index/typescript/package.json b/integrations/llama-index/typescript/package.json
index bb2226b9b..6b37b380a 100644
--- a/integrations/llama-index/typescript/package.json
+++ b/integrations/llama-index/typescript/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/llamaindex",
"author": "Logan Markewich ",
- "version": "0.1.4",
+ "version": "0.1.5",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
diff --git a/integrations/llama-index/typescript/src/index.ts b/integrations/llama-index/typescript/src/index.ts
index b89fe27d8..f4a08b8eb 100644
--- a/integrations/llama-index/typescript/src/index.ts
+++ b/integrations/llama-index/typescript/src/index.ts
@@ -34,6 +34,10 @@ function normalizeEmptyToolResults(messages: Message[]): Message[] {
}
export class LlamaIndexAgent extends HttpAgent {
+ public override get maxVersion(): string {
+ return "0.0.39";
+ }
+
public override run(input: RunAgentInput): Observable {
const sanitizedInput: RunAgentInput = {
...input,
diff --git a/integrations/mastra/typescript/examples/.gitignore b/integrations/mastra/typescript/examples/.gitignore
index 5c90d73b1..c4d033e9d 100644
--- a/integrations/mastra/typescript/examples/.gitignore
+++ b/integrations/mastra/typescript/examples/.gitignore
@@ -2,6 +2,7 @@ output.txt
node_modules
dist
.mastra
+.npm-cache
.env.development
.env
*.db
diff --git a/integrations/mastra/typescript/src/mastra.ts b/integrations/mastra/typescript/src/mastra.ts
index 63aab3f86..27cbe4425 100644
--- a/integrations/mastra/typescript/src/mastra.ts
+++ b/integrations/mastra/typescript/src/mastra.ts
@@ -40,7 +40,11 @@ export interface MastraAgentConfig extends AgentConfig {
interface MastraAgentStreamOptions {
onTextPart?: (text: string) => void;
onFinishMessagePart?: () => void;
- onToolCallPart?: (streamPart: { toolCallId: string; toolName: string; args: any }) => void;
+ onToolCallPart?: (streamPart: {
+ toolCallId: string;
+ toolName: string;
+ args: any;
+ }) => void;
onToolResultPart?: (streamPart: { toolCallId: string; result: any }) => void;
onError?: (error: Error) => void;
onRunFinished?: () => Promise;
@@ -51,13 +55,18 @@ export class MastraAgent extends AbstractAgent {
resourceId?: string;
runtimeContext?: RuntimeContext;
- constructor({ agent, resourceId, runtimeContext, ...rest }: MastraAgentConfig) {
+ constructor(private config: MastraAgentConfig) {
+ const { agent, resourceId, runtimeContext, ...rest } = config;
super(rest);
this.agent = agent;
this.resourceId = resourceId;
this.runtimeContext = runtimeContext ?? new RuntimeContext();
}
+ public clone() {
+ return new MastraAgent(this.config);
+ }
+
run(input: RunAgentInput): Observable {
let messageId = randomUUID();
@@ -75,7 +84,11 @@ export class MastraAgent extends AbstractAgent {
if (this.isLocalMastraAgent(this.agent)) {
const memory = await this.agent.getMemory();
- if (memory && input.state && Object.keys(input.state || {}).length > 0) {
+ if (
+ memory &&
+ input.state &&
+ Object.keys(input.state || {}).length > 0
+ ) {
let thread: StorageThreadType | null = await memory.getThreadById({
threadId: input.threadId,
});
@@ -91,9 +104,14 @@ export class MastraAgent extends AbstractAgent {
};
}
- const existingMemory = JSON.parse((thread.metadata?.workingMemory as string) ?? "{}");
+ const existingMemory = JSON.parse(
+ (thread.metadata?.workingMemory as string) ?? "{}",
+ );
const { messages, ...rest } = input.state;
- const workingMemory = JSON.stringify({ ...existingMemory, ...rest });
+ const workingMemory = JSON.stringify({
+ ...existingMemory,
+ ...rest,
+ });
// Update thread metadata with new working memory
await memory.saveThread({
@@ -215,7 +233,9 @@ export class MastraAgent extends AbstractAgent {
});
}
- isLocalMastraAgent(agent: LocalMastraAgent | RemoteMastraAgent): agent is LocalMastraAgent {
+ isLocalMastraAgent(
+ agent: LocalMastraAgent | RemoteMastraAgent,
+ ): agent is LocalMastraAgent {
return "getMemory" in agent;
}
@@ -367,7 +387,9 @@ export class MastraAgent extends AbstractAgent {
return getRemoteAgents(options);
}
- static getLocalAgents(options: GetLocalAgentsOptions): Record {
+ static getLocalAgents(
+ options: GetLocalAgentsOptions,
+ ): Record {
return getLocalAgents(options);
}
diff --git a/integrations/mastra/typescript/src/utils.ts b/integrations/mastra/typescript/src/utils.ts
index 665e846fa..e775d353f 100644
--- a/integrations/mastra/typescript/src/utils.ts
+++ b/integrations/mastra/typescript/src/utils.ts
@@ -1,4 +1,4 @@
-import type { Message } from "@ag-ui/client";
+import type { InputContent, Message } from "@ag-ui/client";
import { AbstractAgent } from "@ag-ui/client";
import { MastraClient } from "@mastra/client-js";
import type { CoreMessage, Mastra } from "@mastra/core";
@@ -6,12 +6,39 @@ import { Agent as LocalMastraAgent } from "@mastra/core/agent";
import { RuntimeContext } from "@mastra/core/runtime-context";
import { MastraAgent } from "./mastra";
+const toMastraTextContent = (content: Message["content"]): string => {
+ if (!content) {
+ return "";
+ }
+
+ if (typeof content === "string") {
+ return content;
+ }
+
+ if (!Array.isArray(content)) {
+ return "";
+ }
+
+ type TextInput = Extract;
+
+ const textParts = content
+ .filter((part): part is TextInput => part.type === "text")
+ .map((part: TextInput) => part.text.trim())
+ .filter(Boolean);
+
+ return textParts.join("\n");
+};
+
export function convertAGUIMessagesToMastra(messages: Message[]): CoreMessage[] {
const result: CoreMessage[] = [];
for (const message of messages) {
if (message.role === "assistant") {
- const parts: any[] = message.content ? [{ type: "text", text: message.content }] : [];
+ const assistantContent = toMastraTextContent(message.content);
+ const parts: any[] = [];
+ if (assistantContent) {
+ parts.push({ type: "text", text: assistantContent });
+ }
for (const toolCall of message.toolCalls ?? []) {
parts.push({
type: "tool-call",
@@ -25,9 +52,10 @@ export function convertAGUIMessagesToMastra(messages: Message[]): CoreMessage[]
content: parts,
});
} else if (message.role === "user") {
+ const userContent = toMastraTextContent(message.content);
result.push({
role: "user",
- content: message.content || "",
+ content: userContent,
});
} else if (message.role === "tool") {
let toolName = "unknown";
diff --git a/integrations/pydantic-ai/typescript/package.json b/integrations/pydantic-ai/typescript/package.json
index e53c3a2ae..d1b203e9d 100644
--- a/integrations/pydantic-ai/typescript/package.json
+++ b/integrations/pydantic-ai/typescript/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/pydantic-ai",
"author": "Steven Hartland ",
- "version": "0.0.1",
+ "version": "0.0.2",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
diff --git a/integrations/pydantic-ai/typescript/src/index.ts b/integrations/pydantic-ai/typescript/src/index.ts
index f3a3190a8..1232063a6 100644
--- a/integrations/pydantic-ai/typescript/src/index.ts
+++ b/integrations/pydantic-ai/typescript/src/index.ts
@@ -1,3 +1,7 @@
import { HttpAgent } from "@ag-ui/client";
-export class PydanticAIAgent extends HttpAgent {}
+export class PydanticAIAgent extends HttpAgent {
+ public override get maxVersion(): string {
+ return "0.0.39";
+ }
+}
diff --git a/integrations/vercel-ai-sdk/typescript/src/index.ts b/integrations/vercel-ai-sdk/typescript/src/index.ts
index e2d3436c4..e00c68234 100644
--- a/integrations/vercel-ai-sdk/typescript/src/index.ts
+++ b/integrations/vercel-ai-sdk/typescript/src/index.ts
@@ -25,10 +25,59 @@ import {
tool as createVercelAISDKTool,
ToolChoice,
ToolSet,
+ FilePart,
+ ImagePart,
+ TextPart,
} from "ai";
import { randomUUID } from "@ag-ui/client";
import { z } from "zod";
+type VercelUserContent = Extract["content"];
+type VercelUserArrayContent = Extract;
+type VercelUserPart =
+ VercelUserArrayContent extends Array ? Part : never;
+
+const toVercelUserParts = (
+ inputContent: Message["content"],
+): VercelUserPart[] => {
+ if (!Array.isArray(inputContent)) {
+ return [];
+ }
+
+ const parts: VercelUserPart[] = [];
+
+ for (const part of inputContent) {
+ if (part.type === "text") {
+ parts.push({ type: "text", text: part.text } as VercelUserPart);
+ }
+ }
+
+ return parts;
+};
+
+const toVercelUserContent = (
+ content: Message["content"],
+): VercelUserContent => {
+ if (!content) {
+ return "";
+ }
+
+ if (typeof content === "string") {
+ return content;
+ }
+
+ const parts = toVercelUserParts(content);
+ if (parts.length === 0) {
+ return "";
+ }
+
+ if (parts.length === 1 && parts[0].type === "text") {
+ return parts[0].text;
+ }
+
+ return parts;
+};
+
type ProcessedEvent =
| MessagesSnapshotEvent
| RunFinishedEvent
@@ -48,13 +97,18 @@ export class VercelAISDKAgent extends AbstractAgent {
model: LanguageModelV1;
maxSteps: number;
toolChoice: ToolChoice>;
- constructor({ model, maxSteps, toolChoice, ...rest }: VercelAISDKAgentConfig) {
+ constructor(private config: VercelAISDKAgentConfig) {
+ const { model, maxSteps, toolChoice, ...rest } = config;
super({ ...rest });
this.model = model;
this.maxSteps = maxSteps ?? 1;
this.toolChoice = toolChoice ?? "auto";
}
+ public clone() {
+ return new VercelAISDKAgent(this.config);
+ }
+
run(input: RunAgentInput): Observable {
const finalMessages: Message[] = input.messages;
@@ -167,12 +221,16 @@ export class VercelAISDKAgent extends AbstractAgent {
}
}
-export function convertMessagesToVercelAISDKMessages(messages: Message[]): CoreMessage[] {
+export function convertMessagesToVercelAISDKMessages(
+ messages: Message[],
+): CoreMessage[] {
const result: CoreMessage[] = [];
for (const message of messages) {
if (message.role === "assistant") {
- const parts: any[] = message.content ? [{ type: "text", text: message.content }] : [];
+ const parts: any[] = message.content
+ ? [{ type: "text", text: message.content }]
+ : [];
for (const toolCall of message.toolCalls ?? []) {
parts.push({
type: "tool-call",
@@ -188,7 +246,7 @@ export function convertMessagesToVercelAISDKMessages(messages: Message[]): CoreM
} else if (message.role === "user") {
result.push({
role: "user",
- content: message.content || "",
+ content: toVercelUserContent(message.content),
});
} else if (message.role === "tool") {
let toolName = "unknown";
@@ -219,7 +277,10 @@ export function convertMessagesToVercelAISDKMessages(messages: Message[]): CoreM
return result;
}
-export function convertJsonSchemaToZodSchema(jsonSchema: any, required: boolean): z.ZodSchema {
+export function convertJsonSchemaToZodSchema(
+ jsonSchema: any,
+ required: boolean,
+): z.ZodSchema {
if (jsonSchema.type === "object") {
const spec: { [key: string]: z.ZodSchema } = {};
@@ -252,7 +313,9 @@ export function convertJsonSchemaToZodSchema(jsonSchema: any, required: boolean)
throw new Error("Invalid JSON schema");
}
-export function convertToolToVerlAISDKTools(tools: RunAgentInput["tools"]): ToolSet {
+export function convertToolToVerlAISDKTools(
+ tools: RunAgentInput["tools"],
+): ToolSet {
return tools.reduce(
(acc: ToolSet, tool: RunAgentInput["tools"][number]) => ({
...acc,
diff --git a/middlewares/a2a-middleware/src/index.ts b/middlewares/a2a-middleware/src/index.ts
index 7e5b90e16..3ddc5f8bb 100644
--- a/middlewares/a2a-middleware/src/index.ts
+++ b/middlewares/a2a-middleware/src/index.ts
@@ -16,7 +16,11 @@ import {
} from "@ag-ui/client";
import { A2AClient } from "@a2a-js/sdk/client";
-import { AgentCard, SendMessageResponse, SendMessageSuccessResponse } from "@a2a-js/sdk";
+import {
+ AgentCard,
+ SendMessageResponse,
+ SendMessageSuccessResponse,
+} from "@a2a-js/sdk";
import { Observable, Subscriber, tap } from "rxjs";
import { createSystemPrompt, sendMessageToA2AAgentTool } from "./utils";
import { randomUUID } from "@ag-ui/client";
@@ -37,7 +41,9 @@ export class A2AMiddlewareAgent extends AbstractAgent {
super(config);
this.instructions = config.instructions;
this.agentClients = config.agentUrls.map((url) => new A2AClient(url));
- this.agentCards = Promise.all(this.agentClients.map((client) => client.getAgentCard()));
+ this.agentCards = Promise.all(
+ this.agentClients.map((client) => client.getAgentCard()),
+ );
this.orchestrationAgent = config.orchestrationAgent;
}
@@ -73,7 +79,11 @@ export class A2AMiddlewareAgent extends AbstractAgent {
// Apply events to get mutations
const mutations$ = this.apply(input, source$, this.subscribers);
// Process the mutations
- const processedMutations$ = this.processApplyEvents(input, mutations$, this.subscribers);
+ const processedMutations$ = this.processApplyEvents(
+ input,
+ mutations$,
+ this.subscribers,
+ );
// Subscribe to the processed mutations to trigger side effects
processedMutations$.subscribe();
// Return the original stream to maintain BaseEvent type
@@ -94,7 +104,11 @@ export class A2AMiddlewareAgent extends AbstractAgent {
};
return stream
- .pipe(transformChunks(this.debug), applyAndProcessEvents, tap(markTextMessageAsPending))
+ .pipe(
+ transformChunks(this.debug),
+ applyAndProcessEvents,
+ tap(markTextMessageAsPending),
+ )
.subscribe({
next: (event: BaseEvent) => {
// Handle tool call start events for send_message_to_a2a_agent
@@ -102,7 +116,9 @@ export class A2AMiddlewareAgent extends AbstractAgent {
event.type === EventType.TOOL_CALL_START &&
"toolCallName" in event &&
"toolCallId" in event &&
- (event as ToolCallStartEvent).toolCallName.startsWith("send_message_to_a2a_agent")
+ (event as ToolCallStartEvent).toolCallName.startsWith(
+ "send_message_to_a2a_agent",
+ )
) {
// Track this as a pending A2A call
pendingA2ACalls.add(event.toolCallId as string);
@@ -139,14 +155,19 @@ export class A2AMiddlewareAgent extends AbstractAgent {
const toolArgs = toolCallsFromMessages[0]?.function.arguments;
if (!toolArgs) {
- throw new Error(`Tool arguments not found for tool call id ${toolCallId}`);
+ throw new Error(
+ `Tool arguments not found for tool call id ${toolCallId}`,
+ );
}
const parsed = JSON.parse(toolArgs);
const agentName = parsed.agentName;
const task = parsed.task;
if (this.debug) {
- console.debug("sending message to a2a agent", { agentName, message: task });
+ console.debug("sending message to a2a agent", {
+ agentName,
+ message: task,
+ });
}
return this.sendMessageToA2AAgent(agentName, task)
.then((a2aResponse) => {
@@ -195,7 +216,12 @@ export class A2AMiddlewareAgent extends AbstractAgent {
input.messages.push(msg);
});
- this.triggerNewRun(observer, input, pendingA2ACalls, pendingTextMessages);
+ this.triggerNewRun(
+ observer,
+ input,
+ pendingA2ACalls,
+ pendingTextMessages,
+ );
});
} else {
observer.next(event);
@@ -233,7 +259,10 @@ export class A2AMiddlewareAgent extends AbstractAgent {
let pendingA2ACalls = new Set();
const pendingTextMessages = new Set();
const agentCards = await this.agentCards;
- const newSystemPrompt = createSystemPrompt(agentCards, this.instructions);
+ const newSystemPrompt = createSystemPrompt(
+ agentCards,
+ this.instructions,
+ );
const messages = input.messages;
if (messages.length && messages[0].role === "system") {
@@ -250,13 +279,21 @@ export class A2AMiddlewareAgent extends AbstractAgent {
input.tools = [...(input.tools || []), sendMessageToA2AAgentTool];
// Start the orchestration agent run
- this.triggerNewRun(observer, input, pendingA2ACalls, pendingTextMessages);
+ this.triggerNewRun(
+ observer,
+ input,
+ pendingA2ACalls,
+ pendingTextMessages,
+ );
};
run();
});
}
- private async sendMessageToA2AAgent(agentName: string, args: string): Promise {
+ private async sendMessageToA2AAgent(
+ agentName: string,
+ args: string,
+ ): Promise {
const agentCards = await this.agentCards;
const agents = agentCards.map((card, index) => {
@@ -289,7 +326,11 @@ export class A2AMiddlewareAgent extends AbstractAgent {
const result = (sendResponse as SendMessageSuccessResponse).result;
let responseContent = "";
- if (result.kind === "message" && result.parts.length > 0 && result.parts[0].kind === "text") {
+ if (
+ result.kind === "message" &&
+ result.parts.length > 0 &&
+ result.parts[0].kind === "text"
+ ) {
responseContent = result.parts[0].text;
} else {
responseContent = JSON.stringify(result);
@@ -305,6 +346,12 @@ export class A2AMiddlewareAgent extends AbstractAgent {
pendingTextMessages: Set,
): void {
const newRunStream = this.orchestrationAgent.run(input);
- this.wrapStream(newRunStream, pendingA2ACalls, pendingTextMessages, observer, input);
+ this.wrapStream(
+ newRunStream,
+ pendingA2ACalls,
+ pendingTextMessages,
+ observer,
+ input,
+ );
}
}
diff --git a/package.json b/package.json
index 8e7e9a40c..ec3d2bda9 100644
--- a/package.json
+++ b/package.json
@@ -13,11 +13,11 @@
"check-types": "turbo run check-types",
"test": "turbo run test",
"create-integration": "pnpm dlx tsx create-integration.ts",
- "bump": "pnpm --filter './packages/*' exec -- pnpm version",
- "bump:alpha": "pnpm --filter './packages/*' exec -- pnpm version --preid alpha",
- "publish": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --filter='./packages/*'",
+ "bump": "pnpm --filter './sdks/typescript/packages/*' exec -- pnpm version",
+ "bump:alpha": "pnpm --filter './sdks/typescript/packages/*' exec -- pnpm version --preid alpha",
+ "publish": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --filter='./sdks/typescript/packages/*'",
"publish:integrations": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --filter='./integrations/*'",
- "publish:alpha": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --no-git-checks --filter='./packages/*' --tag alpha"
+ "publish:alpha": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --no-git-checks --filter='./sdks/typescript/packages/*' --tag alpha"
},
"devDependencies": {
"prettier": "^3.5.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
deleted file mode 100644
index 70be6bfa3..000000000
--- a/pnpm-lock.yaml
+++ /dev/null
@@ -1,21014 +0,0 @@
-lockfileVersion: '9.0'
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
-
-importers:
-
- .:
- devDependencies:
- prettier:
- specifier: ^3.5.3
- version: 3.6.2
- turbo:
- specifier: ^2.4.4
- version: 2.5.8
- typescript:
- specifier: 5.8.2
- version: 5.8.2
-
- apps/client-cli-example:
- dependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/core
- '@ag-ui/mastra':
- specifier: workspace:*
- version: link:../../integrations/mastra/typescript
- '@ai-sdk/openai':
- specifier: 1.3.22
- version: 1.3.22(zod@3.25.76)
- '@mastra/client-js':
- specifier: 0.10.18
- version: 0.10.18(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/core':
- specifier: 0.12.1
- version: 0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/libsql':
- specifier: 0.12.0
- version: 0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/loggers':
- specifier: 0.10.5
- version: 0.10.5(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/memory':
- specifier: 0.12.0
- version: 0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)
- open:
- specifier: ^10.1.2
- version: 10.2.0
- zod:
- specifier: ^3.22.4
- version: 3.25.76
- devDependencies:
- '@types/node':
- specifier: ^20
- version: 20.19.21
- tsx:
- specifier: ^4.7.0
- version: 4.20.6
- typescript:
- specifier: ^5
- version: 5.9.3
-
- apps/dojo:
- dependencies:
- '@ag-ui/a2a-middleware':
- specifier: workspace:*
- version: link:../../middlewares/a2a-middleware
- '@ag-ui/adk':
- specifier: workspace:*
- version: link:../../integrations/adk-middleware/typescript
- '@ag-ui/agno':
- specifier: workspace:*
- version: link:../../integrations/agno/typescript
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/core
- '@ag-ui/crewai':
- specifier: workspace:*
- version: link:../../integrations/crew-ai/typescript
- '@ag-ui/encoder':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/encoder
- '@ag-ui/langgraph':
- specifier: workspace:*
- version: link:../../integrations/langgraph/typescript
- '@ag-ui/llamaindex':
- specifier: workspace:*
- version: link:../../integrations/llama-index/typescript
- '@ag-ui/mastra':
- specifier: workspace:*
- version: link:../../integrations/mastra/typescript
- '@ag-ui/middleware-starter':
- specifier: workspace:*
- version: link:../../middlewares/middleware-starter
- '@ag-ui/proto':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/proto
- '@ag-ui/pydantic-ai':
- specifier: workspace:*
- version: link:../../integrations/pydantic-ai/typescript
- '@ag-ui/server-starter':
- specifier: workspace:*
- version: link:../../integrations/server-starter/typescript
- '@ag-ui/server-starter-all-features':
- specifier: workspace:*
- version: link:../../integrations/server-starter-all-features/typescript
- '@ag-ui/spring-ai':
- specifier: workspace:*
- version: link:../../integrations/community/spring-ai/typescript
- '@ag-ui/vercel-ai-sdk':
- specifier: workspace:*
- version: link:../../integrations/vercel-ai-sdk/typescript
- '@ai-sdk/openai':
- specifier: ^2.0.42
- version: 2.0.52(zod@3.25.76)
- '@copilotkit/react-core':
- specifier: 1.10.6
- version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@copilotkit/react-ui':
- specifier: 1.10.6
- version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@copilotkit/runtime':
- specifier: 1.10.6
- version: 1.10.6(43a54c62826e391639c20a8a0387b983)
- '@copilotkit/runtime-client-gql':
- specifier: 1.10.6
- version: 1.10.6(graphql@16.11.0)(react@19.2.0)
- '@copilotkit/shared':
- specifier: 1.10.6
- version: 1.10.6
- '@mastra/client-js':
- specifier: ^0.15.2
- version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/core':
- specifier: ^0.20.2
- version: 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/dynamodb':
- specifier: ^0.15.6
- version: 0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/libsql':
- specifier: ^0.15.1
- version: 0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/loggers':
- specifier: ^0.10.15
- version: 0.10.15(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/memory':
- specifier: ^0.15.6
- version: 0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76)
- '@mdx-js/loader':
- specifier: ^3.1.0
- version: 3.1.1
- '@mdx-js/mdx':
- specifier: ^3.1.0
- version: 3.1.1
- '@mdx-js/react':
- specifier: ^3.1.0
- version: 3.1.1(@types/react@19.2.2)(react@19.2.0)
- '@monaco-editor/react':
- specifier: ^4.7.0
- version: 4.7.0(monaco-editor@0.54.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@next/mdx':
- specifier: ^15.2.3
- version: 15.5.5(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))
- '@phosphor-icons/react':
- specifier: ^2.1.10
- version: 2.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-dropdown-menu':
- specifier: ^2.1.6
- version: 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-slot':
- specifier: ^1.2.3
- version: 1.2.3(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-tabs':
- specifier: ^1.1.3
- version: 1.1.13(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@tiptap/extension-color':
- specifier: ^2.11.5
- version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/extension-text-style@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)))
- '@tiptap/extension-placeholder':
- specifier: ^2.11.5
- version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/pm':
- specifier: ^2.11.5
- version: 2.26.3
- '@tiptap/react':
- specifier: ^2.11.5
- version: 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@tiptap/starter-kit':
- specifier: ^2.11.5
- version: 2.26.3
- '@types/react-syntax-highlighter':
- specifier: ^15.5.13
- version: 15.5.13
- class-variance-authority:
- specifier: ^0.7.1
- version: 0.7.1
- clsx:
- specifier: ^2.1.1
- version: 2.1.1
- dedent:
- specifier: ^1.7.0
- version: 1.7.0
- diff:
- specifier: ^7.0.0
- version: 7.0.0
- embla-carousel-react:
- specifier: ^8.6.0
- version: 8.6.0(react@19.2.0)
- fast-json-patch:
- specifier: ^3.1.1
- version: 3.1.1
- lucide-react:
- specifier: ^0.477.0
- version: 0.477.0(react@19.2.0)
- markdown-it:
- specifier: ^14.1.0
- version: 14.1.0
- markdown-it-ins:
- specifier: ^4.0.0
- version: 4.0.0
- next:
- specifier: 15.2.1
- version: 15.2.1(@opentelemetry/api@1.9.0)(@playwright/test@1.56.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- next-themes:
- specifier: ^0.4.6
- version: 0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- openai:
- specifier: ^4.98.0
- version: 4.104.0(ws@8.18.3)(zod@3.25.76)
- react:
- specifier: ^19.0.0
- version: 19.2.0
- react-dom:
- specifier: ^19.0.0
- version: 19.2.0(react@19.2.0)
- react-markdown:
- specifier: ^10.1.0
- version: 10.1.0(@types/react@19.2.2)(react@19.2.0)
- react-syntax-highlighter:
- specifier: ^15.6.1
- version: 15.6.6(react@19.2.0)
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- tailwind-merge:
- specifier: ^3.3.0
- version: 3.3.1
- tailwindcss-animate:
- specifier: ^1.0.7
- version: 1.0.7(tailwindcss@4.1.14)
- untruncate-json:
- specifier: ^0.0.1
- version: 0.0.1
- uuid:
- specifier: ^11.1.0
- version: 11.1.0
- zod:
- specifier: ^3.25.67
- version: 3.25.76
- devDependencies:
- '@eslint/eslintrc':
- specifier: ^3
- version: 3.3.1
- '@shadcn/ui':
- specifier: ^0.0.4
- version: 0.0.4
- '@tailwindcss/postcss':
- specifier: ^4
- version: 4.1.14
- '@tailwindcss/typography':
- specifier: ^0.5.16
- version: 0.5.19(tailwindcss@4.1.14)
- '@types/diff':
- specifier: ^7.0.1
- version: 7.0.2
- '@types/markdown-it':
- specifier: ^14.1.2
- version: 14.1.2
- '@types/node':
- specifier: ^20
- version: 20.19.21
- '@types/react':
- specifier: ^19
- version: 19.2.2
- '@types/react-dom':
- specifier: ^19
- version: 19.2.2(@types/react@19.2.2)
- concurrently:
- specifier: ^9.2.0
- version: 9.2.1
- eslint:
- specifier: ^9
- version: 9.37.0(jiti@2.6.1)
- eslint-config-next:
- specifier: 15.2.1
- version: 15.2.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- tailwindcss:
- specifier: ^4
- version: 4.1.14
- tsx:
- specifier: ^4.7.0
- version: 4.20.6
- typescript:
- specifier: ^5
- version: 5.9.3
- wait-port:
- specifier: ^1.1.0
- version: 1.1.0
-
- integrations/adk-middleware/typescript:
- dependencies:
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/agno/typescript:
- dependencies:
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/community/spring-ai/typescript:
- dependencies:
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../../sdks/typescript/packages/core
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/crew-ai/typescript:
- dependencies:
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/langgraph/typescript:
- dependencies:
- '@langchain/core':
- specifier: ^0.3.66
- version: 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- '@langchain/langgraph-sdk':
- specifier: ^0.1.2
- version: 0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- partial-json:
- specifier: ^0.1.7
- version: 0.1.7
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/llama-index/typescript:
- dependencies:
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/mastra/typescript:
- dependencies:
- '@ai-sdk/ui-utils':
- specifier: ^1.1.19
- version: 1.2.11(zod@3.25.76)
- '@copilotkit/runtime':
- specifier: ^1.10.5
- version: 1.10.6(2963fdc46a5185bf1f60e289781c45cd)
- '@mastra/client-js':
- specifier: ^0.15.2
- version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- zod:
- specifier: ^3.25.67
- version: 3.25.76
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@mastra/core':
- specifier: ^0.20.1
- version: 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/mastra/typescript/examples:
- dependencies:
- '@ai-sdk/openai':
- specifier: ^2.0.23
- version: 2.0.52(zod@3.25.76)
- '@mastra/client-js':
- specifier: ^0.15.2
- version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/core':
- specifier: ^0.20.2
- version: 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/libsql':
- specifier: ^0.15.1
- version: 0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/loggers':
- specifier: ^0.10.15
- version: 0.10.15(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/memory':
- specifier: ^0.15.6
- version: 0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76)
- zod:
- specifier: ^3.25.48
- version: 3.25.76
- devDependencies:
- '@types/node':
- specifier: ^22.15.29
- version: 22.18.10
- mastra:
- specifier: ^0.15.1
- version: 0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(@opentelemetry/api@1.9.0)(@types/json-schema@7.0.15)(typescript@5.9.3)(zod@3.25.76)
- typescript:
- specifier: ^5.8.3
- version: 5.9.3
-
- integrations/pydantic-ai/typescript:
- dependencies:
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/server-starter-all-features/typescript:
- dependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/server-starter/typescript:
- dependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- integrations/vercel-ai-sdk/typescript:
- dependencies:
- ai:
- specifier: ^4.3.16
- version: 4.3.19(react@19.2.0)(zod@3.25.76)
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- zod:
- specifier: ^3.22.4
- version: 3.25.76
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/client
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../../../sdks/typescript/packages/core
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- middlewares/a2a-middleware:
- dependencies:
- '@a2a-js/sdk':
- specifier: ^0.2.2
- version: 0.2.5
- ai:
- specifier: ^4.3.16
- version: 4.3.19(react@19.2.0)(zod@3.25.76)
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- zod:
- specifier: ^3.22.4
- version: 3.25.76
- devDependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/client
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- middlewares/middleware-starter:
- dependencies:
- '@ag-ui/client':
- specifier: workspace:*
- version: link:../../sdks/typescript/packages/client
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- devDependencies:
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- sdks/typescript/packages/cli:
- dependencies:
- '@types/inquirer':
- specifier: ^9.0.8
- version: 9.0.9
- commander:
- specifier: ^12.1.0
- version: 12.1.0
- giget:
- specifier: 2.0.0
- version: 2.0.0
- inquirer:
- specifier: ^12.6.3
- version: 12.10.0(@types/node@20.19.21)
- devDependencies:
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- sdks/typescript/packages/client:
- dependencies:
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../core
- '@ag-ui/encoder':
- specifier: workspace:*
- version: link:../encoder
- '@ag-ui/proto':
- specifier: workspace:*
- version: link:../proto
- '@types/uuid':
- specifier: ^10.0.0
- version: 10.0.0
- fast-json-patch:
- specifier: ^3.1.1
- version: 3.1.1
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- untruncate-json:
- specifier: ^0.0.1
- version: 0.0.1
- uuid:
- specifier: ^11.1.0
- version: 11.1.0
- zod:
- specifier: ^3.22.4
- version: 3.25.76
- devDependencies:
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- '@types/node':
- specifier: ^20.11.19
- version: 20.19.21
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.3.3
- version: 5.9.3
-
- sdks/typescript/packages/core:
- dependencies:
- rxjs:
- specifier: 7.8.1
- version: 7.8.1
- zod:
- specifier: ^3.22.4
- version: 3.25.76
- devDependencies:
- '@types/jest':
- specifier: ^29.5.12
- version: 29.5.14
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.8.2
- version: 5.9.3
-
- sdks/typescript/packages/encoder:
- dependencies:
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../core
- '@ag-ui/proto':
- specifier: workspace:*
- version: link:../proto
- devDependencies:
- '@types/jest':
- specifier: ^29.5.12
- version: 29.5.14
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.8.2
- version: 5.9.3
-
- sdks/typescript/packages/proto:
- dependencies:
- '@ag-ui/core':
- specifier: workspace:*
- version: link:../core
- '@bufbuild/protobuf':
- specifier: ^2.2.5
- version: 2.9.0
- '@protobuf-ts/protoc':
- specifier: ^2.11.1
- version: 2.11.1
- devDependencies:
- '@jest/globals':
- specifier: ^29.7.0
- version: 29.7.0
- '@types/jest':
- specifier: ^29.5.14
- version: 29.5.14
- jest:
- specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
- ts-jest:
- specifier: ^29.1.2
- version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
- ts-proto:
- specifier: ^2.7.0
- version: 2.7.7
- tsup:
- specifier: ^8.0.2
- version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
- typescript:
- specifier: ^5.8.2
- version: 5.9.3
-
-packages:
-
- '@0no-co/graphql.web@1.2.0':
- resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==}
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0
- peerDependenciesMeta:
- graphql:
- optional: true
-
- '@a2a-js/sdk@0.2.5':
- resolution: {integrity: sha512-VTDuRS5V0ATbJ/LkaQlisMnTAeYKXAK6scMguVBstf+KIBQ7HIuKhiXLv+G/hvejkV+THoXzoNifInAkU81P1g==}
- engines: {node: '>=18'}
-
- '@ag-ui/client@0.0.35':
- resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==}
-
- '@ag-ui/core@0.0.35':
- resolution: {integrity: sha512-YAqrln3S3fdo+Hs5FFQPODXiBttyilv/E3xSSHCuxqC0Y/Fp3+VqyDx97BorO3NVp2VKZ9cG2nsO3cbmcTwkQw==}
-
- '@ag-ui/core@0.0.37':
- resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==}
-
- '@ag-ui/core@0.0.39':
- resolution: {integrity: sha512-T5Hp4oFkQ+H5MynWAvSwrX/rNYJOD+PJ4qPQ0o771oSZQAxoIvDDft47Cx5wRyBNNLXAe1RWqJjfWUUwJFNKqA==}
-
- '@ag-ui/encoder@0.0.35':
- resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==}
-
- '@ag-ui/encoder@0.0.39':
- resolution: {integrity: sha512-6fsoFwPWkStK7Uyj3pwBn7+aQjUWf7pbDTSI43cD53sBLvTr5oEFNnoKOzRfC5UqvHc4JjUIuLKPQyjHRwWg4g==}
-
- '@ag-ui/langgraph@0.0.18':
- resolution: {integrity: sha512-soWSV8+xR91jMArZUJoRv85UCgTi3Zt3u3gTMZhvs1t6fGFpAi6+hEQ4AqP13Rgvg90IlmIU8MTWo2k0OZDnoA==}
- peerDependencies:
- '@ag-ui/client': '>=0.0.38'
- '@ag-ui/core': '>=0.0.38'
-
- '@ag-ui/proto@0.0.35':
- resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==}
-
- '@ag-ui/proto@0.0.39':
- resolution: {integrity: sha512-xlj/PzZHkJ3CgoQC5QP9g7DEl/78wUK1+A2rdkoLKoNAMOkM2g6jKw0N88iFIh5GZhtiCNN2wb8XwRWPYx9XQQ==}
-
- '@ai-sdk/anthropic@2.0.23':
- resolution: {integrity: sha512-ZEBiiv1UhjGjBwUU63pFhLK5LCSlNDb1idY9K1oZHm5/Fda1cuTojf32tOp0opH0RPbPAN/F8fyyNjbU33n9Kw==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/gateway@1.0.33':
- resolution: {integrity: sha512-v9i3GPEo4t3fGcSkQkc07xM6KJN75VUv7C1Mqmmsu2xD8lQwnQfsrgAXyNuWe20yGY0eHuheSPDZhiqsGKtH1g==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/google@2.0.17':
- resolution: {integrity: sha512-6LyuUrCZuiULg0rUV+kT4T2jG19oUntudorI4ttv1ARkSbwl8A39ue3rA487aDDy6fUScdbGFiV5Yv/o4gidVA==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/openai-compatible@1.0.19':
- resolution: {integrity: sha512-hnsqPCCSNKgpZRNDOAIXZs7OcUDM4ut5ggWxj2sjB4tNL/aBn/xrM7pJkqu+WuPowyrE60wPVSlw0LvtXAlMXQ==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/openai@1.3.22':
- resolution: {integrity: sha512-QwA+2EkG0QyjVR+7h6FE7iOu2ivNqAVMm9UJZkVxxTk5OIq5fFJDTEI/zICEMuHImTTXR2JjsL6EirJ28Jc4cw==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.0.0
-
- '@ai-sdk/openai@2.0.42':
- resolution: {integrity: sha512-9mM6QS8k0ooH9qMC27nlrYLQmNDnO6Rk0JTmFo/yUxpABEWOcvQhMWNHbp9lFL6Ty5vkdINrujhsAQfWuEleOg==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/openai@2.0.52':
- resolution: {integrity: sha512-n1arAo4+63e6/FFE6z/1ZsZbiOl4cfsoZ3F4i2X7LPIEea786Y2yd7Qdr7AdB4HTLVo3OSb1PHVIcQmvYIhmEA==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/provider-utils@2.2.8':
- resolution: {integrity: sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.23.8
-
- '@ai-sdk/provider-utils@3.0.10':
- resolution: {integrity: sha512-T1gZ76gEIwffep6MWI0QNy9jgoybUHE7TRaHB5k54K8mF91ciGFlbtCGxDYhMH3nCRergKwYFIDeFF0hJSIQHQ==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/provider-utils@3.0.12':
- resolution: {integrity: sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@ai-sdk/provider@1.1.3':
- resolution: {integrity: sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==}
- engines: {node: '>=18'}
-
- '@ai-sdk/provider@2.0.0':
- resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==}
- engines: {node: '>=18'}
-
- '@ai-sdk/react@1.2.12':
- resolution: {integrity: sha512-jK1IZZ22evPZoQW3vlkZ7wvjYGYF+tRBKXtrcolduIkQ/m/sOAVcVeVDUDvh1T91xCnWCdUGCPZg2avZ90mv3g==}
- engines: {node: '>=18'}
- peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
- zod: ^3.23.8
- peerDependenciesMeta:
- zod:
- optional: true
-
- '@ai-sdk/ui-utils@1.2.11':
- resolution: {integrity: sha512-3zcwCc8ezzFlwp3ZD15wAPjf2Au4s3vAbKsXQVyhxODHcmu0iyPO2Eua6D/vicq/AUm/BAo60r97O6HU+EI0+w==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.23.8
-
- '@ai-sdk/xai@2.0.23':
- resolution: {integrity: sha512-Xo4r5W/Wvi4mkCD98DoafNxj9V3xysUlWOeqAYpqKeKkNQ2xtOTly2MHq+gP6wKud0Y/mI7hemkCMQgH6HOwzQ==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- '@alloc/quick-lru@5.2.0':
- resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
- engines: {node: '>=10'}
-
- '@anthropic-ai/sdk@0.27.3':
- resolution: {integrity: sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==}
-
- '@anthropic-ai/sdk@0.57.0':
- resolution: {integrity: sha512-z5LMy0MWu0+w2hflUgj4RlJr1R+0BxKXL7ldXTO8FasU8fu599STghO+QKwId2dAD0d464aHtU+ChWuRHw4FNw==}
- hasBin: true
-
- '@apidevtools/json-schema-ref-parser@11.9.3':
- resolution: {integrity: sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==}
- engines: {node: '>= 16'}
-
- '@apidevtools/json-schema-ref-parser@14.2.1':
- resolution: {integrity: sha512-HmdFw9CDYqM6B25pqGBpNeLCKvGPlIx1EbLrVL0zPvj50CJQUHyBNBw45Muk0kEIkogo1VZvOKHajdMuAzSxRg==}
- engines: {node: '>= 20'}
- peerDependencies:
- '@types/json-schema': ^7.0.15
-
- '@aws-crypto/crc32@5.2.0':
- resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
- engines: {node: '>=16.0.0'}
-
- '@aws-crypto/sha256-browser@5.2.0':
- resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
-
- '@aws-crypto/sha256-js@5.2.0':
- resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==}
- engines: {node: '>=16.0.0'}
-
- '@aws-crypto/supports-web-crypto@5.2.0':
- resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==}
-
- '@aws-crypto/util@5.2.0':
- resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
-
- '@aws-sdk/client-bedrock-agent-runtime@3.910.0':
- resolution: {integrity: sha512-03xy78mQNBWmLrHT+Tx1Q3oVG4Y/cSQTYzuRPCdpzpgbWXTGJ5yNx8lzdX1Xys7yyGYbw2kX5IzdBiBxk66Vdw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/client-bedrock-runtime@3.910.0':
- resolution: {integrity: sha512-qWzvNFuv0fZWvc5cpMm2S5CRsn5EKUeqb3OL8PAVk4QPSJmFnX3RMlELxnd4+o1mvpYNs6fxwjEHN0SYPBFdPw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/client-dynamodb@3.910.0':
- resolution: {integrity: sha512-taIbikBDq1J3e6Hk1YIe3736l2Ep0blzY5JRuNnXeh1xJxnINaWH3BQW0w+OXmNThV/LRYruOru6+QAd2BekmA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/client-kendra@3.910.0':
- resolution: {integrity: sha512-hzSspLIBXWYk1iqKV5oNNbtF3CP0so5hPXAuOcGHysv+OIV+L98moUH4oYBMWeaGCjBZixE0+W3xHQS1VG8k7A==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/client-sso@3.910.0':
- resolution: {integrity: sha512-oEWXhe2RHiSPKxhrq1qp7M4fxOsxMIJc4d75z8tTLLm5ujlmTZYU3kd0l2uBBaZSlbkrMiefntT6XrGint1ibw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/core@3.910.0':
- resolution: {integrity: sha512-b/FVNyPxZMmBp+xDwANDgR6o5Ehh/RTY9U/labH56jJpte196Psru/FmQULX3S6kvIiafQA9JefWUq81SfWVLg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-env@3.910.0':
- resolution: {integrity: sha512-Os8I5XtTLBBVyHJLxrEB06gSAZeFMH2jVoKhAaFybjOTiV7wnjBgjvWjRfStnnXs7p9d+vc/gd6wIZHjony5YQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-http@3.910.0':
- resolution: {integrity: sha512-3KiGsTlqMnvthv90K88Uv3SvaUbmcTShBIVWYNaHdbrhrjVRR08dm2Y6XjQILazLf1NPFkxUou1YwCWK4nae1Q==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-ini@3.910.0':
- resolution: {integrity: sha512-/8x9LKKaLGarvF1++bFEFdIvd9/djBb+HTULbJAf4JVg3tUlpHtGe7uquuZaQkQGeW4XPbcpB9RMWx5YlZkw3w==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-node@3.910.0':
- resolution: {integrity: sha512-Zz5tF/U4q9ir3rfVnPLlxbhMTHjPaPv78TarspFYn9mNN7cPVXBaXVVnMNu6ypZzBdTB8M44UYo827Qcw3kouA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-process@3.910.0':
- resolution: {integrity: sha512-l1lZfHIl/z0SxXibt7wMQ2HmRIyIZjlOrT6a554xlO//y671uxPPwScVw7QW4fPIvwfmKbl8dYCwGI//AgQ0bA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-sso@3.910.0':
- resolution: {integrity: sha512-cwc9bmomjUqPDF58THUCmEnpAIsCFV3Y9FHlQmQbMkYUm7Wlrb5E2iFrZ4WDefAHuh25R/gtj+Yo74r3gl9kbw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/credential-provider-web-identity@3.910.0':
- resolution: {integrity: sha512-HFQgZm1+7WisJ8tqcZkNRRmnoFO+So+L12wViVxneVJ+OclfL2vE/CoKqHTozP6+JCOKMlv6Vi61Lu6xDtKdTA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/endpoint-cache@3.893.0':
- resolution: {integrity: sha512-KSwTfyLZyNLszz5f/yoLC+LC+CRKpeJii/+zVAy7JUOQsKhSykiRUPYUx7o2Sdc4oJfqqUl26A/jSttKYnYtAA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/eventstream-handler-node@3.910.0':
- resolution: {integrity: sha512-oh91l4hR0makDcdK2uPoIETI8QKrDxgEDdo5VZNPddnr7XBNPenm8bWLvSQI2sEtn0uaQw5q9eT75I5HaiWB5g==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/lib-dynamodb@3.910.0':
- resolution: {integrity: sha512-ltGlB9p57RTHuyKBci5siNb92iq43kWd4EwwIIgPyADjgjcRIZcSbyAhB9eBdb2aX0IqsDpPUyBz7iAsOzOffQ==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@aws-sdk/client-dynamodb': ^3.910.0
-
- '@aws-sdk/middleware-endpoint-discovery@3.910.0':
- resolution: {integrity: sha512-KZvTt8lUUhkQptu00iSSdf5+6h6NP3L5tP251/4FRh9XDXMdpIoAAGsmamhVySkUSODDaALMHjXPSK5SJq/RYw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-eventstream@3.910.0':
- resolution: {integrity: sha512-zeV4DVypzV+77AQ7sqVfKacVWFBM2HVBVORZ4PnCjToCg1BQgw39IDVtklF1/Fs+mmGp4dJdTlJ7TKBCqBNdhw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-host-header@3.910.0':
- resolution: {integrity: sha512-F9Lqeu80/aTM6S/izZ8RtwSmjfhWjIuxX61LX+/9mxJyEkgaECRxv0chsLQsLHJumkGnXRy/eIyMLBhcTPF5vg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-logger@3.910.0':
- resolution: {integrity: sha512-3LJyyfs1USvRuRDla1pGlzGRtXJBXD1zC9F+eE9Iz/V5nkmhyv52A017CvKWmYoR0DM9dzjLyPOI0BSSppEaTw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-recursion-detection@3.910.0':
- resolution: {integrity: sha512-m/oLz0EoCy+WoIVBnXRXJ4AtGpdl0kPE7U+VH9TsuUzHgxY1Re/176Q1HWLBRVlz4gr++lNsgsMWEC+VnAwMpw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-user-agent@3.910.0':
- resolution: {integrity: sha512-djpnECwDLI/4sck1wxK/cZJmZX5pAhRvjONyJqr0AaOfJyuIAG0PHLe7xwCrv2rCAvIBR9ofnNFzPIGTJPDUwg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/middleware-websocket@3.910.0':
- resolution: {integrity: sha512-W0t8nHo6SY2g5+ZAofsnzxr3K8E1hRT2qq1BlYcNwX76m2Kw0wP+kaMhKlAdtY7rglu7HZhwErZHxQfenO9UZg==}
- engines: {node: '>= 14.0.0'}
-
- '@aws-sdk/nested-clients@3.910.0':
- resolution: {integrity: sha512-Jr/smgVrLZECQgMyP4nbGqgJwzFFbkjOVrU8wh/gbVIZy1+Gu6R7Shai7KHDkEjwkGcHpN1MCCO67jTAOoSlMw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/region-config-resolver@3.910.0':
- resolution: {integrity: sha512-gzQAkuHI3xyG6toYnH/pju+kc190XmvnB7X84vtN57GjgdQJICt9So/BD0U6h+eSfk9VBnafkVrAzBzWMEFZVw==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/token-providers@3.910.0':
- resolution: {integrity: sha512-dQr3pFpzemKyrB7SEJ2ipPtWrZiL5vaimg2PkXpwyzGrigYRc8F2R9DMUckU5zi32ozvQqq4PI3bOrw6xUfcbQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/types@3.910.0':
- resolution: {integrity: sha512-o67gL3vjf4nhfmuSUNNkit0d62QJEwwHLxucwVJkR/rw9mfUtAWsgBs8Tp16cdUbMgsyQtCQilL8RAJDoGtadQ==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-dynamodb@3.910.0':
- resolution: {integrity: sha512-DI9mg8bcmvxPMDUcPgNZEgWqaeaeOTgvZKnHP8Rmdneaw5h7Cdnm+aall0jcxu7aIMnMytRmgIcu0QAWm8x5bw==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- '@aws-sdk/client-dynamodb': ^3.910.0
-
- '@aws-sdk/util-endpoints@3.910.0':
- resolution: {integrity: sha512-6XgdNe42ibP8zCQgNGDWoOF53RfEKzpU/S7Z29FTTJ7hcZv0SytC0ZNQQZSx4rfBl036YWYwJRoJMlT4AA7q9A==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-format-url@3.910.0':
- resolution: {integrity: sha512-cYfgDGxZnrAq7wvntBjW6/ZewRcwywOE1Q9KKPO05ZHXpWCrqKNkx0JG8h2xlu+2qX6lkLZS+NyFAlwCQa0qfA==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-locate-window@3.893.0':
- resolution: {integrity: sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==}
- engines: {node: '>=18.0.0'}
-
- '@aws-sdk/util-user-agent-browser@3.910.0':
- resolution: {integrity: sha512-iOdrRdLZHrlINk9pezNZ82P/VxO/UmtmpaOAObUN+xplCUJu31WNM2EE/HccC8PQw6XlAudpdA6HDTGiW6yVGg==}
-
- '@aws-sdk/util-user-agent-node@3.910.0':
- resolution: {integrity: sha512-qNV+rywWQDOOWmGpNlWLCU6zkJurocTBB2uLSdQ8b6Xg6U/i1VTJsoUQ5fbhSQpp/SuBGiIglyB1gSc0th7hPw==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- aws-crt: '>=1.0.0'
- peerDependenciesMeta:
- aws-crt:
- optional: true
-
- '@aws-sdk/xml-builder@3.910.0':
- resolution: {integrity: sha512-UK0NzRknzUITYlkDibDSgkWvhhC11OLhhhGajl6pYCACup+6QE4SsLvmAGMkyNtGVCJ6Q+BM6PwDCBZyBgwl9A==}
- engines: {node: '>=18.0.0'}
-
- '@aws/lambda-invoke-store@0.0.1':
- resolution: {integrity: sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==}
- engines: {node: '>=18.0.0'}
-
- '@babel/code-frame@7.27.1':
- resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/compat-data@7.28.4':
- resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/core@7.28.4':
- resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/generator@7.28.3':
- resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-annotate-as-pure@7.27.3':
- resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-compilation-targets@7.27.2':
- resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-create-class-features-plugin@7.28.3':
- resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-globals@7.28.0':
- resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-member-expression-to-functions@7.27.1':
- resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-imports@7.27.1':
- resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-module-transforms@7.28.3':
- resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-optimise-call-expression@7.27.1':
- resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-plugin-utils@7.27.1':
- resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-replace-supers@7.27.1':
- resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
- resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-string-parser@7.27.1':
- resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-identifier@7.27.1':
- resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helper-validator-option@7.27.1':
- resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
- engines: {node: '>=6.9.0'}
-
- '@babel/helpers@7.28.4':
- resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
- engines: {node: '>=6.9.0'}
-
- '@babel/parser@7.28.4':
- resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
- engines: {node: '>=6.0.0'}
- hasBin: true
-
- '@babel/plugin-syntax-async-generators@7.8.4':
- resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-bigint@7.8.3':
- resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-class-properties@7.12.13':
- resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-class-static-block@7.14.5':
- resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-import-attributes@7.27.1':
- resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-import-meta@7.10.4':
- resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-json-strings@7.8.3':
- resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-jsx@7.27.1':
- resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4':
- resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3':
- resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-numeric-separator@7.10.4':
- resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-object-rest-spread@7.8.3':
- resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-optional-catch-binding@7.8.3':
- resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-optional-chaining@7.8.3':
- resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-private-property-in-object@7.14.5':
- resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-top-level-await@7.14.5':
- resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-syntax-typescript@7.27.1':
- resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-modules-commonjs@7.27.1':
- resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/plugin-transform-typescript@7.28.0':
- resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/preset-typescript@7.27.1':
- resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
-
- '@babel/runtime@7.28.4':
- resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/template@7.27.2':
- resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
- engines: {node: '>=6.9.0'}
-
- '@babel/traverse@7.28.4':
- resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
- engines: {node: '>=6.9.0'}
-
- '@babel/types@7.28.4':
- resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
- engines: {node: '>=6.9.0'}
-
- '@bcoe/v8-coverage@0.2.3':
- resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
-
- '@browserbasehq/sdk@2.6.0':
- resolution: {integrity: sha512-83iXP5D7xMm8Wyn66TUaUrgoByCmAJuoMoZQI3sGg3JAiMlTfnCIMqyVBoNSaItaPIkaCnrsj6LiusmXV2X9YA==}
-
- '@browserbasehq/stagehand@1.14.0':
- resolution: {integrity: sha512-Hi/EzgMFWz+FKyepxHTrqfTPjpsuBS4zRy3e9sbMpBgLPv+9c0R+YZEvS7Bw4mTS66QtvvURRT6zgDGFotthVQ==}
- peerDependencies:
- '@playwright/test': ^1.42.1
- deepmerge: ^4.3.1
- dotenv: ^16.4.5
- openai: ^4.62.1
- zod: ^3.23.8
-
- '@bufbuild/protobuf@2.9.0':
- resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==}
-
- '@cfworker/json-schema@4.1.1':
- resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==}
-
- '@clack/core@0.5.0':
- resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==}
-
- '@clack/prompts@0.11.0':
- resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==}
-
- '@copilotkit/react-core@1.10.6':
- resolution: {integrity: sha512-sdojpntwgOxP8lWRzaFEiWr0g2wDefjQHtve5GPPie+otseFonV88FZjSqIq5LN+q5BIwDOEhCmDjALsGjXvuQ==}
- peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
- react-dom: ^18 || ^19 || ^19.0.0-rc
-
- '@copilotkit/react-ui@1.10.6':
- resolution: {integrity: sha512-eNIbZKMvBVZqlAR4fqkmZRIYIt8WhwZOxfVJVwMD9nfmWdtatmxrOLecyDiPk/hkq2o/8s2/rubaZSMK6m+GHQ==}
- peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
-
- '@copilotkit/runtime-client-gql@1.10.6':
- resolution: {integrity: sha512-oLX8mjppVvQCWfquW9A0500hYVNxM4X/mtt76SEvfGUb2KsNQ4j2HOCzpmtm85MeLproC+f9738wLwRueLliZg==}
- peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
-
- '@copilotkit/runtime@1.10.6':
- resolution: {integrity: sha512-35MdJ6nutC+spgHRJURbanLxBoQCNvVBYD0CBIk4Rv3/Ck8XgZA4lcc+5aGteuERXOPBsYEQjGD4xEPy3QXmGg==}
- peerDependencies:
- '@ag-ui/client': '>=0.0.39'
- '@ag-ui/core': '>=0.0.39'
- '@ag-ui/encoder': '>=0.0.39'
- '@ag-ui/langgraph': '>=0.0.18'
- '@ag-ui/proto': '>=0.0.39'
-
- '@copilotkit/shared@1.10.6':
- resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==}
-
- '@emnapi/core@1.5.0':
- resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
-
- '@emnapi/runtime@1.5.0':
- resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
-
- '@emnapi/wasi-threads@1.1.0':
- resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
-
- '@envelop/core@5.3.2':
- resolution: {integrity: sha512-06Mu7fmyKzk09P2i2kHpGfItqLLgCq7uO5/nX4fc/iHMplWPNuAx4iYR+WXUQoFHDnP6EUbceQNQ5iyeMz9f3g==}
- engines: {node: '>=18.0.0'}
-
- '@envelop/instrumentation@1.0.0':
- resolution: {integrity: sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==}
- engines: {node: '>=18.0.0'}
-
- '@envelop/types@5.2.1':
- resolution: {integrity: sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==}
- engines: {node: '>=18.0.0'}
-
- '@esbuild/aix-ppc64@0.25.10':
- resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [aix]
-
- '@esbuild/android-arm64@0.25.10':
- resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.25.10':
- resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.25.10':
- resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.25.10':
- resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.25.10':
- resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.25.10':
- resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.25.10':
- resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.25.10':
- resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.25.10':
- resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==}
- engines: {node: '>=18'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.25.10':
- resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.25.10':
- resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==}
- engines: {node: '>=18'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.25.10':
- resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==}
- engines: {node: '>=18'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.25.10':
- resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==}
- engines: {node: '>=18'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.25.10':
- resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==}
- engines: {node: '>=18'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.25.10':
- resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==}
- engines: {node: '>=18'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.25.10':
- resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-arm64@0.25.10':
- resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [netbsd]
-
- '@esbuild/netbsd-x64@0.25.10':
- resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-arm64@0.25.10':
- resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openbsd]
-
- '@esbuild/openbsd-x64@0.25.10':
- resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/openharmony-arm64@0.25.10':
- resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [openharmony]
-
- '@esbuild/sunos-x64@0.25.10':
- resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.25.10':
- resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==}
- engines: {node: '>=18'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.25.10':
- resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==}
- engines: {node: '>=18'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.25.10':
- resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==}
- engines: {node: '>=18'}
- cpu: [x64]
- os: [win32]
-
- '@eslint-community/eslint-utils@4.9.0':
- resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
-
- '@eslint-community/regexpp@4.12.1':
- resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
- engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
-
- '@eslint/config-array@0.21.0':
- resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/config-helpers@0.4.0':
- resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/core@0.16.0':
- resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/eslintrc@3.3.1':
- resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/js@9.37.0':
- resolution: {integrity: sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/object-schema@2.1.6':
- resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@eslint/plugin-kit@0.4.0':
- resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@expo/devcert@1.2.0':
- resolution: {integrity: sha512-Uilcv3xGELD5t/b0eM4cxBFEKQRIivB3v7i+VhWLV/gL98aw810unLKKJbGAxAIhY6Ipyz8ChWibFsKFXYwstA==}
-
- '@expo/sudo-prompt@9.3.2':
- resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==}
-
- '@fastify/busboy@3.2.0':
- resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==}
-
- '@floating-ui/core@1.7.3':
- resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==}
-
- '@floating-ui/dom@1.7.4':
- resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==}
-
- '@floating-ui/react-dom@2.1.6':
- resolution: {integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
-
- '@floating-ui/react@0.26.28':
- resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==}
- peerDependencies:
- react: '>=16.8.0'
- react-dom: '>=16.8.0'
-
- '@floating-ui/utils@0.2.10':
- resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
-
- '@graphql-tools/executor@1.4.9':
- resolution: {integrity: sha512-SAUlDT70JAvXeqV87gGzvDzUGofn39nvaVcVhNf12Dt+GfWHtNNO/RCn/Ea4VJaSLGzraUd41ObnN3i80EBU7w==}
- engines: {node: '>=16.0.0'}
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
-
- '@graphql-tools/merge@9.1.1':
- resolution: {integrity: sha512-BJ5/7Y7GOhTuvzzO5tSBFL4NGr7PVqTJY3KeIDlVTT8YLcTXtBR+hlrC3uyEym7Ragn+zyWdHeJ9ev+nRX1X2w==}
- engines: {node: '>=16.0.0'}
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
-
- '@graphql-tools/schema@10.0.25':
- resolution: {integrity: sha512-/PqE8US8kdQ7lB9M5+jlW8AyVjRGCKU7TSktuW3WNKSKmDO0MK1wakvb5gGdyT49MjAIb4a3LWxIpwo5VygZuw==}
- engines: {node: '>=16.0.0'}
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
-
- '@graphql-tools/utils@10.9.1':
- resolution: {integrity: sha512-B1wwkXk9UvU7LCBkPs8513WxOQ2H8Fo5p8HR1+Id9WmYE5+bd51vqN+MbrqvWczHCH2gwkREgHJN88tE0n1FCw==}
- engines: {node: '>=16.0.0'}
- peerDependencies:
- graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
-
- '@graphql-typed-document-node/core@3.2.0':
- resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==}
- peerDependencies:
- graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
-
- '@graphql-yoga/logger@2.0.1':
- resolution: {integrity: sha512-Nv0BoDGLMg9QBKy9cIswQ3/6aKaKjlTh87x3GiBg2Z4RrjyrM48DvOOK0pJh1C1At+b0mUIM67cwZcFTDLN4sA==}
- engines: {node: '>=18.0.0'}
-
- '@graphql-yoga/plugin-defer-stream@3.16.0':
- resolution: {integrity: sha512-LGn8DSSIB4iWT/EgeXR+rIvl80LOlZqIZrnK4slNJLgnXyMyvXMSlIcE/NnzH4zQq1YRixZtshXNOtekrVH9+g==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- graphql: ^15.2.0 || ^16.0.0
- graphql-yoga: ^5.16.0
-
- '@graphql-yoga/subscription@5.0.5':
- resolution: {integrity: sha512-oCMWOqFs6QV96/NZRt/ZhTQvzjkGB4YohBOpKM4jH/lDT4qb7Lex/aGCxpi/JD9njw3zBBtMqxbaC22+tFHVvw==}
- engines: {node: '>=18.0.0'}
-
- '@graphql-yoga/typed-event-target@3.0.2':
- resolution: {integrity: sha512-ZpJxMqB+Qfe3rp6uszCQoag4nSw42icURnBRfFYSOmTgEeOe4rD0vYlbA8spvCu2TlCesNTlEN9BLWtQqLxabA==}
- engines: {node: '>=18.0.0'}
-
- '@grpc/grpc-js@1.14.0':
- resolution: {integrity: sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==}
- engines: {node: '>=12.10.0'}
-
- '@grpc/proto-loader@0.8.0':
- resolution: {integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==}
- engines: {node: '>=6'}
- hasBin: true
-
- '@headlessui/react@2.2.9':
- resolution: {integrity: sha512-Mb+Un58gwBn0/yWZfyrCh0TJyurtT+dETj7YHleylHk5od3dv2XqETPGWMyQ5/7sYN7oWdyM1u9MvC0OC8UmzQ==}
- engines: {node: '>=10'}
- peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
- react-dom: ^18 || ^19 || ^19.0.0-rc
-
- '@humanfs/core@0.19.1':
- resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
- engines: {node: '>=18.18.0'}
-
- '@humanfs/node@0.16.7':
- resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
- engines: {node: '>=18.18.0'}
-
- '@humanwhocodes/module-importer@1.0.1':
- resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
- engines: {node: '>=12.22'}
-
- '@humanwhocodes/retry@0.4.3':
- resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
- engines: {node: '>=18.18'}
-
- '@ibm-cloud/watsonx-ai@1.7.0':
- resolution: {integrity: sha512-TmLaoFXmLc7yVFJIQS25mzZcuWfju4JmRXcO62KthDKNENyPpXXJukrHN6gXfv1BotzFt0M2kyRnO1Vt8ZLlxQ==}
- engines: {node: '>=18.0.0'}
-
- '@img/sharp-darwin-arm64@0.33.5':
- resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm64]
- os: [darwin]
-
- '@img/sharp-darwin-x64@0.33.5':
- resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [darwin]
-
- '@img/sharp-libvips-darwin-arm64@1.0.4':
- resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
- cpu: [arm64]
- os: [darwin]
-
- '@img/sharp-libvips-darwin-x64@1.0.4':
- resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
- cpu: [x64]
- os: [darwin]
-
- '@img/sharp-libvips-linux-arm64@1.0.4':
- resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-libvips-linux-arm@1.0.5':
- resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
- cpu: [arm]
- os: [linux]
-
- '@img/sharp-libvips-linux-s390x@1.0.4':
- resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
- cpu: [s390x]
- os: [linux]
-
- '@img/sharp-libvips-linux-x64@1.0.4':
- resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
- resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-libvips-linuxmusl-x64@1.0.4':
- resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-linux-arm64@0.33.5':
- resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-linux-arm@0.33.5':
- resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm]
- os: [linux]
-
- '@img/sharp-linux-s390x@0.33.5':
- resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [s390x]
- os: [linux]
-
- '@img/sharp-linux-x64@0.33.5':
- resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-linuxmusl-arm64@0.33.5':
- resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [arm64]
- os: [linux]
-
- '@img/sharp-linuxmusl-x64@0.33.5':
- resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [linux]
-
- '@img/sharp-wasm32@0.33.5':
- resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [wasm32]
-
- '@img/sharp-win32-ia32@0.33.5':
- resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [ia32]
- os: [win32]
-
- '@img/sharp-win32-x64@0.33.5':
- resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
- cpu: [x64]
- os: [win32]
-
- '@inquirer/ansi@1.0.1':
- resolution: {integrity: sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw==}
- engines: {node: '>=18'}
-
- '@inquirer/checkbox@4.3.0':
- resolution: {integrity: sha512-5+Q3PKH35YsnoPTh75LucALdAxom6xh5D1oeY561x4cqBuH24ZFVyFREPe14xgnrtmGu3EEt1dIi60wRVSnGCw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/confirm@5.1.19':
- resolution: {integrity: sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/core@10.3.0':
- resolution: {integrity: sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/editor@4.2.21':
- resolution: {integrity: sha512-MjtjOGjr0Kh4BciaFShYpZ1s9400idOdvQ5D7u7lE6VztPFoyLcVNE5dXBmEEIQq5zi4B9h2kU+q7AVBxJMAkQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/expand@4.0.21':
- resolution: {integrity: sha512-+mScLhIcbPFmuvU3tAGBed78XvYHSvCl6dBiYMlzCLhpr0bzGzd8tfivMMeqND6XZiaZ1tgusbUHJEfc6YzOdA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/external-editor@1.0.2':
- resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/figures@1.0.14':
- resolution: {integrity: sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ==}
- engines: {node: '>=18'}
-
- '@inquirer/input@4.2.5':
- resolution: {integrity: sha512-7GoWev7P6s7t0oJbenH0eQ0ThNdDJbEAEtVt9vsrYZ9FulIokvd823yLyhQlWHJPGce1wzP53ttfdCZmonMHyA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/number@3.0.21':
- resolution: {integrity: sha512-5QWs0KGaNMlhbdhOSCFfKsW+/dcAVC2g4wT/z2MCiZM47uLgatC5N20kpkDQf7dHx+XFct/MJvvNGy6aYJn4Pw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/password@4.0.21':
- resolution: {integrity: sha512-xxeW1V5SbNFNig2pLfetsDb0svWlKuhmr7MPJZMYuDnCTkpVBI+X/doudg4pznc1/U+yYmWFFOi4hNvGgUo7EA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/prompts@7.9.0':
- resolution: {integrity: sha512-X7/+dG9SLpSzRkwgG5/xiIzW0oMrV3C0HOa7YHG1WnrLK+vCQHfte4k/T80059YBdei29RBC3s+pSMvPJDU9/A==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/rawlist@4.1.9':
- resolution: {integrity: sha512-AWpxB7MuJrRiSfTKGJ7Y68imYt8P9N3Gaa7ySdkFj1iWjr6WfbGAhdZvw/UnhFXTHITJzxGUI9k8IX7akAEBCg==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/search@3.2.0':
- resolution: {integrity: sha512-a5SzB/qrXafDX1Z4AZW3CsVoiNxcIYCzYP7r9RzrfMpaLpB+yWi5U8BWagZyLmwR0pKbbL5umnGRd0RzGVI8bQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/select@4.4.0':
- resolution: {integrity: sha512-kaC3FHsJZvVyIjYBs5Ih8y8Bj4P/QItQWrZW22WJax7zTN+ZPXVGuOM55vzbdCP9zKUiBd9iEJVdesujfF+cAA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@inquirer/type@3.0.9':
- resolution: {integrity: sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- '@isaacs/cliui@8.0.2':
- resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
- engines: {node: '>=12'}
-
- '@isaacs/fs-minipass@4.0.1':
- resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
- engines: {node: '>=18.0.0'}
-
- '@isaacs/ttlcache@1.4.1':
- resolution: {integrity: sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==}
- engines: {node: '>=12'}
-
- '@istanbuljs/load-nyc-config@1.1.0':
- resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
- engines: {node: '>=8'}
-
- '@istanbuljs/schema@0.1.3':
- resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
- engines: {node: '>=8'}
-
- '@jest/console@29.7.0':
- resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/core@29.7.0':
- resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- '@jest/environment@29.7.0':
- resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/expect-utils@29.7.0':
- resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/expect@29.7.0':
- resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/fake-timers@29.7.0':
- resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/globals@29.7.0':
- resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/reporters@29.7.0':
- resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- '@jest/schemas@29.6.3':
- resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/source-map@29.6.3':
- resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/test-result@29.7.0':
- resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/test-sequencer@29.7.0':
- resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/transform@29.7.0':
- resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jest/types@29.6.3':
- resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- '@jridgewell/gen-mapping@0.3.13':
- resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
-
- '@jridgewell/remapping@2.3.5':
- resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
-
- '@jridgewell/resolve-uri@3.1.2':
- resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
- engines: {node: '>=6.0.0'}
-
- '@jridgewell/sourcemap-codec@1.5.5':
- resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
-
- '@jridgewell/trace-mapping@0.3.31':
- resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
-
- '@js-sdsl/ordered-map@4.4.2':
- resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==}
-
- '@jsdevtools/ono@7.1.3':
- resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
-
- '@langchain/aws@0.1.15':
- resolution: {integrity: sha512-oyOMhTHP0rxdSCVI/g5KXYCOs9Kq/FpXMZbOk1JSIUoaIzUg4p6d98lsHu7erW//8NSaT+SX09QRbVDAgt7pNA==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.3.58 <0.4.0'
-
- '@langchain/community@0.3.57':
- resolution: {integrity: sha512-xUe5UIlh1yZjt/cMtdSVlCoC5xm/RMN/rp+KZGLbquvjQeONmQ2rvpCqWjAOgQ6SPLqKiXvoXaKSm20r+LHISw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@arcjet/redact': ^v1.0.0-alpha.23
- '@aws-crypto/sha256-js': ^5.0.0
- '@aws-sdk/client-bedrock-agent-runtime': ^3.749.0
- '@aws-sdk/client-bedrock-runtime': ^3.749.0
- '@aws-sdk/client-dynamodb': ^3.749.0
- '@aws-sdk/client-kendra': ^3.749.0
- '@aws-sdk/client-lambda': ^3.749.0
- '@aws-sdk/client-s3': ^3.749.0
- '@aws-sdk/client-sagemaker-runtime': ^3.749.0
- '@aws-sdk/client-sfn': ^3.749.0
- '@aws-sdk/credential-provider-node': ^3.388.0
- '@aws-sdk/dsql-signer': '*'
- '@azure/search-documents': ^12.0.0
- '@azure/storage-blob': ^12.15.0
- '@browserbasehq/sdk': '*'
- '@browserbasehq/stagehand': ^1.0.0
- '@clickhouse/client': ^0.2.5
- '@cloudflare/ai': '*'
- '@datastax/astra-db-ts': ^1.0.0
- '@elastic/elasticsearch': ^8.4.0
- '@getmetal/metal-sdk': '*'
- '@getzep/zep-cloud': ^1.0.6
- '@getzep/zep-js': ^0.9.0
- '@gomomento/sdk': ^1.51.1
- '@gomomento/sdk-core': ^1.51.1
- '@google-ai/generativelanguage': '*'
- '@google-cloud/storage': ^6.10.1 || ^7.7.0
- '@gradientai/nodejs-sdk': ^1.2.0
- '@huggingface/inference': ^4.0.5
- '@huggingface/transformers': ^3.5.2
- '@ibm-cloud/watsonx-ai': '*'
- '@lancedb/lancedb': ^0.19.1
- '@langchain/core': '>=0.3.58 <0.4.0'
- '@layerup/layerup-security': ^1.5.12
- '@libsql/client': ^0.14.0
- '@mendable/firecrawl-js': ^1.4.3
- '@mlc-ai/web-llm': '*'
- '@mozilla/readability': '*'
- '@neondatabase/serverless': '*'
- '@notionhq/client': ^2.2.10
- '@opensearch-project/opensearch': '*'
- '@pinecone-database/pinecone': '*'
- '@planetscale/database': ^1.8.0
- '@premai/prem-sdk': ^0.3.25
- '@qdrant/js-client-rest': ^1.15.0
- '@raycast/api': ^1.55.2
- '@rockset/client': ^0.9.1
- '@smithy/eventstream-codec': ^2.0.5
- '@smithy/protocol-http': ^3.0.6
- '@smithy/signature-v4': ^2.0.10
- '@smithy/util-utf8': ^2.0.0
- '@spider-cloud/spider-client': ^0.0.21
- '@supabase/supabase-js': ^2.45.0
- '@tensorflow-models/universal-sentence-encoder': '*'
- '@tensorflow/tfjs-converter': '*'
- '@tensorflow/tfjs-core': '*'
- '@upstash/ratelimit': ^1.1.3 || ^2.0.3
- '@upstash/redis': ^1.20.6
- '@upstash/vector': ^1.1.1
- '@vercel/kv': '*'
- '@vercel/postgres': '*'
- '@writerai/writer-sdk': ^0.40.2
- '@xata.io/client': ^0.28.0
- '@zilliz/milvus2-sdk-node': '>=2.3.5'
- apify-client: ^2.7.1
- assemblyai: ^4.6.0
- azion: ^1.11.1
- better-sqlite3: '>=9.4.0 <12.0.0'
- cassandra-driver: ^4.7.2
- cborg: ^4.1.1
- cheerio: ^1.0.0-rc.12
- chromadb: '*'
- closevector-common: 0.1.3
- closevector-node: 0.1.6
- closevector-web: 0.1.6
- cohere-ai: '*'
- convex: ^1.3.1
- crypto-js: ^4.2.0
- d3-dsv: ^2.0.0
- discord.js: ^14.14.1
- duck-duck-scrape: ^2.2.5
- epub2: ^3.0.1
- fast-xml-parser: '*'
- firebase-admin: ^11.9.0 || ^12.0.0 || ^13.0.0
- google-auth-library: '*'
- googleapis: '*'
- hnswlib-node: ^3.0.0
- html-to-text: ^9.0.5
- ibm-cloud-sdk-core: '*'
- ignore: ^5.2.0
- interface-datastore: ^8.2.11
- ioredis: ^5.3.2
- it-all: ^3.0.4
- jsdom: '*'
- jsonwebtoken: ^9.0.2
- llmonitor: ^0.5.9
- lodash: ^4.17.21
- lunary: ^0.7.10
- mammoth: ^1.6.0
- mariadb: ^3.4.0
- mem0ai: ^2.1.8
- mongodb: ^6.17.0
- mysql2: ^3.9.8
- neo4j-driver: '*'
- notion-to-md: ^3.1.0
- officeparser: ^4.0.4
- openai: '*'
- pdf-parse: 1.1.1
- pg: ^8.11.0
- pg-copy-streams: ^6.0.5
- pickleparser: ^0.2.1
- playwright: ^1.32.1
- portkey-ai: ^0.1.11
- puppeteer: '*'
- pyodide: '>=0.24.1 <0.27.0'
- redis: '*'
- replicate: '*'
- sonix-speech-recognition: ^2.1.1
- srt-parser-2: ^1.2.3
- typeorm: ^0.3.20
- typesense: ^1.5.3
- usearch: ^1.1.1
- voy-search: 0.6.2
- weaviate-client: ^3.5.2
- web-auth-library: ^1.0.3
- word-extractor: '*'
- ws: ^8.14.2
- youtubei.js: '*'
- peerDependenciesMeta:
- '@arcjet/redact':
- optional: true
- '@aws-crypto/sha256-js':
- optional: true
- '@aws-sdk/client-bedrock-agent-runtime':
- optional: true
- '@aws-sdk/client-bedrock-runtime':
- optional: true
- '@aws-sdk/client-dynamodb':
- optional: true
- '@aws-sdk/client-kendra':
- optional: true
- '@aws-sdk/client-lambda':
- optional: true
- '@aws-sdk/client-s3':
- optional: true
- '@aws-sdk/client-sagemaker-runtime':
- optional: true
- '@aws-sdk/client-sfn':
- optional: true
- '@aws-sdk/credential-provider-node':
- optional: true
- '@aws-sdk/dsql-signer':
- optional: true
- '@azure/search-documents':
- optional: true
- '@azure/storage-blob':
- optional: true
- '@browserbasehq/sdk':
- optional: true
- '@clickhouse/client':
- optional: true
- '@cloudflare/ai':
- optional: true
- '@datastax/astra-db-ts':
- optional: true
- '@elastic/elasticsearch':
- optional: true
- '@getmetal/metal-sdk':
- optional: true
- '@getzep/zep-cloud':
- optional: true
- '@getzep/zep-js':
- optional: true
- '@gomomento/sdk':
- optional: true
- '@gomomento/sdk-core':
- optional: true
- '@google-ai/generativelanguage':
- optional: true
- '@google-cloud/storage':
- optional: true
- '@gradientai/nodejs-sdk':
- optional: true
- '@huggingface/inference':
- optional: true
- '@huggingface/transformers':
- optional: true
- '@lancedb/lancedb':
- optional: true
- '@layerup/layerup-security':
- optional: true
- '@libsql/client':
- optional: true
- '@mendable/firecrawl-js':
- optional: true
- '@mlc-ai/web-llm':
- optional: true
- '@mozilla/readability':
- optional: true
- '@neondatabase/serverless':
- optional: true
- '@notionhq/client':
- optional: true
- '@opensearch-project/opensearch':
- optional: true
- '@pinecone-database/pinecone':
- optional: true
- '@planetscale/database':
- optional: true
- '@premai/prem-sdk':
- optional: true
- '@qdrant/js-client-rest':
- optional: true
- '@raycast/api':
- optional: true
- '@rockset/client':
- optional: true
- '@smithy/eventstream-codec':
- optional: true
- '@smithy/protocol-http':
- optional: true
- '@smithy/signature-v4':
- optional: true
- '@smithy/util-utf8':
- optional: true
- '@spider-cloud/spider-client':
- optional: true
- '@supabase/supabase-js':
- optional: true
- '@tensorflow-models/universal-sentence-encoder':
- optional: true
- '@tensorflow/tfjs-converter':
- optional: true
- '@tensorflow/tfjs-core':
- optional: true
- '@upstash/ratelimit':
- optional: true
- '@upstash/redis':
- optional: true
- '@upstash/vector':
- optional: true
- '@vercel/kv':
- optional: true
- '@vercel/postgres':
- optional: true
- '@writerai/writer-sdk':
- optional: true
- '@xata.io/client':
- optional: true
- '@zilliz/milvus2-sdk-node':
- optional: true
- apify-client:
- optional: true
- assemblyai:
- optional: true
- azion:
- optional: true
- better-sqlite3:
- optional: true
- cassandra-driver:
- optional: true
- cborg:
- optional: true
- cheerio:
- optional: true
- chromadb:
- optional: true
- closevector-common:
- optional: true
- closevector-node:
- optional: true
- closevector-web:
- optional: true
- cohere-ai:
- optional: true
- convex:
- optional: true
- crypto-js:
- optional: true
- d3-dsv:
- optional: true
- discord.js:
- optional: true
- duck-duck-scrape:
- optional: true
- epub2:
- optional: true
- fast-xml-parser:
- optional: true
- firebase-admin:
- optional: true
- google-auth-library:
- optional: true
- googleapis:
- optional: true
- hnswlib-node:
- optional: true
- html-to-text:
- optional: true
- ignore:
- optional: true
- interface-datastore:
- optional: true
- ioredis:
- optional: true
- it-all:
- optional: true
- jsdom:
- optional: true
- jsonwebtoken:
- optional: true
- llmonitor:
- optional: true
- lodash:
- optional: true
- lunary:
- optional: true
- mammoth:
- optional: true
- mariadb:
- optional: true
- mem0ai:
- optional: true
- mongodb:
- optional: true
- mysql2:
- optional: true
- neo4j-driver:
- optional: true
- notion-to-md:
- optional: true
- officeparser:
- optional: true
- pdf-parse:
- optional: true
- pg:
- optional: true
- pg-copy-streams:
- optional: true
- pickleparser:
- optional: true
- playwright:
- optional: true
- portkey-ai:
- optional: true
- puppeteer:
- optional: true
- pyodide:
- optional: true
- redis:
- optional: true
- replicate:
- optional: true
- sonix-speech-recognition:
- optional: true
- srt-parser-2:
- optional: true
- typeorm:
- optional: true
- typesense:
- optional: true
- usearch:
- optional: true
- voy-search:
- optional: true
- weaviate-client:
- optional: true
- web-auth-library:
- optional: true
- word-extractor:
- optional: true
- ws:
- optional: true
- youtubei.js:
- optional: true
-
- '@langchain/core@0.3.78':
- resolution: {integrity: sha512-Nn0x9erQlK3zgtRU1Z8NUjLuyW0gzdclMsvLQ6wwLeDqV91pE+YKl6uQb+L2NUDs4F0N7c2Zncgz46HxrvPzuA==}
- engines: {node: '>=18'}
-
- '@langchain/google-common@0.1.8':
- resolution: {integrity: sha512-8auqWw2PMPhcHQHS+nMN3tVZrUPgSLckUaFeOHDOeSBiDvBd4KCybPwyl2oCwMDGvmyIxvOOckkMdeGaJ92vpQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.2.21 <0.4.0'
-
- '@langchain/google-gauth@0.1.8':
- resolution: {integrity: sha512-2QK7d5SQMrnSv7X4j05BGfO74hiA8FJuNwSsQKZvzlGoVnNXil3x2aqD5V+zsYOPpxhkDCpNlmh2Pue2Wzy1rQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.2.21 <0.4.0'
-
- '@langchain/langgraph-sdk@0.0.70':
- resolution: {integrity: sha512-O8I12bfeMVz5fOrXnIcK4IdRf50IqyJTO458V56wAIHLNoi4H8/JHM+2M+Y4H2PtslXIGnvomWqlBd0eY5z/Og==}
- peerDependencies:
- '@langchain/core': '>=0.2.31 <0.4.0'
- react: ^18 || ^19
- peerDependenciesMeta:
- '@langchain/core':
- optional: true
- react:
- optional: true
-
- '@langchain/langgraph-sdk@0.1.10':
- resolution: {integrity: sha512-9srSCb2bSvcvehMgjA2sMMwX0o1VUgPN6ghwm5Fwc9JGAKsQa6n1S4eCwy1h4abuYxwajH5n3spBw+4I2WYbgw==}
- peerDependencies:
- '@langchain/core': '>=0.2.31 <0.4.0 || ^1.0.0-alpha'
- react: ^18 || ^19
- react-dom: ^18 || ^19
- peerDependenciesMeta:
- '@langchain/core':
- optional: true
- react:
- optional: true
- react-dom:
- optional: true
-
- '@langchain/openai@0.4.9':
- resolution: {integrity: sha512-NAsaionRHNdqaMjVLPkFCyjUDze+OqRHghA1Cn4fPoAafz+FXcl9c7LlEl9Xo0FH6/8yiCl7Rw2t780C/SBVxQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.3.39 <0.4.0'
-
- '@langchain/openai@0.6.16':
- resolution: {integrity: sha512-v9INBOjE0w6ZrUE7kP9UkRyNsV7daH7aPeSOsPEJ35044UI3udPHwNduQ8VmaOUsD26OvSdg1b1GDhrqWLMaRw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.3.68 <0.4.0'
-
- '@langchain/textsplitters@0.1.0':
- resolution: {integrity: sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.2.21 <0.4.0'
-
- '@langchain/weaviate@0.2.3':
- resolution: {integrity: sha512-WqNGn1eSrI+ZigJd7kZjCj3fvHBYicKr054qts2nNJ+IyO5dWmY3oFTaVHFq1OLFVZJJxrFeDnxSEOC3JnfP0w==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/core': '>=0.2.21 <0.4.0'
-
- '@libsql/client@0.15.15':
- resolution: {integrity: sha512-twC0hQxPNHPKfeOv3sNT6u2pturQjLcI+CnpTM0SjRpocEGgfiZ7DWKXLNnsothjyJmDqEsBQJ5ztq9Wlu470w==}
-
- '@libsql/core@0.15.15':
- resolution: {integrity: sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA==}
-
- '@libsql/darwin-arm64@0.5.22':
- resolution: {integrity: sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA==}
- cpu: [arm64]
- os: [darwin]
-
- '@libsql/darwin-x64@0.5.22':
- resolution: {integrity: sha512-ny2HYWt6lFSIdNFzUFIJ04uiW6finXfMNJ7wypkAD8Pqdm6nAByO+Fdqu8t7sD0sqJGeUCiOg480icjyQ2/8VA==}
- cpu: [x64]
- os: [darwin]
-
- '@libsql/hrana-client@0.7.0':
- resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==}
-
- '@libsql/isomorphic-fetch@0.3.1':
- resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==}
- engines: {node: '>=18.0.0'}
-
- '@libsql/isomorphic-ws@0.1.5':
- resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==}
-
- '@libsql/linux-arm-gnueabihf@0.5.22':
- resolution: {integrity: sha512-3Uo3SoDPJe/zBnyZKosziRGtszXaEtv57raWrZIahtQDsjxBVjuzYQinCm9LRCJCUT5t2r5Z5nLDPJi2CwZVoA==}
- cpu: [arm]
- os: [linux]
-
- '@libsql/linux-arm-musleabihf@0.5.22':
- resolution: {integrity: sha512-LCsXh07jvSojTNJptT9CowOzwITznD+YFGGW+1XxUr7fS+7/ydUrpDfsMX7UqTqjm7xG17eq86VkWJgHJfvpNg==}
- cpu: [arm]
- os: [linux]
-
- '@libsql/linux-arm64-gnu@0.5.22':
- resolution: {integrity: sha512-KSdnOMy88c9mpOFKUEzPskSaF3VLflfSUCBwas/pn1/sV3pEhtMF6H8VUCd2rsedwoukeeCSEONqX7LLnQwRMA==}
- cpu: [arm64]
- os: [linux]
-
- '@libsql/linux-arm64-musl@0.5.22':
- resolution: {integrity: sha512-mCHSMAsDTLK5YH//lcV3eFEgiR23Ym0U9oEvgZA0667gqRZg/2px+7LshDvErEKv2XZ8ixzw3p1IrBzLQHGSsw==}
- cpu: [arm64]
- os: [linux]
-
- '@libsql/linux-x64-gnu@0.5.22':
- resolution: {integrity: sha512-kNBHaIkSg78Y4BqAdgjcR2mBilZXs4HYkAmi58J+4GRwDQZh5fIUWbnQvB9f95DkWUIGVeenqLRFY2pcTmlsew==}
- cpu: [x64]
- os: [linux]
-
- '@libsql/linux-x64-musl@0.5.22':
- resolution: {integrity: sha512-UZ4Xdxm4pu3pQXjvfJiyCzZop/9j/eA2JjmhMaAhe3EVLH2g11Fy4fwyUp9sT1QJYR1kpc2JLuybPM0kuXv/Tg==}
- cpu: [x64]
- os: [linux]
-
- '@libsql/win32-x64-msvc@0.5.22':
- resolution: {integrity: sha512-Fj0j8RnBpo43tVZUVoNK6BV/9AtDUM5S7DF3LB4qTYg1LMSZqi3yeCneUTLJD6XomQJlZzbI4mst89yspVSAnA==}
- cpu: [x64]
- os: [win32]
-
- '@lukeed/csprng@1.1.0':
- resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==}
- engines: {node: '>=8'}
-
- '@lukeed/uuid@2.0.1':
- resolution: {integrity: sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==}
- engines: {node: '>=8'}
-
- '@mastra/client-js@0.10.18':
- resolution: {integrity: sha512-w6+1ycIj8S3ZQwOEN1vT0yKrKXH/K+Q3VR84jMOjy0yZZN/LOeHOgAugHQj3HK7T1jxS/jCqAMOEWtYh8pO9SA==}
- peerDependencies:
- zod: ^3.0.0
-
- '@mastra/client-js@0.15.2':
- resolution: {integrity: sha512-n5qfXS0OfLqljJpQjwD6eTimIWkmwRacNDPd1CAwXGkVZqr9rgFU6dyQTAgEV3J45MaGu4tMpuz6ZYcmg9S5gA==}
- peerDependencies:
- zod: ^3.25.0 || ^4.0.0
-
- '@mastra/core@0.12.1':
- resolution: {integrity: sha512-iWvkIBnhFXZH+XkpV7Yy0YJphVM7BBtnJmv0z9hHgcvo6poH8+YUpEAHsveuvt4rcvNkR34yfdEQxzhh5bcabA==}
- engines: {node: '>=20'}
- peerDependencies:
- zod: ^3.0.0
-
- '@mastra/core@0.20.2':
- resolution: {integrity: sha512-RbwuLwOVrcLbbjLFEBSlGTBA3mzGAy4bXp4JeXg2miJWDR/7WbXtxKIU+sTZGw5LpzlvvEFtj7JtHI1l+gKMVg==}
- engines: {node: '>=20'}
- peerDependencies:
- zod: ^3.25.0 || ^4.0.0
-
- '@mastra/deployer@0.20.2':
- resolution: {integrity: sha512-pkD7ViXeAoMvb0bQAL7VHTjptXTDTOgkcpE/37edrdyF3/Smi3t5S8FStveGaNzrfx7O6ywHkRKXU8nL3c0wAg==}
- peerDependencies:
- '@mastra/core': '>=0.20.1-0 <0.21.0-0'
- zod: ^3.25.0 || ^4.0.0
-
- '@mastra/dynamodb@0.15.6':
- resolution: {integrity: sha512-9n1a+YCB2dV8E/6q6oatQuXukKDOWGsFBaADAEMsn0qxd2yww4aUOMgax+CWexo+HufQyhsUZfJ/5de5EgbrkA==}
- peerDependencies:
- '@mastra/core': '>=0.18.1-0 <0.21.0-0'
-
- '@mastra/libsql@0.12.0':
- resolution: {integrity: sha512-VRZNO904HfaubAsk93F1r7OGEYX/O9W9MGfqQ/mtuwFgPGUlNo7CPAjOWmtZ+Rt+5Ds7iE8t5DmnKT7aun+rVw==}
- peerDependencies:
- '@mastra/core': '>=0.12.0-0 <0.13.0-0'
-
- '@mastra/libsql@0.15.1':
- resolution: {integrity: sha512-a5a7i6WiBdPX601GaI4COJjxX004jn3NyeJx29neGPrVYn5ESksvDCYsu60iUdgSP2R4/vSfNXl6bbq7IuydTg==}
- peerDependencies:
- '@mastra/core': '>=0.19.0-alpha.1 <0.21.0-0'
-
- '@mastra/loggers@0.10.15':
- resolution: {integrity: sha512-/s4RPYTuTyJ8/oRU1ThHQaOal7/Bml5ARJhQBXIX3qcG3MIprRyPmtK1XrdLuuBuh7XpaWUFZFqW0pJaE1FLtw==}
- peerDependencies:
- '@mastra/core': '>=0.18.1-0 <0.21.0-0'
-
- '@mastra/loggers@0.10.5':
- resolution: {integrity: sha512-H1Ry1s4mbBSE1MUekWFM/8RV6Dy8WoghIP+BVZlTR5edIkGY/a83CE/8wMTA8KUJLoj743dibubZna4dBgJvdA==}
- peerDependencies:
- '@mastra/core': '>=0.10.4-0 <0.13.0-0'
-
- '@mastra/mcp@0.13.4':
- resolution: {integrity: sha512-vd/WuyP34pS68jnSDOf3T8Ug4WdS6QUrOxIHegpTKCmbmYhRlWF5RVlff9TOO9h91lxkHzX0Gsegi+J8l37i2w==}
- peerDependencies:
- '@mastra/core': '>=0.20.1-0 <0.21.0-0'
- zod: ^3.25.0 || ^4.0.0
-
- '@mastra/memory@0.12.0':
- resolution: {integrity: sha512-YDuzZoJq1HeDmgA1rtZ94DtzTVc3f39Dh6d/C+9p6Mv52tqPE0LrUSP5BBQOFEnRlw+Yb9v5KCcufnyywaiKaA==}
- peerDependencies:
- '@mastra/core': '>=0.12.0-0 <0.13.0-0'
-
- '@mastra/memory@0.15.6':
- resolution: {integrity: sha512-k6X4nZ+YFhlW46YPKgTAuPYma+uebLQ2xYeDdx0BQvQyO6lWp9s9cpgSjCwOMzctPZqrxauOfzgWyyUUrFfwBw==}
- peerDependencies:
- '@mastra/core': '>=0.20.1-0 <0.21.0-0'
- zod: ^3.25.0 || ^4.0.0
-
- '@mastra/schema-compat@0.10.5':
- resolution: {integrity: sha512-Qhz8W4Hz7b9tNoVW306NMzotVy11bya1OjiTN+pthj00HZoaH7nmK8SWBiX4drS+PyhIqA16X5AenELe2QgZag==}
- peerDependencies:
- ai: ^4.0.0
- zod: ^3.0.0
-
- '@mastra/schema-compat@0.11.4':
- resolution: {integrity: sha512-oh3+enP3oYftZlmJAKQQj5VXR86KgTMwfMnwALZyLk04dPSWfVD2wGytoDg5Qbi3rX9qHj6g0rMNa0CUjR6aTg==}
- peerDependencies:
- ai: ^4.0.0 || ^5.0.0
- zod: ^3.25.0 || ^4.0.0
-
- '@mastra/server@0.20.2':
- resolution: {integrity: sha512-Cnuwh+6Evjf5K0R9Jt6euBR89wmTXNwbvuPpVD+LN3nBxwxJj0AcG5Yfy0rXJIur8UFW9aP8d6DwOvClLCKv/w==}
- peerDependencies:
- '@mastra/core': '>=0.20.1-0 <0.21.0-0'
- zod: ^3.25.0 || ^4.0.0
-
- '@mdx-js/loader@3.1.1':
- resolution: {integrity: sha512-0TTacJyZ9mDmY+VefuthVshaNIyCGZHJG2fMnGaDttCt8HmjUF7SizlHJpaCDoGnN635nK1wpzfpx/Xx5S4WnQ==}
- peerDependencies:
- webpack: '>=5'
- peerDependenciesMeta:
- webpack:
- optional: true
-
- '@mdx-js/mdx@3.1.1':
- resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
-
- '@mdx-js/react@3.1.1':
- resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==}
- peerDependencies:
- '@types/react': '>=16'
- react: '>=16'
-
- '@modelcontextprotocol/sdk@1.20.0':
- resolution: {integrity: sha512-kOQ4+fHuT4KbR2iq2IjeV32HiihueuOf1vJkq18z08CLZ1UQrTc8BXJpVfxZkq45+inLLD+D4xx4nBjUelJa4Q==}
- engines: {node: '>=18'}
-
- '@monaco-editor/loader@1.6.1':
- resolution: {integrity: sha512-w3tEnj9HYEC73wtjdpR089AqkUPskFRcdkxsiSFt3SoUc3OHpmu+leP94CXBm4mHfefmhsdfI0ZQu6qJ0wgtPg==}
-
- '@monaco-editor/react@4.7.0':
- resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==}
- peerDependencies:
- monaco-editor: '>= 0.25.0 < 1'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
- '@napi-rs/wasm-runtime@0.2.12':
- resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
-
- '@neon-rs/load@0.0.4':
- resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==}
-
- '@neon-rs/load@0.1.82':
- resolution: {integrity: sha512-H4Gu2o5kPp+JOEhRrOQCnJnf7X6sv9FBLttM/wSbb4efsgFWeHzfU/ItZ01E5qqEk+U6QGdeVO7lxXIAtYHr5A==}
-
- '@next/env@15.2.1':
- resolution: {integrity: sha512-JmY0qvnPuS2NCWOz2bbby3Pe0VzdAQ7XpEB6uLIHmtXNfAsAO0KLQLkuAoc42Bxbo3/jMC3dcn9cdf+piCcG2Q==}
-
- '@next/eslint-plugin-next@15.2.1':
- resolution: {integrity: sha512-6ppeToFd02z38SllzWxayLxjjNfzvc7Wm07gQOKSLjyASvKcXjNStZrLXMHuaWkhjqxe+cnhb2uzfWXm1VEj/Q==}
-
- '@next/mdx@15.5.5':
- resolution: {integrity: sha512-+niIZwo1ObCj8YJCR31FwF3gUXnyQZTnrrt5DnJGF/nj6yW7VE0hhmhT2yWW244MuBKqL3SbXjaFX+GqWOPXfA==}
- peerDependencies:
- '@mdx-js/loader': '>=0.15.0'
- '@mdx-js/react': '>=0.15.0'
- peerDependenciesMeta:
- '@mdx-js/loader':
- optional: true
- '@mdx-js/react':
- optional: true
-
- '@next/swc-darwin-arm64@15.2.1':
- resolution: {integrity: sha512-aWXT+5KEREoy3K5AKtiKwioeblmOvFFjd+F3dVleLvvLiQ/mD//jOOuUcx5hzcO9ISSw4lrqtUPntTpK32uXXQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- '@next/swc-darwin-x64@15.2.1':
- resolution: {integrity: sha512-E/w8ervu4fcG5SkLhvn1NE/2POuDCDEy5gFbfhmnYXkyONZR68qbUlJlZwuN82o7BrBVAw+tkR8nTIjGiMW1jQ==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- '@next/swc-linux-arm64-gnu@15.2.1':
- resolution: {integrity: sha512-gXDX5lIboebbjhiMT6kFgu4svQyjoSed6dHyjx5uZsjlvTwOAnZpn13w9XDaIMFFHw7K8CpBK7HfDKw0VZvUXQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@next/swc-linux-arm64-musl@15.2.1':
- resolution: {integrity: sha512-3v0pF/adKZkBWfUffmB/ROa+QcNTrnmYG4/SS+r52HPwAK479XcWoES2I+7F7lcbqc7mTeVXrIvb4h6rR/iDKg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@next/swc-linux-x64-gnu@15.2.1':
- resolution: {integrity: sha512-RbsVq2iB6KFJRZ2cHrU67jLVLKeuOIhnQB05ygu5fCNgg8oTewxweJE8XlLV+Ii6Y6u4EHwETdUiRNXIAfpBww==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@next/swc-linux-x64-musl@15.2.1':
- resolution: {integrity: sha512-QHsMLAyAIu6/fWjHmkN/F78EFPKmhQlyX5C8pRIS2RwVA7z+t9cTb0IaYWC3EHLOTjsU7MNQW+n2xGXr11QPpg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@next/swc-win32-arm64-msvc@15.2.1':
- resolution: {integrity: sha512-Gk42XZXo1cE89i3hPLa/9KZ8OuupTjkDmhLaMKFohjf9brOeZVEa3BQy1J9s9TWUqPhgAEbwv6B2+ciGfe54Vw==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
-
- '@next/swc-win32-x64-msvc@15.2.1':
- resolution: {integrity: sha512-YjqXCl8QGhVlMR8uBftWk0iTmvtntr41PhG1kvzGp0sUP/5ehTM+cwx25hKE54J0CRnHYjSGjSH3gkHEaHIN9g==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
-
- '@nodelib/fs.scandir@2.1.5':
- resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.stat@2.0.5':
- resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
- engines: {node: '>= 8'}
-
- '@nodelib/fs.walk@1.2.8':
- resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
- engines: {node: '>= 8'}
-
- '@nolyfill/is-core-module@1.0.39':
- resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
- engines: {node: '>=12.4.0'}
-
- '@openrouter/ai-sdk-provider@1.2.0':
- resolution: {integrity: sha512-stuIwq7Yb7DNmk3GuCtz+oS3nZOY4TXEV3V5KsknDGQN7Fpu3KRMQVWRc1J073xKdf0FC9EHOctSyzsACmp5Ag==}
- engines: {node: '>=18'}
- peerDependencies:
- ai: ^5.0.0
- zod: ^3.24.1 || ^v4
-
- '@opentelemetry/api-logs@0.203.0':
- resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==}
- engines: {node: '>=8.0.0'}
-
- '@opentelemetry/api@1.9.0':
- resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
- engines: {node: '>=8.0.0'}
-
- '@opentelemetry/auto-instrumentations-node@0.62.2':
- resolution: {integrity: sha512-Ipe6X7ddrCiRsuewyTU83IvKiSFT4piqmv9z8Ovg1E7v98pdTj1pUE6sDrHV50zl7/ypd+cONBgt+EYSZu4u9Q==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.4.1
- '@opentelemetry/core': ^2.0.0
-
- '@opentelemetry/context-async-hooks@2.0.1':
- resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.10.0'
-
- '@opentelemetry/context-async-hooks@2.1.0':
- resolution: {integrity: sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.10.0'
-
- '@opentelemetry/core@2.0.1':
- resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.10.0'
-
- '@opentelemetry/core@2.1.0':
- resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.10.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}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/exporter-logs-otlp-http@0.203.0':
- resolution: {integrity: sha512-s0hys1ljqlMTbXx2XiplmMJg9wG570Z5lH7wMvrZX6lcODI56sG4HL03jklF63tBeyNwK2RV1/ntXGo3HgG4Qw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/exporter-logs-otlp-proto@0.203.0':
- resolution: {integrity: sha512-nl/7S91MXn5R1aIzoWtMKGvqxgJgepB/sH9qW0rZvZtabnsjbf8OQ1uSx3yogtvLr0GzwD596nQKz2fV7q2RBw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/exporter-metrics-otlp-grpc@0.203.0':
- resolution: {integrity: sha512-FCCj9nVZpumPQSEI57jRAA89hQQgONuoC35Lt+rayWY/mzCAc6BQT7RFyFaZKJ2B7IQ8kYjOCPsF/HGFWjdQkQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/exporter-metrics-otlp-http@0.203.0':
- resolution: {integrity: sha512-HFSW10y8lY6BTZecGNpV3GpoSy7eaO0Z6GATwZasnT4bEsILp8UJXNG5OmEsz4SdwCSYvyCbTJdNbZP3/8LGCQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/exporter-metrics-otlp-proto@0.203.0':
- resolution: {integrity: sha512-OZnhyd9npU7QbyuHXFEPVm3LnjZYifuKpT3kTnF84mXeEQ84pJJZgyLBpU4FSkSwUkt/zbMyNAI7y5+jYTWGIg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/exporter-prometheus@0.203.0':
- resolution: {integrity: sha512-2jLuNuw5m4sUj/SncDf/mFPabUxMZmmYetx5RKIMIQyPnl6G6ooFzfeE8aXNRf8YD1ZXNlCnRPcISxjveGJHNg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/exporter-trace-otlp-grpc@0.203.0':
- resolution: {integrity: sha512-322coOTf81bm6cAA8+ML6A+m4r2xTCdmAZzGNTboPXRzhwPt4JEmovsFAs+grpdarObd68msOJ9FfH3jxM6wqA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.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-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-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.50.0':
- resolution: {integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-aws-lambda@0.54.1':
- resolution: {integrity: sha512-qm8pGSAM1mXk7unbrGktWWGJc6IFI58ZsaHJ+i420Fp5VO3Vf7GglIgaXTS8CKBrVB4LHFj3NvzJg31PtsAQcA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-aws-sdk@0.58.0':
- resolution: {integrity: sha512-9vFH7gU686dsAeLMCkqUj9y0MQZ1xrTtStSpNV2UaGWtDnRjJrAdJLu9Y545oKEaDTeVaob4UflyZvvpZnw3Xw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-bunyan@0.49.0':
- resolution: {integrity: sha512-ky5Am1y6s3Ex/3RygHxB/ZXNG07zPfg9Z6Ora+vfeKcr/+I6CJbWXWhSBJor3gFgKN3RvC11UWVURnmDpBS6Pg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-cassandra-driver@0.49.0':
- resolution: {integrity: sha512-BNIvqldmLkeikfI5w5Rlm9vG5NnQexfPoxOgEMzfDVOEF+vS6351I6DzWLLgWWR9CNF/jQJJi/lr6am2DLp0Rw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-connect@0.47.0':
- resolution: {integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-cucumber@0.19.0':
- resolution: {integrity: sha512-99ms8kQWRuPt5lkDqbJJzD+7Tq5TMUlBZki4SA2h6CgK4ncX+tyep9XFY1e+XTBLJIWmuFMGbWqBLJ4fSKIQNQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/instrumentation-dataloader@0.21.1':
- resolution: {integrity: sha512-hNAm/bwGawLM8VDjKR0ZUDJ/D/qKR3s6lA5NV+btNaPVm2acqhPcT47l2uCVi+70lng2mywfQncor9v8/ykuyw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-dns@0.47.0':
- resolution: {integrity: sha512-775fOnewWkTF4iXMGKgwvOGqEmPrU1PZpXjjqvTrEErYBJe7Fz1WlEeUStHepyKOdld7Ghv7TOF/kE3QDctvrg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-express@0.52.0':
- resolution: {integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-fastify@0.48.0':
- resolution: {integrity: sha512-3zQlE/DoVfVH6/ycuTv7vtR/xib6WOa0aLFfslYcvE62z0htRu/ot8PV/zmMZfnzpTQj8S/4ULv36R6UIbpJIg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-fs@0.23.0':
- resolution: {integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-generic-pool@0.47.0':
- resolution: {integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-graphql@0.51.0':
- resolution: {integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-grpc@0.203.0':
- resolution: {integrity: sha512-Qmjx2iwccHYRLoE4RFS46CvQE9JG9Pfeae4EPaNZjvIuJxb/pZa2R9VWzRlTehqQWpAvto/dGhtkw8Tv+o0LTg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-hapi@0.50.0':
- resolution: {integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-http@0.203.0':
- resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-ioredis@0.51.0':
- resolution: {integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-kafkajs@0.13.0':
- resolution: {integrity: sha512-FPQyJsREOaGH64hcxlzTsIEQC4DYANgTwHjiB7z9lldmvua1LRMVn3/FfBlzXoqF179B0VGYviz6rn75E9wsDw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-knex@0.48.0':
- resolution: {integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-koa@0.51.0':
- resolution: {integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-lru-memoizer@0.48.0':
- resolution: {integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-memcached@0.47.0':
- resolution: {integrity: sha512-vXDs/l4hlWy1IepPG1S6aYiIZn+tZDI24kAzwKKJmR2QEJRL84PojmALAEJGazIOLl/VdcCPZdMb0U2K0VzojA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-mongodb@0.56.0':
- resolution: {integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-mongoose@0.50.0':
- resolution: {integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-mysql2@0.50.0':
- resolution: {integrity: sha512-PoOMpmq73rOIE3nlTNLf3B1SyNYGsp7QXHYKmeTZZnJ2Ou7/fdURuOhWOI0e6QZ5gSem18IR1sJi6GOULBQJ9g==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-mysql@0.49.0':
- resolution: {integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-nestjs-core@0.49.0':
- resolution: {integrity: sha512-1R/JFwdmZIk3T/cPOCkVvFQeKYzbbUvDxVH3ShXamUwBlGkdEu5QJitlRMyVNZaHkKZKWgYrBarGQsqcboYgaw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-net@0.47.0':
- resolution: {integrity: sha512-csoJ++Njpf7C09JH+0HNGenuNbDZBqO1rFhMRo6s0rAmJwNh9zY3M/urzptmKlqbKnf4eH0s+CKHy/+M8fbFsQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-oracledb@0.29.0':
- resolution: {integrity: sha512-2aHLiJdkyiUbooIUm7FaZf+O4jyqEl+RfFpgud1dxT87QeeYM216wi+xaMNzsb5yKtRBqbA3qeHBCyenYrOZwA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-pg@0.56.1':
- resolution: {integrity: sha512-0/PiHDPVaLdcXNw6Gqb3JBdMxComMEwh444X8glwiynJKJHRTR49+l2cqJfoOVzB8Sl1XRl3Yaqw6aDi3s8e9w==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-pino@0.50.1':
- resolution: {integrity: sha512-pBbvuWiHA9iAumAuQ0SKYOXK7NRlbnVTf/qBV0nMdRnxBPrc/GZTbh0f7Y59gZfYsbCLhXLL1oRTEnS+PwS3CA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-redis@0.52.0':
- resolution: {integrity: sha512-R8Y7cCZlJ2Vl31S2i7bl5SqyC/aul54ski4wCFip/Tp9WGtLK1xVATi2rwy2wkc8ZCtjdEe9eEVR+QFG6gGZxg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-restify@0.49.0':
- resolution: {integrity: sha512-tsGZZhS4mVZH7omYxw5jpsrD3LhWizqWc0PYtAnzpFUvL5ZINHE+cm57bssTQ2AK/GtZMxu9LktwCvIIf3dSmw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-router@0.48.0':
- resolution: {integrity: sha512-Wixrc8CchuJojXpaS/dCQjFOMc+3OEil1H21G+WLYQb8PcKt5kzW9zDBT19nyjjQOx/D/uHPfgbrT+Dc7cfJ9w==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-runtime-node@0.17.1':
- resolution: {integrity: sha512-c1FlAk+bB2uF9a8YneGmNPTl7c/xVaan4mmWvbkWcOmH/ipKqR1LaKUlz/BMzLrJLjho1EJlG2NrS2w2Arg+nw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-socket.io@0.50.0':
- resolution: {integrity: sha512-6JN6lnKN9ZuZtZdMQIR+no1qHzQvXSZUsNe3sSWMgqmNRyEXuDUWBIyKKeG0oHRHtR4xE4QhJyD4D5kKRPWZFA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-tedious@0.22.0':
- resolution: {integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.3.0
-
- '@opentelemetry/instrumentation-undici@0.14.0':
- resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.7.0
-
- '@opentelemetry/instrumentation-winston@0.48.1':
- resolution: {integrity: sha512-XyOuVwdziirHHYlsw+BWrvdI/ymjwnexupKA787zQQ+D5upaE/tseZxjfQa7+t4+FdVLxHICaMTmkSD4yZHpzQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- 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/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-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-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/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@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/redis-common@0.38.2':
- resolution: {integrity: sha512-1BCcU93iwSRZvDAgwUxC/DV4T/406SkMfxGqu5ojc3AvNI+I9GhV7v0J1HljsczuuhcnFLYqD5VmwVXfCGHzxA==}
- engines: {node: ^18.19.0 || >=20.6.0}
-
- '@opentelemetry/resource-detector-alibaba-cloud@0.31.9':
- resolution: {integrity: sha512-V+HbpICyzmJoQHYpiN0xRlj7QqeR9pPo+JZiZztV77L2MdlUCa/Cq7h0gdFNIKc0P9u9rYYYW21oaqdhhC5LZg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/resource-detector-aws@2.6.0':
- resolution: {integrity: sha512-atZ9/HNXh9ZJuMZUH2TPl89imFZBaoiU0Mksa70ysVhYRzhk3hfJyiu+eETjZ7NhGjBPrd3sfVYEq/St/7+o3g==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/resource-detector-azure@0.10.0':
- resolution: {integrity: sha512-5cNAiyPBg53Uxe/CW7hsCq8HiKNAUGH+gi65TtgpzSR9bhJG4AEbuZhbJDFwe97tn2ifAD1JTkbc/OFuaaFWbA==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/resource-detector-container@0.7.9':
- resolution: {integrity: sha512-BiS14kCylLzh/mayN/sjnOdhnpfgiekaEsIzaL29MErfQR0mFCZjAE2uu8jMjShva9bSDFs65ouuAFft+vBthg==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/resource-detector-gcp@0.37.0':
- resolution: {integrity: sha512-LGpJBECIMsVKhiulb4nxUw++m1oF4EiDDPmFGW2aqYaAF0oUvJNv8Z/55CAzcZ7SxvlTgUwzewXDBsuCup7iqw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.0.0
-
- '@opentelemetry/resources@2.0.1':
- resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.3.0 <1.10.0'
-
- '@opentelemetry/resources@2.1.0':
- resolution: {integrity: sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.3.0 <1.10.0'
-
- '@opentelemetry/sdk-logs@0.203.0':
- resolution: {integrity: sha512-vM2+rPq0Vi3nYA5akQD2f3QwossDnTDLvKbea6u/A2NZ3XDkPxMfo/PNrDoXhDUD/0pPo2CdH5ce/thn9K0kLw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.4.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}
- peerDependencies:
- '@opentelemetry/api': '>=1.9.0 <1.10.0'
-
- '@opentelemetry/sdk-metrics@2.1.0':
- resolution: {integrity: sha512-J9QX459mzqHLL9Y6FZ4wQPRZG4TOpMCyPOh6mkr/humxE1W2S3Bvf4i75yiMW9uyed2Kf5rxmLhTm/UK8vNkAw==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.9.0 <1.10.0'
-
- '@opentelemetry/sdk-node@0.203.0':
- resolution: {integrity: sha512-zRMvrZGhGVMvAbbjiNQW3eKzW/073dlrSiAKPVWmkoQzah9wfynpVPeL55f9fVIm0GaBxTLcPeukWGy0/Wj7KQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.3.0 <1.10.0'
-
- '@opentelemetry/sdk-trace-base@2.0.1':
- resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.3.0 <1.10.0'
-
- '@opentelemetry/sdk-trace-base@2.1.0':
- resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.3.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/sdk-trace-node@2.1.0':
- resolution: {integrity: sha512-SvVlBFc/jI96u/mmlKm86n9BbTCbQ35nsPoOohqJX6DXH92K0kTe73zGY5r8xoI1QkjR9PizszVJLzMC966y9Q==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': '>=1.0.0 <1.10.0'
-
- '@opentelemetry/semantic-conventions@1.37.0':
- resolution: {integrity: sha512-JD6DerIKdJGmRp4jQyX5FlrQjA4tjOw1cvfsPAZXfOOEErMUHjPcPSICS+6WnM0nB0efSFARh0KAZss+bvExOA==}
- engines: {node: '>=14'}
-
- '@opentelemetry/sql-common@0.41.2':
- resolution: {integrity: sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ==}
- engines: {node: ^18.19.0 || >=20.6.0}
- peerDependencies:
- '@opentelemetry/api': ^1.1.0
-
- '@optimize-lodash/rollup-plugin@5.0.2':
- resolution: {integrity: sha512-UWBD9/C5jO0rDAbiqrZqiTLPD0LOHG3DzBo8ubLTpNWY9xOz5f5+S2yuxG/7ICk8sx8K6pZ8O/jsAbFgjtfh6w==}
- engines: {node: '>= 18'}
- peerDependencies:
- rollup: '>= 4.x'
-
- '@optimize-lodash/transform@3.0.6':
- resolution: {integrity: sha512-9+qMSaDpahC0+vX2ChM46/ls6a5Ankqs6RTLrHSaFpm7o1mFanP82e+jm9/0o5D660ueK8dWJGPCXQrBxBNNWA==}
- engines: {node: '>= 12'}
-
- '@phosphor-icons/react@2.1.10':
- resolution: {integrity: sha512-vt8Tvq8GLjheAZZYa+YG/pW7HDbov8El/MANW8pOAz4eGxrwhnbfrQZq0Cp4q8zBEu8NIhHdnr+r8thnfRSNYA==}
- engines: {node: '>=10'}
- peerDependencies:
- react: '>= 16.8'
- react-dom: '>= 16.8'
-
- '@pkgjs/parseargs@0.11.0':
- resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
- engines: {node: '>=14'}
-
- '@playwright/test@1.56.0':
- resolution: {integrity: sha512-Tzh95Twig7hUwwNe381/K3PggZBZblKUe2wv25oIpzWLr6Z0m4KgV1ZVIjnR6GM9ANEqjZD7XsZEa6JL/7YEgg==}
- engines: {node: '>=18'}
- hasBin: true
-
- '@popperjs/core@2.11.8':
- resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
-
- '@protobuf-ts/protoc@2.11.1':
- resolution: {integrity: sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg==}
- hasBin: true
-
- '@protobufjs/aspromise@1.1.2':
- resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
-
- '@protobufjs/base64@1.1.2':
- resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
-
- '@protobufjs/codegen@2.0.4':
- resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
-
- '@protobufjs/eventemitter@1.1.0':
- resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
-
- '@protobufjs/fetch@1.1.0':
- resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
-
- '@protobufjs/float@1.0.2':
- resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
-
- '@protobufjs/inquire@1.1.0':
- resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
-
- '@protobufjs/path@1.1.2':
- resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
-
- '@protobufjs/pool@1.1.0':
- resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
-
- '@protobufjs/utf8@1.1.0':
- resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
-
- '@radix-ui/primitive@1.1.3':
- resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==}
-
- '@radix-ui/react-arrow@1.1.7':
- resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-collection@1.1.7':
- resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-compose-refs@1.1.2':
- resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-context@1.1.2':
- resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-direction@1.1.1':
- resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-dismissable-layer@1.1.11':
- resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-dropdown-menu@2.1.16':
- resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-focus-guards@1.1.3':
- resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-focus-scope@1.1.7':
- resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-id@1.1.1':
- resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-menu@2.1.16':
- resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-popper@1.2.8':
- resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-portal@1.1.9':
- resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-presence@1.1.5':
- resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-primitive@2.1.3':
- resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-roving-focus@1.1.11':
- resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-slot@1.2.3':
- resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-tabs@1.1.13':
- resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-use-callback-ref@1.1.1':
- resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-controllable-state@1.2.2':
- resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-effect-event@0.0.2':
- resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-escape-keydown@1.1.1':
- resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-layout-effect@1.1.1':
- resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-rect@1.1.1':
- resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-size@1.1.1':
- resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/rect@1.1.1':
- resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==}
-
- '@react-aria/focus@3.21.2':
- resolution: {integrity: sha512-JWaCR7wJVggj+ldmM/cb/DXFg47CXR55lznJhZBh4XVqJjMKwaOOqpT5vNN7kpC1wUpXicGNuDnJDN1S/+6dhQ==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-aria/interactions@3.25.6':
- resolution: {integrity: sha512-5UgwZmohpixwNMVkMvn9K1ceJe6TzlRlAfuYoQDUuOkk62/JVJNDLAPKIf5YMRc7d2B0rmfgaZLMtbREb0Zvkw==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-aria/ssr@3.9.10':
- resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==}
- engines: {node: '>= 12'}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-aria/utils@3.31.0':
- resolution: {integrity: sha512-ABOzCsZrWzf78ysswmguJbx3McQUja7yeGj6/vZo4JVsZNlxAN+E9rs381ExBRI0KzVo6iBTeX5De8eMZPJXig==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
- react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-stately/flags@3.1.2':
- resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==}
-
- '@react-stately/utils@3.10.8':
- resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@react-types/shared@3.32.1':
- resolution: {integrity: sha512-famxyD5emrGGpFuUlgOP6fVW2h/ZaF405G5KDi3zPHzyjAWys/8W6NAVJtNbkCkhedmvL0xOhvt8feGXyXaw5w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1
-
- '@redis/bloom@5.8.3':
- resolution: {integrity: sha512-1eldTzHvdW3Oi0TReb8m1yiFt8ZwyF6rv1NpZyG5R4TpCwuAdKQetBKoCw7D96tNFgsVVd6eL+NaGZZCqhRg4g==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.8.3
-
- '@redis/client@5.8.3':
- resolution: {integrity: sha512-MZVUE+l7LmMIYlIjubPosruJ9ltSLGFmJqsXApTqPLyHLjsJUSAbAJb/A3N34fEqean4ddiDkdWzNu4ZKPvRUg==}
- engines: {node: '>= 18'}
-
- '@redis/json@5.8.3':
- resolution: {integrity: sha512-DRR09fy/u8gynHGJ4gzXYeM7D8nlS6EMv5o+h20ndTJiAc7RGR01fdk2FNjnn1Nz5PjgGGownF+s72bYG4nZKQ==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.8.3
-
- '@redis/search@5.8.3':
- resolution: {integrity: sha512-EMIvEeGRR2I0BJEz4PV88DyCuPmMT1rDtznlsHY3cKSDcc9vj0Q411jUnX0iU2vVowUgWn/cpySKjpXdZ8m+5g==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.8.3
-
- '@redis/time-series@5.8.3':
- resolution: {integrity: sha512-5Jwy3ilsUYQjzpE7WZ1lEeG1RkqQ5kHtwV1p8yxXHSEmyUbC/T/AVgyjMcm52Olj/Ov/mhDKjx6ndYUi14bXsw==}
- engines: {node: '>= 18'}
- peerDependencies:
- '@redis/client': ^5.8.3
-
- '@remirror/core-constants@3.0.0':
- resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
-
- '@repeaterjs/repeater@3.0.6':
- resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==}
-
- '@rollup/plugin-alias@5.1.1':
- resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/plugin-commonjs@28.0.7':
- resolution: {integrity: sha512-6cE2Wr/MkpdtTS8gXlCn9Zdmf7e9Xm96yFqOwFEXuvYLAHtjRf57/n6GEVF4K8NSesT1eKdBtcDA/SQdpW/8nA==}
- engines: {node: '>=16.0.0 || 14 >= 14.17'}
- peerDependencies:
- rollup: ^2.68.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/plugin-esm-shim@0.1.8':
- resolution: {integrity: sha512-xEU0b/BShgDDSPjidhJd4R74J9xZ9jLVtFWNGtsUXyEsdwwwB1a3XOAwwGaNIyUHD6EhxPO21JMfUmJWoMn7SA==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/plugin-json@6.1.0':
- resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/plugin-node-resolve@16.0.3':
- resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^2.78.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/plugin-virtual@3.0.2':
- resolution: {integrity: sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/pluginutils@5.3.0':
- resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
- peerDependenciesMeta:
- rollup:
- optional: true
-
- '@rollup/rollup-android-arm-eabi@4.50.2':
- resolution: {integrity: sha512-uLN8NAiFVIRKX9ZQha8wy6UUs06UNSZ32xj6giK/rmMXAgKahwExvK6SsmgU5/brh4w/nSgj8e0k3c1HBQpa0A==}
- cpu: [arm]
- os: [android]
-
- '@rollup/rollup-android-arm-eabi@4.52.4':
- resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==}
- cpu: [arm]
- os: [android]
-
- '@rollup/rollup-android-arm64@4.50.2':
- resolution: {integrity: sha512-oEouqQk2/zxxj22PNcGSskya+3kV0ZKH+nQxuCCOGJ4oTXBdNTbv+f/E3c74cNLeMO1S5wVWacSws10TTSB77g==}
- cpu: [arm64]
- os: [android]
-
- '@rollup/rollup-android-arm64@4.52.4':
- resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==}
- cpu: [arm64]
- os: [android]
-
- '@rollup/rollup-darwin-arm64@4.50.2':
- resolution: {integrity: sha512-OZuTVTpj3CDSIxmPgGH8en/XtirV5nfljHZ3wrNwvgkT5DQLhIKAeuFSiwtbMto6oVexV0k1F1zqURPKf5rI1Q==}
- cpu: [arm64]
- os: [darwin]
-
- '@rollup/rollup-darwin-arm64@4.52.4':
- resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==}
- cpu: [arm64]
- os: [darwin]
-
- '@rollup/rollup-darwin-x64@4.50.2':
- resolution: {integrity: sha512-Wa/Wn8RFkIkr1vy1k1PB//VYhLnlnn5eaJkfTQKivirOvzu5uVd2It01ukeQstMursuz7S1bU+8WW+1UPXpa8A==}
- cpu: [x64]
- os: [darwin]
-
- '@rollup/rollup-darwin-x64@4.52.4':
- resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==}
- cpu: [x64]
- os: [darwin]
-
- '@rollup/rollup-freebsd-arm64@4.50.2':
- resolution: {integrity: sha512-QkzxvH3kYN9J1w7D1A+yIMdI1pPekD+pWx7G5rXgnIlQ1TVYVC6hLl7SOV9pi5q9uIDF9AuIGkuzcbF7+fAhow==}
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-arm64@4.52.4':
- resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==}
- cpu: [arm64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.50.2':
- resolution: {integrity: sha512-dkYXB0c2XAS3a3jmyDkX4Jk0m7gWLFzq1C3qUnJJ38AyxIF5G/dyS4N9B30nvFseCfgtCEdbYFhk0ChoCGxPog==}
- cpu: [x64]
- os: [freebsd]
-
- '@rollup/rollup-freebsd-x64@4.52.4':
- resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==}
- cpu: [x64]
- os: [freebsd]
-
- '@rollup/rollup-linux-arm-gnueabihf@4.50.2':
- resolution: {integrity: sha512-9VlPY/BN3AgbukfVHAB8zNFWB/lKEuvzRo1NKev0Po8sYFKx0i+AQlCYftgEjcL43F2h9Ui1ZSdVBc4En/sP2w==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm-gnueabihf@4.52.4':
- resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm-musleabihf@4.50.2':
- resolution: {integrity: sha512-+GdKWOvsifaYNlIVf07QYan1J5F141+vGm5/Y8b9uCZnG/nxoGqgCmR24mv0koIWWuqvFYnbURRqw1lv7IBINw==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm-musleabihf@4.52.4':
- resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==}
- cpu: [arm]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-gnu@4.50.2':
- resolution: {integrity: sha512-df0Eou14ojtUdLQdPFnymEQteENwSJAdLf5KCDrmZNsy1c3YaCNaJvYsEUHnrg+/DLBH612/R0xd3dD03uz2dg==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-gnu@4.52.4':
- resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-musl@4.50.2':
- resolution: {integrity: sha512-iPeouV0UIDtz8j1YFR4OJ/zf7evjauqv7jQ/EFs0ClIyL+by++hiaDAfFipjOgyz6y6xbDvJuiU4HwpVMpRFDQ==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-arm64-musl@4.52.4':
- resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==}
- cpu: [arm64]
- os: [linux]
-
- '@rollup/rollup-linux-loong64-gnu@4.50.2':
- resolution: {integrity: sha512-OL6KaNvBopLlj5fTa5D5bau4W82f+1TyTZRr2BdnfsrnQnmdxh4okMxR2DcDkJuh4KeoQZVuvHvzuD/lyLn2Kw==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-loong64-gnu@4.52.4':
- resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==}
- cpu: [loong64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-gnu@4.50.2':
- resolution: {integrity: sha512-I21VJl1w6z/K5OTRl6aS9DDsqezEZ/yKpbqlvfHbW0CEF5IL8ATBMuUx6/mp683rKTK8thjs/0BaNrZLXetLag==}
- cpu: [ppc64]
- os: [linux]
-
- '@rollup/rollup-linux-ppc64-gnu@4.52.4':
- resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==}
- cpu: [ppc64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-gnu@4.50.2':
- resolution: {integrity: sha512-Hq6aQJT/qFFHrYMjS20nV+9SKrXL2lvFBENZoKfoTH2kKDOJqff5OSJr4x72ZaG/uUn+XmBnGhfr4lwMRrmqCQ==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-gnu@4.52.4':
- resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-musl@4.50.2':
- resolution: {integrity: sha512-82rBSEXRv5qtKyr0xZ/YMF531oj2AIpLZkeNYxmKNN6I2sVE9PGegN99tYDLK2fYHJITL1P2Lgb4ZXnv0PjQvw==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-riscv64-musl@4.52.4':
- resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==}
- cpu: [riscv64]
- os: [linux]
-
- '@rollup/rollup-linux-s390x-gnu@4.50.2':
- resolution: {integrity: sha512-4Q3S3Hy7pC6uaRo9gtXUTJ+EKo9AKs3BXKc2jYypEcMQ49gDPFU2P1ariX9SEtBzE5egIX6fSUmbmGazwBVF9w==}
- cpu: [s390x]
- os: [linux]
-
- '@rollup/rollup-linux-s390x-gnu@4.52.4':
- resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==}
- cpu: [s390x]
- os: [linux]
-
- '@rollup/rollup-linux-x64-gnu@4.50.2':
- resolution: {integrity: sha512-9Jie/At6qk70dNIcopcL4p+1UirusEtznpNtcq/u/C5cC4HBX7qSGsYIcG6bdxj15EYWhHiu02YvmdPzylIZlA==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-linux-x64-gnu@4.52.4':
- resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-linux-x64-musl@4.50.2':
- resolution: {integrity: sha512-HPNJwxPL3EmhzeAnsWQCM3DcoqOz3/IC6de9rWfGR8ZCuEHETi9km66bH/wG3YH0V3nyzyFEGUZeL5PKyy4xvw==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-linux-x64-musl@4.52.4':
- resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==}
- cpu: [x64]
- os: [linux]
-
- '@rollup/rollup-openharmony-arm64@4.50.2':
- resolution: {integrity: sha512-nMKvq6FRHSzYfKLHZ+cChowlEkR2lj/V0jYj9JnGUVPL2/mIeFGmVM2mLaFeNa5Jev7W7TovXqXIG2d39y1KYA==}
- cpu: [arm64]
- os: [openharmony]
-
- '@rollup/rollup-openharmony-arm64@4.52.4':
- resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==}
- cpu: [arm64]
- os: [openharmony]
-
- '@rollup/rollup-win32-arm64-msvc@4.50.2':
- resolution: {integrity: sha512-eFUvvnTYEKeTyHEijQKz81bLrUQOXKZqECeiWH6tb8eXXbZk+CXSG2aFrig2BQ/pjiVRj36zysjgILkqarS2YA==}
- cpu: [arm64]
- os: [win32]
-
- '@rollup/rollup-win32-arm64-msvc@4.52.4':
- resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==}
- cpu: [arm64]
- os: [win32]
-
- '@rollup/rollup-win32-ia32-msvc@4.50.2':
- resolution: {integrity: sha512-cBaWmXqyfRhH8zmUxK3d3sAhEWLrtMjWBRwdMMHJIXSjvjLKvv49adxiEz+FJ8AP90apSDDBx2Tyd/WylV6ikA==}
- cpu: [ia32]
- os: [win32]
-
- '@rollup/rollup-win32-ia32-msvc@4.52.4':
- resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==}
- cpu: [ia32]
- os: [win32]
-
- '@rollup/rollup-win32-x64-gnu@4.52.4':
- resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==}
- cpu: [x64]
- os: [win32]
-
- '@rollup/rollup-win32-x64-msvc@4.50.2':
- resolution: {integrity: sha512-APwKy6YUhvZaEoHyM+9xqmTpviEI+9eL7LoCH+aLcvWYHJ663qG5zx7WzWZY+a9qkg5JtzcMyJ9z0WtQBMDmgA==}
- cpu: [x64]
- os: [win32]
-
- '@rollup/rollup-win32-x64-msvc@4.52.4':
- resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==}
- cpu: [x64]
- os: [win32]
-
- '@rtsao/scc@1.1.0':
- resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
-
- '@rushstack/eslint-patch@1.14.0':
- resolution: {integrity: sha512-WJFej426qe4RWOm9MMtP4V3CV4AucXolQty+GRgAWLgQXmpCuwzs7hEpxxhSc/znXUSxum9d/P/32MW0FlAAlA==}
-
- '@scarf/scarf@1.4.0':
- resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==}
-
- '@sec-ant/readable-stream@0.4.1':
- resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
-
- '@segment/analytics-core@1.8.2':
- resolution: {integrity: sha512-5FDy6l8chpzUfJcNlIcyqYQq4+JTUynlVoCeCUuVz+l+6W0PXg+ljKp34R4yLVCcY5VVZohuW+HH0VLWdwYVAg==}
-
- '@segment/analytics-generic-utils@1.2.0':
- resolution: {integrity: sha512-DfnW6mW3YQOLlDQQdR89k4EqfHb0g/3XvBXkovH1FstUN93eL1kfW9CsDcVQyH3bAC5ZsFyjA/o/1Q2j0QeoWw==}
-
- '@segment/analytics-node@2.3.0':
- resolution: {integrity: sha512-fOXLL8uY0uAWw/sTLmezze80hj8YGgXXlAfvSS6TUmivk4D/SP0C0sxnbpFdkUzWg2zT64qWIZj26afEtSnxUA==}
- engines: {node: '>=20'}
-
- '@shadcn/ui@0.0.4':
- resolution: {integrity: sha512-0dtu/5ApsOZ24qgaZwtif8jVwqol7a4m1x5AxPuM1k5wxhqU7t/qEfBGtaSki1R8VlbTQfCj5PAlO45NKCa7Gg==}
- hasBin: true
-
- '@sinclair/typebox@0.27.8':
- resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
-
- '@sindresorhus/merge-streams@4.0.0':
- resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
- engines: {node: '>=18'}
-
- '@sindresorhus/slugify@2.2.1':
- resolution: {integrity: sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==}
- engines: {node: '>=12'}
-
- '@sindresorhus/transliterate@1.6.0':
- resolution: {integrity: sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==}
- engines: {node: '>=12'}
-
- '@sinonjs/commons@3.0.1':
- resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==}
-
- '@sinonjs/fake-timers@10.3.0':
- resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==}
-
- '@smithy/abort-controller@4.2.2':
- resolution: {integrity: sha512-fPbcmEI+A6QiGOuumTpKSo7z+9VYr5DLN8d5/8jDJOwmt4HAKy/UGuRstCMpKbtr+FMaHH4pvFinSAbIAYCHZQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/config-resolver@4.3.2':
- resolution: {integrity: sha512-F/G+VaulIebINyfvcoXmODgIc7JU/lxWK9/iI0Divxyvd2QWB7/ZcF7JKwMssWI6/zZzlMkq/Pt6ow2AOEebPw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/core@3.16.1':
- resolution: {integrity: sha512-yRx5ag3xEQ/yGvyo80FVukS7ZkeUP49Vbzg0MjfHLkuCIgg5lFtaEJfZR178KJmjWPqLU4d0P4k7SKgF9UkOaQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/credential-provider-imds@4.2.2':
- resolution: {integrity: sha512-hOjFTK+4mfehDnfjNkPqHUKBKR2qmlix5gy7YzruNbTdeoBE3QkfNCPvuCK2r05VUJ02QQ9bz2G41CxhSexsMw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-codec@4.2.2':
- resolution: {integrity: sha512-TDJFBixL6p/CZ6VyTfU+9YrPtcriAouv2IECk5jM4Y3zRJYXyei8lvsCSMMgYW9mLMbtp3mvJbeI8SLOF2BunA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-browser@4.2.2':
- resolution: {integrity: sha512-WDNt+DpzqlXibmCW/b4290dNPMPLL0KrrsXDUQsMycj1NhR60s90pgmRSqaVzNMI5jhdyYVVNMmSh6bgQ9/eiQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-config-resolver@4.3.2':
- resolution: {integrity: sha512-vwc532Ji2FFaoXa+IaWXbO+OrG39t+atwlsLDwh2ayt5Ryn2Bd7gAnEZw6bHT/slreSn+4MKmO2fuRzA1wf1uA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-node@4.2.2':
- resolution: {integrity: sha512-JJ+PhJ3jf+Xshx6fmz10evfu4k0Xk/uv+i43JnsvIonyugiY8fU4CNhTKScYOU6lL9mAEKxvEhy5DCnElKvkZw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/eventstream-serde-universal@4.2.2':
- resolution: {integrity: sha512-QrHhyQV0s2D1RaXPLIPCIy/dAQD3bBSW8nw5IkOmgOHAPDs54nwe6UXR2nsl25fW92BTGVQeOOcHad6rJ2m81A==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/fetch-http-handler@5.3.3':
- resolution: {integrity: sha512-cipIcM3xQ5NdIVwcRb37LaQwIxZNMEZb/ZOPmLFS9uGo9TGx2dGCyMBj9oT7ypH4TUD/kOTc/qHmwQzthrSk+g==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/hash-node@4.2.2':
- resolution: {integrity: sha512-xuOPGrF2GUP+9og5NU02fplRVjJjMhAaY8ZconB3eLKjv/VSV9/s+sFf72MYO5Q2jcSRVk/ywZHpyGbE3FYnFQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/invalid-dependency@4.2.2':
- resolution: {integrity: sha512-Z0844Zpoid5L1DmKX2+cn2Qu9i3XWjhzwYBRJEWrKJwjUuhEkzf37jKPj9dYFsZeKsAbS2qI0JyLsYafbXJvpA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/is-array-buffer@2.2.0':
- resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==}
- engines: {node: '>=14.0.0'}
-
- '@smithy/is-array-buffer@4.2.0':
- resolution: {integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-content-length@4.2.2':
- resolution: {integrity: sha512-aJ7LAuIXStF6EqzRVX9kAW+6/sYoJJv0QqoFrz2BhA9r/85kLYOJ6Ph47wYSGBxzSLxsYT5jqgMw/qpbv1+m+w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-endpoint@4.3.3':
- resolution: {integrity: sha512-CfxQ6X9L87/3C67Po6AGWXsx8iS4w2BO8vQEZJD6hwqg2vNRC/lMa2O5wXYCG9tKotdZ0R8KG33TS7kpUnYKiw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-retry@4.4.3':
- resolution: {integrity: sha512-EHnKGeFuzbmER4oSl/VJDxPLi+aiZUb3nk5KK8eNwHjMhI04jHlui2ZkaBzMfNmXOgymaS6zV//fyt6PSnI1ow==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-serde@4.2.2':
- resolution: {integrity: sha512-tDMPMBCsA1GBxanShhPvQYwdiau3NmctUp+eELMhUTDua+EUrugXlaKCnTMMoEB5mbHFebdv81uJPkVP02oihA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/middleware-stack@4.2.2':
- resolution: {integrity: sha512-7rgzDyLOQouh1bC6gOXnCGSX2dqvbOclgClsFkj735xQM2CHV63Ams8odNZGJgcqnBsEz44V/pDGHU6ALEUD+w==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/node-config-provider@4.3.2':
- resolution: {integrity: sha512-u38G0Audi2ORsL0QnzhopZ3yweMblQf8CZNbzUJ3wfTtZ7OiOwOzee0Nge/3dKeG/8lx0kt8K0kqDi6sYu0oKQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/node-http-handler@4.4.1':
- resolution: {integrity: sha512-9gKJoL45MNyOCGTG082nmx0A6KrbLVQ+5QSSKyzRi0AzL0R81u3wC1+nPvKXgTaBdAKM73fFPdCBHpmtipQwdQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/property-provider@4.2.2':
- resolution: {integrity: sha512-MW7MfI+qYe/Ue5RH0uEztEKB+vBlOMM+1Dz68qzTsY8fC9kanXMFPEVdiq35JTGKWt5wZAjU1R0uXYEjK2MM1g==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/protocol-http@5.3.2':
- resolution: {integrity: sha512-nkKOI8xEkBXUmdxsFExomOb+wkU+Xgn0Fq2LMC7YIX5r4YPUg7PLayV/s/u3AtbyjWYlrvN7nAiDTLlqSdUjHw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/querystring-builder@4.2.2':
- resolution: {integrity: sha512-YgXvq89o+R/8zIoeuXYv8Ysrbwgjx+iVYu9QbseqZjMDAhIg/FRt7jis0KASYFtd/Cnsnz4/nYTJXkJDWe8wHg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/querystring-parser@4.2.2':
- resolution: {integrity: sha512-DczOD2yJy3NXcv1JvhjFC7bIb/tay6nnIRD/qrzBaju5lrkVBOwCT3Ps37tra20wy8PicZpworStK7ZcI9pCRQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/service-error-classification@4.2.2':
- resolution: {integrity: sha512-1X17cMLwe/vb4RpZbQVpJ1xQQ7fhQKggMdt3qjdV3+6QNllzvUXyS3WFnyaFWLyaGqfYHKkNONbO1fBCMQyZtQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/shared-ini-file-loader@4.3.2':
- resolution: {integrity: sha512-AWnLgSmOTdDXM8aZCN4Im0X07M3GGffeL9vGfea4mdKZD0cPT9yLF9SsRbEa00tHLI+KfubDrmjpaKT2pM4GdQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/signature-v4@5.3.2':
- resolution: {integrity: sha512-BRnQGGyaRSSL0KtjjFF9YoSSg8qzSqHMub4H2iKkd+LZNzZ1b7H5amslZBzi+AnvuwPMyeiNv0oqay/VmIuoRA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/smithy-client@4.8.1':
- resolution: {integrity: sha512-N5wK57pVThzLVK5NgmHxocTy5auqGDGQ+JsL5RjCTriPt8JLYgXT0Awa915zCpzc9hXHDOKqDX5g9BFdwkSfUA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/types@4.7.1':
- resolution: {integrity: sha512-WwP7vzoDyzvIFLzF5UhLQ6AsEx/PvSObzlNtJNW3lLy+BaSvTqCU628QKVvcJI/dydlAS1mSHQP7anKcxDcOxA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/url-parser@4.2.2':
- resolution: {integrity: sha512-s2EYKukaswzjiHJCss6asB1F4zjRc0E/MFyceAKzb3+wqKA2Z/+Gfhb5FP8xVVRHBAvBkregaQAydifgbnUlCw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-base64@4.3.0':
- resolution: {integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-body-length-browser@4.2.0':
- resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-body-length-node@4.2.1':
- resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-buffer-from@2.2.0':
- resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
- engines: {node: '>=14.0.0'}
-
- '@smithy/util-buffer-from@4.2.0':
- resolution: {integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-config-provider@4.2.0':
- resolution: {integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-defaults-mode-browser@4.3.2':
- resolution: {integrity: sha512-6JvKHZ5GORYkEZ2+yJKEHp6dQQKng+P/Mu3g3CDy0fRLQgXEO8be+FLrBGGb4kB9lCW6wcQDkN7kRiGkkVAXgg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-defaults-mode-node@4.2.3':
- resolution: {integrity: sha512-bkTGuMmKvghfCh9NayADrQcjngoF8P+XTgID5r3rm+8LphFiuM6ERqpBS95YyVaLjDetnKus9zK/bGlkQOOtNQ==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-endpoints@3.2.2':
- resolution: {integrity: sha512-ZQi6fFTMBkfwwSPAlcGzArmNILz33QH99CL8jDfVWrzwVVcZc56Mge10jGk0zdRgWPXyL1/OXKjfw4vT5VtRQg==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-hex-encoding@4.2.0':
- resolution: {integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-middleware@4.2.2':
- resolution: {integrity: sha512-wL9tZwWKy0x0qf6ffN7tX5CT03hb1e7XpjdepaKfKcPcyn5+jHAWPqivhF1Sw/T5DYi9wGcxsX8Lu07MOp2Puw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-retry@4.2.2':
- resolution: {integrity: sha512-TlbnWAOoCuG2PgY0Hi3BGU1w2IXs3xDsD4E8WDfKRZUn2qx3wRA9mbYnmpWHPswTJCz2L+ebh+9OvD42sV4mNw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-stream@4.5.2':
- resolution: {integrity: sha512-RWYVuQVKtNbr7E0IxV8XHDId714yHPTxU6dHScd6wSMWAXboErzTG7+xqcL+K3r0Xg0cZSlfuNhl1J0rzMLSSw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-uri-escape@4.2.0':
- resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-utf8@2.3.0':
- resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==}
- engines: {node: '>=14.0.0'}
-
- '@smithy/util-utf8@4.2.0':
- resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/util-waiter@4.2.2':
- resolution: {integrity: sha512-ZkanmAo9F47PIxuxaQ1E+VPn/jNIbOM7cpJyABfyI15jnr4l5toSDVXPRuvHIyC2f4fMYC7EKe5DIde7YP7c7A==}
- engines: {node: '>=18.0.0'}
-
- '@smithy/uuid@1.1.0':
- resolution: {integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==}
- engines: {node: '>=18.0.0'}
-
- '@standard-schema/spec@1.0.0':
- resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==}
-
- '@swc/counter@0.1.3':
- resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
-
- '@swc/helpers@0.5.15':
- resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
-
- '@swc/helpers@0.5.17':
- resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
-
- '@tailwindcss/node@4.1.14':
- resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==}
-
- '@tailwindcss/oxide-android-arm64@4.1.14':
- resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [android]
-
- '@tailwindcss/oxide-darwin-arm64@4.1.14':
- resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
-
- '@tailwindcss/oxide-darwin-x64@4.1.14':
- resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
-
- '@tailwindcss/oxide-freebsd-x64@4.1.14':
- resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [freebsd]
-
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
- resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==}
- engines: {node: '>= 10'}
- cpu: [arm]
- os: [linux]
-
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
- resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
- resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
-
- '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
- resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@tailwindcss/oxide-linux-x64-musl@4.1.14':
- resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
-
- '@tailwindcss/oxide-wasm32-wasi@4.1.14':
- resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==}
- engines: {node: '>=14.0.0'}
- cpu: [wasm32]
- bundledDependencies:
- - '@napi-rs/wasm-runtime'
- - '@emnapi/core'
- - '@emnapi/runtime'
- - '@tybys/wasm-util'
- - '@emnapi/wasi-threads'
- - tslib
-
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
- resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
-
- '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
- resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
-
- '@tailwindcss/oxide@4.1.14':
- resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==}
- engines: {node: '>= 10'}
-
- '@tailwindcss/postcss@4.1.14':
- resolution: {integrity: sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==}
-
- '@tailwindcss/typography@0.5.19':
- resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1'
-
- '@tanstack/react-virtual@3.13.12':
- resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
- '@tanstack/virtual-core@3.13.12':
- resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==}
-
- '@tiptap/core@2.26.3':
- resolution: {integrity: sha512-TaOJzu2v5ufsOx+yu94NqXE504zmupVdFCxH1g3hk5fzZ3gT57Lh9R/27OjwM4e6o+Z3DXDl8yfFMHIcR3zUkg==}
- peerDependencies:
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-blockquote@2.26.3':
- resolution: {integrity: sha512-brz8+wh03TuMevNUztTSC9BzZEsLCNakPJCCicD8FRpBJoLj4benT6T3GYVdMhkk4BmhpruSFZB0FPY+rxCVlA==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-bold@2.26.3':
- resolution: {integrity: sha512-ssXKQxSwQ+Webv65emK/A1d13iTvnfbw8I2wlzuxsrMChyb4wH2HyqI5N4g0FpLqCpkXFumforoY+0XKktve+w==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-bubble-menu@2.26.3':
- resolution: {integrity: sha512-vliC5bv/md4qkguqqL8w7LW8jnXBD1FLdSMDavHRVwdRaRnEfLRAIY7Oxtc1Voy3+762tfn912TuwDlCOPsNSQ==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-bullet-list@2.26.3':
- resolution: {integrity: sha512-pfBMOup1JbXgf2aVTtG1A5t7qFZJrpD+wNPuypjF2YWmCl/pAlwbPFz9hNuWyZq14+QoQg5tML1/G1M7cgrrtw==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-code-block@2.26.3':
- resolution: {integrity: sha512-3DbzKRfMqw9EGS7mGkpyopbRWTO+qpV52Mby4Ll2+OfhvGnHzSN4Q7xOsp+VeZr14GMEmua5Oq2e/gRypqXatQ==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-code@2.26.3':
- resolution: {integrity: sha512-bAkUNzV+tA1J1RYbtbAGTFqkRw9+yRpAd+d3S9jy/dAD+uOe1ZD1EIngyEf2GTonnoy4bpDYtytbCjUt9PozoA==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-color@2.26.3':
- resolution: {integrity: sha512-ijwfLpLWXDi797aKtQLPnMYrIQuC2g/Sqw+1k+tDNCfAgqK1LaALGiqf8j1vAcdE0tHdl37PIjud3Qv0hh6J5w==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/extension-text-style': ^2.7.0
-
- '@tiptap/extension-document@2.26.3':
- resolution: {integrity: sha512-gcJg4Otchilr4eSUwhPNwbhPUkEYvXhkUZ/1MAhVGD40Ovq2P8ZWkJipA3tKOCJinL5MJK59ccZBstnKSTw+JA==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-dropcursor@2.26.3':
- resolution: {integrity: sha512-54rgDTmRStVmXZR7KdCvSOCAbumh5luXgticUkRM8OM8PBe1c0T9X8jfV7+XEFGugRVl8mtCZZpgUt5vhuxHog==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-floating-menu@2.26.3':
- resolution: {integrity: sha512-i2dsIMa0L6vjCPnTiXjPZXZqUu3sIIIAI+E1T4p0FsGYjjPTmN+AgkJqeO3bbe5XHmWcWKtgQevNCMF0kmU5rQ==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-gapcursor@2.26.3':
- resolution: {integrity: sha512-ZDNSkpz7ik2PJOjrys27rwko5Ufe6GtLjaAxjvkWmyzcgAOTadDeth9NaRdBVMDGgSLBKbXihYZZXLkiAP9RLA==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-hard-break@2.26.3':
- resolution: {integrity: sha512-KJWUi+2KOZejVRb2KI0NM3LgCpNimxcunbOCKsZKygV/UByzhUl7UaCAIa+ySMM+kbu/Ec3hkTzafGfaU9ZkLg==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-heading@2.26.3':
- resolution: {integrity: sha512-bp7YildFOustuGJGl8TInG26h7xbcpBKskm49TjwyBjUqRHPGH4V11554afStAr+bsTlPN4TDXt7extvq3UYLA==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-history@2.26.3':
- resolution: {integrity: sha512-Qg4+WWf/hDgiBspxLbrhrIFUy7lzi2eBKPSoF/haEYFw/t/FeN60NXYYYtpLimUNpUzyJSOSIwsngFcVJO5X+g==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-horizontal-rule@2.26.3':
- resolution: {integrity: sha512-NhlJEDj0b/P1Rj4UOMgt4CjS4IXEhXQFsdiXmsYZxchfr4J72HrsOfZs4vAqIQbkrLgUlYEr/DGMNWzME78FrA==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-italic@2.26.3':
- resolution: {integrity: sha512-DJX31JQsyerqoNM+hAtbjHoJ42W/EpnMMCtQr/gRS8ssEdrVtcDDhSO2tkaP6dNjhG8zH2hKYsXpLCCFdDgvwg==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-list-item@2.26.3':
- resolution: {integrity: sha512-9qU0SoC+tDSKYhfdWFS3dkioEk3ml1ycBeRmOxh7h+w0ezmTomiT5yvc9t3KM30ps8n1p78sIPo19GF65u1dFQ==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-ordered-list@2.26.3':
- resolution: {integrity: sha512-x6G0qA7dAvSq+kphA7P64m+ScoVEAW8s9pl7o3jIJzcIW/LrbL1xkyOjbgCvGEvwyQVsgyqtLQDQ2oeloosDBw==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-paragraph@2.26.3':
- resolution: {integrity: sha512-eBC5UsaTJRUMhePtK1dcCAfes0CpqqFiewpIM0lWk4XMtpG2aoczVVVkImybbFKfqsvEEo3vgHJ2YiE5YZFCSg==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-placeholder@2.26.3':
- resolution: {integrity: sha512-HDF4FZj8CmQQvbSyXb/G+Ujqoue7TMQPMAe1h1OMJAXq856Y0AsVLXYKiBojUTfI11I7zVwYe08D8atIXHLZZw==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
-
- '@tiptap/extension-strike@2.26.3':
- resolution: {integrity: sha512-Po3al5hP0IwvHHIHYy3DbUvCD/kbYTsi3sWTjPAB9QgqaoJGl+jyhIyha8FsR+U3MCIIJIekMktI5o1+ySMGpg==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-text-style@2.26.3':
- resolution: {integrity: sha512-B+t6k41xtmlIxyi0r+g8MAShGMCK6kmz8EdxoLAUVrlCxYWVk6qvzoojZbjQKlb2sE+idIo4X5yCcKpdkxFe0w==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/extension-text@2.26.3':
- resolution: {integrity: sha512-sGRbX96ss4jQeKw9d0iphuAWja8Dv4w4ryTDKfxD7Lizx3UaIxQB/y+Wna89tM3kfbi/qJcrD3AF7NJgfc/tEA==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
-
- '@tiptap/pm@2.26.3':
- resolution: {integrity: sha512-8gUmdxWlUevmgq2mNvGxvf2CpDW097tVKECMWKEn8sf846kXv3CoqaGRhI3db4kfR+09uWZeRM7rtrjRBmUThg==}
-
- '@tiptap/react@2.26.3':
- resolution: {integrity: sha512-4g7pbdyawIO5YZXJQMwNv0dptblV4QUa7T/BYHe+PjAm4H+OeQbo7UmbxU427u8hPt1PhXZjbvT7D5i3r/MXCw==}
- peerDependencies:
- '@tiptap/core': ^2.7.0
- '@tiptap/pm': ^2.7.0
- react: ^17.0.0 || ^18.0.0 || ^19.0.0
- react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
-
- '@tiptap/starter-kit@2.26.3':
- resolution: {integrity: sha512-hznj/j+mFIuKfNB0ToaZVcVjdtpSOHoBoX3ocSz9BaYCtK+nX1c0gTlfbJ1BcpYUZNtqG+tpUeIfvXifRkq/OQ==}
-
- '@tokenizer/token@0.3.0':
- resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
-
- '@tybys/wasm-util@0.10.1':
- resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
-
- '@types/aws-lambda@8.10.152':
- resolution: {integrity: sha512-soT/c2gYBnT5ygwiHPmd9a1bftj462NWVk2tKCc1PYHSIacB2UwbTS2zYG4jzag1mRDuzg/OjtxQjQ2NKRB6Rw==}
-
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
-
- '@types/babel__generator@7.27.0':
- resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
-
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
-
- '@types/babel__traverse@7.28.0':
- resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
-
- '@types/body-parser@1.19.6':
- resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==}
-
- '@types/bunyan@1.8.11':
- resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==}
-
- '@types/connect@3.4.38':
- resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
-
- '@types/cors@2.8.19':
- resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
-
- '@types/debug@4.1.12':
- resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
-
- '@types/diff-match-patch@1.0.36':
- resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==}
-
- '@types/diff@7.0.2':
- resolution: {integrity: sha512-JSWRMozjFKsGlEjiiKajUjIJVKuKdE3oVy2DNtK+fUo8q82nhFZ2CPQwicAIkXrofahDXrWJ7mjelvZphMS98Q==}
-
- '@types/estree-jsx@1.0.5':
- resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
-
- '@types/estree@1.0.8':
- resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
-
- '@types/express-serve-static-core@4.19.7':
- resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==}
-
- '@types/express@4.17.23':
- resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==}
-
- '@types/graceful-fs@4.1.9':
- resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==}
-
- '@types/hast@2.3.10':
- resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==}
-
- '@types/hast@3.0.4':
- resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
-
- '@types/http-errors@2.0.5':
- resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==}
-
- '@types/inquirer@9.0.9':
- resolution: {integrity: sha512-/mWx5136gts2Z2e5izdoRCo46lPp5TMs9R15GTSsgg/XnZyxDWVqoVU3R9lWnccKpqwsJLvRoxbCjoJtZB7DSw==}
-
- '@types/istanbul-lib-coverage@2.0.6':
- resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
-
- '@types/istanbul-lib-report@3.0.3':
- resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
-
- '@types/istanbul-reports@3.0.4':
- resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
-
- '@types/jest@29.5.14':
- resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==}
-
- '@types/json-schema@7.0.15':
- resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
-
- '@types/json5@0.0.29':
- resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
-
- '@types/katex@0.16.7':
- resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
-
- '@types/linkify-it@5.0.0':
- resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
-
- '@types/markdown-it@14.1.2':
- resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
-
- '@types/mdast@3.0.15':
- resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
-
- '@types/mdast@4.0.4':
- resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
-
- '@types/mdurl@2.0.0':
- resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
-
- '@types/mdx@2.0.13':
- resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
-
- '@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/ms@2.1.0':
- resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
-
- '@types/mysql@2.15.27':
- resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==}
-
- '@types/node-fetch@2.6.13':
- resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==}
-
- '@types/node@18.19.130':
- resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
-
- '@types/node@20.19.21':
- resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==}
-
- '@types/node@22.18.10':
- resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==}
-
- '@types/oracledb@6.5.2':
- resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==}
-
- '@types/pg-pool@2.0.6':
- resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==}
-
- '@types/pg@8.15.5':
- resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==}
-
- '@types/prop-types@15.7.15':
- resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
-
- '@types/qs@6.14.0':
- resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
-
- '@types/range-parser@1.2.7':
- resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
-
- '@types/react-dom@19.2.2':
- resolution: {integrity: sha512-9KQPoO6mZCi7jcIStSnlOWn2nEF3mNmyr3rIAsGnAbQKYbRLyqmeSc39EVgtxXVia+LMT8j3knZLAZAh+xLmrw==}
- peerDependencies:
- '@types/react': ^19.2.0
-
- '@types/react-syntax-highlighter@15.5.13':
- resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==}
-
- '@types/react@19.2.2':
- resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==}
-
- '@types/resolve@1.20.2':
- resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
-
- '@types/retry@0.12.0':
- resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
-
- '@types/semver@7.7.1':
- resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==}
-
- '@types/send@0.17.5':
- resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==}
-
- '@types/send@1.2.0':
- resolution: {integrity: sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==}
-
- '@types/serve-static@1.15.9':
- resolution: {integrity: sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==}
-
- '@types/stack-utils@2.0.3':
- resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
-
- '@types/tedious@4.0.14':
- resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==}
-
- '@types/through@0.0.33':
- resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==}
-
- '@types/tough-cookie@4.0.5':
- resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
-
- '@types/unist@2.0.11':
- resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
-
- '@types/unist@3.0.3':
- resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
-
- '@types/use-sync-external-store@0.0.6':
- resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
-
- '@types/uuid@10.0.0':
- resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
-
- '@types/validator@13.15.3':
- resolution: {integrity: sha512-7bcUmDyS6PN3EuD9SlGGOxM77F8WLVsrwkxyWxKnxzmXoequ6c7741QBrANq6htVRGOITJ7z72mTP6Z4XyuG+Q==}
-
- '@types/ws@8.18.1':
- resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
-
- '@types/yargs-parser@21.0.3':
- resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
-
- '@types/yargs@17.0.33':
- resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
-
- '@typescript-eslint/eslint-plugin@8.46.1':
- resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- '@typescript-eslint/parser': ^8.46.1
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/parser@8.46.1':
- resolution: {integrity: sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/project-service@8.46.1':
- resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/scope-manager@8.46.1':
- resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/tsconfig-utils@8.46.1':
- resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/type-utils@8.46.1':
- resolution: {integrity: sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/types@8.46.1':
- resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/typescript-estree@8.46.1':
- resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/utils@8.46.1':
- resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
- typescript: '>=4.8.4 <6.0.0'
-
- '@typescript-eslint/visitor-keys@8.46.1':
- resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@ungap/structured-clone@1.3.0':
- resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
-
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
- resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
- cpu: [arm]
- os: [android]
-
- '@unrs/resolver-binding-android-arm64@1.11.1':
- resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
- cpu: [arm64]
- os: [android]
-
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
- cpu: [arm64]
- os: [darwin]
-
- '@unrs/resolver-binding-darwin-x64@1.11.1':
- resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
- cpu: [x64]
- os: [darwin]
-
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
- resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
- cpu: [x64]
- os: [freebsd]
-
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
- resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
- cpu: [arm]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
- resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
- cpu: [arm]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
- resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
- cpu: [arm64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
- resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
- cpu: [arm64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
- resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
- cpu: [ppc64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
- resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
- cpu: [riscv64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
- resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
- cpu: [riscv64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
- resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
- cpu: [s390x]
- os: [linux]
-
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
- resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
- cpu: [x64]
- os: [linux]
-
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
- resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
- cpu: [x64]
- os: [linux]
-
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
- resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
- engines: {node: '>=14.0.0'}
- cpu: [wasm32]
-
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
- resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
- cpu: [arm64]
- os: [win32]
-
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
- resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
- cpu: [ia32]
- os: [win32]
-
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
- resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
- cpu: [x64]
- os: [win32]
-
- '@upstash/redis@1.35.6':
- resolution: {integrity: sha512-aSEIGJgJ7XUfTYvhQcQbq835re7e/BXjs8Janq6Pvr6LlmTZnyqwT97RziZLO/8AVUL037RLXqqiQC6kCt+5pA==}
-
- '@urql/core@5.2.0':
- resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==}
-
- '@vercel/oidc@3.0.2':
- resolution: {integrity: sha512-JekxQ0RApo4gS4un/iMGsIL1/k4KUBe3HmnGcDvzHuFBdQdudEJgTqcsJC7y6Ul4Yw5CeykgvQbX2XeEJd0+DA==}
- engines: {node: '>= 20'}
-
- '@webcontainer/env@1.1.1':
- resolution: {integrity: sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==}
-
- '@whatwg-node/disposablestack@0.0.6':
- resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==}
- engines: {node: '>=18.0.0'}
-
- '@whatwg-node/events@0.1.2':
- resolution: {integrity: sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==}
- engines: {node: '>=18.0.0'}
-
- '@whatwg-node/fetch@0.10.11':
- resolution: {integrity: sha512-eR8SYtf9Nem1Tnl0IWrY33qJ5wCtIWlt3Fs3c6V4aAaTFLtkEQErXu3SSZg/XCHrj9hXSJ8/8t+CdMk5Qec/ZA==}
- engines: {node: '>=18.0.0'}
-
- '@whatwg-node/node-fetch@0.8.1':
- resolution: {integrity: sha512-cQmQEo7IsI0EPX9VrwygXVzrVlX43Jb7/DBZSmpnC7xH4xkyOnn/HykHpTaQk7TUs7zh59A5uTGqx3p2Ouzffw==}
- engines: {node: '>=18.0.0'}
-
- '@whatwg-node/promise-helpers@1.3.2':
- resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==}
- engines: {node: '>=16.0.0'}
-
- '@whatwg-node/server@0.10.13':
- resolution: {integrity: sha512-Otmxo+0mp8az3B48pLI1I4msNOXPIoP7TLm6h5wOEQmynqHt8oP9nR6NJUeJk6iI5OtFpQtkbJFwfGkmplvc3Q==}
- engines: {node: '>=18.0.0'}
-
- abort-controller-x@0.4.3:
- resolution: {integrity: sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==}
-
- abort-controller@3.0.0:
- resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
- engines: {node: '>=6.5'}
-
- accepts@1.3.8:
- resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
- engines: {node: '>= 0.6'}
-
- accepts@2.0.0:
- resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
- engines: {node: '>= 0.6'}
-
- acorn-import-attributes@1.9.5:
- resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
- peerDependencies:
- acorn: ^8
-
- acorn-jsx@5.3.2:
- resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- acorn@8.15.0:
- resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
- engines: {node: '>=0.4.0'}
- hasBin: true
-
- agent-base@6.0.2:
- resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
- engines: {node: '>= 6.0.0'}
-
- agent-base@7.1.4:
- 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@4.3.19:
- resolution: {integrity: sha512-dIE2bfNpqHN3r6IINp9znguYdhIOheKW2LDigAMrgt/upT3B8eBGPSCblENvaZGoq+hxaN9fSMzjWpbqloP+7Q==}
- engines: {node: '>=18'}
- peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
- zod: ^3.23.8
- peerDependenciesMeta:
- react:
- optional: true
-
- ai@5.0.60:
- resolution: {integrity: sha512-80U/3kmdBW6g+JkLXpz/P2EwkyEaWlPlYtuLUpx/JYK9F7WZh9NnkYoh1KvUi1Sbpo0NyurBTvX0a2AG9mmbDA==}
- engines: {node: '>=18'}
- peerDependencies:
- zod: ^3.25.76 || ^4.1.8
-
- ajv@6.12.6:
- resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
-
- ansi-escapes@4.3.2:
- resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
- engines: {node: '>=8'}
-
- ansi-regex@5.0.1:
- resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
- engines: {node: '>=8'}
-
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
-
- ansi-styles@4.3.0:
- resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
- engines: {node: '>=8'}
-
- ansi-styles@5.2.0:
- resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
- engines: {node: '>=10'}
-
- ansi-styles@6.2.3:
- resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
- engines: {node: '>=12'}
-
- any-promise@1.3.0:
- resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
-
- anymatch@3.1.3:
- resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
- engines: {node: '>= 8'}
-
- argparse@1.0.10:
- resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-
- argparse@2.0.1:
- resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-
- aria-hidden@1.2.6:
- resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==}
- engines: {node: '>=10'}
-
- aria-query@5.3.2:
- resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
- engines: {node: '>= 0.4'}
-
- array-buffer-byte-length@1.0.2:
- resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
- engines: {node: '>= 0.4'}
-
- array-flatten@1.1.1:
- resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
-
- array-includes@3.1.9:
- resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==}
- engines: {node: '>= 0.4'}
-
- array.prototype.findlast@1.2.5:
- resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
- engines: {node: '>= 0.4'}
-
- array.prototype.findlastindex@1.2.6:
- resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==}
- engines: {node: '>= 0.4'}
-
- array.prototype.flat@1.3.3:
- resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
- engines: {node: '>= 0.4'}
-
- array.prototype.flatmap@1.3.3:
- resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
- engines: {node: '>= 0.4'}
-
- array.prototype.tosorted@1.1.4:
- resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
- engines: {node: '>= 0.4'}
-
- arraybuffer.prototype.slice@1.0.4:
- resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
- engines: {node: '>= 0.4'}
-
- arrify@2.0.1:
- resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==}
- engines: {node: '>=8'}
-
- ast-types-flow@0.0.8:
- resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
-
- astring@1.9.0:
- resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
- hasBin: true
-
- async-function@1.0.0:
- resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
- engines: {node: '>= 0.4'}
-
- async-mutex@0.5.0:
- resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==}
-
- asynckit@0.4.0:
- resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
-
- atomic-sleep@1.0.0:
- resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==}
- engines: {node: '>=8.0.0'}
-
- available-typed-arrays@1.0.7:
- resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
- engines: {node: '>= 0.4'}
-
- axe-core@4.11.0:
- resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==}
- engines: {node: '>=4'}
-
- axios@1.12.2:
- resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==}
-
- axobject-query@4.1.0:
- resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
- engines: {node: '>= 0.4'}
-
- babel-jest@29.7.0:
- resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- '@babel/core': ^7.8.0
-
- babel-plugin-istanbul@6.1.1:
- resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
- engines: {node: '>=8'}
-
- babel-plugin-jest-hoist@29.6.3:
- resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- babel-preset-current-node-syntax@1.2.0:
- resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==}
- peerDependencies:
- '@babel/core': ^7.0.0 || ^8.0.0-0
-
- babel-preset-jest@29.6.3:
- resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- '@babel/core': ^7.0.0
-
- bail@2.0.2:
- resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
-
- balanced-match@1.0.2:
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-
- base64-js@1.5.1:
- resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
-
- baseline-browser-mapping@2.8.16:
- resolution: {integrity: sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==}
- hasBin: true
-
- bignumber.js@9.3.1:
- resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
-
- binary-extensions@2.3.0:
- resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
- engines: {node: '>=8'}
-
- bl@5.1.0:
- resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==}
-
- body-parser@1.20.3:
- resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
- 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'}
-
- bowser@2.12.1:
- resolution: {integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==}
-
- brace-expansion@1.1.12:
- resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
-
- brace-expansion@2.0.2:
- resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
-
- braces@3.0.3:
- resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
- engines: {node: '>=8'}
-
- browserslist@4.26.3:
- resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
-
- bs-logger@0.2.6:
- resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
- engines: {node: '>= 6'}
-
- bser@2.1.1:
- resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
-
- buffer-equal-constant-time@1.0.1:
- resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
-
- buffer-from@1.1.2:
- resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-
- buffer@6.0.3:
- resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
-
- builtins@5.1.0:
- resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==}
-
- bundle-name@4.1.0:
- resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
- engines: {node: '>=18'}
-
- bundle-require@5.1.0:
- resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- peerDependencies:
- esbuild: '>=0.18'
-
- busboy@1.6.0:
- resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
- engines: {node: '>=10.16.0'}
-
- bytes@3.1.2:
- resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
- engines: {node: '>= 0.8'}
-
- cac@6.7.14:
- resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
- engines: {node: '>=8'}
-
- call-bind-apply-helpers@1.0.2:
- resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
- engines: {node: '>= 0.4'}
-
- call-bind@1.0.8:
- resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
- engines: {node: '>= 0.4'}
-
- call-bound@1.0.4:
- resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
- engines: {node: '>= 0.4'}
-
- callsites@3.1.0:
- resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
- engines: {node: '>=6'}
-
- camelcase@5.3.1:
- resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
- engines: {node: '>=6'}
-
- camelcase@6.3.0:
- resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
- engines: {node: '>=10'}
-
- caniuse-lite@1.0.30001750:
- resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==}
-
- case-anything@2.1.13:
- resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==}
- engines: {node: '>=12.13'}
-
- ccount@2.0.1:
- resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
-
- chalk@4.1.2:
- resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
- engines: {node: '>=10'}
-
- chalk@5.2.0:
- resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
-
- chalk@5.6.2:
- resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
-
- char-regex@1.0.2:
- resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
- engines: {node: '>=10'}
-
- character-entities-html4@2.1.0:
- resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
-
- character-entities-legacy@1.1.4:
- resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==}
-
- character-entities-legacy@3.0.0:
- resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
-
- character-entities@1.2.4:
- resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==}
-
- character-entities@2.0.2:
- resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
-
- character-reference-invalid@1.1.4:
- resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==}
-
- character-reference-invalid@2.0.1:
- resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
-
- chardet@2.1.0:
- resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==}
-
- chokidar@4.0.3:
- resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
- engines: {node: '>= 14.16.0'}
-
- chownr@3.0.0:
- resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==}
- engines: {node: '>=18'}
-
- ci-info@3.9.0:
- resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
- engines: {node: '>=8'}
-
- citty@0.1.6:
- resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
-
- cjs-module-lexer@1.4.3:
- resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}
-
- class-transformer@0.5.1:
- resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==}
-
- class-validator@0.14.2:
- resolution: {integrity: sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw==}
-
- class-variance-authority@0.7.1:
- resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
-
- cli-cursor@4.0.0:
- resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- cli-spinners@2.9.2:
- resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==}
- engines: {node: '>=6'}
-
- cli-width@4.1.0:
- resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==}
- engines: {node: '>= 12'}
-
- client-only@0.0.1:
- resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
-
- cliui@8.0.1:
- resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
- engines: {node: '>=12'}
-
- clone@1.0.4:
- resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
- engines: {node: '>=0.8'}
-
- clone@2.1.2:
- resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
- engines: {node: '>=0.8'}
-
- clsx@2.1.1:
- resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
- engines: {node: '>=6'}
-
- cluster-key-slot@1.1.2:
- resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
- engines: {node: '>=0.10.0'}
-
- co@4.6.0:
- resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
- engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
-
- collapse-white-space@2.1.0:
- resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
-
- collect-v8-coverage@1.0.2:
- resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
-
- color-convert@2.0.1:
- resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
- engines: {node: '>=7.0.0'}
-
- color-name@1.1.4:
- resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-
- color-string@1.9.1:
- resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
-
- color@4.2.3:
- resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
- engines: {node: '>=12.5.0'}
-
- colorette@2.0.20:
- resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
-
- combined-stream@1.0.8:
- resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
- engines: {node: '>= 0.8'}
-
- comma-separated-tokens@1.0.8:
- resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==}
-
- comma-separated-tokens@2.0.3:
- resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
-
- commander@10.0.1:
- resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
- engines: {node: '>=14'}
-
- commander@12.1.0:
- resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
- engines: {node: '>=18'}
-
- commander@4.1.1:
- resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
- engines: {node: '>= 6'}
-
- commander@8.3.0:
- resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
- engines: {node: '>= 12'}
-
- commander@9.5.0:
- resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
- engines: {node: ^12.20.0 || >=14}
-
- commondir@1.0.1:
- resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
-
- concat-map@0.0.1:
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-
- concurrently@9.2.1:
- resolution: {integrity: sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==}
- engines: {node: '>=18'}
- hasBin: true
-
- confbox@0.1.8:
- resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
-
- confbox@0.2.2:
- resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
-
- consola@3.4.2:
- resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
- engines: {node: ^14.18.0 || >=16.10.0}
-
- console-table-printer@2.14.6:
- resolution: {integrity: sha512-MCBl5HNVaFuuHW6FGbL/4fB7N/ormCy+tQ+sxTrF6QtSbSNETvPuOVbkJBhzDgYhvjWGrTma4eYJa37ZuoQsPw==}
-
- content-disposition@0.5.4:
- resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
- engines: {node: '>= 0.6'}
-
- content-disposition@1.0.0:
- resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==}
- engines: {node: '>= 0.6'}
-
- content-type@1.0.5:
- resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
- engines: {node: '>= 0.6'}
-
- convert-source-map@2.0.0:
- resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-
- cookie-signature@1.0.6:
- resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
-
- cookie-signature@1.2.2:
- resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==}
- engines: {node: '>=6.6.0'}
-
- cookie@0.7.1:
- resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
- engines: {node: '>= 0.6'}
-
- cookie@0.7.2:
- resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
- engines: {node: '>= 0.6'}
-
- cors@2.8.5:
- resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
- engines: {node: '>= 0.10'}
-
- create-jest@29.7.0:
- resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- hasBin: true
-
- crelt@1.0.6:
- resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==}
-
- cross-fetch@3.2.0:
- resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
-
- cross-inspect@1.0.1:
- resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==}
- engines: {node: '>=16.0.0'}
-
- cross-spawn@7.0.6:
- resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
- engines: {node: '>= 8'}
-
- cssesc@3.0.0:
- resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
- engines: {node: '>=4'}
- hasBin: true
-
- csstype@3.1.3:
- resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
-
- damerau-levenshtein@1.0.8:
- resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
-
- data-uri-to-buffer@4.0.1:
- resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
- engines: {node: '>= 12'}
-
- data-view-buffer@1.0.2:
- resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-length@1.0.2:
- resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
- engines: {node: '>= 0.4'}
-
- data-view-byte-offset@1.0.1:
- resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
- engines: {node: '>= 0.4'}
-
- date-fns@3.6.0:
- resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==}
-
- date-fns@4.1.0:
- resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==}
-
- dateformat@4.6.3:
- resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
-
- debug@2.6.9:
- resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@3.2.7:
- resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.3.1:
- resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- debug@4.4.3:
- resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
-
- decamelize@1.2.0:
- resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
- engines: {node: '>=0.10.0'}
-
- decode-named-character-reference@1.2.0:
- resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
-
- dedent@1.7.0:
- resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==}
- peerDependencies:
- babel-plugin-macros: ^3.1.0
- peerDependenciesMeta:
- babel-plugin-macros:
- optional: true
-
- deep-is@0.1.4:
- resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-
- deepmerge@4.3.1:
- resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
- engines: {node: '>=0.10.0'}
-
- default-browser-id@5.0.0:
- resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
- engines: {node: '>=18'}
-
- default-browser@5.2.1:
- resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
- engines: {node: '>=18'}
-
- defaults@1.0.4:
- resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==}
-
- define-data-property@1.1.4:
- resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
- engines: {node: '>= 0.4'}
-
- define-lazy-prop@3.0.0:
- resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
- engines: {node: '>=12'}
-
- define-properties@1.2.1:
- resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
- engines: {node: '>= 0.4'}
-
- defu@6.1.4:
- resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
-
- delayed-stream@1.0.0:
- resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
- engines: {node: '>=0.4.0'}
-
- depd@2.0.0:
- resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
- engines: {node: '>= 0.8'}
-
- dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
-
- destroy@1.2.0:
- resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
- engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
-
- detect-libc@1.0.3:
- resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
- engines: {node: '>=0.10'}
- hasBin: true
-
- detect-libc@2.0.2:
- resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
- engines: {node: '>=8'}
-
- detect-libc@2.1.2:
- resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
- engines: {node: '>=8'}
-
- detect-newline@3.1.0:
- resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
- engines: {node: '>=8'}
-
- detect-node-es@1.1.0:
- resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
-
- devlop@1.1.0:
- resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
-
- diff-match-patch@1.0.5:
- resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==}
-
- diff-sequences@29.6.3:
- resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- diff@5.2.0:
- resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
- engines: {node: '>=0.3.1'}
-
- diff@7.0.0:
- resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==}
- engines: {node: '>=0.3.1'}
-
- doctrine@2.1.0:
- resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
- engines: {node: '>=0.10.0'}
-
- dompurify@3.1.7:
- resolution: {integrity: sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==}
-
- dotenv@16.6.1:
- resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
- engines: {node: '>=12'}
-
- dprint-node@1.0.8:
- resolution: {integrity: sha512-iVKnUtYfGrYcW1ZAlfR/F59cUVL8QIhWoBJoSjkkdua/dkWIgjZfiLMeTjiB06X0ZLkQ0M2C1VbUj/CxkIf1zg==}
-
- dset@3.1.4:
- resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==}
- engines: {node: '>=4'}
-
- dunder-proto@1.0.1:
- resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
- engines: {node: '>= 0.4'}
-
- eastasianwidth@0.2.0:
- resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
-
- ecdsa-sig-formatter@1.0.11:
- resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
-
- ee-first@1.1.1:
- resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
-
- electrodb@3.4.7:
- resolution: {integrity: sha512-kO7JmeMPkVHKX1nBFENRWzKHhivYmK7Kjd2KThEZCwnEzTgscovyg/z9h7GNfRtXR6kKWHjCgUrrhDzecrxM0A==}
-
- electron-to-chromium@1.5.235:
- resolution: {integrity: sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ==}
-
- embla-carousel-react@8.6.0:
- resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
-
- embla-carousel-reactive-utils@8.6.0:
- resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==}
- peerDependencies:
- embla-carousel: 8.6.0
-
- embla-carousel@8.6.0:
- resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==}
-
- emittery@0.13.1:
- resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
- engines: {node: '>=12'}
-
- emoji-regex@8.0.0:
- resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-
- emoji-regex@9.2.2:
- resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
-
- empathic@2.0.0:
- resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
- engines: {node: '>=14'}
-
- encodeurl@1.0.2:
- resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
- engines: {node: '>= 0.8'}
-
- encodeurl@2.0.0:
- resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
- engines: {node: '>= 0.8'}
-
- end-of-stream@1.4.5:
- resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
-
- enhanced-resolve@5.18.3:
- resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==}
- engines: {node: '>=10.13.0'}
-
- entities@4.5.0:
- resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
- engines: {node: '>=0.12'}
-
- entities@6.0.1:
- resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
- engines: {node: '>=0.12'}
-
- error-ex@1.3.4:
- resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==}
-
- es-abstract@1.24.0:
- resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==}
- engines: {node: '>= 0.4'}
-
- es-define-property@1.0.1:
- resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
- engines: {node: '>= 0.4'}
-
- es-errors@1.3.0:
- resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
- engines: {node: '>= 0.4'}
-
- es-iterator-helpers@1.2.1:
- resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==}
- engines: {node: '>= 0.4'}
-
- es-module-lexer@1.7.0:
- resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
-
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
- engines: {node: '>= 0.4'}
-
- es-set-tostringtag@2.1.0:
- resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
- engines: {node: '>= 0.4'}
-
- es-shim-unscopables@1.1.0:
- resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
- engines: {node: '>= 0.4'}
-
- es-to-primitive@1.3.0:
- resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
- engines: {node: '>= 0.4'}
-
- esast-util-from-estree@2.0.0:
- resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
-
- esast-util-from-js@2.0.1:
- resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
-
- esbuild@0.25.10:
- resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==}
- engines: {node: '>=18'}
- hasBin: true
-
- escalade@3.2.0:
- resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
- engines: {node: '>=6'}
-
- escape-html@1.0.3:
- resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
-
- escape-string-regexp@2.0.0:
- resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
- engines: {node: '>=8'}
-
- escape-string-regexp@4.0.0:
- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
- engines: {node: '>=10'}
-
- escape-string-regexp@5.0.0:
- resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
- engines: {node: '>=12'}
-
- eslint-config-next@15.2.1:
- resolution: {integrity: sha512-mhsprz7l0no8X+PdDnVHF4dZKu9YBJp2Rf6ztWbXBLJ4h6gxmW//owbbGJMBVUU+PibGJDAqZhW4pt8SC8HSow==}
- peerDependencies:
- eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
- typescript: '>=3.3.1'
- peerDependenciesMeta:
- typescript:
- optional: true
-
- eslint-import-resolver-node@0.3.9:
- resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
-
- eslint-import-resolver-typescript@3.10.1:
- resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- eslint: '*'
- eslint-plugin-import: '*'
- eslint-plugin-import-x: '*'
- peerDependenciesMeta:
- eslint-plugin-import:
- optional: true
- eslint-plugin-import-x:
- optional: true
-
- eslint-module-utils@2.12.1:
- resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==}
- engines: {node: '>=4'}
- peerDependencies:
- '@typescript-eslint/parser': '*'
- eslint: '*'
- eslint-import-resolver-node: '*'
- eslint-import-resolver-typescript: '*'
- eslint-import-resolver-webpack: '*'
- peerDependenciesMeta:
- '@typescript-eslint/parser':
- optional: true
- eslint:
- optional: true
- eslint-import-resolver-node:
- optional: true
- eslint-import-resolver-typescript:
- optional: true
- eslint-import-resolver-webpack:
- optional: true
-
- eslint-plugin-import@2.32.0:
- resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==}
- engines: {node: '>=4'}
- peerDependencies:
- '@typescript-eslint/parser': '*'
- eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
- peerDependenciesMeta:
- '@typescript-eslint/parser':
- optional: true
-
- eslint-plugin-jsx-a11y@6.10.2:
- resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
- engines: {node: '>=4.0'}
- peerDependencies:
- eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
-
- eslint-plugin-react-hooks@5.2.0:
- resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
- engines: {node: '>=10'}
- peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
-
- eslint-plugin-react@7.37.5:
- resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
- engines: {node: '>=4'}
- peerDependencies:
- eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
-
- eslint-scope@8.4.0:
- resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint-visitor-keys@3.4.3:
- resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- eslint-visitor-keys@4.2.1:
- resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- eslint@9.37.0:
- resolution: {integrity: sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- hasBin: true
- peerDependencies:
- jiti: '*'
- peerDependenciesMeta:
- jiti:
- optional: true
-
- espree@10.4.0:
- resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- esprima@4.0.1:
- resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
- engines: {node: '>=4'}
- hasBin: true
-
- esquery@1.6.0:
- resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
- engines: {node: '>=0.10'}
-
- esrecurse@4.3.0:
- resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
- engines: {node: '>=4.0'}
-
- estraverse@5.3.0:
- resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
- engines: {node: '>=4.0'}
-
- estree-util-attach-comments@3.0.0:
- resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
-
- estree-util-build-jsx@3.0.1:
- resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
-
- estree-util-is-identifier-name@3.0.0:
- resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
-
- estree-util-scope@1.0.0:
- resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==}
-
- estree-util-to-js@2.0.0:
- resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
-
- estree-util-visit@2.0.0:
- resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
-
- estree-walker@2.0.2:
- resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
-
- estree-walker@3.0.3:
- resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
-
- esutils@2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
-
- etag@1.8.1:
- resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
- engines: {node: '>= 0.6'}
-
- event-target-shim@5.0.1:
- resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
- engines: {node: '>=6'}
-
- eventemitter3@4.0.7:
- resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
-
- events@3.3.0:
- resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
- engines: {node: '>=0.8.x'}
-
- eventsource-parser@3.0.6:
- resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==}
- engines: {node: '>=18.0.0'}
-
- eventsource@3.0.7:
- resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==}
- engines: {node: '>=18.0.0'}
-
- execa@5.1.1:
- resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
- engines: {node: '>=10'}
-
- execa@7.2.0:
- resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
- engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
-
- execa@9.6.0:
- resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==}
- engines: {node: ^18.19.0 || >=20.5.0}
-
- exit-hook@4.0.0:
- resolution: {integrity: sha512-Fqs7ChZm72y40wKjOFXBKg7nJZvQJmewP5/7LtePDdnah/+FH9Hp5sgMujSCMPXlxOAW2//1jrW9pnsY7o20vQ==}
- engines: {node: '>=18'}
-
- exit@0.1.2:
- resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
- engines: {node: '>= 0.8.0'}
-
- expect@29.7.0:
- resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- expr-eval@2.0.2:
- resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==}
-
- express-rate-limit@7.5.1:
- resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==}
- engines: {node: '>= 16'}
- peerDependencies:
- express: '>= 4.11'
-
- express@4.21.2:
- resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
- engines: {node: '>= 0.10.0'}
-
- express@5.1.0:
- resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==}
- engines: {node: '>= 18'}
-
- exsolve@1.0.7:
- resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
-
- extend@3.0.2:
- resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
-
- fast-copy@3.0.2:
- resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==}
-
- fast-deep-equal@3.1.3:
- resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-
- fast-glob@3.3.1:
- resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
- engines: {node: '>=8.6.0'}
-
- fast-glob@3.3.3:
- resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
- engines: {node: '>=8.6.0'}
-
- fast-json-patch@3.1.1:
- resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==}
-
- fast-json-stable-stringify@2.1.0:
- resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
-
- fast-levenshtein@2.0.6:
- resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-
- fast-safe-stringify@2.1.1:
- resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
-
- fast-text-encoding@1.0.6:
- resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==}
-
- fast-xml-parser@5.2.5:
- resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==}
- hasBin: true
-
- fastq@1.19.1:
- resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
-
- fault@1.0.4:
- resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==}
-
- fb-watchman@2.0.2:
- resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
-
- fdir@6.5.0:
- resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
-
- fetch-blob@3.2.0:
- resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
- engines: {node: ^12.20 || >= 14.13}
-
- figures@6.1.0:
- resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
- engines: {node: '>=18'}
-
- file-entry-cache@8.0.0:
- resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
- engines: {node: '>=16.0.0'}
-
- file-type@16.5.4:
- resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==}
- engines: {node: '>=10'}
-
- fill-range@7.1.1:
- resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
- engines: {node: '>=8'}
-
- finalhandler@1.3.1:
- resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
- engines: {node: '>= 0.8'}
-
- finalhandler@2.1.0:
- resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==}
- engines: {node: '>= 0.8'}
-
- find-up@4.1.0:
- resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
- engines: {node: '>=8'}
-
- find-up@5.0.0:
- resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
- engines: {node: '>=10'}
-
- find-workspaces@0.3.1:
- resolution: {integrity: sha512-UDkGILGJSA1LN5Aa7McxCid4sqW3/e+UYsVwyxki3dDT0F8+ym0rAfnCkEfkL0rO7M+8/mvkim4t/s3IPHmg+w==}
-
- fix-dts-default-cjs-exports@1.0.1:
- resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==}
-
- flat-cache@4.0.1:
- resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
- engines: {node: '>=16'}
-
- flat@5.0.2:
- resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
- hasBin: true
-
- flatted@3.3.3:
- resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
-
- follow-redirects@1.15.11:
- resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
- engines: {node: '>=4.0'}
- peerDependencies:
- debug: '*'
- peerDependenciesMeta:
- debug:
- optional: true
-
- for-each@0.3.5:
- resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
- engines: {node: '>= 0.4'}
-
- foreground-child@3.3.1:
- resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
- engines: {node: '>=14'}
-
- form-data-encoder@1.7.2:
- resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
-
- form-data@4.0.4:
- resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
- engines: {node: '>= 6'}
-
- format@0.2.2:
- resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
- engines: {node: '>=0.4.x'}
-
- 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'}
-
- forwarded-parse@2.1.2:
- resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==}
-
- forwarded@0.2.0:
- resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
- engines: {node: '>= 0.6'}
-
- fresh@0.5.2:
- resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
- engines: {node: '>= 0.6'}
-
- fresh@2.0.0:
- resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==}
- engines: {node: '>= 0.8'}
-
- fs-extra@11.3.2:
- resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==}
- engines: {node: '>=14.14'}
-
- fs.realpath@1.0.0:
- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-
- fsevents@2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- fsevents@2.3.3:
- resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
- function-bind@1.1.2:
- resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
-
- function.prototype.name@1.1.8:
- resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
- engines: {node: '>= 0.4'}
-
- functions-have-names@1.2.3:
- resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
-
- gaxios@5.1.3:
- resolution: {integrity: sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==}
- engines: {node: '>=12'}
-
- gaxios@6.7.1:
- resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==}
- engines: {node: '>=14'}
-
- gcp-metadata@5.3.0:
- resolution: {integrity: sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==}
- engines: {node: '>=12'}
-
- gcp-metadata@6.1.1:
- resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==}
- engines: {node: '>=14'}
-
- generator-function@2.0.1:
- resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==}
- engines: {node: '>= 0.4'}
-
- gensync@1.0.0-beta.2:
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
- engines: {node: '>=6.9.0'}
-
- get-caller-file@2.0.5:
- resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
- engines: {node: 6.* || 8.* || >= 10.*}
-
- get-intrinsic@1.3.0:
- resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
- engines: {node: '>= 0.4'}
-
- get-nonce@1.0.1:
- resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
- engines: {node: '>=6'}
-
- get-package-type@0.1.0:
- resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
- engines: {node: '>=8.0.0'}
-
- get-port@7.1.0:
- resolution: {integrity: sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==}
- engines: {node: '>=16'}
-
- get-proto@1.0.1:
- resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
- engines: {node: '>= 0.4'}
-
- get-stream@6.0.1:
- resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
- engines: {node: '>=10'}
-
- get-stream@9.0.1:
- resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
- engines: {node: '>=18'}
-
- get-symbol-description@1.1.0:
- resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
- engines: {node: '>= 0.4'}
-
- get-tsconfig@4.12.0:
- resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==}
-
- giget@2.0.0:
- resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==}
- hasBin: true
-
- glob-parent@5.1.2:
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
- engines: {node: '>= 6'}
-
- glob-parent@6.0.2:
- resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
- engines: {node: '>=10.13.0'}
-
- glob@10.4.5:
- resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
- hasBin: true
-
- glob@7.2.3:
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
-
- globals@14.0.0:
- resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
- engines: {node: '>=18'}
-
- globalthis@1.0.4:
- resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
- engines: {node: '>= 0.4'}
-
- google-auth-library@8.9.0:
- resolution: {integrity: sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==}
- engines: {node: '>=12'}
-
- google-logging-utils@0.0.2:
- resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==}
- engines: {node: '>=14'}
-
- google-p12-pem@4.0.1:
- resolution: {integrity: sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==}
- engines: {node: '>=12.0.0'}
- deprecated: Package is no longer maintained
- hasBin: true
-
- gopd@1.2.0:
- resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
- engines: {node: '>= 0.4'}
-
- graceful-fs@4.2.11:
- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
-
- graphemer@1.4.0:
- resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
-
- graphql-query-complexity@0.12.0:
- resolution: {integrity: sha512-fWEyuSL6g/+nSiIRgIipfI6UXTI7bAxrpPlCY1c0+V3pAEUo1ybaKmSBgNr1ed2r+agm1plJww8Loig9y6s2dw==}
- peerDependencies:
- graphql: ^14.6.0 || ^15.0.0 || ^16.0.0
-
- graphql-request@6.1.0:
- resolution: {integrity: sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==}
- peerDependencies:
- graphql: 14 - 16
-
- graphql-scalars@1.24.2:
- resolution: {integrity: sha512-FoZ11yxIauEnH0E5rCUkhDXHVn/A6BBfovJdimRZCQlFCl+h7aVvarKmI15zG4VtQunmCDdqdtNs6ixThy3uAg==}
- engines: {node: '>=10'}
- peerDependencies:
- graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0
-
- graphql-yoga@5.16.0:
- resolution: {integrity: sha512-/R2dJea7WgvNlXRU4F8iFwWd95Qn1mN+R+yC8XBs1wKjUzr0Pvv8cGYtt6UUcVHw5CiDEtu7iQY5oOe3sDAWCQ==}
- engines: {node: '>=18.0.0'}
- peerDependencies:
- graphql: ^15.2.0 || ^16.0.0
-
- graphql@16.11.0:
- resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==}
- engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
-
- groq-sdk@0.5.0:
- resolution: {integrity: sha512-RVmhW7qZ+XZoy5fIuSdx/LGQJONpL8MHgZEW7dFwTdgkzStub2XQx6OKv28CHogijdwH41J+Npj/z2jBPu3vmw==}
-
- gtoken@6.1.2:
- resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==}
- engines: {node: '>=12.0.0'}
-
- handlebars@4.7.8:
- resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
- engines: {node: '>=0.4.7'}
- hasBin: true
-
- has-bigints@1.1.0:
- resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
- engines: {node: '>= 0.4'}
-
- has-flag@4.0.0:
- resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
- engines: {node: '>=8'}
-
- has-property-descriptors@1.0.2:
- resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
-
- has-proto@1.2.0:
- resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
- engines: {node: '>= 0.4'}
-
- has-symbols@1.1.0:
- resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
- engines: {node: '>= 0.4'}
-
- has-tostringtag@1.0.2:
- resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
- engines: {node: '>= 0.4'}
-
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
- engines: {node: '>= 0.4'}
-
- hast-util-from-parse5@8.0.3:
- resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
-
- hast-util-parse-selector@2.2.5:
- resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==}
-
- hast-util-parse-selector@4.0.0:
- resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
-
- hast-util-raw@9.1.0:
- resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
-
- hast-util-to-estree@3.1.3:
- resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==}
-
- hast-util-to-jsx-runtime@2.3.6:
- resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
-
- hast-util-to-parse5@8.0.0:
- resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==}
-
- hast-util-whitespace@2.0.1:
- resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==}
-
- hast-util-whitespace@3.0.0:
- resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
-
- hastscript@6.0.0:
- resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==}
-
- hastscript@9.0.1:
- resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==}
-
- help-me@5.0.0:
- resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==}
-
- highlight.js@10.7.3:
- resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==}
-
- highlightjs-vue@1.0.0:
- resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==}
-
- hono-openapi@0.4.8:
- resolution: {integrity: sha512-LYr5xdtD49M7hEAduV1PftOMzuT8ZNvkyWfh1DThkLsIr4RkvDb12UxgIiFbwrJB6FLtFXLoOZL9x4IeDk2+VA==}
- peerDependencies:
- '@hono/arktype-validator': ^2.0.0
- '@hono/effect-validator': ^1.2.0
- '@hono/typebox-validator': ^0.2.0 || ^0.3.0
- '@hono/valibot-validator': ^0.5.1
- '@hono/zod-validator': ^0.4.1
- '@sinclair/typebox': ^0.34.9
- '@valibot/to-json-schema': ^1.0.0-beta.3
- arktype: ^2.0.0
- effect: ^3.11.3
- hono: ^4.6.13
- openapi-types: ^12.1.3
- valibot: ^1.0.0-beta.9
- zod: ^3.23.8
- zod-openapi: ^4.0.0
- peerDependenciesMeta:
- '@hono/arktype-validator':
- optional: true
- '@hono/effect-validator':
- optional: true
- '@hono/typebox-validator':
- optional: true
- '@hono/valibot-validator':
- optional: true
- '@hono/zod-validator':
- optional: true
- '@sinclair/typebox':
- optional: true
- '@valibot/to-json-schema':
- optional: true
- arktype:
- optional: true
- effect:
- optional: true
- hono:
- optional: true
- valibot:
- optional: true
- zod:
- optional: true
- zod-openapi:
- optional: true
-
- hono@4.9.12:
- resolution: {integrity: sha512-SrTC0YxqPwnN7yKa8gg/giLyQ2pILCKoideIHbYbFQlWZjYt68D2A4Ae1hehO/aDQ6RmTcpqOV/O2yBtMzx/VQ==}
- engines: {node: '>=16.9.0'}
-
- html-escaper@2.0.2:
- resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
-
- html-url-attributes@3.0.1:
- resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==}
-
- html-void-elements@3.0.0:
- resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
-
- http-errors@2.0.0:
- resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
- engines: {node: '>= 0.8'}
-
- https-proxy-agent@5.0.1:
- resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
- engines: {node: '>= 6'}
-
- https-proxy-agent@7.0.6:
- resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
- engines: {node: '>= 14'}
-
- human-signals@2.1.0:
- resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
- engines: {node: '>=10.17.0'}
-
- human-signals@4.3.1:
- resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
- engines: {node: '>=14.18.0'}
-
- human-signals@8.0.1:
- resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==}
- engines: {node: '>=18.18.0'}
-
- humanize-ms@1.2.1:
- resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
-
- ibm-cloud-sdk-core@5.4.3:
- resolution: {integrity: sha512-D0lvClcoCp/HXyaFlCbOT4aTYgGyeIb4ncxZpxRuiuw7Eo79C6c49W53+8WJRD9nxzT5vrIdaky3NBcTdBtaEg==}
- engines: {node: '>=18'}
-
- iconv-lite@0.4.24:
- resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
- engines: {node: '>=0.10.0'}
-
- iconv-lite@0.6.3:
- resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
- engines: {node: '>=0.10.0'}
-
- iconv-lite@0.7.0:
- resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==}
- engines: {node: '>=0.10.0'}
-
- ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
-
- ignore@5.3.2:
- resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
- engines: {node: '>= 4'}
-
- ignore@7.0.5:
- resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
- engines: {node: '>= 4'}
-
- import-fresh@3.3.1:
- resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
- engines: {node: '>=6'}
-
- import-in-the-middle@1.15.0:
- resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==}
-
- import-local@3.2.0:
- resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
- engines: {node: '>=8'}
- hasBin: true
-
- imurmurhash@0.1.4:
- resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
- engines: {node: '>=0.8.19'}
-
- inflight@1.0.6:
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
- deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
-
- inherits@2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-
- inline-style-parser@0.1.1:
- resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
-
- inline-style-parser@0.2.4:
- resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
-
- inquirer@12.10.0:
- resolution: {integrity: sha512-K/epfEnDBZj2Q3NMDcgXWZye3nhSPeoJnOh8lcKWrldw54UEZfS4EmAMsAsmVbl7qKi+vjAsy39Sz4fbgRMewg==}
- engines: {node: '>=18'}
- peerDependencies:
- '@types/node': '>=18'
- peerDependenciesMeta:
- '@types/node':
- optional: true
-
- internal-slot@1.1.0:
- resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
- engines: {node: '>= 0.4'}
-
- ip-regex@4.3.0:
- resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==}
- engines: {node: '>=8'}
-
- ipaddr.js@1.9.1:
- resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
- engines: {node: '>= 0.10'}
-
- is-alphabetical@1.0.4:
- resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==}
-
- is-alphabetical@2.0.1:
- resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
-
- is-alphanumerical@1.0.4:
- resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==}
-
- is-alphanumerical@2.0.1:
- resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
-
- is-array-buffer@3.0.5:
- resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
- engines: {node: '>= 0.4'}
-
- is-arrayish@0.2.1:
- resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
-
- is-arrayish@0.3.4:
- resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==}
-
- is-async-function@2.1.1:
- resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
- engines: {node: '>= 0.4'}
-
- is-bigint@1.1.0:
- resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
- engines: {node: '>= 0.4'}
-
- is-boolean-object@1.2.2:
- resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
- engines: {node: '>= 0.4'}
-
- is-buffer@2.0.5:
- resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
- engines: {node: '>=4'}
-
- is-bun-module@2.0.0:
- resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==}
-
- is-callable@1.2.7:
- resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
- engines: {node: '>= 0.4'}
-
- is-core-module@2.16.1:
- resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
- engines: {node: '>= 0.4'}
-
- is-data-view@1.0.2:
- resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
- engines: {node: '>= 0.4'}
-
- is-date-object@1.1.0:
- resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
- engines: {node: '>= 0.4'}
-
- is-decimal@1.0.4:
- resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==}
-
- is-decimal@2.0.1:
- resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
-
- is-docker@3.0.0:
- resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- hasBin: true
-
- is-extglob@2.1.1:
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
- engines: {node: '>=0.10.0'}
-
- is-finalizationregistry@1.1.1:
- resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
- engines: {node: '>= 0.4'}
-
- is-fullwidth-code-point@3.0.0:
- resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
- engines: {node: '>=8'}
-
- is-generator-fn@2.1.0:
- resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
- engines: {node: '>=6'}
-
- is-generator-function@1.1.2:
- resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
- engines: {node: '>= 0.4'}
-
- is-glob@4.0.3:
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
- engines: {node: '>=0.10.0'}
-
- is-hexadecimal@1.0.4:
- resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
-
- is-hexadecimal@2.0.1:
- resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
-
- is-inside-container@1.0.0:
- resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
- engines: {node: '>=14.16'}
- hasBin: true
-
- is-interactive@2.0.0:
- resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==}
- engines: {node: '>=12'}
-
- is-map@2.0.3:
- resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
- engines: {node: '>= 0.4'}
-
- is-module@1.0.0:
- resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
-
- is-negative-zero@2.0.3:
- resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
- engines: {node: '>= 0.4'}
-
- is-number-object@1.1.1:
- resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
- engines: {node: '>= 0.4'}
-
- is-number@7.0.0:
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
- engines: {node: '>=0.12.0'}
-
- is-plain-obj@4.1.0:
- resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
- engines: {node: '>=12'}
-
- is-promise@4.0.0:
- resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
-
- is-reference@1.2.1:
- resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
-
- is-regex@1.2.1:
- resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
- engines: {node: '>= 0.4'}
-
- is-set@2.0.3:
- resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
- engines: {node: '>= 0.4'}
-
- is-shared-array-buffer@1.0.4:
- resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
- engines: {node: '>= 0.4'}
-
- is-stream@2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
-
- is-stream@3.0.0:
- resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- is-stream@4.0.1:
- resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
- engines: {node: '>=18'}
-
- is-string@1.1.1:
- resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
- engines: {node: '>= 0.4'}
-
- is-symbol@1.1.1:
- resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
- engines: {node: '>= 0.4'}
-
- is-typed-array@1.1.15:
- resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
- engines: {node: '>= 0.4'}
-
- is-unicode-supported@1.3.0:
- resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==}
- engines: {node: '>=12'}
-
- is-unicode-supported@2.1.0:
- resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
- engines: {node: '>=18'}
-
- is-url@1.2.4:
- resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
-
- is-weakmap@2.0.2:
- resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
- engines: {node: '>= 0.4'}
-
- is-weakref@1.1.1:
- resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
- engines: {node: '>= 0.4'}
-
- is-weakset@2.0.4:
- resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
- engines: {node: '>= 0.4'}
-
- is-wsl@3.1.0:
- resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
- engines: {node: '>=16'}
-
- is2@2.0.9:
- resolution: {integrity: sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==}
- engines: {node: '>=v0.10.0'}
-
- isarray@2.0.5:
- resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
-
- isexe@2.0.0:
- resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-
- isstream@0.1.2:
- resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
-
- istanbul-lib-coverage@3.2.2:
- resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
- engines: {node: '>=8'}
-
- istanbul-lib-instrument@5.2.1:
- resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
- engines: {node: '>=8'}
-
- istanbul-lib-instrument@6.0.3:
- resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==}
- engines: {node: '>=10'}
-
- istanbul-lib-report@3.0.1:
- resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
- engines: {node: '>=10'}
-
- istanbul-lib-source-maps@4.0.1:
- resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
- engines: {node: '>=10'}
-
- istanbul-reports@3.2.0:
- resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
- engines: {node: '>=8'}
-
- iterator.prototype@1.1.5:
- resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
- engines: {node: '>= 0.4'}
-
- jackspeak@3.4.3:
- resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
-
- jest-changed-files@29.7.0:
- resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-circus@29.7.0:
- resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-cli@29.7.0:
- resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- hasBin: true
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- jest-config@29.7.0:
- resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- '@types/node': '*'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- '@types/node':
- optional: true
- ts-node:
- optional: true
-
- jest-diff@29.7.0:
- resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-docblock@29.7.0:
- resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-each@29.7.0:
- resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-environment-node@29.7.0:
- resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-get-type@29.6.3:
- resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-haste-map@29.7.0:
- resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-leak-detector@29.7.0:
- resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-matcher-utils@29.7.0:
- resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-message-util@29.7.0:
- resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-mock@29.7.0:
- resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-pnp-resolver@1.2.3:
- resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
- engines: {node: '>=6'}
- peerDependencies:
- jest-resolve: '*'
- peerDependenciesMeta:
- jest-resolve:
- optional: true
-
- jest-regex-util@29.6.3:
- resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-resolve-dependencies@29.7.0:
- resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-resolve@29.7.0:
- resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-runner@29.7.0:
- resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-runtime@29.7.0:
- resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-snapshot@29.7.0:
- resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-util@29.7.0:
- resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-validate@29.7.0:
- resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-watcher@29.7.0:
- resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest-worker@29.7.0:
- resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- jest@29.7.0:
- resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- hasBin: true
- peerDependencies:
- node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
- peerDependenciesMeta:
- node-notifier:
- optional: true
-
- jiti@2.6.1:
- resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
- hasBin: true
-
- jose@5.10.0:
- resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==}
-
- joycon@3.1.1:
- resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
- engines: {node: '>=10'}
-
- js-base64@3.7.8:
- resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==}
-
- js-tiktoken@1.0.21:
- resolution: {integrity: sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==}
-
- js-tokens@4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-
- js-yaml@3.14.1:
- resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
- hasBin: true
-
- js-yaml@4.1.0:
- resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
- hasBin: true
-
- jsesc@3.1.0:
- resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
- engines: {node: '>=6'}
- hasBin: true
-
- json-bigint@1.0.0:
- resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==}
-
- json-buffer@3.0.1:
- resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
-
- json-parse-even-better-errors@2.3.1:
- resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
-
- json-schema-to-zod@2.6.1:
- resolution: {integrity: sha512-uiHmWH21h9FjKJkRBntfVGTLpYlCZ1n98D0izIlByqQLqpmkQpNTBtfbdP04Na6+43lgsvrShFh2uWLkQDKJuQ==}
- hasBin: true
-
- json-schema-traverse@0.4.1:
- resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-
- json-schema-walker@2.0.0:
- resolution: {integrity: sha512-nXN2cMky0Iw7Af28w061hmxaPDaML5/bQD9nwm1lOoIKEGjHcRGxqWe4MfrkYThYAPjSUhmsp4bJNoLAyVn9Xw==}
- engines: {node: '>=10'}
-
- json-schema@0.4.0:
- resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
-
- json-stable-stringify-without-jsonify@1.0.1:
- resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-
- json5@1.0.2:
- resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
- hasBin: true
-
- json5@2.2.3:
- resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
- engines: {node: '>=6'}
- hasBin: true
-
- jsondiffpatch@0.6.0:
- resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==}
- engines: {node: ^18.0.0 || >=20.0.0}
- hasBin: true
-
- jsonfile@6.2.0:
- resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
-
- jsonpointer@5.0.1:
- resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
- engines: {node: '>=0.10.0'}
-
- jsonschema@1.2.7:
- resolution: {integrity: sha512-3dFMg9hmI9LdHag/BRIhMefCfbq1hicvYMy8YhZQorAdzOzWz7NjniSpn39yjpzUAMIWtGyyZuH2KNBloH7ZLw==}
-
- jsonwebtoken@9.0.2:
- resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
- engines: {node: '>=12', npm: '>=6'}
-
- jsx-ast-utils@3.3.5:
- resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
- engines: {node: '>=4.0'}
-
- jwa@1.4.2:
- resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==}
-
- jwa@2.0.1:
- resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==}
-
- jws@3.2.2:
- resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
-
- jws@4.0.0:
- resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==}
-
- katex@0.16.25:
- resolution: {integrity: sha512-woHRUZ/iF23GBP1dkDQMh1QBad9dmr8/PAwNA54VrSOVYgI12MAcE14TqnDdQOdzyEonGzMepYnqBMYdsoAr8Q==}
- hasBin: true
-
- keyv@4.5.4:
- resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
-
- kleur@3.0.3:
- resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
- engines: {node: '>=6'}
-
- kleur@4.1.5:
- resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
- engines: {node: '>=6'}
-
- langchain@0.3.36:
- resolution: {integrity: sha512-PqC19KChFF0QlTtYDFgfEbIg+SCnCXox29G8tY62QWfj9bOW7ew2kgWmPw5qoHLOTKOdQPvXET20/1Pdq8vAtQ==}
- engines: {node: '>=18'}
- peerDependencies:
- '@langchain/anthropic': '*'
- '@langchain/aws': '*'
- '@langchain/cerebras': '*'
- '@langchain/cohere': '*'
- '@langchain/core': '>=0.3.58 <0.4.0'
- '@langchain/deepseek': '*'
- '@langchain/google-genai': '*'
- '@langchain/google-vertexai': '*'
- '@langchain/google-vertexai-web': '*'
- '@langchain/groq': '*'
- '@langchain/mistralai': '*'
- '@langchain/ollama': '*'
- '@langchain/xai': '*'
- axios: '*'
- cheerio: '*'
- handlebars: ^4.7.8
- peggy: ^3.0.2
- typeorm: '*'
- peerDependenciesMeta:
- '@langchain/anthropic':
- optional: true
- '@langchain/aws':
- optional: true
- '@langchain/cerebras':
- optional: true
- '@langchain/cohere':
- optional: true
- '@langchain/deepseek':
- optional: true
- '@langchain/google-genai':
- optional: true
- '@langchain/google-vertexai':
- optional: true
- '@langchain/google-vertexai-web':
- optional: true
- '@langchain/groq':
- optional: true
- '@langchain/mistralai':
- optional: true
- '@langchain/ollama':
- optional: true
- '@langchain/xai':
- optional: true
- axios:
- optional: true
- cheerio:
- optional: true
- handlebars:
- optional: true
- peggy:
- optional: true
- typeorm:
- optional: true
-
- langsmith@0.3.74:
- resolution: {integrity: sha512-ZuW3Qawz8w88XcuCRH91yTp6lsdGuwzRqZ5J0Hf5q/AjMz7DwcSv0MkE6V5W+8hFMI850QZN2Wlxwm3R9lHlZg==}
- peerDependencies:
- '@opentelemetry/api': '*'
- '@opentelemetry/exporter-trace-otlp-proto': '*'
- '@opentelemetry/sdk-trace-base': '*'
- openai: '*'
- peerDependenciesMeta:
- '@opentelemetry/api':
- optional: true
- '@opentelemetry/exporter-trace-otlp-proto':
- optional: true
- '@opentelemetry/sdk-trace-base':
- optional: true
- openai:
- optional: true
-
- language-subtag-registry@0.3.23:
- resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
-
- language-tags@1.0.9:
- resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
- engines: {node: '>=0.10'}
-
- leven@3.1.0:
- resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
- engines: {node: '>=6'}
-
- levn@0.4.1:
- resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
- engines: {node: '>= 0.8.0'}
-
- libphonenumber-js@1.12.24:
- resolution: {integrity: sha512-l5IlyL9AONj4voSd7q9xkuQOL4u8Ty44puTic7J88CmdXkxfGsRfoVLXHCxppwehgpb/Chdb80FFehHqjN3ItQ==}
-
- libsql@0.5.22:
- resolution: {integrity: sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA==}
- cpu: [x64, arm64, wasm32, arm]
- os: [darwin, linux, win32]
-
- lightningcss-darwin-arm64@1.30.1:
- resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [darwin]
-
- lightningcss-darwin-x64@1.30.1:
- resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [darwin]
-
- lightningcss-freebsd-x64@1.30.1:
- resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [freebsd]
-
- lightningcss-linux-arm-gnueabihf@1.30.1:
- resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm]
- os: [linux]
-
- lightningcss-linux-arm64-gnu@1.30.1:
- resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [linux]
-
- lightningcss-linux-arm64-musl@1.30.1:
- resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [linux]
-
- lightningcss-linux-x64-gnu@1.30.1:
- resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [linux]
-
- lightningcss-linux-x64-musl@1.30.1:
- resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [linux]
-
- lightningcss-win32-arm64-msvc@1.30.1:
- resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
- engines: {node: '>= 12.0.0'}
- cpu: [arm64]
- os: [win32]
-
- lightningcss-win32-x64-msvc@1.30.1:
- resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==}
- engines: {node: '>= 12.0.0'}
- cpu: [x64]
- os: [win32]
-
- lightningcss@1.30.1:
- resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
- engines: {node: '>= 12.0.0'}
-
- lilconfig@3.1.3:
- resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
- engines: {node: '>=14'}
-
- lines-and-columns@1.2.4:
- resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
-
- linkify-it@5.0.0:
- resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
-
- load-tsconfig@0.2.5:
- resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- local-pkg@1.1.2:
- resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
- engines: {node: '>=14'}
-
- locate-path@5.0.0:
- resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
- engines: {node: '>=8'}
-
- locate-path@6.0.0:
- resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
- engines: {node: '>=10'}
-
- lodash.camelcase@4.3.0:
- resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
-
- lodash.get@4.4.2:
- resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
- deprecated: This package is deprecated. Use the optional chaining (?.) operator instead.
-
- 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.memoize@4.1.2:
- resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
-
- lodash.merge@4.6.2:
- resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-
- lodash.once@4.1.1:
- resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
-
- lodash.sortby@4.7.0:
- resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
-
- log-symbols@5.1.0:
- resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==}
- engines: {node: '>=12'}
-
- long@5.3.2:
- resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
-
- longest-streak@3.1.0:
- resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
-
- loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
-
- lowlight@1.20.0:
- resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==}
-
- lru-cache@10.4.3:
- resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
-
- 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'}
-
- lucide-react@0.477.0:
- resolution: {integrity: sha512-yCf7aYxerFZAbd8jHJxjwe1j7jEMPptjnaOqdYeirFnEy85cNR3/L+o0I875CYFYya+eEVzZSbNuRk8BZPDpVw==}
- peerDependencies:
- react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
- magic-string@0.30.19:
- resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
-
- make-dir@4.0.0:
- resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
- engines: {node: '>=10'}
-
- make-error@1.3.6:
- resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
-
- makeerror@1.0.12:
- resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
-
- markdown-extensions@2.0.0:
- resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
- engines: {node: '>=16'}
-
- markdown-it-ins@4.0.0:
- resolution: {integrity: sha512-sWbjK2DprrkINE4oYDhHdCijGT+MIDhEupjSHLXe5UXeVr5qmVxs/nTUVtgi0Oh/qtF+QKV0tNWDhQBEPxiMew==}
-
- markdown-it@14.1.0:
- resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
- hasBin: true
-
- markdown-table@3.0.4:
- resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
-
- marked@14.0.0:
- resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==}
- engines: {node: '>= 18'}
- hasBin: true
-
- mastra@0.15.1:
- resolution: {integrity: sha512-8C+2/ANWRrDN82gBvWpvcsi0tuntgZvXu2QdPGuqLAoap/vinzMVQXMXDgLtvlQ8shW1E7x6Vwsr0UzoNPKrAg==}
- hasBin: true
- peerDependencies:
- '@mastra/core': '>=0.20.1-0 <0.21.0-0'
- zod: ^3.25.0 || ^4.0.0
-
- math-intrinsics@1.1.0:
- resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
- engines: {node: '>= 0.4'}
-
- mdast-util-definitions@5.1.2:
- resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==}
-
- mdast-util-find-and-replace@3.0.2:
- resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
-
- mdast-util-from-markdown@1.3.1:
- resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==}
-
- mdast-util-from-markdown@2.0.2:
- resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
-
- mdast-util-gfm-autolink-literal@2.0.1:
- resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
-
- mdast-util-gfm-footnote@2.1.0:
- resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==}
-
- mdast-util-gfm-strikethrough@2.0.0:
- resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==}
-
- mdast-util-gfm-table@2.0.0:
- resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==}
-
- mdast-util-gfm-task-list-item@2.0.0:
- resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==}
-
- mdast-util-gfm@3.1.0:
- resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
-
- mdast-util-math@3.0.0:
- resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==}
-
- mdast-util-mdx-expression@2.0.1:
- resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
-
- mdast-util-mdx-jsx@3.2.0:
- resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
-
- mdast-util-mdx@3.0.0:
- resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
-
- mdast-util-mdxjs-esm@2.0.1:
- resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
-
- mdast-util-phrasing@4.1.0:
- resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
-
- mdast-util-to-hast@12.3.0:
- resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==}
-
- mdast-util-to-hast@13.2.0:
- resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
-
- mdast-util-to-markdown@2.1.2:
- resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==}
-
- mdast-util-to-string@3.2.0:
- resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==}
-
- mdast-util-to-string@4.0.0:
- resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==}
-
- mdurl@2.0.0:
- resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
-
- media-typer@0.3.0:
- resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
- engines: {node: '>= 0.6'}
-
- media-typer@1.1.0:
- resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
- engines: {node: '>= 0.8'}
-
- merge-descriptors@1.0.3:
- resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
-
- merge-descriptors@2.0.0:
- resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
- engines: {node: '>=18'}
-
- merge-stream@2.0.0:
- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
-
- merge2@1.4.1:
- resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
- engines: {node: '>= 8'}
-
- methods@1.1.2:
- resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
- engines: {node: '>= 0.6'}
-
- micromark-core-commonmark@1.1.0:
- resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==}
-
- micromark-core-commonmark@2.0.3:
- resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
-
- micromark-extension-gfm-autolink-literal@2.1.0:
- resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
-
- micromark-extension-gfm-footnote@2.1.0:
- resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==}
-
- micromark-extension-gfm-strikethrough@2.1.0:
- resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==}
-
- micromark-extension-gfm-table@2.1.1:
- resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==}
-
- micromark-extension-gfm-tagfilter@2.0.0:
- resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==}
-
- micromark-extension-gfm-task-list-item@2.1.0:
- resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==}
-
- micromark-extension-gfm@3.0.0:
- resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
-
- micromark-extension-math@3.1.0:
- resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==}
-
- micromark-extension-mdx-expression@3.0.1:
- resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==}
-
- micromark-extension-mdx-jsx@3.0.2:
- resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==}
-
- micromark-extension-mdx-md@2.0.0:
- resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
-
- micromark-extension-mdxjs-esm@3.0.0:
- resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
-
- micromark-extension-mdxjs@3.0.0:
- resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
-
- micromark-factory-destination@1.1.0:
- resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==}
-
- micromark-factory-destination@2.0.1:
- resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
-
- micromark-factory-label@1.1.0:
- resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==}
-
- micromark-factory-label@2.0.1:
- resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
-
- micromark-factory-mdx-expression@2.0.3:
- resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==}
-
- micromark-factory-space@1.1.0:
- resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==}
-
- micromark-factory-space@2.0.1:
- resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
-
- micromark-factory-title@1.1.0:
- resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==}
-
- micromark-factory-title@2.0.1:
- resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==}
-
- micromark-factory-whitespace@1.1.0:
- resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==}
-
- micromark-factory-whitespace@2.0.1:
- resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==}
-
- micromark-util-character@1.2.0:
- resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==}
-
- micromark-util-character@2.1.1:
- resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
-
- micromark-util-chunked@1.1.0:
- resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==}
-
- micromark-util-chunked@2.0.1:
- resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==}
-
- micromark-util-classify-character@1.1.0:
- resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==}
-
- micromark-util-classify-character@2.0.1:
- resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==}
-
- micromark-util-combine-extensions@1.1.0:
- resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==}
-
- micromark-util-combine-extensions@2.0.1:
- resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==}
-
- micromark-util-decode-numeric-character-reference@1.1.0:
- resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==}
-
- micromark-util-decode-numeric-character-reference@2.0.2:
- resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==}
-
- micromark-util-decode-string@1.1.0:
- resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==}
-
- micromark-util-decode-string@2.0.1:
- resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==}
-
- micromark-util-encode@1.1.0:
- resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==}
-
- micromark-util-encode@2.0.1:
- resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
-
- micromark-util-events-to-acorn@2.0.3:
- resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==}
-
- micromark-util-html-tag-name@1.2.0:
- resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==}
-
- micromark-util-html-tag-name@2.0.1:
- resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
-
- micromark-util-normalize-identifier@1.1.0:
- resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==}
-
- micromark-util-normalize-identifier@2.0.1:
- resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==}
-
- micromark-util-resolve-all@1.1.0:
- resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==}
-
- micromark-util-resolve-all@2.0.1:
- resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==}
-
- micromark-util-sanitize-uri@1.2.0:
- resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==}
-
- micromark-util-sanitize-uri@2.0.1:
- resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
-
- micromark-util-subtokenize@1.1.0:
- resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==}
-
- micromark-util-subtokenize@2.1.0:
- resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==}
-
- micromark-util-symbol@1.1.0:
- resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==}
-
- micromark-util-symbol@2.0.1:
- resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
-
- micromark-util-types@1.1.0:
- resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==}
-
- micromark-util-types@2.0.2:
- resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
-
- micromark@3.2.0:
- resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==}
-
- micromark@4.0.2:
- resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
-
- micromatch@4.0.8:
- resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
- engines: {node: '>=8.6'}
-
- mime-db@1.52.0:
- resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
- engines: {node: '>= 0.6'}
-
- mime-db@1.54.0:
- resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==}
- engines: {node: '>= 0.6'}
-
- mime-types@2.1.35:
- resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
- engines: {node: '>= 0.6'}
-
- mime-types@3.0.1:
- resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==}
- engines: {node: '>= 0.6'}
-
- mime@1.6.0:
- resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
- engines: {node: '>=4'}
- hasBin: true
-
- mimic-fn@2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- engines: {node: '>=6'}
-
- mimic-fn@4.0.0:
- resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
- engines: {node: '>=12'}
-
- minimatch@3.1.2:
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
-
- minimatch@9.0.5:
- resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- minimist@1.2.8:
- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
-
- minipass@7.1.2:
- resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
- engines: {node: '>=16 || 14 >=14.17'}
-
- minizlib@3.1.0:
- resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
- engines: {node: '>= 18'}
-
- mlly@1.8.0:
- resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
-
- mnemonist@0.38.3:
- resolution: {integrity: sha512-2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==}
-
- module-details-from-path@1.0.4:
- resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==}
-
- monaco-editor@0.54.0:
- resolution: {integrity: sha512-hx45SEUoLatgWxHKCmlLJH81xBo0uXP4sRkESUpmDQevfi+e7K1VuiSprK6UpQ8u4zOcKNiH0pMvHvlMWA/4cw==}
-
- mri@1.2.0:
- resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
- engines: {node: '>=4'}
-
- ms@2.0.0:
- resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
-
- ms@2.1.2:
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
-
- ms@2.1.3:
- resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
-
- mustache@4.2.0:
- resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
- hasBin: true
-
- mute-stream@2.0.0:
- resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==}
- engines: {node: ^18.17.0 || >=20.5.0}
-
- mz@2.7.0:
- resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
-
- nanoid@3.3.11:
- resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
- napi-postinstall@0.3.4:
- resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- hasBin: true
-
- natural-compare@1.4.0:
- resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-
- negotiator@0.6.3:
- resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
- engines: {node: '>= 0.6'}
-
- negotiator@1.0.0:
- resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
- engines: {node: '>= 0.6'}
-
- neo-async@2.6.2:
- resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
-
- next-themes@0.4.6:
- resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==}
- peerDependencies:
- react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
- react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
-
- next@15.2.1:
- resolution: {integrity: sha512-zxbsdQv3OqWXybK5tMkPCBKyhIz63RstJ+NvlfkaLMc/m5MwXgz2e92k+hSKcyBpyADhMk2C31RIiaDjUZae7g==}
- engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
- hasBin: true
- peerDependencies:
- '@opentelemetry/api': ^1.1.0
- '@playwright/test': ^1.41.2
- babel-plugin-react-compiler: '*'
- react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
- react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0
- sass: ^1.3.0
- peerDependenciesMeta:
- '@opentelemetry/api':
- optional: true
- '@playwright/test':
- optional: true
- babel-plugin-react-compiler:
- optional: true
- sass:
- optional: true
-
- nice-grpc-client-middleware-retry@3.1.12:
- resolution: {integrity: sha512-CHKIeHznAePOsT2dLeGwoOFaybQz6LvkIsFfN8SLcyGyTR7AB6vZMaECJjx+QPL8O2qVgaVE167PdeOmQrPuag==}
-
- nice-grpc-common@2.0.2:
- resolution: {integrity: sha512-7RNWbls5kAL1QVUOXvBsv1uO0wPQK3lHv+cY1gwkTzirnG1Nop4cBJZubpgziNbaVc/bl9QJcyvsf/NQxa3rjQ==}
-
- nice-grpc@2.1.13:
- resolution: {integrity: sha512-IkXNok2NFyYh0WKp1aJFwFV3Ue2frBkJ16ojrmgX3Tc9n0g7r0VU+ur3H/leDHPPGsEeVozdMynGxYT30k3D/Q==}
-
- node-domexception@1.0.0:
- resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
- engines: {node: '>=10.5.0'}
- deprecated: Use your platform's native DOMException instead
-
- node-fetch-native@1.6.7:
- resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
-
- node-fetch@2.7.0:
- resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
- engines: {node: 4.x || >=6.0.0}
- peerDependencies:
- encoding: ^0.1.0
- peerDependenciesMeta:
- encoding:
- optional: true
-
- node-fetch@3.3.2:
- resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- node-forge@1.3.1:
- resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
- engines: {node: '>= 6.13.0'}
-
- node-int64@0.4.0:
- resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
-
- node-releases@2.0.23:
- resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==}
-
- normalize-path@3.0.0:
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
- engines: {node: '>=0.10.0'}
-
- npm-run-path@4.0.1:
- resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
- engines: {node: '>=8'}
-
- npm-run-path@5.3.0:
- resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- npm-run-path@6.0.0:
- resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==}
- engines: {node: '>=18'}
-
- nypm@0.6.2:
- resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==}
- engines: {node: ^14.16.0 || >=16.10.0}
- hasBin: true
-
- object-assign@4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
- engines: {node: '>=0.10.0'}
-
- object-inspect@1.13.4:
- resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
- engines: {node: '>= 0.4'}
-
- object-keys@1.1.1:
- resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
- engines: {node: '>= 0.4'}
-
- object.assign@4.1.7:
- resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
- engines: {node: '>= 0.4'}
-
- object.entries@1.1.9:
- resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==}
- engines: {node: '>= 0.4'}
-
- object.fromentries@2.0.8:
- resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
- engines: {node: '>= 0.4'}
-
- object.groupby@1.0.3:
- resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
- engines: {node: '>= 0.4'}
-
- object.values@1.2.1:
- resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
- engines: {node: '>= 0.4'}
-
- obliterator@1.6.1:
- resolution: {integrity: sha512-9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==}
-
- on-exit-leak-free@2.1.2:
- resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==}
- engines: {node: '>=14.0.0'}
-
- on-finished@2.4.1:
- resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
- engines: {node: '>= 0.8'}
-
- once@1.4.0:
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
-
- onetime@5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- engines: {node: '>=6'}
-
- onetime@6.0.0:
- resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
- engines: {node: '>=12'}
-
- open@10.2.0:
- resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==}
- engines: {node: '>=18'}
-
- 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
-
- openai@5.12.2:
- resolution: {integrity: sha512-xqzHHQch5Tws5PcKR2xsZGX9xtch+JQFz5zb14dGqlshmmDAFBFEWmeIpf7wVqWV+w7Emj7jRgkNJakyKE0tYQ==}
- hasBin: true
- peerDependencies:
- ws: ^8.18.0
- zod: ^3.23.8
- peerDependenciesMeta:
- ws:
- optional: true
- zod:
- optional: true
-
- openapi-types@12.1.3:
- resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==}
-
- optionator@0.9.4:
- resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
- engines: {node: '>= 0.8.0'}
-
- ora@6.3.1:
- resolution: {integrity: sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- orderedmap@2.1.1:
- resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==}
-
- own-keys@1.0.1:
- resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
- engines: {node: '>= 0.4'}
-
- p-finally@1.0.0:
- resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
- engines: {node: '>=4'}
-
- p-limit@2.3.0:
- resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
- engines: {node: '>=6'}
-
- p-limit@3.1.0:
- resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
- engines: {node: '>=10'}
-
- p-locate@4.1.0:
- resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
- engines: {node: '>=8'}
-
- p-locate@5.0.0:
- resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
- engines: {node: '>=10'}
-
- p-map@7.0.3:
- resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==}
- engines: {node: '>=18'}
-
- p-queue@6.6.2:
- resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
- engines: {node: '>=8'}
-
- p-retry@4.6.2:
- resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
- engines: {node: '>=8'}
-
- p-timeout@3.2.0:
- resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
- engines: {node: '>=8'}
-
- p-try@2.2.0:
- resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
- engines: {node: '>=6'}
-
- package-json-from-dist@1.0.1:
- resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
-
- parent-module@1.0.1:
- resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
- engines: {node: '>=6'}
-
- parse-entities@2.0.0:
- resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==}
-
- parse-entities@4.0.2:
- resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
-
- parse-json@5.2.0:
- resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
- engines: {node: '>=8'}
-
- parse-ms@4.0.0:
- resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
- engines: {node: '>=18'}
-
- parse5@7.3.0:
- resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
-
- parseurl@1.3.3:
- resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
- engines: {node: '>= 0.8'}
-
- partial-json@0.1.7:
- resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==}
-
- path-exists@4.0.0:
- resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
- engines: {node: '>=8'}
-
- path-is-absolute@1.0.1:
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
- engines: {node: '>=0.10.0'}
-
- path-key@3.1.1:
- resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
- engines: {node: '>=8'}
-
- path-key@4.0.0:
- resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
- engines: {node: '>=12'}
-
- path-parse@1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
-
- path-scurry@1.11.1:
- resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
- engines: {node: '>=16 || 14 >=14.18'}
-
- path-to-regexp@0.1.12:
- resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
-
- path-to-regexp@8.3.0:
- resolution: {integrity: sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==}
-
- pathe@2.0.3:
- resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
-
- peek-readable@4.1.0:
- resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==}
- engines: {node: '>=8'}
-
- pg-cloudflare@1.2.7:
- resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==}
-
- pg-connection-string@2.9.1:
- resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==}
-
- pg-int8@1.0.1:
- resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
- engines: {node: '>=4.0.0'}
-
- pg-pool@3.10.1:
- resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==}
- peerDependencies:
- pg: '>=8.0'
-
- pg-protocol@1.10.3:
- resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==}
-
- pg-types@2.2.0:
- resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
- engines: {node: '>=4'}
-
- pg@8.16.3:
- resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==}
- engines: {node: '>= 16.0.0'}
- peerDependencies:
- pg-native: '>=3.0.1'
- peerDependenciesMeta:
- pg-native:
- optional: true
-
- pgpass@1.0.5:
- resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
-
- picocolors@1.1.1:
- resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
-
- picomatch@2.3.1:
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
- engines: {node: '>=8.6'}
-
- picomatch@4.0.3:
- resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
- engines: {node: '>=12'}
-
- pino-abstract-transport@2.0.0:
- resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==}
-
- pino-pretty@11.3.0:
- resolution: {integrity: sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==}
- hasBin: true
-
- pino-pretty@13.1.2:
- resolution: {integrity: sha512-3cN0tCakkT4f3zo9RXDIhy6GTvtYD6bK4CRBLN9j3E/ePqN1tugAXD5rGVfoChW6s0hiek+eyYlLNqc/BG7vBQ==}
- hasBin: true
-
- pino-std-serializers@7.0.0:
- resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==}
-
- pino@9.13.1:
- resolution: {integrity: sha512-Szuj+ViDTjKPQYiKumGmEn3frdl+ZPSdosHyt9SnUevFosOkMY2b7ipxlEctNKPmMD/VibeBI+ZcZCJK+4DPuw==}
- hasBin: true
-
- pirates@4.0.7:
- resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
- engines: {node: '>= 6'}
-
- pkce-challenge@5.0.0:
- resolution: {integrity: sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==}
- engines: {node: '>=16.20.0'}
-
- pkg-dir@4.2.0:
- resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
- engines: {node: '>=8'}
-
- pkg-types@1.3.1:
- resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
-
- pkg-types@2.3.0:
- resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
-
- playwright-core@1.56.0:
- resolution: {integrity: sha512-1SXl7pMfemAMSDn5rkPeZljxOCYAmQnYLBTExuh6E8USHXGSX3dx6lYZN/xPpTz1vimXmPA9CDnILvmJaB8aSQ==}
- engines: {node: '>=18'}
- hasBin: true
-
- playwright@1.56.0:
- resolution: {integrity: sha512-X5Q1b8lOdWIE4KAoHpW3SE8HvUB+ZZsUoN64ZhjnN8dOb1UpujxBtENGiZFE+9F/yhzJwYa+ca3u43FeLbboHA==}
- engines: {node: '>=18'}
- hasBin: true
-
- possible-typed-array-names@1.1.0:
- resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
- engines: {node: '>= 0.4'}
-
- postcss-load-config@6.0.1:
- resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
- engines: {node: '>= 18'}
- peerDependencies:
- jiti: '>=1.21.0'
- postcss: '>=8.0.9'
- tsx: ^4.8.1
- yaml: ^2.4.2
- peerDependenciesMeta:
- jiti:
- optional: true
- postcss:
- optional: true
- tsx:
- optional: true
- yaml:
- optional: true
-
- postcss-selector-parser@6.0.10:
- resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
- engines: {node: '>=4'}
-
- postcss@8.4.31:
- resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
- engines: {node: ^10 || ^12 || >=14}
-
- postcss@8.5.6:
- resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
- engines: {node: ^10 || ^12 || >=14}
-
- postgres-array@2.0.0:
- resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
- engines: {node: '>=4'}
-
- postgres-bytea@1.0.0:
- resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
- engines: {node: '>=0.10.0'}
-
- postgres-date@1.0.7:
- resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
- engines: {node: '>=0.10.0'}
-
- postgres-interval@1.2.0:
- resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
- engines: {node: '>=0.10.0'}
-
- postgres@3.4.7:
- resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==}
- engines: {node: '>=12'}
-
- posthog-node@4.18.0:
- resolution: {integrity: sha512-XROs1h+DNatgKh/AlIlCtDxWzwrKdYDb2mOs58n4yN8BkGN9ewqeQwG5ApS4/IzwCb7HPttUkOVulkYatd2PIw==}
- engines: {node: '>=15.0.0'}
-
- prelude-ls@1.2.1:
- resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
- engines: {node: '>= 0.8.0'}
-
- prettier@3.6.2:
- resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
- engines: {node: '>=14'}
- hasBin: true
-
- pretty-format@29.7.0:
- resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
- pretty-ms@9.3.0:
- resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==}
- engines: {node: '>=18'}
-
- prismjs@1.27.0:
- resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==}
- engines: {node: '>=6'}
-
- prismjs@1.30.0:
- resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
- engines: {node: '>=6'}
-
- process-warning@5.0.0:
- resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==}
-
- process@0.11.10:
- resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
- engines: {node: '>= 0.6.0'}
-
- promise-limit@2.7.0:
- resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==}
-
- prompts@2.4.2:
- resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
- engines: {node: '>= 6'}
-
- prop-types@15.8.1:
- resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
-
- property-information@5.6.0:
- resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==}
-
- property-information@6.5.0:
- resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
-
- property-information@7.1.0:
- resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==}
-
- prosemirror-changeset@2.3.1:
- resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==}
-
- prosemirror-collab@1.3.1:
- resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==}
-
- prosemirror-commands@1.7.1:
- resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==}
-
- prosemirror-dropcursor@1.8.2:
- resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==}
-
- prosemirror-gapcursor@1.3.2:
- resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==}
-
- prosemirror-history@1.4.1:
- resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==}
-
- prosemirror-inputrules@1.5.0:
- resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==}
-
- prosemirror-keymap@1.2.3:
- resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==}
-
- prosemirror-markdown@1.13.2:
- resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==}
-
- prosemirror-menu@1.2.5:
- resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==}
-
- prosemirror-model@1.25.3:
- resolution: {integrity: sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==}
-
- prosemirror-schema-basic@1.2.4:
- resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==}
-
- prosemirror-schema-list@1.5.1:
- resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
-
- prosemirror-state@1.4.3:
- resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==}
-
- prosemirror-tables@1.8.1:
- resolution: {integrity: sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==}
-
- prosemirror-trailing-node@3.0.0:
- resolution: {integrity: sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==}
- peerDependencies:
- prosemirror-model: ^1.22.1
- prosemirror-state: ^1.4.2
- prosemirror-view: ^1.33.8
-
- prosemirror-transform@1.10.4:
- resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==}
-
- prosemirror-view@1.41.3:
- resolution: {integrity: sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ==}
-
- protobufjs@7.5.4:
- resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==}
- engines: {node: '>=12.0.0'}
-
- proxy-addr@2.0.7:
- resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
- engines: {node: '>= 0.10'}
-
- proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
-
- psl@1.15.0:
- resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==}
-
- pump@3.0.3:
- resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
-
- punycode.js@2.3.1:
- resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
- engines: {node: '>=6'}
-
- punycode@2.3.1:
- resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
- engines: {node: '>=6'}
-
- pure-rand@6.1.0:
- resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==}
-
- qs@6.13.0:
- resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
- engines: {node: '>=0.6'}
-
- qs@6.14.0:
- resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==}
- engines: {node: '>=0.6'}
-
- quansync@0.2.11:
- resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
-
- querystringify@2.2.0:
- resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
-
- queue-microtask@1.2.3:
- resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-
- quick-format-unescaped@4.0.4:
- resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
-
- radash@12.1.1:
- resolution: {integrity: sha512-h36JMxKRqrAxVD8201FrCpyeNuUY9Y5zZwujr20fFO77tpUtGa6EZzfKw/3WaiBX95fq7+MpsuMLNdSnORAwSA==}
- engines: {node: '>=14.18.0'}
-
- range-parser@1.2.1:
- resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
- engines: {node: '>= 0.6'}
-
- raw-body@2.5.2:
- resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
- engines: {node: '>= 0.8'}
-
- raw-body@3.0.1:
- resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==}
- engines: {node: '>= 0.10'}
-
- react-dom@19.2.0:
- resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==}
- peerDependencies:
- react: ^19.2.0
-
- react-is@16.13.1:
- resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
-
- react-is@18.3.1:
- resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
-
- react-markdown@10.1.0:
- resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==}
- peerDependencies:
- '@types/react': '>=18'
- react: '>=18'
-
- react-markdown@8.0.7:
- resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==}
- peerDependencies:
- '@types/react': '>=16'
- react: '>=16'
-
- react-remove-scroll-bar@2.3.8:
- resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-remove-scroll@2.7.1:
- resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-style-singleton@2.2.3:
- resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-syntax-highlighter@15.6.6:
- resolution: {integrity: sha512-DgXrc+AZF47+HvAPEmn7Ua/1p10jNoVZVI/LoPiYdtY+OM+/nG5yefLHKJwdKqY1adMuHFbeyBaG9j64ML7vTw==}
- peerDependencies:
- react: '>= 0.14.0'
-
- react@19.2.0:
- resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
- engines: {node: '>=0.10.0'}
-
- readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
-
- readable-stream@4.7.0:
- resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
- readable-web-to-node-stream@3.0.4:
- resolution: {integrity: sha512-9nX56alTf5bwXQ3ZDipHJhusu9NTQJ/CVPtb/XHAJCXihZeitfJvIRS4GqQ/mfIoOE3IelHMrpayVrosdHBuLw==}
- engines: {node: '>=8'}
-
- readdirp@4.1.2:
- resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
- engines: {node: '>= 14.18.0'}
-
- real-require@0.2.0:
- resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==}
- engines: {node: '>= 12.13.0'}
-
- recma-build-jsx@1.0.0:
- resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==}
-
- recma-jsx@1.0.1:
- resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==}
- peerDependencies:
- acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-
- recma-parse@1.0.0:
- resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==}
-
- recma-stringify@1.0.0:
- resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
-
- redis@5.8.3:
- resolution: {integrity: sha512-MfSrfV6+tEfTw8c4W0yFp6XWX8Il4laGU7Bx4kvW4uiYM1AuZ3KGqEGt1LdQHeD1nEyLpIWetZ/SpY3kkbgrYw==}
- engines: {node: '>= 18'}
-
- reflect-metadata@0.2.2:
- resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
-
- reflect.getprototypeof@1.0.10:
- resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
- engines: {node: '>= 0.4'}
-
- refractor@3.6.0:
- resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==}
-
- regexp.prototype.flags@1.5.4:
- resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
- engines: {node: '>= 0.4'}
-
- rehype-raw@7.0.0:
- resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
-
- rehype-recma@1.0.0:
- resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==}
-
- remark-gfm@4.0.1:
- resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
-
- remark-math@6.0.0:
- resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==}
-
- remark-mdx@3.1.1:
- resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==}
-
- remark-parse@10.0.2:
- resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==}
-
- remark-parse@11.0.0:
- resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
-
- remark-rehype@10.1.0:
- resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==}
-
- remark-rehype@11.1.2:
- resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==}
-
- remark-stringify@11.0.0:
- resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
-
- require-directory@2.1.1:
- resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
- engines: {node: '>=0.10.0'}
-
- require-in-the-middle@7.5.2:
- resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==}
- engines: {node: '>=8.6.0'}
-
- requires-port@1.0.0:
- resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
-
- resolve-cwd@3.0.0:
- resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
- engines: {node: '>=8'}
-
- resolve-from@4.0.0:
- resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
- engines: {node: '>=4'}
-
- resolve-from@5.0.0:
- resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
- engines: {node: '>=8'}
-
- resolve-pkg-maps@1.0.0:
- resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
-
- resolve.exports@2.0.3:
- resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
- engines: {node: '>=10'}
-
- resolve@1.22.10:
- resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
- engines: {node: '>= 0.4'}
- hasBin: true
-
- resolve@2.0.0-next.5:
- resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
- hasBin: true
-
- restore-cursor@4.0.0:
- resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- retry-axios@2.6.0:
- resolution: {integrity: sha512-pOLi+Gdll3JekwuFjXO3fTq+L9lzMQGcSq7M5gIjExcl3Gu1hd4XXuf5o3+LuSBsaULQH7DiNbsqPd1chVpQGQ==}
- engines: {node: '>=10.7.0'}
- peerDependencies:
- axios: '*'
-
- 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'}
-
- rollup-plugin-esbuild@6.2.1:
- resolution: {integrity: sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==}
- engines: {node: '>=14.18.0'}
- peerDependencies:
- esbuild: '>=0.18.0'
- rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
-
- rollup-plugin-node-externals@8.1.1:
- resolution: {integrity: sha512-MEWJmXMGjo5E7o9hgAmma6XLCdU9gTVRcaaCubugTJdoJD3A91qxtxiukT9k2PeUdogtCaNehV3pvJUWrRNtwg==}
- engines: {node: '>= 21 || ^20.6.0 || ^18.19.0'}
- peerDependencies:
- rollup: ^4.0.0
-
- rollup@4.50.2:
- resolution: {integrity: sha512-BgLRGy7tNS9H66aIMASq1qSYbAAJV6Z6WR4QYTvj5FgF15rZ/ympT1uixHXwzbZUBDbkvqUI1KR0fH1FhMaQ9w==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
- rollup@4.52.4:
- resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==}
- engines: {node: '>=18.0.0', npm: '>=8.0.0'}
- hasBin: true
-
- rope-sequence@1.3.4:
- resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==}
-
- router@2.2.0:
- resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==}
- engines: {node: '>= 18'}
-
- run-applescript@7.1.0:
- resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==}
- engines: {node: '>=18'}
-
- run-async@4.0.6:
- resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==}
- engines: {node: '>=0.12.0'}
-
- run-parallel@1.2.0:
- resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
-
- rxjs@7.8.1:
- resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
-
- rxjs@7.8.2:
- resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==}
-
- sade@1.8.1:
- resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
- engines: {node: '>=6'}
-
- safe-array-concat@1.1.3:
- resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
- engines: {node: '>=0.4'}
-
- safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-
- safe-push-apply@1.0.0:
- resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
- engines: {node: '>= 0.4'}
-
- safe-regex-test@1.1.0:
- resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
- engines: {node: '>= 0.4'}
-
- safe-stable-stringify@2.5.0:
- resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==}
- engines: {node: '>=10'}
-
- safer-buffer@2.1.2:
- resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
-
- scheduler@0.27.0:
- resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
-
- secure-json-parse@2.7.0:
- resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
-
- secure-json-parse@4.1.0:
- resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==}
-
- semver@6.3.1:
- resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
- hasBin: true
-
- semver@7.7.3:
- resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
- engines: {node: '>=10'}
- hasBin: true
-
- send@0.19.0:
- resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
- engines: {node: '>= 0.8.0'}
-
- send@1.2.0:
- resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
- engines: {node: '>= 18'}
-
- serve-static@1.16.2:
- resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
- engines: {node: '>= 0.8.0'}
-
- serve-static@2.2.0:
- resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==}
- engines: {node: '>= 18'}
-
- set-function-length@1.2.2:
- resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
- engines: {node: '>= 0.4'}
-
- set-function-name@2.0.2:
- resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
- engines: {node: '>= 0.4'}
-
- set-proto@1.0.0:
- resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
- engines: {node: '>= 0.4'}
-
- setprototypeof@1.2.0:
- resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
-
- sharp@0.33.5:
- resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
- engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
-
- shebang-command@2.0.0:
- resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
- engines: {node: '>=8'}
-
- shebang-regex@3.0.0:
- resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
- engines: {node: '>=8'}
-
- shell-quote@1.8.3:
- resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==}
- engines: {node: '>= 0.4'}
-
- side-channel-list@1.0.0:
- resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
- engines: {node: '>= 0.4'}
-
- side-channel-map@1.0.1:
- resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
- engines: {node: '>= 0.4'}
-
- side-channel-weakmap@1.0.2:
- resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
- engines: {node: '>= 0.4'}
-
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
- engines: {node: '>= 0.4'}
-
- sift@17.1.3:
- resolution: {integrity: sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==}
-
- signal-exit@3.0.7:
- resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
-
- signal-exit@4.1.0:
- resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
- engines: {node: '>=14'}
-
- simple-swizzle@0.2.4:
- resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==}
-
- simple-wcswidth@1.1.2:
- resolution: {integrity: sha512-j7piyCjAeTDSjzTSQ7DokZtMNwNlEAyxqSZeCS+CXH7fJ4jx3FuJ/mTW3mE+6JLs4VJBbcll0Kjn+KXI5t21Iw==}
-
- sisteransi@1.0.5:
- resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
-
- slash@3.0.0:
- resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
- engines: {node: '>=8'}
-
- slow-redact@0.3.2:
- resolution: {integrity: sha512-MseHyi2+E/hBRqdOi5COy6wZ7j7DxXRz9NkseavNYSvvWC06D8a5cidVZX3tcG5eCW3NIyVU4zT63hw0Q486jw==}
-
- sonic-boom@4.2.0:
- resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==}
-
- source-map-js@1.2.1:
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
- engines: {node: '>=0.10.0'}
-
- source-map-support@0.5.13:
- resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
-
- source-map@0.6.1:
- resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
- engines: {node: '>=0.10.0'}
-
- source-map@0.7.6:
- resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
- engines: {node: '>= 12'}
-
- source-map@0.8.0-beta.0:
- resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
- engines: {node: '>= 8'}
- deprecated: The work that was done in this beta branch won't be included in future versions
-
- space-separated-tokens@1.1.5:
- resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
-
- space-separated-tokens@2.0.2:
- resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
-
- split2@4.2.0:
- resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
- engines: {node: '>= 10.x'}
-
- sprintf-js@1.0.3:
- resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-
- stable-hash@0.0.5:
- resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
-
- stack-utils@2.0.6:
- resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
- engines: {node: '>=10'}
-
- state-local@1.0.7:
- resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==}
-
- statuses@2.0.1:
- resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
- engines: {node: '>= 0.8'}
-
- statuses@2.0.2:
- resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
- engines: {node: '>= 0.8'}
-
- stdin-discarder@0.1.0:
- resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
- stop-iteration-iterator@1.1.0:
- resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
- engines: {node: '>= 0.4'}
-
- streamsearch@1.1.0:
- resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
- engines: {node: '>=10.0.0'}
-
- string-length@4.0.2:
- resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
- engines: {node: '>=10'}
-
- string-width@4.2.3:
- resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
- engines: {node: '>=8'}
-
- string-width@5.1.2:
- resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
- engines: {node: '>=12'}
-
- string.prototype.includes@2.0.1:
- resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
- engines: {node: '>= 0.4'}
-
- string.prototype.matchall@4.0.12:
- resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
- engines: {node: '>= 0.4'}
-
- string.prototype.repeat@1.0.0:
- resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
-
- string.prototype.trim@1.2.10:
- resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimend@1.0.9:
- resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
- engines: {node: '>= 0.4'}
-
- string.prototype.trimstart@1.0.8:
- resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
- engines: {node: '>= 0.4'}
-
- string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
-
- stringify-entities@4.0.4:
- resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
-
- strip-ansi@6.0.1:
- resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
- engines: {node: '>=8'}
-
- strip-ansi@7.1.2:
- resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
- engines: {node: '>=12'}
-
- strip-bom@3.0.0:
- resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
- engines: {node: '>=4'}
-
- strip-bom@4.0.0:
- resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
- engines: {node: '>=8'}
-
- strip-final-newline@2.0.0:
- resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
- engines: {node: '>=6'}
-
- strip-final-newline@3.0.0:
- resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
- engines: {node: '>=12'}
-
- strip-final-newline@4.0.0:
- resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
- engines: {node: '>=18'}
-
- strip-json-comments@3.1.1:
- resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
- engines: {node: '>=8'}
-
- strip-json-comments@5.0.3:
- resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==}
- engines: {node: '>=14.16'}
-
- strnum@2.1.1:
- resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==}
-
- strtok3@6.3.0:
- resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==}
- engines: {node: '>=10'}
-
- style-to-js@1.1.18:
- resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==}
-
- style-to-object@0.4.4:
- resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==}
-
- style-to-object@1.0.11:
- resolution: {integrity: sha512-5A560JmXr7wDyGLK12Nq/EYS38VkGlglVzkis1JEdbGWSnbQIEhZzTJhzURXN5/8WwwFCs/f/VVcmkTppbXLow==}
-
- styled-jsx@5.1.6:
- resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
- engines: {node: '>= 12.0.0'}
- peerDependencies:
- '@babel/core': '*'
- babel-plugin-macros: '*'
- react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0'
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- babel-plugin-macros:
- optional: true
-
- sucrase@3.35.0:
- resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
-
- supports-color@7.2.0:
- resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
- engines: {node: '>=8'}
-
- supports-color@8.1.1:
- resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
- engines: {node: '>=10'}
-
- supports-preserve-symlinks-flag@1.0.0:
- resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
- engines: {node: '>= 0.4'}
-
- swr@2.3.6:
- resolution: {integrity: sha512-wfHRmHWk/isGNMwlLGlZX5Gzz/uTgo0o2IRuTMcf4CPuPFJZlq0rDaKUx+ozB5nBOReNV1kiOyzMfj+MBMikLw==}
- peerDependencies:
- react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
- tabbable@6.2.0:
- resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
-
- tailwind-merge@3.3.1:
- resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==}
-
- tailwindcss-animate@1.0.7:
- resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
- peerDependencies:
- tailwindcss: '>=3.0.0 || insiders'
-
- tailwindcss@4.1.14:
- resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==}
-
- tapable@2.3.0:
- resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
- engines: {node: '>=6'}
-
- tar@7.5.1:
- resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==}
- engines: {node: '>=18'}
-
- tcp-port-used@1.0.2:
- resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==}
-
- test-exclude@6.0.0:
- resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
- engines: {node: '>=8'}
-
- thenify-all@1.6.0:
- resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
- engines: {node: '>=0.8'}
-
- thenify@3.3.1:
- resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
-
- thread-stream@3.1.0:
- resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==}
-
- throttleit@2.1.0:
- resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
- engines: {node: '>=18'}
-
- tinyexec@0.3.2:
- resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
-
- tinyexec@1.0.1:
- resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
-
- tinyglobby@0.2.15:
- resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
- engines: {node: '>=12.0.0'}
-
- tippy.js@6.3.7:
- resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
-
- tmpl@1.0.5:
- resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
-
- to-regex-range@5.0.1:
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
- engines: {node: '>=8.0'}
-
- toidentifier@1.0.1:
- resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
- engines: {node: '>=0.6'}
-
- token-types@4.2.1:
- resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==}
- engines: {node: '>=10'}
-
- tough-cookie@4.1.4:
- resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
- engines: {node: '>=6'}
-
- tr46@0.0.3:
- resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
-
- tr46@1.0.1:
- resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
-
- tree-kill@1.2.2:
- resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
- hasBin: true
-
- trim-lines@3.0.1:
- resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
-
- trough@2.2.0:
- resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==}
-
- ts-api-utils@2.1.0:
- resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
- engines: {node: '>=18.12'}
- peerDependencies:
- typescript: '>=4.8.4'
-
- ts-error@1.0.6:
- resolution: {integrity: sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==}
-
- ts-interface-checker@0.1.13:
- resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
-
- ts-jest@29.4.5:
- resolution: {integrity: sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==}
- engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
- hasBin: true
- peerDependencies:
- '@babel/core': '>=7.0.0-beta.0 <8'
- '@jest/transform': ^29.0.0 || ^30.0.0
- '@jest/types': ^29.0.0 || ^30.0.0
- babel-jest: ^29.0.0 || ^30.0.0
- esbuild: '*'
- jest: ^29.0.0 || ^30.0.0
- jest-util: ^29.0.0 || ^30.0.0
- typescript: '>=4.3 <6'
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- '@jest/transform':
- optional: true
- '@jest/types':
- optional: true
- babel-jest:
- optional: true
- esbuild:
- optional: true
- jest-util:
- optional: true
-
- ts-poet@6.12.0:
- resolution: {integrity: sha512-xo+iRNMWqyvXpFTaOAvLPA5QAWO6TZrSUs5s4Odaya3epqofBu/fMLHEWl8jPmjhA0s9sgj9sNvF1BmaQlmQkA==}
-
- ts-proto-descriptors@2.0.0:
- resolution: {integrity: sha512-wHcTH3xIv11jxgkX5OyCSFfw27agpInAd6yh89hKG6zqIXnjW9SYqSER2CVQxdPj4czeOhGagNvZBEbJPy7qkw==}
-
- ts-proto@2.7.7:
- resolution: {integrity: sha512-/OfN9/Yriji2bbpOysZ/Jzc96isOKz+eBTJEcKaIZ0PR6x1TNgVm4Lz0zfbo+J0jwFO7fJjJyssefBPQ0o1V9A==}
- hasBin: true
-
- tsconfig-paths@3.15.0:
- resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
-
- tslib@2.8.1:
- resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
-
- tsup@8.5.0:
- resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==}
- engines: {node: '>=18'}
- hasBin: true
- peerDependencies:
- '@microsoft/api-extractor': ^7.36.0
- '@swc/core': ^1
- postcss: ^8.4.12
- typescript: '>=4.5.0'
- peerDependenciesMeta:
- '@microsoft/api-extractor':
- optional: true
- '@swc/core':
- optional: true
- postcss:
- optional: true
- typescript:
- optional: true
-
- tsx@4.20.6:
- resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==}
- engines: {node: '>=18.0.0'}
- hasBin: true
-
- turbo-darwin-64@2.5.8:
- resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==}
- cpu: [x64]
- os: [darwin]
-
- turbo-darwin-arm64@2.5.8:
- resolution: {integrity: sha512-f1H/tQC9px7+hmXn6Kx/w8Jd/FneIUnvLlcI/7RGHunxfOkKJKvsoiNzySkoHQ8uq1pJnhJ0xNGTlYM48ZaJOQ==}
- cpu: [arm64]
- os: [darwin]
-
- turbo-linux-64@2.5.8:
- resolution: {integrity: sha512-hMyvc7w7yadBlZBGl/bnR6O+dJTx3XkTeyTTH4zEjERO6ChEs0SrN8jTFj1lueNXKIHh1SnALmy6VctKMGnWfw==}
- cpu: [x64]
- os: [linux]
-
- turbo-linux-arm64@2.5.8:
- resolution: {integrity: sha512-LQELGa7bAqV2f+3rTMRPnj5G/OHAe2U+0N9BwsZvfMvHSUbsQ3bBMWdSQaYNicok7wOZcHjz2TkESn1hYK6xIQ==}
- cpu: [arm64]
- os: [linux]
-
- turbo-windows-64@2.5.8:
- resolution: {integrity: sha512-3YdcaW34TrN1AWwqgYL9gUqmZsMT4T7g8Y5Azz+uwwEJW+4sgcJkIi9pYFyU4ZBSjBvkfuPZkGgfStir5BBDJQ==}
- cpu: [x64]
- os: [win32]
-
- turbo-windows-arm64@2.5.8:
- resolution: {integrity: sha512-eFC5XzLmgXJfnAK3UMTmVECCwuBcORrWdewoiXBnUm934DY6QN8YowC/srhNnROMpaKaqNeRpoB5FxCww3eteQ==}
- cpu: [arm64]
- os: [win32]
-
- turbo@2.5.8:
- resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==}
- hasBin: true
-
- type-check@0.4.0:
- resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
- engines: {node: '>= 0.8.0'}
-
- type-detect@4.0.8:
- resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
- engines: {node: '>=4'}
-
- type-fest@0.21.3:
- resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
- engines: {node: '>=10'}
-
- type-fest@4.41.0:
- resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
- engines: {node: '>=16'}
-
- type-graphql@2.0.0-rc.1:
- resolution: {integrity: sha512-HCu4j3jR0tZvAAoO7DMBT3MRmah0DFRe5APymm9lXUghXA0sbhiMf6SLRafRYfk0R0KiUQYRduuGP3ap1RnF1Q==}
- engines: {node: '>= 18.12.0'}
- peerDependencies:
- class-validator: '>=0.14.0'
- graphql: ^16.8.1
- graphql-scalars: ^1.22.4
- peerDependenciesMeta:
- class-validator:
- optional: true
-
- type-is@1.6.18:
- resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
- engines: {node: '>= 0.6'}
-
- type-is@2.0.1:
- resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==}
- engines: {node: '>= 0.6'}
-
- typed-array-buffer@1.0.3:
- resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-length@1.0.3:
- resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
- engines: {node: '>= 0.4'}
-
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
- engines: {node: '>= 0.4'}
-
- typed-array-length@1.0.7:
- resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
- engines: {node: '>= 0.4'}
-
- typescript-paths@1.5.1:
- resolution: {integrity: sha512-lYErSLCON2MSplVV5V/LBgD4UNjMgY3guATdFCZY2q1Nr6OZEu4q6zX/rYMsG1TaWqqQSszg6C9EU7AGWMDrIw==}
- peerDependencies:
- typescript: ^4.7.2 || ^5
-
- typescript@5.8.2:
- resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- typescript@5.9.3:
- resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
- engines: {node: '>=14.17'}
- hasBin: true
-
- uc.micro@2.1.0:
- resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
-
- ufo@1.6.1:
- resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
-
- uglify-js@3.19.3:
- resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
- engines: {node: '>=0.8.0'}
- hasBin: true
-
- unbox-primitive@1.1.0:
- resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
- engines: {node: '>= 0.4'}
-
- uncrypto@0.1.3:
- resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
-
- undici-types@5.26.5:
- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
-
- undici-types@6.21.0:
- resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
-
- unicorn-magic@0.3.0:
- resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
- engines: {node: '>=18'}
-
- unified@10.1.2:
- resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==}
-
- unified@11.0.5:
- resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==}
-
- unist-util-generated@2.0.1:
- resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==}
-
- unist-util-is@5.2.1:
- resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==}
-
- unist-util-is@6.0.0:
- resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
-
- unist-util-position-from-estree@2.0.0:
- resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
-
- unist-util-position@4.0.4:
- resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==}
-
- unist-util-position@5.0.0:
- resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
-
- unist-util-remove-position@5.0.0:
- resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
-
- unist-util-stringify-position@3.0.3:
- resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==}
-
- unist-util-stringify-position@4.0.0:
- resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
-
- unist-util-visit-parents@5.1.3:
- resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==}
-
- unist-util-visit-parents@6.0.1:
- resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
-
- unist-util-visit@4.1.2:
- resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
-
- unist-util-visit@5.0.0:
- resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
-
- universalify@0.2.0:
- resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
- engines: {node: '>= 4.0.0'}
-
- universalify@2.0.1:
- resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
- engines: {node: '>= 10.0.0'}
-
- unpipe@1.0.0:
- resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
- engines: {node: '>= 0.8'}
-
- unplugin-utils@0.2.5:
- resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==}
- engines: {node: '>=18.12.0'}
-
- unrs-resolver@1.11.1:
- resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
-
- untruncate-json@0.0.1:
- resolution: {integrity: sha512-4W9enDK4X1y1s2S/Rz7ysw6kDuMS3VmRjMFg7GZrNO+98OSe+x5Lh7PKYoVjy3lW/1wmhs6HW0lusnQRHgMarA==}
-
- update-browserslist-db@1.1.3:
- resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
- hasBin: true
- peerDependencies:
- browserslist: '>= 4.21.0'
-
- uri-js@4.4.1:
- resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
-
- url-parse@1.5.10:
- resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
-
- urlpattern-polyfill@10.1.0:
- resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==}
-
- urql@4.2.2:
- resolution: {integrity: sha512-3GgqNa6iF7bC4hY/ImJKN4REQILcSU9VKcKL8gfELZM8mM5BnLH1BsCc8kBdnVGD1LIFOs4W3O2idNHhON1r0w==}
- peerDependencies:
- '@urql/core': ^5.0.0
- react: '>= 16.8.0'
-
- use-callback-ref@1.3.3:
- resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- use-sidecar@1.1.3:
- resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- use-sync-external-store@1.6.0:
- resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
- peerDependencies:
- react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
-
- util-deprecate@1.0.2:
- resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-
- utils-merge@1.0.1:
- 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@9.0.1:
- resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
- hasBin: true
-
- uvu@0.5.6:
- resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
- engines: {node: '>=8'}
- hasBin: true
-
- v8-to-istanbul@9.3.0:
- resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
- engines: {node: '>=10.12.0'}
-
- validator@13.15.15:
- resolution: {integrity: sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==}
- engines: {node: '>= 0.10'}
-
- vary@1.1.2:
- resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
- engines: {node: '>= 0.8'}
-
- vfile-location@5.0.3:
- resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
-
- vfile-message@3.1.4:
- resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==}
-
- vfile-message@4.0.3:
- resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
-
- vfile@5.3.7:
- resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==}
-
- vfile@6.0.3:
- resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
-
- w3c-keyname@2.2.8:
- resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==}
-
- wait-port@1.1.0:
- resolution: {integrity: sha512-3e04qkoN3LxTMLakdqeWth8nih8usyg+sf1Bgdf9wwUkp05iuK1eSY/QpLvscT/+F/gA89+LpUmmgBtesbqI2Q==}
- engines: {node: '>=10'}
- hasBin: true
-
- walker@1.0.8:
- resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
-
- wcwidth@1.0.1:
- resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
-
- weaviate-client@3.9.0:
- resolution: {integrity: sha512-7qwg7YONAaT4zWnohLrFdzky+rZegVe76J+Tky/+7tuyvjFpdKgSrdqI/wPDh8aji0ZGZrL4DdGwGfFnZ+uV4w==}
- engines: {node: '>=18.0.0'}
-
- web-namespaces@2.0.1:
- resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
-
- web-streams-polyfill@3.3.3:
- 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'}
-
- webidl-conversions@3.0.1:
- resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
-
- webidl-conversions@4.0.2:
- resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
-
- whatwg-url@5.0.0:
- resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
-
- whatwg-url@7.1.0:
- resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
-
- which-boxed-primitive@1.1.1:
- resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
- engines: {node: '>= 0.4'}
-
- which-builtin-type@1.2.1:
- resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
- engines: {node: '>= 0.4'}
-
- which-collection@1.0.2:
- resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
- engines: {node: '>= 0.4'}
-
- which-typed-array@1.1.19:
- resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==}
- engines: {node: '>= 0.4'}
-
- which@2.0.2:
- resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
- engines: {node: '>= 8'}
- hasBin: true
-
- wonka@6.3.5:
- resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==}
-
- word-wrap@1.2.5:
- resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
- engines: {node: '>=0.10.0'}
-
- wordwrap@1.0.0:
- resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
-
- wrap-ansi@6.2.0:
- resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
- engines: {node: '>=8'}
-
- wrap-ansi@7.0.0:
- resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
- engines: {node: '>=10'}
-
- wrap-ansi@8.1.0:
- resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
- engines: {node: '>=12'}
-
- wrappy@1.0.2:
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-
- write-file-atomic@4.0.2:
- resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
- engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
-
- ws@8.18.3:
- resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==}
- engines: {node: '>=10.0.0'}
- peerDependencies:
- bufferutil: ^4.0.1
- utf-8-validate: '>=5.0.2'
- peerDependenciesMeta:
- bufferutil:
- optional: true
- utf-8-validate:
- optional: true
-
- wsl-utils@0.1.0:
- resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==}
- engines: {node: '>=18'}
-
- xstate@5.23.0:
- resolution: {integrity: sha512-jo126xWXkU6ySQ91n51+H2xcgnMuZcCQpQoD3FQ79d32a6RQvryRh8rrDHnH4WDdN/yg5xNjlIRol9ispMvzeg==}
-
- xtend@4.0.2:
- resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
- engines: {node: '>=0.4'}
-
- xxhash-wasm@1.1.0:
- resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==}
-
- y18n@5.0.8:
- resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
- engines: {node: '>=10'}
-
- yallist@3.1.1:
- resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
-
- yallist@4.0.0:
- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
-
- yallist@5.0.0:
- resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
- engines: {node: '>=18'}
-
- yaml@2.8.1:
- resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==}
- engines: {node: '>= 14.6'}
- hasBin: true
-
- yargs-parser@21.1.1:
- resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
- engines: {node: '>=12'}
-
- yargs@17.7.2:
- resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
- engines: {node: '>=12'}
-
- yocto-queue@0.1.0:
- resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
- engines: {node: '>=10'}
-
- yocto-spinner@0.2.3:
- resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==}
- engines: {node: '>=18.19'}
-
- yoctocolors-cjs@2.1.3:
- resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==}
- engines: {node: '>=18'}
-
- yoctocolors@2.1.2:
- resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==}
- engines: {node: '>=18'}
-
- zod-from-json-schema@0.0.5:
- resolution: {integrity: sha512-zYEoo86M1qpA1Pq6329oSyHLS785z/mTwfr9V1Xf/ZLhuuBGaMlDGu/pDVGVUe4H4oa1EFgWZT53DP0U3oT9CQ==}
-
- zod-from-json-schema@0.5.0:
- resolution: {integrity: sha512-W1v1YIoimOJfvuorGGp1QroizLL3jEGELJtgrHiVg/ytxVZdh/BTTVyPypGB7YK30LHrCkkebbjuyHIjBGCEzw==}
-
- zod-to-json-schema@3.24.6:
- resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==}
- peerDependencies:
- zod: ^3.24.1
-
- zod@3.25.76:
- resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
-
- zod@4.1.12:
- resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==}
-
- zwitch@2.0.4:
- resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
-
-snapshots:
-
- '@0no-co/graphql.web@1.2.0(graphql@16.11.0)':
- optionalDependencies:
- graphql: 16.11.0
-
- '@a2a-js/sdk@0.2.5':
- dependencies:
- '@types/cors': 2.8.19
- '@types/express': 4.17.23
- body-parser: 2.2.0
- cors: 2.8.5
- express: 4.21.2
- uuid: 11.1.0
- transitivePeerDependencies:
- - supports-color
-
- '@ag-ui/client@0.0.35':
- dependencies:
- '@ag-ui/core': 0.0.35
- '@ag-ui/encoder': 0.0.35
- '@ag-ui/proto': 0.0.35
- '@types/uuid': 10.0.0
- fast-json-patch: 3.1.1
- rxjs: 7.8.1
- untruncate-json: 0.0.1
- uuid: 11.1.0
- zod: 3.25.76
-
- '@ag-ui/core@0.0.35':
- dependencies:
- rxjs: 7.8.1
- zod: 3.25.76
-
- '@ag-ui/core@0.0.37':
- dependencies:
- rxjs: 7.8.1
- zod: 3.25.76
-
- '@ag-ui/core@0.0.39':
- dependencies:
- rxjs: 7.8.1
- zod: 3.25.76
-
- '@ag-ui/encoder@0.0.35':
- dependencies:
- '@ag-ui/core': 0.0.35
- '@ag-ui/proto': 0.0.35
-
- '@ag-ui/encoder@0.0.39':
- dependencies:
- '@ag-ui/core': 0.0.39
- '@ag-ui/proto': 0.0.39
-
- '@ag-ui/langgraph@0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@ag-ui/client': link:sdks/typescript/packages/client
- '@ag-ui/core': link:sdks/typescript/packages/core
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- '@langchain/langgraph-sdk': 0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- partial-json: 0.1.7
- rxjs: 7.8.1
- transitivePeerDependencies:
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - openai
- - react
- - react-dom
-
- '@ag-ui/proto@0.0.35':
- dependencies:
- '@ag-ui/core': 0.0.35
- '@bufbuild/protobuf': 2.9.0
-
- '@ag-ui/proto@0.0.39':
- dependencies:
- '@ag-ui/core': 0.0.39
- '@bufbuild/protobuf': 2.9.0
- '@protobuf-ts/protoc': 2.11.1
-
- '@ai-sdk/anthropic@2.0.23(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
- zod: 3.25.76
-
- '@ai-sdk/gateway@1.0.33(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
- '@vercel/oidc': 3.0.2
- zod: 3.25.76
-
- '@ai-sdk/google@2.0.17(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
- zod: 3.25.76
-
- '@ai-sdk/openai-compatible@1.0.19(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
- zod: 3.25.76
-
- '@ai-sdk/openai@1.3.22(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 1.1.3
- '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76)
- zod: 3.25.76
-
- '@ai-sdk/openai@2.0.42(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
- zod: 3.25.76
-
- '@ai-sdk/openai@2.0.52(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.12(zod@3.25.76)
- zod: 3.25.76
-
- '@ai-sdk/provider-utils@2.2.8(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 1.1.3
- nanoid: 3.3.11
- secure-json-parse: 2.7.0
- zod: 3.25.76
-
- '@ai-sdk/provider-utils@3.0.10(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@standard-schema/spec': 1.0.0
- eventsource-parser: 3.0.6
- zod: 3.25.76
-
- '@ai-sdk/provider-utils@3.0.12(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 2.0.0
- '@standard-schema/spec': 1.0.0
- eventsource-parser: 3.0.6
- zod: 3.25.76
-
- '@ai-sdk/provider@1.1.3':
- dependencies:
- json-schema: 0.4.0
-
- '@ai-sdk/provider@2.0.0':
- dependencies:
- json-schema: 0.4.0
-
- '@ai-sdk/react@1.2.12(react@19.2.0)(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76)
- '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76)
- react: 19.2.0
- swr: 2.3.6(react@19.2.0)
- throttleit: 2.1.0
- optionalDependencies:
- zod: 3.25.76
-
- '@ai-sdk/ui-utils@1.2.11(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 1.1.3
- '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76)
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
-
- '@ai-sdk/xai@2.0.23(zod@3.25.76)':
- dependencies:
- '@ai-sdk/openai-compatible': 1.0.19(zod@3.25.76)
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
- zod: 3.25.76
-
- '@alloc/quick-lru@5.2.0': {}
-
- '@anthropic-ai/sdk@0.27.3':
- 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
- transitivePeerDependencies:
- - encoding
-
- '@anthropic-ai/sdk@0.57.0': {}
-
- '@apidevtools/json-schema-ref-parser@11.9.3':
- dependencies:
- '@jsdevtools/ono': 7.1.3
- '@types/json-schema': 7.0.15
- js-yaml: 4.1.0
-
- '@apidevtools/json-schema-ref-parser@14.2.1(@types/json-schema@7.0.15)':
- dependencies:
- '@types/json-schema': 7.0.15
- js-yaml: 4.1.0
-
- '@aws-crypto/crc32@5.2.0':
- dependencies:
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.910.0
- tslib: 2.8.1
-
- '@aws-crypto/sha256-browser@5.2.0':
- dependencies:
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-crypto/supports-web-crypto': 5.2.0
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-locate-window': 3.893.0
- '@smithy/util-utf8': 2.3.0
- tslib: 2.8.1
-
- '@aws-crypto/sha256-js@5.2.0':
- dependencies:
- '@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.910.0
- tslib: 2.8.1
-
- '@aws-crypto/supports-web-crypto@5.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@aws-crypto/util@5.2.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/util-utf8': 2.3.0
- tslib: 2.8.1
-
- '@aws-sdk/client-bedrock-agent-runtime@3.910.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@aws-sdk/middleware-host-header': 3.910.0
- '@aws-sdk/middleware-logger': 3.910.0
- '@aws-sdk/middleware-recursion-detection': 3.910.0
- '@aws-sdk/middleware-user-agent': 3.910.0
- '@aws-sdk/region-config-resolver': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-endpoints': 3.910.0
- '@aws-sdk/util-user-agent-browser': 3.910.0
- '@aws-sdk/util-user-agent-node': 3.910.0
- '@smithy/config-resolver': 4.3.2
- '@smithy/core': 3.16.1
- '@smithy/eventstream-serde-browser': 4.2.2
- '@smithy/eventstream-serde-config-resolver': 4.3.2
- '@smithy/eventstream-serde-node': 4.2.2
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/hash-node': 4.2.2
- '@smithy/invalid-dependency': 4.2.2
- '@smithy/middleware-content-length': 4.2.2
- '@smithy/middleware-endpoint': 4.3.3
- '@smithy/middleware-retry': 4.4.3
- '@smithy/middleware-serde': 4.2.2
- '@smithy/middleware-stack': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/node-http-handler': 4.4.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-base64': 4.3.0
- '@smithy/util-body-length-browser': 4.2.0
- '@smithy/util-body-length-node': 4.2.1
- '@smithy/util-defaults-mode-browser': 4.3.2
- '@smithy/util-defaults-mode-node': 4.2.3
- '@smithy/util-endpoints': 3.2.2
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-retry': 4.2.2
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/client-bedrock-runtime@3.910.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@aws-sdk/eventstream-handler-node': 3.910.0
- '@aws-sdk/middleware-eventstream': 3.910.0
- '@aws-sdk/middleware-host-header': 3.910.0
- '@aws-sdk/middleware-logger': 3.910.0
- '@aws-sdk/middleware-recursion-detection': 3.910.0
- '@aws-sdk/middleware-user-agent': 3.910.0
- '@aws-sdk/middleware-websocket': 3.910.0
- '@aws-sdk/region-config-resolver': 3.910.0
- '@aws-sdk/token-providers': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-endpoints': 3.910.0
- '@aws-sdk/util-user-agent-browser': 3.910.0
- '@aws-sdk/util-user-agent-node': 3.910.0
- '@smithy/config-resolver': 4.3.2
- '@smithy/core': 3.16.1
- '@smithy/eventstream-serde-browser': 4.2.2
- '@smithy/eventstream-serde-config-resolver': 4.3.2
- '@smithy/eventstream-serde-node': 4.2.2
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/hash-node': 4.2.2
- '@smithy/invalid-dependency': 4.2.2
- '@smithy/middleware-content-length': 4.2.2
- '@smithy/middleware-endpoint': 4.3.3
- '@smithy/middleware-retry': 4.4.3
- '@smithy/middleware-serde': 4.2.2
- '@smithy/middleware-stack': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/node-http-handler': 4.4.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-base64': 4.3.0
- '@smithy/util-body-length-browser': 4.2.0
- '@smithy/util-body-length-node': 4.2.1
- '@smithy/util-defaults-mode-browser': 4.3.2
- '@smithy/util-defaults-mode-node': 4.2.3
- '@smithy/util-endpoints': 3.2.2
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-retry': 4.2.2
- '@smithy/util-stream': 4.5.2
- '@smithy/util-utf8': 4.2.0
- '@smithy/uuid': 1.1.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/client-dynamodb@3.910.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@aws-sdk/middleware-endpoint-discovery': 3.910.0
- '@aws-sdk/middleware-host-header': 3.910.0
- '@aws-sdk/middleware-logger': 3.910.0
- '@aws-sdk/middleware-recursion-detection': 3.910.0
- '@aws-sdk/middleware-user-agent': 3.910.0
- '@aws-sdk/region-config-resolver': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-endpoints': 3.910.0
- '@aws-sdk/util-user-agent-browser': 3.910.0
- '@aws-sdk/util-user-agent-node': 3.910.0
- '@smithy/config-resolver': 4.3.2
- '@smithy/core': 3.16.1
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/hash-node': 4.2.2
- '@smithy/invalid-dependency': 4.2.2
- '@smithy/middleware-content-length': 4.2.2
- '@smithy/middleware-endpoint': 4.3.3
- '@smithy/middleware-retry': 4.4.3
- '@smithy/middleware-serde': 4.2.2
- '@smithy/middleware-stack': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/node-http-handler': 4.4.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-base64': 4.3.0
- '@smithy/util-body-length-browser': 4.2.0
- '@smithy/util-body-length-node': 4.2.1
- '@smithy/util-defaults-mode-browser': 4.3.2
- '@smithy/util-defaults-mode-node': 4.2.3
- '@smithy/util-endpoints': 3.2.2
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-retry': 4.2.2
- '@smithy/util-utf8': 4.2.0
- '@smithy/util-waiter': 4.2.2
- '@smithy/uuid': 1.1.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/client-kendra@3.910.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@aws-sdk/middleware-host-header': 3.910.0
- '@aws-sdk/middleware-logger': 3.910.0
- '@aws-sdk/middleware-recursion-detection': 3.910.0
- '@aws-sdk/middleware-user-agent': 3.910.0
- '@aws-sdk/region-config-resolver': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-endpoints': 3.910.0
- '@aws-sdk/util-user-agent-browser': 3.910.0
- '@aws-sdk/util-user-agent-node': 3.910.0
- '@smithy/config-resolver': 4.3.2
- '@smithy/core': 3.16.1
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/hash-node': 4.2.2
- '@smithy/invalid-dependency': 4.2.2
- '@smithy/middleware-content-length': 4.2.2
- '@smithy/middleware-endpoint': 4.3.3
- '@smithy/middleware-retry': 4.4.3
- '@smithy/middleware-serde': 4.2.2
- '@smithy/middleware-stack': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/node-http-handler': 4.4.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-base64': 4.3.0
- '@smithy/util-body-length-browser': 4.2.0
- '@smithy/util-body-length-node': 4.2.1
- '@smithy/util-defaults-mode-browser': 4.3.2
- '@smithy/util-defaults-mode-node': 4.2.3
- '@smithy/util-endpoints': 3.2.2
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-retry': 4.2.2
- '@smithy/util-utf8': 4.2.0
- '@smithy/uuid': 1.1.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/client-sso@3.910.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/middleware-host-header': 3.910.0
- '@aws-sdk/middleware-logger': 3.910.0
- '@aws-sdk/middleware-recursion-detection': 3.910.0
- '@aws-sdk/middleware-user-agent': 3.910.0
- '@aws-sdk/region-config-resolver': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-endpoints': 3.910.0
- '@aws-sdk/util-user-agent-browser': 3.910.0
- '@aws-sdk/util-user-agent-node': 3.910.0
- '@smithy/config-resolver': 4.3.2
- '@smithy/core': 3.16.1
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/hash-node': 4.2.2
- '@smithy/invalid-dependency': 4.2.2
- '@smithy/middleware-content-length': 4.2.2
- '@smithy/middleware-endpoint': 4.3.3
- '@smithy/middleware-retry': 4.4.3
- '@smithy/middleware-serde': 4.2.2
- '@smithy/middleware-stack': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/node-http-handler': 4.4.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-base64': 4.3.0
- '@smithy/util-body-length-browser': 4.2.0
- '@smithy/util-body-length-node': 4.2.1
- '@smithy/util-defaults-mode-browser': 4.3.2
- '@smithy/util-defaults-mode-node': 4.2.3
- '@smithy/util-endpoints': 3.2.2
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-retry': 4.2.2
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/core@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/xml-builder': 3.910.0
- '@smithy/core': 3.16.1
- '@smithy/node-config-provider': 4.3.2
- '@smithy/property-provider': 4.2.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/signature-v4': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/util-base64': 4.3.0
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-env@3.910.0':
- dependencies:
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/property-provider': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-http@3.910.0':
- dependencies:
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/node-http-handler': 4.4.1
- '@smithy/property-provider': 4.2.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/util-stream': 4.5.2
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-ini@3.910.0':
- dependencies:
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/credential-provider-env': 3.910.0
- '@aws-sdk/credential-provider-http': 3.910.0
- '@aws-sdk/credential-provider-process': 3.910.0
- '@aws-sdk/credential-provider-sso': 3.910.0
- '@aws-sdk/credential-provider-web-identity': 3.910.0
- '@aws-sdk/nested-clients': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/credential-provider-imds': 4.2.2
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-node@3.910.0':
- dependencies:
- '@aws-sdk/credential-provider-env': 3.910.0
- '@aws-sdk/credential-provider-http': 3.910.0
- '@aws-sdk/credential-provider-ini': 3.910.0
- '@aws-sdk/credential-provider-process': 3.910.0
- '@aws-sdk/credential-provider-sso': 3.910.0
- '@aws-sdk/credential-provider-web-identity': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/credential-provider-imds': 4.2.2
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-process@3.910.0':
- dependencies:
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/credential-provider-sso@3.910.0':
- dependencies:
- '@aws-sdk/client-sso': 3.910.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/token-providers': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/credential-provider-web-identity@3.910.0':
- dependencies:
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/nested-clients': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/endpoint-cache@3.893.0':
- dependencies:
- mnemonist: 0.38.3
- tslib: 2.8.1
-
- '@aws-sdk/eventstream-handler-node@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/eventstream-codec': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/lib-dynamodb@3.910.0(@aws-sdk/client-dynamodb@3.910.0)':
- dependencies:
- '@aws-sdk/client-dynamodb': 3.910.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/util-dynamodb': 3.910.0(@aws-sdk/client-dynamodb@3.910.0)
- '@smithy/core': 3.16.1
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-endpoint-discovery@3.910.0':
- dependencies:
- '@aws-sdk/endpoint-cache': 3.893.0
- '@aws-sdk/types': 3.910.0
- '@smithy/node-config-provider': 4.3.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-eventstream@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-host-header@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-logger@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-recursion-detection@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@aws/lambda-invoke-store': 0.0.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-user-agent@3.910.0':
- dependencies:
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-endpoints': 3.910.0
- '@smithy/core': 3.16.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/middleware-websocket@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-format-url': 3.910.0
- '@smithy/eventstream-codec': 4.2.2
- '@smithy/eventstream-serde-browser': 4.2.2
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/protocol-http': 5.3.2
- '@smithy/signature-v4': 5.3.2
- '@smithy/types': 4.7.1
- '@smithy/util-hex-encoding': 4.2.0
- tslib: 2.8.1
-
- '@aws-sdk/nested-clients@3.910.0':
- dependencies:
- '@aws-crypto/sha256-browser': 5.2.0
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/middleware-host-header': 3.910.0
- '@aws-sdk/middleware-logger': 3.910.0
- '@aws-sdk/middleware-recursion-detection': 3.910.0
- '@aws-sdk/middleware-user-agent': 3.910.0
- '@aws-sdk/region-config-resolver': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@aws-sdk/util-endpoints': 3.910.0
- '@aws-sdk/util-user-agent-browser': 3.910.0
- '@aws-sdk/util-user-agent-node': 3.910.0
- '@smithy/config-resolver': 4.3.2
- '@smithy/core': 3.16.1
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/hash-node': 4.2.2
- '@smithy/invalid-dependency': 4.2.2
- '@smithy/middleware-content-length': 4.2.2
- '@smithy/middleware-endpoint': 4.3.3
- '@smithy/middleware-retry': 4.4.3
- '@smithy/middleware-serde': 4.2.2
- '@smithy/middleware-stack': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/node-http-handler': 4.4.1
- '@smithy/protocol-http': 5.3.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-base64': 4.3.0
- '@smithy/util-body-length-browser': 4.2.0
- '@smithy/util-body-length-node': 4.2.1
- '@smithy/util-defaults-mode-browser': 4.3.2
- '@smithy/util-defaults-mode-node': 4.2.3
- '@smithy/util-endpoints': 3.2.2
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-retry': 4.2.2
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/region-config-resolver@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/node-config-provider': 4.3.2
- '@smithy/types': 4.7.1
- '@smithy/util-config-provider': 4.2.0
- '@smithy/util-middleware': 4.2.2
- tslib: 2.8.1
-
- '@aws-sdk/token-providers@3.910.0':
- dependencies:
- '@aws-sdk/core': 3.910.0
- '@aws-sdk/nested-clients': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
- transitivePeerDependencies:
- - aws-crt
-
- '@aws-sdk/types@3.910.0':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/util-dynamodb@3.910.0(@aws-sdk/client-dynamodb@3.910.0)':
- dependencies:
- '@aws-sdk/client-dynamodb': 3.910.0
- tslib: 2.8.1
-
- '@aws-sdk/util-endpoints@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-endpoints': 3.2.2
- tslib: 2.8.1
-
- '@aws-sdk/util-format-url@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/querystring-builder': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/util-locate-window@3.893.0':
- dependencies:
- tslib: 2.8.1
-
- '@aws-sdk/util-user-agent-browser@3.910.0':
- dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/types': 4.7.1
- bowser: 2.12.1
- tslib: 2.8.1
-
- '@aws-sdk/util-user-agent-node@3.910.0':
- dependencies:
- '@aws-sdk/middleware-user-agent': 3.910.0
- '@aws-sdk/types': 3.910.0
- '@smithy/node-config-provider': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@aws-sdk/xml-builder@3.910.0':
- dependencies:
- '@smithy/types': 4.7.1
- fast-xml-parser: 5.2.5
- tslib: 2.8.1
-
- '@aws/lambda-invoke-store@0.0.1': {}
-
- '@babel/code-frame@7.27.1':
- dependencies:
- '@babel/helper-validator-identifier': 7.27.1
- js-tokens: 4.0.0
- picocolors: 1.1.1
-
- '@babel/compat-data@7.28.4': {}
-
- '@babel/core@7.28.4':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
- '@babel/helpers': 7.28.4
- '@babel/parser': 7.28.4
- '@babel/template': 7.27.2
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
- '@jridgewell/remapping': 2.3.5
- convert-source-map: 2.0.0
- debug: 4.4.3
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/generator@7.28.3':
- dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
- jsesc: 3.1.0
-
- '@babel/helper-annotate-as-pure@7.27.3':
- dependencies:
- '@babel/types': 7.28.4
-
- '@babel/helper-compilation-targets@7.27.2':
- dependencies:
- '@babel/compat-data': 7.28.4
- '@babel/helper-validator-option': 7.27.1
- browserslist: 4.26.3
- lru-cache: 5.1.1
- semver: 6.3.1
-
- '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-member-expression-to-functions': 7.27.1
- '@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/traverse': 7.28.4
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-globals@7.28.0': {}
-
- '@babel/helper-member-expression-to-functions@7.27.1':
- dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-imports@7.27.1':
- dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.4
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-optimise-call-expression@7.27.1':
- dependencies:
- '@babel/types': 7.28.4
-
- '@babel/helper-plugin-utils@7.27.1': {}
-
- '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-member-expression-to-functions': 7.27.1
- '@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.28.4
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
- dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-string-parser@7.27.1': {}
-
- '@babel/helper-validator-identifier@7.27.1': {}
-
- '@babel/helper-validator-option@7.27.1': {}
-
- '@babel/helpers@7.28.4':
- dependencies:
- '@babel/template': 7.27.2
- '@babel/types': 7.28.4
-
- '@babel/parser@7.28.4':
- dependencies:
- '@babel/types': 7.28.4
-
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
-
- '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
- '@babel/helper-plugin-utils': 7.27.1
- transitivePeerDependencies:
- - supports-color
-
- '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
- transitivePeerDependencies:
- - supports-color
-
- '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-plugin-utils': 7.27.1
- '@babel/helper-validator-option': 7.27.1
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4)
- transitivePeerDependencies:
- - supports-color
-
- '@babel/runtime@7.28.4': {}
-
- '@babel/template@7.27.2':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
-
- '@babel/traverse@7.28.4':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
- '@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.4
- '@babel/template': 7.27.2
- '@babel/types': 7.28.4
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- '@babel/types@7.28.4':
- dependencies:
- '@babel/helper-string-parser': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
-
- '@bcoe/v8-coverage@0.2.3': {}
-
- '@browserbasehq/sdk@2.6.0':
- 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
- transitivePeerDependencies:
- - encoding
-
- '@browserbasehq/stagehand@1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)':
- dependencies:
- '@anthropic-ai/sdk': 0.27.3
- '@browserbasehq/sdk': 2.6.0
- '@playwright/test': 1.56.0
- deepmerge: 4.3.1
- dotenv: 16.6.1
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
- ws: 8.18.3
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
- '@browserbasehq/stagehand@1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)':
- dependencies:
- '@anthropic-ai/sdk': 0.27.3
- '@browserbasehq/sdk': 2.6.0
- '@playwright/test': 1.56.0
- deepmerge: 4.3.1
- dotenv: 16.6.1
- openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
- ws: 8.18.3
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - bufferutil
- - encoding
- - utf-8-validate
-
- '@bufbuild/protobuf@2.9.0': {}
-
- '@cfworker/json-schema@4.1.1': {}
-
- '@clack/core@0.5.0':
- dependencies:
- picocolors: 1.1.1
- sisteransi: 1.0.5
-
- '@clack/prompts@0.11.0':
- dependencies:
- '@clack/core': 0.5.0
- picocolors: 1.1.1
- sisteransi: 1.0.5
-
- '@copilotkit/react-core@1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@copilotkit/runtime-client-gql': 1.10.6(graphql@16.11.0)(react@19.2.0)
- '@copilotkit/shared': 1.10.6
- '@scarf/scarf': 1.4.0
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- react-markdown: 8.0.7(@types/react@19.2.2)(react@19.2.0)
- untruncate-json: 0.0.1
- transitivePeerDependencies:
- - '@types/react'
- - encoding
- - graphql
- - supports-color
-
- '@copilotkit/react-ui@1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@copilotkit/react-core': 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@copilotkit/runtime-client-gql': 1.10.6(graphql@16.11.0)(react@19.2.0)
- '@copilotkit/shared': 1.10.6
- '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react: 19.2.0
- react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0)
- react-syntax-highlighter: 15.6.6(react@19.2.0)
- rehype-raw: 7.0.0
- remark-gfm: 4.0.1
- remark-math: 6.0.0
- transitivePeerDependencies:
- - '@types/react'
- - encoding
- - graphql
- - react-dom
- - supports-color
-
- '@copilotkit/runtime-client-gql@1.10.6(graphql@16.11.0)(react@19.2.0)':
- dependencies:
- '@copilotkit/shared': 1.10.6
- '@urql/core': 5.2.0(graphql@16.11.0)
- react: 19.2.0
- untruncate-json: 0.0.1
- urql: 4.2.2(@urql/core@5.2.0(graphql@16.11.0))(react@19.2.0)
- transitivePeerDependencies:
- - encoding
- - graphql
-
- '@copilotkit/runtime@1.10.6(2963fdc46a5185bf1f60e289781c45cd)':
- dependencies:
- '@ag-ui/client': link:sdks/typescript/packages/client
- '@ag-ui/core': link:sdks/typescript/packages/core
- '@ag-ui/encoder': 0.0.39
- '@ag-ui/langgraph': 0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@ag-ui/proto': 0.0.39
- '@anthropic-ai/sdk': 0.57.0
- '@copilotkit/shared': 1.10.6
- '@graphql-yoga/plugin-defer-stream': 3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0)
- '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))
- '@langchain/community': 0.3.57(8d705aac09841dc81e24dfe2c773558d)
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)
- '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)
- '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)
- '@scarf/scarf': 1.4.0
- class-transformer: 0.5.1
- class-validator: 0.14.2
- express: 4.21.2
- graphql: 16.11.0
- graphql-scalars: 1.24.2(graphql@16.11.0)
- graphql-yoga: 5.16.0(graphql@16.11.0)
- groq-sdk: 0.5.0
- langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3)
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
- partial-json: 0.1.7
- pino: 9.13.1
- pino-pretty: 11.3.0
- reflect-metadata: 0.2.2
- rxjs: 7.8.1
- type-graphql: 2.0.0-rc.1(class-validator@0.14.2)(graphql-scalars@1.24.2(graphql@16.11.0))(graphql@16.11.0)
- zod: 3.25.76
- transitivePeerDependencies:
- - '@arcjet/redact'
- - '@aws-crypto/sha256-js'
- - '@aws-sdk/client-bedrock-agent-runtime'
- - '@aws-sdk/client-bedrock-runtime'
- - '@aws-sdk/client-dynamodb'
- - '@aws-sdk/client-kendra'
- - '@aws-sdk/client-lambda'
- - '@aws-sdk/client-s3'
- - '@aws-sdk/client-sagemaker-runtime'
- - '@aws-sdk/client-sfn'
- - '@aws-sdk/credential-provider-node'
- - '@aws-sdk/dsql-signer'
- - '@azure/search-documents'
- - '@azure/storage-blob'
- - '@browserbasehq/sdk'
- - '@browserbasehq/stagehand'
- - '@clickhouse/client'
- - '@cloudflare/ai'
- - '@datastax/astra-db-ts'
- - '@elastic/elasticsearch'
- - '@getmetal/metal-sdk'
- - '@getzep/zep-cloud'
- - '@getzep/zep-js'
- - '@gomomento/sdk'
- - '@gomomento/sdk-core'
- - '@google-ai/generativelanguage'
- - '@google-cloud/storage'
- - '@gradientai/nodejs-sdk'
- - '@huggingface/inference'
- - '@huggingface/transformers'
- - '@ibm-cloud/watsonx-ai'
- - '@lancedb/lancedb'
- - '@langchain/anthropic'
- - '@langchain/cerebras'
- - '@langchain/cohere'
- - '@langchain/deepseek'
- - '@langchain/google-genai'
- - '@langchain/google-vertexai'
- - '@langchain/google-vertexai-web'
- - '@langchain/groq'
- - '@langchain/mistralai'
- - '@langchain/ollama'
- - '@langchain/xai'
- - '@layerup/layerup-security'
- - '@libsql/client'
- - '@mendable/firecrawl-js'
- - '@mlc-ai/web-llm'
- - '@mozilla/readability'
- - '@neondatabase/serverless'
- - '@notionhq/client'
- - '@opensearch-project/opensearch'
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - '@pinecone-database/pinecone'
- - '@planetscale/database'
- - '@premai/prem-sdk'
- - '@qdrant/js-client-rest'
- - '@raycast/api'
- - '@rockset/client'
- - '@smithy/eventstream-codec'
- - '@smithy/protocol-http'
- - '@smithy/signature-v4'
- - '@smithy/util-utf8'
- - '@spider-cloud/spider-client'
- - '@supabase/supabase-js'
- - '@tensorflow-models/universal-sentence-encoder'
- - '@tensorflow/tfjs-converter'
- - '@tensorflow/tfjs-core'
- - '@upstash/ratelimit'
- - '@upstash/redis'
- - '@upstash/vector'
- - '@vercel/kv'
- - '@vercel/postgres'
- - '@writerai/writer-sdk'
- - '@xata.io/client'
- - '@zilliz/milvus2-sdk-node'
- - apify-client
- - assemblyai
- - aws-crt
- - axios
- - azion
- - better-sqlite3
- - cassandra-driver
- - cborg
- - cheerio
- - chromadb
- - closevector-common
- - closevector-node
- - closevector-web
- - cohere-ai
- - convex
- - crypto-js
- - d3-dsv
- - discord.js
- - duck-duck-scrape
- - encoding
- - epub2
- - fast-xml-parser
- - firebase-admin
- - google-auth-library
- - googleapis
- - handlebars
- - hnswlib-node
- - html-to-text
- - ibm-cloud-sdk-core
- - ignore
- - interface-datastore
- - ioredis
- - it-all
- - jsdom
- - jsonwebtoken
- - llmonitor
- - lodash
- - lunary
- - mammoth
- - mariadb
- - mem0ai
- - mongodb
- - mysql2
- - neo4j-driver
- - notion-to-md
- - officeparser
- - pdf-parse
- - peggy
- - pg
- - pg-copy-streams
- - pickleparser
- - playwright
- - portkey-ai
- - puppeteer
- - pyodide
- - react
- - redis
- - replicate
- - sonix-speech-recognition
- - srt-parser-2
- - supports-color
- - typeorm
- - typesense
- - usearch
- - voy-search
- - weaviate-client
- - web-auth-library
- - word-extractor
- - ws
- - youtubei.js
-
- '@copilotkit/runtime@1.10.6(43a54c62826e391639c20a8a0387b983)':
- dependencies:
- '@ag-ui/client': link:sdks/typescript/packages/client
- '@ag-ui/core': link:sdks/typescript/packages/core
- '@ag-ui/encoder': link:sdks/typescript/packages/encoder
- '@ag-ui/langgraph': link:integrations/langgraph/typescript
- '@ag-ui/proto': link:sdks/typescript/packages/proto
- '@anthropic-ai/sdk': 0.57.0
- '@copilotkit/shared': 1.10.6
- '@graphql-yoga/plugin-defer-stream': 3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0)
- '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))
- '@langchain/community': 0.3.57(a6f05470c76b31786172bd3244671918)
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)
- '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)
- '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)
- '@scarf/scarf': 1.4.0
- class-transformer: 0.5.1
- class-validator: 0.14.2
- express: 4.21.2
- graphql: 16.11.0
- graphql-scalars: 1.24.2(graphql@16.11.0)
- graphql-yoga: 5.16.0(graphql@16.11.0)
- groq-sdk: 0.5.0
- langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3)
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
- partial-json: 0.1.7
- pino: 9.13.1
- pino-pretty: 11.3.0
- reflect-metadata: 0.2.2
- rxjs: 7.8.1
- type-graphql: 2.0.0-rc.1(class-validator@0.14.2)(graphql-scalars@1.24.2(graphql@16.11.0))(graphql@16.11.0)
- zod: 3.25.76
- transitivePeerDependencies:
- - '@arcjet/redact'
- - '@aws-crypto/sha256-js'
- - '@aws-sdk/client-bedrock-agent-runtime'
- - '@aws-sdk/client-bedrock-runtime'
- - '@aws-sdk/client-dynamodb'
- - '@aws-sdk/client-kendra'
- - '@aws-sdk/client-lambda'
- - '@aws-sdk/client-s3'
- - '@aws-sdk/client-sagemaker-runtime'
- - '@aws-sdk/client-sfn'
- - '@aws-sdk/credential-provider-node'
- - '@aws-sdk/dsql-signer'
- - '@azure/search-documents'
- - '@azure/storage-blob'
- - '@browserbasehq/sdk'
- - '@browserbasehq/stagehand'
- - '@clickhouse/client'
- - '@cloudflare/ai'
- - '@datastax/astra-db-ts'
- - '@elastic/elasticsearch'
- - '@getmetal/metal-sdk'
- - '@getzep/zep-cloud'
- - '@getzep/zep-js'
- - '@gomomento/sdk'
- - '@gomomento/sdk-core'
- - '@google-ai/generativelanguage'
- - '@google-cloud/storage'
- - '@gradientai/nodejs-sdk'
- - '@huggingface/inference'
- - '@huggingface/transformers'
- - '@ibm-cloud/watsonx-ai'
- - '@lancedb/lancedb'
- - '@langchain/anthropic'
- - '@langchain/cerebras'
- - '@langchain/cohere'
- - '@langchain/deepseek'
- - '@langchain/google-genai'
- - '@langchain/google-vertexai'
- - '@langchain/google-vertexai-web'
- - '@langchain/groq'
- - '@langchain/mistralai'
- - '@langchain/ollama'
- - '@langchain/xai'
- - '@layerup/layerup-security'
- - '@libsql/client'
- - '@mendable/firecrawl-js'
- - '@mlc-ai/web-llm'
- - '@mozilla/readability'
- - '@neondatabase/serverless'
- - '@notionhq/client'
- - '@opensearch-project/opensearch'
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - '@pinecone-database/pinecone'
- - '@planetscale/database'
- - '@premai/prem-sdk'
- - '@qdrant/js-client-rest'
- - '@raycast/api'
- - '@rockset/client'
- - '@smithy/eventstream-codec'
- - '@smithy/protocol-http'
- - '@smithy/signature-v4'
- - '@smithy/util-utf8'
- - '@spider-cloud/spider-client'
- - '@supabase/supabase-js'
- - '@tensorflow-models/universal-sentence-encoder'
- - '@tensorflow/tfjs-converter'
- - '@tensorflow/tfjs-core'
- - '@upstash/ratelimit'
- - '@upstash/redis'
- - '@upstash/vector'
- - '@vercel/kv'
- - '@vercel/postgres'
- - '@writerai/writer-sdk'
- - '@xata.io/client'
- - '@zilliz/milvus2-sdk-node'
- - apify-client
- - assemblyai
- - aws-crt
- - axios
- - azion
- - better-sqlite3
- - cassandra-driver
- - cborg
- - cheerio
- - chromadb
- - closevector-common
- - closevector-node
- - closevector-web
- - cohere-ai
- - convex
- - crypto-js
- - d3-dsv
- - discord.js
- - duck-duck-scrape
- - encoding
- - epub2
- - fast-xml-parser
- - firebase-admin
- - google-auth-library
- - googleapis
- - handlebars
- - hnswlib-node
- - html-to-text
- - ibm-cloud-sdk-core
- - ignore
- - interface-datastore
- - ioredis
- - it-all
- - jsdom
- - jsonwebtoken
- - llmonitor
- - lodash
- - lunary
- - mammoth
- - mariadb
- - mem0ai
- - mongodb
- - mysql2
- - neo4j-driver
- - notion-to-md
- - officeparser
- - pdf-parse
- - peggy
- - pg
- - pg-copy-streams
- - pickleparser
- - playwright
- - portkey-ai
- - puppeteer
- - pyodide
- - react
- - redis
- - replicate
- - sonix-speech-recognition
- - srt-parser-2
- - supports-color
- - typeorm
- - typesense
- - usearch
- - voy-search
- - weaviate-client
- - web-auth-library
- - word-extractor
- - ws
- - youtubei.js
-
- '@copilotkit/shared@1.10.6':
- dependencies:
- '@ag-ui/core': 0.0.37
- '@segment/analytics-node': 2.3.0
- chalk: 4.1.2
- graphql: 16.11.0
- uuid: 10.0.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - encoding
-
- '@emnapi/core@1.5.0':
- dependencies:
- '@emnapi/wasi-threads': 1.1.0
- tslib: 2.8.1
- optional: true
-
- '@emnapi/runtime@1.5.0':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@emnapi/wasi-threads@1.1.0':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@envelop/core@5.3.2':
- dependencies:
- '@envelop/instrumentation': 1.0.0
- '@envelop/types': 5.2.1
- '@whatwg-node/promise-helpers': 1.3.2
- tslib: 2.8.1
-
- '@envelop/instrumentation@1.0.0':
- dependencies:
- '@whatwg-node/promise-helpers': 1.3.2
- tslib: 2.8.1
-
- '@envelop/types@5.2.1':
- dependencies:
- '@whatwg-node/promise-helpers': 1.3.2
- tslib: 2.8.1
-
- '@esbuild/aix-ppc64@0.25.10':
- optional: true
-
- '@esbuild/android-arm64@0.25.10':
- optional: true
-
- '@esbuild/android-arm@0.25.10':
- optional: true
-
- '@esbuild/android-x64@0.25.10':
- optional: true
-
- '@esbuild/darwin-arm64@0.25.10':
- optional: true
-
- '@esbuild/darwin-x64@0.25.10':
- optional: true
-
- '@esbuild/freebsd-arm64@0.25.10':
- optional: true
-
- '@esbuild/freebsd-x64@0.25.10':
- optional: true
-
- '@esbuild/linux-arm64@0.25.10':
- optional: true
-
- '@esbuild/linux-arm@0.25.10':
- optional: true
-
- '@esbuild/linux-ia32@0.25.10':
- optional: true
-
- '@esbuild/linux-loong64@0.25.10':
- optional: true
-
- '@esbuild/linux-mips64el@0.25.10':
- optional: true
-
- '@esbuild/linux-ppc64@0.25.10':
- optional: true
-
- '@esbuild/linux-riscv64@0.25.10':
- optional: true
-
- '@esbuild/linux-s390x@0.25.10':
- optional: true
-
- '@esbuild/linux-x64@0.25.10':
- optional: true
-
- '@esbuild/netbsd-arm64@0.25.10':
- optional: true
-
- '@esbuild/netbsd-x64@0.25.10':
- optional: true
-
- '@esbuild/openbsd-arm64@0.25.10':
- optional: true
-
- '@esbuild/openbsd-x64@0.25.10':
- optional: true
-
- '@esbuild/openharmony-arm64@0.25.10':
- optional: true
-
- '@esbuild/sunos-x64@0.25.10':
- optional: true
-
- '@esbuild/win32-arm64@0.25.10':
- optional: true
-
- '@esbuild/win32-ia32@0.25.10':
- optional: true
-
- '@esbuild/win32-x64@0.25.10':
- optional: true
-
- '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))':
- dependencies:
- eslint: 9.37.0(jiti@2.6.1)
- eslint-visitor-keys: 3.4.3
-
- '@eslint-community/regexpp@4.12.1': {}
-
- '@eslint/config-array@0.21.0':
- dependencies:
- '@eslint/object-schema': 2.1.6
- debug: 4.4.3
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/config-helpers@0.4.0':
- dependencies:
- '@eslint/core': 0.16.0
-
- '@eslint/core@0.16.0':
- dependencies:
- '@types/json-schema': 7.0.15
-
- '@eslint/eslintrc@3.3.1':
- dependencies:
- ajv: 6.12.6
- debug: 4.4.3
- espree: 10.4.0
- globals: 14.0.0
- ignore: 5.3.2
- import-fresh: 3.3.1
- js-yaml: 4.1.0
- minimatch: 3.1.2
- strip-json-comments: 3.1.1
- transitivePeerDependencies:
- - supports-color
-
- '@eslint/js@9.37.0': {}
-
- '@eslint/object-schema@2.1.6': {}
-
- '@eslint/plugin-kit@0.4.0':
- dependencies:
- '@eslint/core': 0.16.0
- levn: 0.4.1
-
- '@expo/devcert@1.2.0':
- dependencies:
- '@expo/sudo-prompt': 9.3.2
- debug: 3.2.7
- glob: 10.4.5
- transitivePeerDependencies:
- - supports-color
-
- '@expo/sudo-prompt@9.3.2': {}
-
- '@fastify/busboy@3.2.0': {}
-
- '@floating-ui/core@1.7.3':
- dependencies:
- '@floating-ui/utils': 0.2.10
-
- '@floating-ui/dom@1.7.4':
- dependencies:
- '@floating-ui/core': 1.7.3
- '@floating-ui/utils': 0.2.10
-
- '@floating-ui/react-dom@2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@floating-ui/dom': 1.7.4
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@floating-ui/react@0.26.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@floating-ui/utils': 0.2.10
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- tabbable: 6.2.0
-
- '@floating-ui/utils@0.2.10': {}
-
- '@graphql-tools/executor@1.4.9(graphql@16.11.0)':
- dependencies:
- '@graphql-tools/utils': 10.9.1(graphql@16.11.0)
- '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0)
- '@repeaterjs/repeater': 3.0.6
- '@whatwg-node/disposablestack': 0.0.6
- '@whatwg-node/promise-helpers': 1.3.2
- graphql: 16.11.0
- tslib: 2.8.1
-
- '@graphql-tools/merge@9.1.1(graphql@16.11.0)':
- dependencies:
- '@graphql-tools/utils': 10.9.1(graphql@16.11.0)
- graphql: 16.11.0
- tslib: 2.8.1
-
- '@graphql-tools/schema@10.0.25(graphql@16.11.0)':
- dependencies:
- '@graphql-tools/merge': 9.1.1(graphql@16.11.0)
- '@graphql-tools/utils': 10.9.1(graphql@16.11.0)
- graphql: 16.11.0
- tslib: 2.8.1
-
- '@graphql-tools/utils@10.9.1(graphql@16.11.0)':
- dependencies:
- '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0)
- '@whatwg-node/promise-helpers': 1.3.2
- cross-inspect: 1.0.1
- dset: 3.1.4
- graphql: 16.11.0
- tslib: 2.8.1
-
- '@graphql-typed-document-node/core@3.2.0(graphql@16.11.0)':
- dependencies:
- graphql: 16.11.0
-
- '@graphql-yoga/logger@2.0.1':
- dependencies:
- tslib: 2.8.1
-
- '@graphql-yoga/plugin-defer-stream@3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0)':
- dependencies:
- '@graphql-tools/utils': 10.9.1(graphql@16.11.0)
- graphql: 16.11.0
- graphql-yoga: 5.16.0(graphql@16.11.0)
-
- '@graphql-yoga/subscription@5.0.5':
- dependencies:
- '@graphql-yoga/typed-event-target': 3.0.2
- '@repeaterjs/repeater': 3.0.6
- '@whatwg-node/events': 0.1.2
- tslib: 2.8.1
-
- '@graphql-yoga/typed-event-target@3.0.2':
- dependencies:
- '@repeaterjs/repeater': 3.0.6
- tslib: 2.8.1
-
- '@grpc/grpc-js@1.14.0':
- dependencies:
- '@grpc/proto-loader': 0.8.0
- '@js-sdsl/ordered-map': 4.4.2
-
- '@grpc/proto-loader@0.8.0':
- dependencies:
- lodash.camelcase: 4.3.0
- long: 5.3.2
- protobufjs: 7.5.4
- yargs: 17.7.2
-
- '@headlessui/react@2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@floating-ui/react': 0.26.28(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/focus': 3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@tanstack/react-virtual': 3.13.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- use-sync-external-store: 1.6.0(react@19.2.0)
-
- '@humanfs/core@0.19.1': {}
-
- '@humanfs/node@0.16.7':
- dependencies:
- '@humanfs/core': 0.19.1
- '@humanwhocodes/retry': 0.4.3
-
- '@humanwhocodes/module-importer@1.0.1': {}
-
- '@humanwhocodes/retry@0.4.3': {}
-
- '@ibm-cloud/watsonx-ai@1.7.0':
- dependencies:
- '@types/node': 18.19.130
- extend: 3.0.2
- form-data: 4.0.4
- ibm-cloud-sdk-core: 5.4.3
- transitivePeerDependencies:
- - supports-color
-
- '@img/sharp-darwin-arm64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-darwin-arm64': 1.0.4
- optional: true
-
- '@img/sharp-darwin-x64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-darwin-x64': 1.0.4
- optional: true
-
- '@img/sharp-libvips-darwin-arm64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-darwin-x64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linux-arm64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linux-arm@1.0.5':
- optional: true
-
- '@img/sharp-libvips-linux-s390x@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linux-x64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
- optional: true
-
- '@img/sharp-libvips-linuxmusl-x64@1.0.4':
- optional: true
-
- '@img/sharp-linux-arm64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-arm64': 1.0.4
- optional: true
-
- '@img/sharp-linux-arm@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-arm': 1.0.5
- optional: true
-
- '@img/sharp-linux-s390x@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-s390x': 1.0.4
- optional: true
-
- '@img/sharp-linux-x64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linux-x64': 1.0.4
- optional: true
-
- '@img/sharp-linuxmusl-arm64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
- optional: true
-
- '@img/sharp-linuxmusl-x64@0.33.5':
- optionalDependencies:
- '@img/sharp-libvips-linuxmusl-x64': 1.0.4
- optional: true
-
- '@img/sharp-wasm32@0.33.5':
- dependencies:
- '@emnapi/runtime': 1.5.0
- optional: true
-
- '@img/sharp-win32-ia32@0.33.5':
- optional: true
-
- '@img/sharp-win32-x64@0.33.5':
- optional: true
-
- '@inquirer/ansi@1.0.1': {}
-
- '@inquirer/checkbox@4.3.0(@types/node@20.19.21)':
- dependencies:
- '@inquirer/ansi': 1.0.1
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/confirm@5.1.19(@types/node@20.19.21)':
- dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/core@10.3.0(@types/node@20.19.21)':
- dependencies:
- '@inquirer/ansi': 1.0.1
- '@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- cli-width: 4.1.0
- mute-stream: 2.0.0
- signal-exit: 4.1.0
- wrap-ansi: 6.2.0
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/editor@4.2.21(@types/node@20.19.21)':
- dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/external-editor': 1.0.2(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/expand@4.0.21(@types/node@20.19.21)':
- dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/external-editor@1.0.2(@types/node@20.19.21)':
- dependencies:
- chardet: 2.1.0
- iconv-lite: 0.7.0
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/figures@1.0.14': {}
-
- '@inquirer/input@4.2.5(@types/node@20.19.21)':
- dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/number@3.0.21(@types/node@20.19.21)':
- dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/password@4.0.21(@types/node@20.19.21)':
- dependencies:
- '@inquirer/ansi': 1.0.1
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/prompts@7.9.0(@types/node@20.19.21)':
- dependencies:
- '@inquirer/checkbox': 4.3.0(@types/node@20.19.21)
- '@inquirer/confirm': 5.1.19(@types/node@20.19.21)
- '@inquirer/editor': 4.2.21(@types/node@20.19.21)
- '@inquirer/expand': 4.0.21(@types/node@20.19.21)
- '@inquirer/input': 4.2.5(@types/node@20.19.21)
- '@inquirer/number': 3.0.21(@types/node@20.19.21)
- '@inquirer/password': 4.0.21(@types/node@20.19.21)
- '@inquirer/rawlist': 4.1.9(@types/node@20.19.21)
- '@inquirer/search': 3.2.0(@types/node@20.19.21)
- '@inquirer/select': 4.4.0(@types/node@20.19.21)
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/rawlist@4.1.9(@types/node@20.19.21)':
- dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/search@3.2.0(@types/node@20.19.21)':
- dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/select@4.4.0(@types/node@20.19.21)':
- dependencies:
- '@inquirer/ansi': 1.0.1
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- yoctocolors-cjs: 2.1.3
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@inquirer/type@3.0.9(@types/node@20.19.21)':
- optionalDependencies:
- '@types/node': 20.19.21
-
- '@isaacs/cliui@8.0.2':
- dependencies:
- string-width: 5.1.2
- string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.2
- strip-ansi-cjs: strip-ansi@6.0.1
- wrap-ansi: 8.1.0
- wrap-ansi-cjs: wrap-ansi@7.0.0
-
- '@isaacs/fs-minipass@4.0.1':
- dependencies:
- minipass: 7.1.2
-
- '@isaacs/ttlcache@1.4.1': {}
-
- '@istanbuljs/load-nyc-config@1.1.0':
- dependencies:
- camelcase: 5.3.1
- find-up: 4.1.0
- get-package-type: 0.1.0
- js-yaml: 3.14.1
- resolve-from: 5.0.0
-
- '@istanbuljs/schema@0.1.3': {}
-
- '@jest/console@29.7.0':
- dependencies:
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- chalk: 4.1.2
- jest-message-util: 29.7.0
- jest-util: 29.7.0
- slash: 3.0.0
-
- '@jest/core@29.7.0':
- dependencies:
- '@jest/console': 29.7.0
- '@jest/reporters': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- ci-info: 3.9.0
- exit: 0.1.2
- graceful-fs: 4.2.11
- jest-changed-files: 29.7.0
- jest-config: 29.7.0(@types/node@20.19.21)
- jest-haste-map: 29.7.0
- jest-message-util: 29.7.0
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-resolve-dependencies: 29.7.0
- jest-runner: 29.7.0
- jest-runtime: 29.7.0
- jest-snapshot: 29.7.0
- jest-util: 29.7.0
- jest-validate: 29.7.0
- jest-watcher: 29.7.0
- micromatch: 4.0.8
- pretty-format: 29.7.0
- slash: 3.0.0
- strip-ansi: 6.0.1
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
- - ts-node
-
- '@jest/environment@29.7.0':
- dependencies:
- '@jest/fake-timers': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- jest-mock: 29.7.0
-
- '@jest/expect-utils@29.7.0':
- dependencies:
- jest-get-type: 29.6.3
-
- '@jest/expect@29.7.0':
- dependencies:
- expect: 29.7.0
- jest-snapshot: 29.7.0
- transitivePeerDependencies:
- - supports-color
-
- '@jest/fake-timers@29.7.0':
- dependencies:
- '@jest/types': 29.6.3
- '@sinonjs/fake-timers': 10.3.0
- '@types/node': 20.19.21
- jest-message-util: 29.7.0
- jest-mock: 29.7.0
- jest-util: 29.7.0
-
- '@jest/globals@29.7.0':
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/expect': 29.7.0
- '@jest/types': 29.6.3
- jest-mock: 29.7.0
- transitivePeerDependencies:
- - supports-color
-
- '@jest/reporters@29.7.0':
- dependencies:
- '@bcoe/v8-coverage': 0.2.3
- '@jest/console': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.31
- '@types/node': 20.19.21
- chalk: 4.1.2
- collect-v8-coverage: 1.0.2
- exit: 0.1.2
- glob: 7.2.3
- graceful-fs: 4.2.11
- istanbul-lib-coverage: 3.2.2
- istanbul-lib-instrument: 6.0.3
- istanbul-lib-report: 3.0.1
- istanbul-lib-source-maps: 4.0.1
- istanbul-reports: 3.2.0
- jest-message-util: 29.7.0
- jest-util: 29.7.0
- jest-worker: 29.7.0
- slash: 3.0.0
- string-length: 4.0.2
- strip-ansi: 6.0.1
- v8-to-istanbul: 9.3.0
- transitivePeerDependencies:
- - supports-color
-
- '@jest/schemas@29.6.3':
- dependencies:
- '@sinclair/typebox': 0.27.8
-
- '@jest/source-map@29.6.3':
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- callsites: 3.1.0
- graceful-fs: 4.2.11
-
- '@jest/test-result@29.7.0':
- dependencies:
- '@jest/console': 29.7.0
- '@jest/types': 29.6.3
- '@types/istanbul-lib-coverage': 2.0.6
- collect-v8-coverage: 1.0.2
-
- '@jest/test-sequencer@29.7.0':
- dependencies:
- '@jest/test-result': 29.7.0
- graceful-fs: 4.2.11
- jest-haste-map: 29.7.0
- slash: 3.0.0
-
- '@jest/transform@29.7.0':
- dependencies:
- '@babel/core': 7.28.4
- '@jest/types': 29.6.3
- '@jridgewell/trace-mapping': 0.3.31
- babel-plugin-istanbul: 6.1.1
- chalk: 4.1.2
- convert-source-map: 2.0.0
- fast-json-stable-stringify: 2.1.0
- graceful-fs: 4.2.11
- jest-haste-map: 29.7.0
- jest-regex-util: 29.6.3
- jest-util: 29.7.0
- micromatch: 4.0.8
- pirates: 4.0.7
- slash: 3.0.0
- write-file-atomic: 4.0.2
- transitivePeerDependencies:
- - supports-color
-
- '@jest/types@29.6.3':
- dependencies:
- '@jest/schemas': 29.6.3
- '@types/istanbul-lib-coverage': 2.0.6
- '@types/istanbul-reports': 3.0.4
- '@types/node': 20.19.21
- '@types/yargs': 17.0.33
- chalk: 4.1.2
-
- '@jridgewell/gen-mapping@0.3.13':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/remapping@2.3.5':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
-
- '@jridgewell/resolve-uri@3.1.2': {}
-
- '@jridgewell/sourcemap-codec@1.5.5': {}
-
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
-
- '@js-sdsl/ordered-map@4.4.2': {}
-
- '@jsdevtools/ono@7.1.3': {}
-
- '@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))':
- dependencies:
- '@aws-sdk/client-bedrock-agent-runtime': 3.910.0
- '@aws-sdk/client-bedrock-runtime': 3.910.0
- '@aws-sdk/client-kendra': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- transitivePeerDependencies:
- - aws-crt
-
- '@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))':
- dependencies:
- '@aws-sdk/client-bedrock-agent-runtime': 3.910.0
- '@aws-sdk/client-bedrock-runtime': 3.910.0
- '@aws-sdk/client-kendra': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- transitivePeerDependencies:
- - aws-crt
-
- '@langchain/community@0.3.57(8d705aac09841dc81e24dfe2c773558d)':
- dependencies:
- '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)
- '@ibm-cloud/watsonx-ai': 1.7.0
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)
- '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))
- binary-extensions: 2.3.0
- expr-eval: 2.0.2
- flat: 5.0.2
- ibm-cloud-sdk-core: 5.4.3
- js-yaml: 4.1.0
- langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3)
- langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
- uuid: 10.0.0
- zod: 3.25.76
- optionalDependencies:
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/client-bedrock-agent-runtime': 3.910.0
- '@aws-sdk/client-bedrock-runtime': 3.910.0
- '@aws-sdk/client-dynamodb': 3.910.0
- '@aws-sdk/client-kendra': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@browserbasehq/sdk': 2.6.0
- '@smithy/util-utf8': 2.3.0
- '@upstash/redis': 1.35.6
- fast-xml-parser: 5.2.5
- google-auth-library: 8.9.0
- ignore: 5.3.2
- jsonwebtoken: 9.0.2
- pg: 8.16.3
- playwright: 1.56.0
- redis: 5.8.3
- weaviate-client: 3.9.0
- ws: 8.18.3
- transitivePeerDependencies:
- - '@langchain/anthropic'
- - '@langchain/aws'
- - '@langchain/cerebras'
- - '@langchain/cohere'
- - '@langchain/deepseek'
- - '@langchain/google-genai'
- - '@langchain/google-vertexai'
- - '@langchain/google-vertexai-web'
- - '@langchain/groq'
- - '@langchain/mistralai'
- - '@langchain/ollama'
- - '@langchain/xai'
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - axios
- - encoding
- - handlebars
- - peggy
-
- '@langchain/community@0.3.57(a6f05470c76b31786172bd3244671918)':
- dependencies:
- '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)
- '@ibm-cloud/watsonx-ai': 1.7.0
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)
- '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))
- binary-extensions: 2.3.0
- expr-eval: 2.0.2
- flat: 5.0.2
- ibm-cloud-sdk-core: 5.4.3
- js-yaml: 4.1.0
- langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3)
- langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
- uuid: 10.0.0
- zod: 3.25.76
- optionalDependencies:
- '@aws-crypto/sha256-js': 5.2.0
- '@aws-sdk/client-bedrock-agent-runtime': 3.910.0
- '@aws-sdk/client-bedrock-runtime': 3.910.0
- '@aws-sdk/client-dynamodb': 3.910.0
- '@aws-sdk/client-kendra': 3.910.0
- '@aws-sdk/credential-provider-node': 3.910.0
- '@browserbasehq/sdk': 2.6.0
- '@smithy/util-utf8': 2.3.0
- '@upstash/redis': 1.35.6
- fast-xml-parser: 5.2.5
- google-auth-library: 8.9.0
- ignore: 5.3.2
- jsonwebtoken: 9.0.2
- pg: 8.16.3
- playwright: 1.56.0
- redis: 5.8.3
- weaviate-client: 3.9.0
- ws: 8.18.3
- transitivePeerDependencies:
- - '@langchain/anthropic'
- - '@langchain/aws'
- - '@langchain/cerebras'
- - '@langchain/cohere'
- - '@langchain/deepseek'
- - '@langchain/google-genai'
- - '@langchain/google-vertexai'
- - '@langchain/google-vertexai-web'
- - '@langchain/groq'
- - '@langchain/mistralai'
- - '@langchain/ollama'
- - '@langchain/xai'
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - axios
- - encoding
- - handlebars
- - peggy
-
- '@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))':
- dependencies:
- '@cfworker/json-schema': 4.1.1
- ansi-styles: 5.2.0
- camelcase: 6.3.0
- decamelize: 1.2.0
- js-tiktoken: 1.0.21
- langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- mustache: 4.2.0
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 10.0.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - openai
-
- '@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))':
- dependencies:
- '@cfworker/json-schema': 4.1.1
- ansi-styles: 5.2.0
- camelcase: 6.3.0
- decamelize: 1.2.0
- js-tiktoken: 1.0.21
- langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- mustache: 4.2.0
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 10.0.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - openai
-
- '@langchain/google-common@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- uuid: 10.0.0
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - zod
-
- '@langchain/google-common@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- uuid: 10.0.0
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - zod
-
- '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- '@langchain/google-common': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)
- google-auth-library: 8.9.0
- transitivePeerDependencies:
- - encoding
- - supports-color
- - zod
-
- '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- '@langchain/google-common': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)
- google-auth-library: 8.9.0
- transitivePeerDependencies:
- - encoding
- - supports-color
- - zod
-
- '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)':
- dependencies:
- '@types/json-schema': 7.0.15
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 9.0.1
- optionalDependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- react: 19.2.0
-
- '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)':
- dependencies:
- '@types/json-schema': 7.0.15
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 9.0.1
- optionalDependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- react: 19.2.0
-
- '@langchain/langgraph-sdk@0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@types/json-schema': 7.0.15
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 9.0.1
- optionalDependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@langchain/openai@0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- js-tiktoken: 1.0.21
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - encoding
- - ws
-
- '@langchain/openai@0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- js-tiktoken: 1.0.21
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - encoding
- - ws
-
- '@langchain/openai@0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- js-tiktoken: 1.0.21
- openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
- zod: 3.25.76
- transitivePeerDependencies:
- - ws
-
- '@langchain/openai@0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- js-tiktoken: 1.0.21
- openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
- zod: 3.25.76
- transitivePeerDependencies:
- - ws
-
- '@langchain/textsplitters@0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- js-tiktoken: 1.0.21
-
- '@langchain/textsplitters@0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- js-tiktoken: 1.0.21
-
- '@langchain/weaviate@0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- uuid: 10.0.0
- weaviate-client: 3.9.0
- transitivePeerDependencies:
- - encoding
-
- '@langchain/weaviate@0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))':
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- uuid: 10.0.0
- weaviate-client: 3.9.0
- transitivePeerDependencies:
- - encoding
-
- '@libsql/client@0.15.15':
- dependencies:
- '@libsql/core': 0.15.15
- '@libsql/hrana-client': 0.7.0
- js-base64: 3.7.8
- libsql: 0.5.22
- promise-limit: 2.7.0
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- '@libsql/core@0.15.15':
- dependencies:
- js-base64: 3.7.8
-
- '@libsql/darwin-arm64@0.5.22':
- optional: true
-
- '@libsql/darwin-x64@0.5.22':
- optional: true
-
- '@libsql/hrana-client@0.7.0':
- dependencies:
- '@libsql/isomorphic-fetch': 0.3.1
- '@libsql/isomorphic-ws': 0.1.5
- js-base64: 3.7.8
- node-fetch: 3.3.2
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- '@libsql/isomorphic-fetch@0.3.1': {}
-
- '@libsql/isomorphic-ws@0.1.5':
- dependencies:
- '@types/ws': 8.18.1
- ws: 8.18.3
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- '@libsql/linux-arm-gnueabihf@0.5.22':
- optional: true
-
- '@libsql/linux-arm-musleabihf@0.5.22':
- optional: true
-
- '@libsql/linux-arm64-gnu@0.5.22':
- optional: true
-
- '@libsql/linux-arm64-musl@0.5.22':
- optional: true
-
- '@libsql/linux-x64-gnu@0.5.22':
- optional: true
-
- '@libsql/linux-x64-musl@0.5.22':
- optional: true
-
- '@libsql/win32-x64-msvc@0.5.22':
- optional: true
-
- '@lukeed/csprng@1.1.0': {}
-
- '@lukeed/uuid@2.0.1':
- dependencies:
- '@lukeed/csprng': 1.1.0
-
- '@mastra/client-js@0.10.18(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)':
- dependencies:
- '@ag-ui/client': 0.0.35
- '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76)
- '@lukeed/uuid': 2.0.1
- '@mastra/core': 0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- json-schema: 0.4.0
- rxjs: 7.8.1
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@hono/arktype-validator'
- - '@hono/effect-validator'
- - '@hono/typebox-validator'
- - '@hono/valibot-validator'
- - '@hono/zod-validator'
- - '@sinclair/typebox'
- - '@valibot/to-json-schema'
- - arktype
- - effect
- - encoding
- - openapi-types
- - react
- - supports-color
- - valibot
- - zod-openapi
-
- '@mastra/client-js@0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)':
- dependencies:
- '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76)
- '@lukeed/uuid': 2.0.1
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- json-schema: 0.4.0
- rxjs: 7.8.1
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@hono/arktype-validator'
- - '@hono/effect-validator'
- - '@hono/typebox-validator'
- - '@hono/valibot-validator'
- - '@hono/zod-validator'
- - '@sinclair/typebox'
- - '@valibot/to-json-schema'
- - arktype
- - effect
- - encoding
- - openapi-types
- - react
- - supports-color
- - valibot
- - zod-openapi
-
- '@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)':
- dependencies:
- '@ai-sdk/provider': 1.1.3
- '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76)
- '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76)
- '@mastra/schema-compat': 0.10.5(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/auto-instrumentations-node': 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@sindresorhus/slugify': 2.2.1
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
- date-fns: 3.6.0
- dotenv: 16.6.1
- hono: 4.9.12
- hono-openapi: 0.4.8(hono@4.9.12)(openapi-types@12.1.3)(zod@3.25.76)
- json-schema: 0.4.0
- json-schema-to-zod: 2.6.1
- pino: 9.13.1
- pino-pretty: 13.1.2
- radash: 12.1.1
- sift: 17.1.3
- xstate: 5.23.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@hono/arktype-validator'
- - '@hono/effect-validator'
- - '@hono/typebox-validator'
- - '@hono/valibot-validator'
- - '@hono/zod-validator'
- - '@sinclair/typebox'
- - '@valibot/to-json-schema'
- - arktype
- - effect
- - encoding
- - openapi-types
- - react
- - supports-color
- - valibot
- - zod-openapi
-
- '@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)':
- dependencies:
- '@a2a-js/sdk': 0.2.5
- '@ai-sdk/anthropic-v5': '@ai-sdk/anthropic@2.0.23(zod@3.25.76)'
- '@ai-sdk/google-v5': '@ai-sdk/google@2.0.17(zod@3.25.76)'
- '@ai-sdk/openai-compatible-v5': '@ai-sdk/openai-compatible@1.0.19(zod@3.25.76)'
- '@ai-sdk/openai-v5': '@ai-sdk/openai@2.0.42(zod@3.25.76)'
- '@ai-sdk/provider': 1.1.3
- '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76)
- '@ai-sdk/provider-utils-v5': '@ai-sdk/provider-utils@3.0.10(zod@3.25.76)'
- '@ai-sdk/provider-v5': '@ai-sdk/provider@2.0.0'
- '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76)
- '@ai-sdk/xai-v5': '@ai-sdk/xai@2.0.23(zod@3.25.76)'
- '@isaacs/ttlcache': 1.4.1
- '@mastra/schema-compat': 0.11.4(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)
- '@openrouter/ai-sdk-provider-v5': '@openrouter/ai-sdk-provider@1.2.0(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)'
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/auto-instrumentations-node': 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@sindresorhus/slugify': 2.2.1
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
- ai-v5: ai@5.0.60(zod@3.25.76)
- date-fns: 3.6.0
- dotenv: 16.6.1
- hono: 4.9.12
- hono-openapi: 0.4.8(hono@4.9.12)(openapi-types@12.1.3)(zod@3.25.76)
- js-tiktoken: 1.0.21
- json-schema: 0.4.0
- json-schema-to-zod: 2.6.1
- p-map: 7.0.3
- pino: 9.13.1
- pino-pretty: 13.1.2
- radash: 12.1.1
- sift: 17.1.3
- xstate: 5.23.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@hono/arktype-validator'
- - '@hono/effect-validator'
- - '@hono/typebox-validator'
- - '@hono/valibot-validator'
- - '@hono/zod-validator'
- - '@sinclair/typebox'
- - '@valibot/to-json-schema'
- - arktype
- - effect
- - encoding
- - openapi-types
- - react
- - supports-color
- - valibot
- - zod-openapi
-
- '@mastra/deployer@0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(typescript@5.9.3)(zod@3.25.76)':
- dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-imports': 7.27.1
- '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4)
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/server': 0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(zod@3.25.76)
- '@neon-rs/load': 0.1.82
- '@optimize-lodash/rollup-plugin': 5.0.2(rollup@4.50.2)
- '@rollup/plugin-alias': 5.1.1(rollup@4.50.2)
- '@rollup/plugin-commonjs': 28.0.7(rollup@4.50.2)
- '@rollup/plugin-esm-shim': 0.1.8(rollup@4.50.2)
- '@rollup/plugin-json': 6.1.0(rollup@4.50.2)
- '@rollup/plugin-node-resolve': 16.0.3(rollup@4.50.2)
- '@rollup/plugin-virtual': 3.0.2(rollup@4.50.2)
- '@sindresorhus/slugify': 2.2.1
- builtins: 5.1.0
- detect-libc: 2.1.2
- dotenv: 16.6.1
- empathic: 2.0.0
- esbuild: 0.25.10
- find-workspaces: 0.3.1
- fs-extra: 11.3.2
- hono: 4.9.12
- local-pkg: 1.1.2
- resolve-from: 5.0.0
- resolve.exports: 2.0.3
- rollup: 4.50.2
- rollup-plugin-esbuild: 6.2.1(esbuild@0.25.10)(rollup@4.50.2)
- rollup-plugin-node-externals: 8.1.1(rollup@4.50.2)
- tinyglobby: 0.2.15
- typescript-paths: 1.5.1(typescript@5.9.3)
- zod: 3.25.76
- transitivePeerDependencies:
- - supports-color
- - typescript
-
- '@mastra/dynamodb@0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))':
- dependencies:
- '@aws-sdk/client-dynamodb': 3.910.0
- '@aws-sdk/lib-dynamodb': 3.910.0(@aws-sdk/client-dynamodb@3.910.0)
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- electrodb: 3.4.7(@aws-sdk/client-dynamodb@3.910.0)
- transitivePeerDependencies:
- - aws-crt
-
- '@mastra/libsql@0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))':
- dependencies:
- '@libsql/client': 0.15.15
- '@mastra/core': 0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- '@mastra/libsql@0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))':
- dependencies:
- '@libsql/client': 0.15.15
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- transitivePeerDependencies:
- - bufferutil
- - utf-8-validate
-
- '@mastra/loggers@0.10.15(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))':
- dependencies:
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- pino: 9.13.1
- pino-pretty: 13.1.2
-
- '@mastra/loggers@0.10.5(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))':
- dependencies:
- '@mastra/core': 0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- pino: 9.13.1
- pino-pretty: 13.1.2
-
- '@mastra/mcp@0.13.4(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(@types/json-schema@7.0.15)(zod@3.25.76)':
- dependencies:
- '@apidevtools/json-schema-ref-parser': 14.2.1(@types/json-schema@7.0.15)
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@modelcontextprotocol/sdk': 1.20.0
- date-fns: 4.1.0
- exit-hook: 4.0.0
- fast-deep-equal: 3.1.3
- uuid: 11.1.0
- zod: 3.25.76
- zod-from-json-schema: 0.5.0
- zod-from-json-schema-v3: zod-from-json-schema@0.0.5
- transitivePeerDependencies:
- - '@types/json-schema'
- - supports-color
-
- '@mastra/memory@0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)':
- dependencies:
- '@mastra/core': 0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@upstash/redis': 1.35.6
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
- async-mutex: 0.5.0
- js-tiktoken: 1.0.21
- json-schema: 0.4.0
- pg: 8.16.3
- pg-pool: 3.10.1(pg@8.16.3)
- postgres: 3.4.7
- redis: 5.8.3
- xxhash-wasm: 1.1.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - pg-native
- - react
-
- '@mastra/memory@0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76)':
- dependencies:
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/schema-compat': 0.11.4(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)
- '@upstash/redis': 1.35.6
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
- ai-v5: ai@5.0.60(zod@3.25.76)
- async-mutex: 0.5.0
- js-tiktoken: 1.0.21
- json-schema: 0.4.0
- pg: 8.16.3
- pg-pool: 3.10.1(pg@8.16.3)
- postgres: 3.4.7
- redis: 5.8.3
- xxhash-wasm: 1.1.0
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - pg-native
- - react
-
- '@mastra/schema-compat@0.10.5(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)':
- dependencies:
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
- json-schema: 0.4.0
- zod: 3.25.76
- zod-from-json-schema: 0.0.5
- zod-to-json-schema: 3.24.6(zod@3.25.76)
-
- '@mastra/schema-compat@0.11.4(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)':
- dependencies:
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
- json-schema: 0.4.0
- zod: 3.25.76
- zod-from-json-schema: 0.5.0
- zod-from-json-schema-v3: zod-from-json-schema@0.0.5
- zod-to-json-schema: 3.24.6(zod@3.25.76)
-
- '@mastra/server@0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(zod@3.25.76)':
- dependencies:
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- zod: 3.25.76
-
- '@mdx-js/loader@3.1.1':
- dependencies:
- '@mdx-js/mdx': 3.1.1
- source-map: 0.7.6
- transitivePeerDependencies:
- - supports-color
-
- '@mdx-js/mdx@3.1.1':
- dependencies:
- '@types/estree': 1.0.8
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdx': 2.0.13
- acorn: 8.15.0
- collapse-white-space: 2.1.0
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- estree-util-scope: 1.0.0
- estree-walker: 3.0.3
- hast-util-to-jsx-runtime: 2.3.6
- markdown-extensions: 2.0.0
- recma-build-jsx: 1.0.0
- recma-jsx: 1.0.1(acorn@8.15.0)
- recma-stringify: 1.0.0
- rehype-recma: 1.0.0
- remark-mdx: 3.1.1
- remark-parse: 11.0.0
- remark-rehype: 11.1.2
- source-map: 0.7.6
- unified: 11.0.5
- unist-util-position-from-estree: 2.0.0
- unist-util-stringify-position: 4.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
- transitivePeerDependencies:
- - supports-color
-
- '@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@types/mdx': 2.0.13
- '@types/react': 19.2.2
- react: 19.2.0
-
- '@modelcontextprotocol/sdk@1.20.0':
- dependencies:
- ajv: 6.12.6
- content-type: 1.0.5
- cors: 2.8.5
- cross-spawn: 7.0.6
- eventsource: 3.0.7
- eventsource-parser: 3.0.6
- express: 5.1.0
- express-rate-limit: 7.5.1(express@5.1.0)
- pkce-challenge: 5.0.0
- raw-body: 3.0.1
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - supports-color
-
- '@monaco-editor/loader@1.6.1':
- dependencies:
- state-local: 1.0.7
-
- '@monaco-editor/react@4.7.0(monaco-editor@0.54.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@monaco-editor/loader': 1.6.1
- monaco-editor: 0.54.0
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@napi-rs/wasm-runtime@0.2.12':
- dependencies:
- '@emnapi/core': 1.5.0
- '@emnapi/runtime': 1.5.0
- '@tybys/wasm-util': 0.10.1
- optional: true
-
- '@neon-rs/load@0.0.4': {}
-
- '@neon-rs/load@0.1.82': {}
-
- '@next/env@15.2.1': {}
-
- '@next/eslint-plugin-next@15.2.1':
- dependencies:
- fast-glob: 3.3.1
-
- '@next/mdx@15.5.5(@mdx-js/loader@3.1.1)(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0))':
- dependencies:
- source-map: 0.7.6
- optionalDependencies:
- '@mdx-js/loader': 3.1.1
- '@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@19.2.0)
-
- '@next/swc-darwin-arm64@15.2.1':
- optional: true
-
- '@next/swc-darwin-x64@15.2.1':
- optional: true
-
- '@next/swc-linux-arm64-gnu@15.2.1':
- optional: true
-
- '@next/swc-linux-arm64-musl@15.2.1':
- optional: true
-
- '@next/swc-linux-x64-gnu@15.2.1':
- optional: true
-
- '@next/swc-linux-x64-musl@15.2.1':
- optional: true
-
- '@next/swc-win32-arm64-msvc@15.2.1':
- optional: true
-
- '@next/swc-win32-x64-msvc@15.2.1':
- optional: true
-
- '@nodelib/fs.scandir@2.1.5':
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- run-parallel: 1.2.0
-
- '@nodelib/fs.stat@2.0.5': {}
-
- '@nodelib/fs.walk@1.2.8':
- dependencies:
- '@nodelib/fs.scandir': 2.1.5
- fastq: 1.19.1
-
- '@nolyfill/is-core-module@1.0.39': {}
-
- '@openrouter/ai-sdk-provider@1.2.0(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)':
- dependencies:
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
- zod: 3.25.76
-
- '@opentelemetry/api-logs@0.203.0':
- dependencies:
- '@opentelemetry/api': 1.9.0
-
- '@opentelemetry/api@1.9.0': {}
-
- '@opentelemetry/auto-instrumentations-node@0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-amqplib': 0.50.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-aws-lambda': 0.54.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-aws-sdk': 0.58.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-bunyan': 0.49.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-cassandra-driver': 0.49.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-connect': 0.47.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-cucumber': 0.19.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-dataloader': 0.21.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-dns': 0.47.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-express': 0.52.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-fastify': 0.48.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-fs': 0.23.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-generic-pool': 0.47.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-graphql': 0.51.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-grpc': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-hapi': 0.50.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-ioredis': 0.51.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-kafkajs': 0.13.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-knex': 0.48.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-koa': 0.51.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-lru-memoizer': 0.48.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-memcached': 0.47.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-mongodb': 0.56.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-mongoose': 0.50.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-mysql': 0.49.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-mysql2': 0.50.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-nestjs-core': 0.49.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-net': 0.47.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-oracledb': 0.29.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-pg': 0.56.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-pino': 0.50.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-redis': 0.52.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-restify': 0.49.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-router': 0.48.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-runtime-node': 0.17.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-socket.io': 0.50.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-tedious': 0.22.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-undici': 0.14.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation-winston': 0.48.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/resource-detector-alibaba-cloud': 0.31.9(@opentelemetry/api@1.9.0)
- '@opentelemetry/resource-detector-aws': 2.6.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resource-detector-azure': 0.10.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resource-detector-container': 0.7.9(@opentelemetry/api@1.9.0)
- '@opentelemetry/resource-detector-gcp': 0.37.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
-
- '@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
-
- '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/exporter-logs-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@grpc/grpc-js': 1.14.0
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-logs-otlp-http@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-logs-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-logs': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-metrics-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@grpc/grpc-js': 1.14.0
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-metrics-otlp-http@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-metrics-otlp-proto@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-prometheus@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-metrics': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-trace-otlp-grpc@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@grpc/grpc-js': 1.14.0
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-grpc-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@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.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@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.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/exporter-zipkin@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/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/instrumentation-amqplib@0.50.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-aws-lambda@0.54.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@types/aws-lambda': 8.10.152
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-aws-sdk@0.58.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-bunyan@0.49.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@types/bunyan': 1.8.11
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-cassandra-driver@0.49.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-connect@0.47.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@types/connect': 3.4.38
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-cucumber@0.19.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-dataloader@0.21.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-dns@0.47.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-express@0.52.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-fastify@0.48.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-fs@0.23.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-generic-pool@0.47.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-graphql@0.51.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-grpc@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-hapi@0.50.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-http@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- forwarded-parse: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-ioredis@0.51.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/redis-common': 0.38.2
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-kafkajs@0.13.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-knex@0.48.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-koa@0.51.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-lru-memoizer@0.48.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-memcached@0.47.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@types/memcached': 2.2.10
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-mongodb@0.56.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-mongoose@0.50.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-mysql2@0.50.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-mysql@0.49.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@types/mysql': 2.15.27
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-nestjs-core@0.49.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-net@0.47.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-oracledb@0.29.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@types/oracledb': 6.5.2
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-pg@0.56.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0)
- '@types/pg': 8.15.5
- '@types/pg-pool': 2.0.6
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-pino@0.50.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-redis@0.52.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/redis-common': 0.38.2
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-restify@0.49.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-router@0.48.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-runtime-node@0.17.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-socket.io@0.50.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-tedious@0.22.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@types/tedious': 4.0.14
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-undici@0.14.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation-winston@0.48.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- import-in-the-middle: 1.15.0
- require-in-the-middle: 7.5.2
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/otlp-exporter-base@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/otlp-grpc-exporter-base@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@grpc/grpc-js': 1.14.0
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@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-transformer@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-logs': 0.203.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)
- protobufjs: 7.5.4
-
- '@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@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/redis-common@0.38.2': {}
-
- '@opentelemetry/resource-detector-alibaba-cloud@0.31.9(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/resource-detector-aws@2.6.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/resource-detector-azure@0.10.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/resource-detector-container@0.7.9(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/resource-detector-gcp@0.37.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- gcp-metadata: 6.1.1
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- '@opentelemetry/resources@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/semantic-conventions': 1.37.0
-
- '@opentelemetry/resources@2.1.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/sdk-logs@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/sdk-metrics@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/resources': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/sdk-metrics@2.1.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/sdk-node@0.203.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-logs-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-logs-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-logs-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-metrics-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-metrics-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-metrics-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-prometheus': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-zipkin': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/propagator-b3': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/propagator-jaeger': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-logs': 0.203.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)
- '@opentelemetry/sdk-trace-node': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- transitivePeerDependencies:
- - supports-color
-
- '@opentelemetry/sdk-trace-base@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/resources': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
-
- '@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/sdk-trace-node@2.1.0(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/context-async-hooks': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
-
- '@opentelemetry/semantic-conventions@1.37.0': {}
-
- '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)':
- dependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
-
- '@optimize-lodash/rollup-plugin@5.0.2(rollup@4.50.2)':
- dependencies:
- '@optimize-lodash/transform': 3.0.6
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
- rollup: 4.50.2
-
- '@optimize-lodash/transform@3.0.6':
- dependencies:
- estree-walker: 2.0.2
- magic-string: 0.30.19
-
- '@phosphor-icons/react@2.1.10(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@pkgjs/parseargs@0.11.0':
- optional: true
-
- '@playwright/test@1.56.0':
- dependencies:
- playwright: 1.56.0
-
- '@popperjs/core@2.11.8': {}
-
- '@protobuf-ts/protoc@2.11.1': {}
-
- '@protobufjs/aspromise@1.1.2': {}
-
- '@protobufjs/base64@1.1.2': {}
-
- '@protobufjs/codegen@2.0.4': {}
-
- '@protobufjs/eventemitter@1.1.0': {}
-
- '@protobufjs/fetch@1.1.0':
- dependencies:
- '@protobufjs/aspromise': 1.1.2
- '@protobufjs/inquire': 1.1.0
-
- '@protobufjs/float@1.0.2': {}
-
- '@protobufjs/inquire@1.1.0': {}
-
- '@protobufjs/path@1.1.2': {}
-
- '@protobufjs/pool@1.1.0': {}
-
- '@protobufjs/utf8@1.1.0': {}
-
- '@radix-ui/primitive@1.1.3': {}
-
- '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-context@1.1.2(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-direction@1.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-id@1.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- aria-hidden: 1.2.6
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@floating-ui/react-dom': 2.1.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/rect': 1.1.1
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-slot@1.2.3(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@radix-ui/primitive': 1.1.3
- '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
- '@types/react-dom': 19.2.2(@types/react@19.2.2)
-
- '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.2.0)
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@radix-ui/rect': 1.1.1
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/react-use-size@1.1.1(@types/react@19.2.2)(react@19.2.0)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.2.0)
- react: 19.2.0
- optionalDependencies:
- '@types/react': 19.2.2
-
- '@radix-ui/rect@1.1.1': {}
-
- '@react-aria/focus@3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@react-aria/interactions': 3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@swc/helpers': 0.5.17
- clsx: 2.1.1
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@react-aria/interactions@3.25.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-aria/utils': 3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@react-stately/flags': 3.1.2
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@swc/helpers': 0.5.17
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@react-aria/ssr@3.9.10(react@19.2.0)':
- dependencies:
- '@swc/helpers': 0.5.17
- react: 19.2.0
-
- '@react-aria/utils@3.31.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@react-aria/ssr': 3.9.10(react@19.2.0)
- '@react-stately/flags': 3.1.2
- '@react-stately/utils': 3.10.8(react@19.2.0)
- '@react-types/shared': 3.32.1(react@19.2.0)
- '@swc/helpers': 0.5.17
- clsx: 2.1.1
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@react-stately/flags@3.1.2':
- dependencies:
- '@swc/helpers': 0.5.17
-
- '@react-stately/utils@3.10.8(react@19.2.0)':
- dependencies:
- '@swc/helpers': 0.5.17
- react: 19.2.0
-
- '@react-types/shared@3.32.1(react@19.2.0)':
- dependencies:
- react: 19.2.0
-
- '@redis/bloom@5.8.3(@redis/client@5.8.3)':
- dependencies:
- '@redis/client': 5.8.3
-
- '@redis/client@5.8.3':
- dependencies:
- cluster-key-slot: 1.1.2
-
- '@redis/json@5.8.3(@redis/client@5.8.3)':
- dependencies:
- '@redis/client': 5.8.3
-
- '@redis/search@5.8.3(@redis/client@5.8.3)':
- dependencies:
- '@redis/client': 5.8.3
-
- '@redis/time-series@5.8.3(@redis/client@5.8.3)':
- dependencies:
- '@redis/client': 5.8.3
-
- '@remirror/core-constants@3.0.0': {}
-
- '@repeaterjs/repeater@3.0.6': {}
-
- '@rollup/plugin-alias@5.1.1(rollup@4.50.2)':
- optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/plugin-commonjs@28.0.7(rollup@4.50.2)':
- dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
- commondir: 1.0.1
- estree-walker: 2.0.2
- fdir: 6.5.0(picomatch@4.0.3)
- is-reference: 1.2.1
- magic-string: 0.30.19
- picomatch: 4.0.3
- optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/plugin-esm-shim@0.1.8(rollup@4.50.2)':
- dependencies:
- magic-string: 0.30.19
- mlly: 1.8.0
- optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/plugin-json@6.1.0(rollup@4.50.2)':
- dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
- optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/plugin-node-resolve@16.0.3(rollup@4.50.2)':
- dependencies:
- '@rollup/pluginutils': 5.3.0(rollup@4.50.2)
- '@types/resolve': 1.20.2
- deepmerge: 4.3.1
- is-module: 1.0.0
- resolve: 1.22.10
- optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/plugin-virtual@3.0.2(rollup@4.50.2)':
- optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/pluginutils@5.3.0(rollup@4.50.2)':
- dependencies:
- '@types/estree': 1.0.8
- estree-walker: 2.0.2
- picomatch: 4.0.3
- optionalDependencies:
- rollup: 4.50.2
-
- '@rollup/rollup-android-arm-eabi@4.50.2':
- optional: true
-
- '@rollup/rollup-android-arm-eabi@4.52.4':
- optional: true
-
- '@rollup/rollup-android-arm64@4.50.2':
- optional: true
-
- '@rollup/rollup-android-arm64@4.52.4':
- optional: true
-
- '@rollup/rollup-darwin-arm64@4.50.2':
- optional: true
-
- '@rollup/rollup-darwin-arm64@4.52.4':
- optional: true
-
- '@rollup/rollup-darwin-x64@4.50.2':
- optional: true
-
- '@rollup/rollup-darwin-x64@4.52.4':
- optional: true
-
- '@rollup/rollup-freebsd-arm64@4.50.2':
- optional: true
-
- '@rollup/rollup-freebsd-arm64@4.52.4':
- optional: true
-
- '@rollup/rollup-freebsd-x64@4.50.2':
- optional: true
-
- '@rollup/rollup-freebsd-x64@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-arm-gnueabihf@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-arm-gnueabihf@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-arm-musleabihf@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-arm-musleabihf@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-arm64-gnu@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-arm64-gnu@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-arm64-musl@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-arm64-musl@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-loong64-gnu@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-loong64-gnu@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-ppc64-gnu@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-ppc64-gnu@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-riscv64-gnu@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-riscv64-gnu@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-riscv64-musl@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-riscv64-musl@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-s390x-gnu@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-s390x-gnu@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-x64-gnu@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-x64-gnu@4.52.4':
- optional: true
-
- '@rollup/rollup-linux-x64-musl@4.50.2':
- optional: true
-
- '@rollup/rollup-linux-x64-musl@4.52.4':
- optional: true
-
- '@rollup/rollup-openharmony-arm64@4.50.2':
- optional: true
-
- '@rollup/rollup-openharmony-arm64@4.52.4':
- optional: true
-
- '@rollup/rollup-win32-arm64-msvc@4.50.2':
- optional: true
-
- '@rollup/rollup-win32-arm64-msvc@4.52.4':
- optional: true
-
- '@rollup/rollup-win32-ia32-msvc@4.50.2':
- optional: true
-
- '@rollup/rollup-win32-ia32-msvc@4.52.4':
- optional: true
-
- '@rollup/rollup-win32-x64-gnu@4.52.4':
- optional: true
-
- '@rollup/rollup-win32-x64-msvc@4.50.2':
- optional: true
-
- '@rollup/rollup-win32-x64-msvc@4.52.4':
- optional: true
-
- '@rtsao/scc@1.1.0': {}
-
- '@rushstack/eslint-patch@1.14.0': {}
-
- '@scarf/scarf@1.4.0': {}
-
- '@sec-ant/readable-stream@0.4.1': {}
-
- '@segment/analytics-core@1.8.2':
- dependencies:
- '@lukeed/uuid': 2.0.1
- '@segment/analytics-generic-utils': 1.2.0
- dset: 3.1.4
- tslib: 2.8.1
-
- '@segment/analytics-generic-utils@1.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@segment/analytics-node@2.3.0':
- dependencies:
- '@lukeed/uuid': 2.0.1
- '@segment/analytics-core': 1.8.2
- '@segment/analytics-generic-utils': 1.2.0
- buffer: 6.0.3
- jose: 5.10.0
- node-fetch: 2.7.0
- tslib: 2.8.1
- transitivePeerDependencies:
- - encoding
-
- '@shadcn/ui@0.0.4':
- dependencies:
- chalk: 5.2.0
- commander: 10.0.1
- execa: 7.2.0
- fs-extra: 11.3.2
- node-fetch: 3.3.2
- ora: 6.3.1
- prompts: 2.4.2
- zod: 3.25.76
-
- '@sinclair/typebox@0.27.8': {}
-
- '@sindresorhus/merge-streams@4.0.0': {}
-
- '@sindresorhus/slugify@2.2.1':
- dependencies:
- '@sindresorhus/transliterate': 1.6.0
- escape-string-regexp: 5.0.0
-
- '@sindresorhus/transliterate@1.6.0':
- dependencies:
- escape-string-regexp: 5.0.0
-
- '@sinonjs/commons@3.0.1':
- dependencies:
- type-detect: 4.0.8
-
- '@sinonjs/fake-timers@10.3.0':
- dependencies:
- '@sinonjs/commons': 3.0.1
-
- '@smithy/abort-controller@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/config-resolver@4.3.2':
- dependencies:
- '@smithy/node-config-provider': 4.3.2
- '@smithy/types': 4.7.1
- '@smithy/util-config-provider': 4.2.0
- '@smithy/util-middleware': 4.2.2
- tslib: 2.8.1
-
- '@smithy/core@3.16.1':
- dependencies:
- '@smithy/middleware-serde': 4.2.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- '@smithy/util-base64': 4.3.0
- '@smithy/util-body-length-browser': 4.2.0
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-stream': 4.5.2
- '@smithy/util-utf8': 4.2.0
- '@smithy/uuid': 1.1.0
- tslib: 2.8.1
-
- '@smithy/credential-provider-imds@4.2.2':
- dependencies:
- '@smithy/node-config-provider': 4.3.2
- '@smithy/property-provider': 4.2.2
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- tslib: 2.8.1
-
- '@smithy/eventstream-codec@4.2.2':
- dependencies:
- '@aws-crypto/crc32': 5.2.0
- '@smithy/types': 4.7.1
- '@smithy/util-hex-encoding': 4.2.0
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-browser@4.2.2':
- dependencies:
- '@smithy/eventstream-serde-universal': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-config-resolver@4.3.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-node@4.2.2':
- dependencies:
- '@smithy/eventstream-serde-universal': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/eventstream-serde-universal@4.2.2':
- dependencies:
- '@smithy/eventstream-codec': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/fetch-http-handler@5.3.3':
- dependencies:
- '@smithy/protocol-http': 5.3.2
- '@smithy/querystring-builder': 4.2.2
- '@smithy/types': 4.7.1
- '@smithy/util-base64': 4.3.0
- tslib: 2.8.1
-
- '@smithy/hash-node@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- '@smithy/util-buffer-from': 4.2.0
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
-
- '@smithy/invalid-dependency@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/is-array-buffer@2.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/is-array-buffer@4.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/middleware-content-length@4.2.2':
- dependencies:
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/middleware-endpoint@4.3.3':
- dependencies:
- '@smithy/core': 3.16.1
- '@smithy/middleware-serde': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- '@smithy/url-parser': 4.2.2
- '@smithy/util-middleware': 4.2.2
- tslib: 2.8.1
-
- '@smithy/middleware-retry@4.4.3':
- dependencies:
- '@smithy/node-config-provider': 4.3.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/service-error-classification': 4.2.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-retry': 4.2.2
- '@smithy/uuid': 1.1.0
- tslib: 2.8.1
-
- '@smithy/middleware-serde@4.2.2':
- dependencies:
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/middleware-stack@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/node-config-provider@4.3.2':
- dependencies:
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/node-http-handler@4.4.1':
- dependencies:
- '@smithy/abort-controller': 4.2.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/querystring-builder': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/property-provider@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/protocol-http@5.3.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/querystring-builder@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- '@smithy/util-uri-escape': 4.2.0
- tslib: 2.8.1
-
- '@smithy/querystring-parser@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/service-error-classification@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
-
- '@smithy/shared-ini-file-loader@4.3.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/signature-v4@5.3.2':
- dependencies:
- '@smithy/is-array-buffer': 4.2.0
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- '@smithy/util-hex-encoding': 4.2.0
- '@smithy/util-middleware': 4.2.2
- '@smithy/util-uri-escape': 4.2.0
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
-
- '@smithy/smithy-client@4.8.1':
- dependencies:
- '@smithy/core': 3.16.1
- '@smithy/middleware-endpoint': 4.3.3
- '@smithy/middleware-stack': 4.2.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
- '@smithy/util-stream': 4.5.2
- tslib: 2.8.1
-
- '@smithy/types@4.7.1':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/url-parser@4.2.2':
- dependencies:
- '@smithy/querystring-parser': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/util-base64@4.3.0':
- dependencies:
- '@smithy/util-buffer-from': 4.2.0
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
-
- '@smithy/util-body-length-browser@4.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-body-length-node@4.2.1':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-buffer-from@2.2.0':
- dependencies:
- '@smithy/is-array-buffer': 2.2.0
- tslib: 2.8.1
-
- '@smithy/util-buffer-from@4.2.0':
- dependencies:
- '@smithy/is-array-buffer': 4.2.0
- tslib: 2.8.1
-
- '@smithy/util-config-provider@4.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-defaults-mode-browser@4.3.2':
- dependencies:
- '@smithy/property-provider': 4.2.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/util-defaults-mode-node@4.2.3':
- dependencies:
- '@smithy/config-resolver': 4.3.2
- '@smithy/credential-provider-imds': 4.2.2
- '@smithy/node-config-provider': 4.3.2
- '@smithy/property-provider': 4.2.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/util-endpoints@3.2.2':
- dependencies:
- '@smithy/node-config-provider': 4.3.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/util-hex-encoding@4.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-middleware@4.2.2':
- dependencies:
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/util-retry@4.2.2':
- dependencies:
- '@smithy/service-error-classification': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/util-stream@4.5.2':
- dependencies:
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/node-http-handler': 4.4.1
- '@smithy/types': 4.7.1
- '@smithy/util-base64': 4.3.0
- '@smithy/util-buffer-from': 4.2.0
- '@smithy/util-hex-encoding': 4.2.0
- '@smithy/util-utf8': 4.2.0
- tslib: 2.8.1
-
- '@smithy/util-uri-escape@4.2.0':
- dependencies:
- tslib: 2.8.1
-
- '@smithy/util-utf8@2.3.0':
- dependencies:
- '@smithy/util-buffer-from': 2.2.0
- tslib: 2.8.1
-
- '@smithy/util-utf8@4.2.0':
- dependencies:
- '@smithy/util-buffer-from': 4.2.0
- tslib: 2.8.1
-
- '@smithy/util-waiter@4.2.2':
- dependencies:
- '@smithy/abort-controller': 4.2.2
- '@smithy/types': 4.7.1
- tslib: 2.8.1
-
- '@smithy/uuid@1.1.0':
- dependencies:
- tslib: 2.8.1
-
- '@standard-schema/spec@1.0.0': {}
-
- '@swc/counter@0.1.3': {}
-
- '@swc/helpers@0.5.15':
- dependencies:
- tslib: 2.8.1
-
- '@swc/helpers@0.5.17':
- dependencies:
- tslib: 2.8.1
-
- '@tailwindcss/node@4.1.14':
- dependencies:
- '@jridgewell/remapping': 2.3.5
- enhanced-resolve: 5.18.3
- jiti: 2.6.1
- lightningcss: 1.30.1
- magic-string: 0.30.19
- source-map-js: 1.2.1
- tailwindcss: 4.1.14
-
- '@tailwindcss/oxide-android-arm64@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-darwin-arm64@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-darwin-x64@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-freebsd-x64@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-linux-x64-musl@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-wasm32-wasi@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
- optional: true
-
- '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
- optional: true
-
- '@tailwindcss/oxide@4.1.14':
- dependencies:
- detect-libc: 2.1.2
- tar: 7.5.1
- optionalDependencies:
- '@tailwindcss/oxide-android-arm64': 4.1.14
- '@tailwindcss/oxide-darwin-arm64': 4.1.14
- '@tailwindcss/oxide-darwin-x64': 4.1.14
- '@tailwindcss/oxide-freebsd-x64': 4.1.14
- '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14
- '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14
- '@tailwindcss/oxide-linux-arm64-musl': 4.1.14
- '@tailwindcss/oxide-linux-x64-gnu': 4.1.14
- '@tailwindcss/oxide-linux-x64-musl': 4.1.14
- '@tailwindcss/oxide-wasm32-wasi': 4.1.14
- '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14
- '@tailwindcss/oxide-win32-x64-msvc': 4.1.14
-
- '@tailwindcss/postcss@4.1.14':
- dependencies:
- '@alloc/quick-lru': 5.2.0
- '@tailwindcss/node': 4.1.14
- '@tailwindcss/oxide': 4.1.14
- postcss: 8.5.6
- tailwindcss: 4.1.14
-
- '@tailwindcss/typography@0.5.19(tailwindcss@4.1.14)':
- dependencies:
- postcss-selector-parser: 6.0.10
- tailwindcss: 4.1.14
-
- '@tanstack/react-virtual@3.13.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@tanstack/virtual-core': 3.13.12
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- '@tanstack/virtual-core@3.13.12': {}
-
- '@tiptap/core@2.26.3(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/pm': 2.26.3
-
- '@tiptap/extension-blockquote@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-bold@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-bubble-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
- tippy.js: 6.3.7
-
- '@tiptap/extension-bullet-list@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-code-block@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
-
- '@tiptap/extension-code@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-color@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/extension-text-style@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3)))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/extension-text-style': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
-
- '@tiptap/extension-document@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-dropcursor@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
-
- '@tiptap/extension-floating-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
- tippy.js: 6.3.7
-
- '@tiptap/extension-gapcursor@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
-
- '@tiptap/extension-hard-break@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-heading@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-history@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
-
- '@tiptap/extension-horizontal-rule@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
-
- '@tiptap/extension-italic@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-list-item@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-ordered-list@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-paragraph@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-placeholder@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
-
- '@tiptap/extension-strike@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-text-style@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/extension-text@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
-
- '@tiptap/pm@2.26.3':
- dependencies:
- prosemirror-changeset: 2.3.1
- prosemirror-collab: 1.3.1
- prosemirror-commands: 1.7.1
- prosemirror-dropcursor: 1.8.2
- prosemirror-gapcursor: 1.3.2
- prosemirror-history: 1.4.1
- prosemirror-inputrules: 1.5.0
- prosemirror-keymap: 1.2.3
- prosemirror-markdown: 1.13.2
- prosemirror-menu: 1.2.5
- prosemirror-model: 1.25.3
- prosemirror-schema-basic: 1.2.4
- prosemirror-schema-list: 1.5.1
- prosemirror-state: 1.4.3
- prosemirror-tables: 1.8.1
- prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.41.3)
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
-
- '@tiptap/react@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/extension-bubble-menu': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/extension-floating-menu': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
- '@types/use-sync-external-store': 0.0.6
- fast-deep-equal: 3.1.3
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- use-sync-external-store: 1.6.0(react@19.2.0)
-
- '@tiptap/starter-kit@2.26.3':
- dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/extension-blockquote': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-bold': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-bullet-list': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-code': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-code-block': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/extension-document': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-dropcursor': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/extension-gapcursor': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/extension-hard-break': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-heading': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-history': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/extension-horizontal-rule': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)
- '@tiptap/extension-italic': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-list-item': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-ordered-list': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-paragraph': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-strike': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-text': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/extension-text-style': 2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))
- '@tiptap/pm': 2.26.3
-
- '@tokenizer/token@0.3.0': {}
-
- '@tybys/wasm-util@0.10.1':
- dependencies:
- tslib: 2.8.1
- optional: true
-
- '@types/aws-lambda@8.10.152': {}
-
- '@types/babel__core@7.20.5':
- dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
- '@types/babel__generator': 7.27.0
- '@types/babel__template': 7.4.4
- '@types/babel__traverse': 7.28.0
-
- '@types/babel__generator@7.27.0':
- dependencies:
- '@babel/types': 7.28.4
-
- '@types/babel__template@7.4.4':
- dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
-
- '@types/babel__traverse@7.28.0':
- dependencies:
- '@babel/types': 7.28.4
-
- '@types/body-parser@1.19.6':
- dependencies:
- '@types/connect': 3.4.38
- '@types/node': 20.19.21
-
- '@types/bunyan@1.8.11':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/connect@3.4.38':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/cors@2.8.19':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/debug@4.1.12':
- dependencies:
- '@types/ms': 2.1.0
-
- '@types/diff-match-patch@1.0.36': {}
-
- '@types/diff@7.0.2': {}
-
- '@types/estree-jsx@1.0.5':
- dependencies:
- '@types/estree': 1.0.8
-
- '@types/estree@1.0.8': {}
-
- '@types/express-serve-static-core@4.19.7':
- dependencies:
- '@types/node': 20.19.21
- '@types/qs': 6.14.0
- '@types/range-parser': 1.2.7
- '@types/send': 1.2.0
-
- '@types/express@4.17.23':
- dependencies:
- '@types/body-parser': 1.19.6
- '@types/express-serve-static-core': 4.19.7
- '@types/qs': 6.14.0
- '@types/serve-static': 1.15.9
-
- '@types/graceful-fs@4.1.9':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/hast@2.3.10':
- dependencies:
- '@types/unist': 2.0.11
-
- '@types/hast@3.0.4':
- dependencies:
- '@types/unist': 3.0.3
-
- '@types/http-errors@2.0.5': {}
-
- '@types/inquirer@9.0.9':
- dependencies:
- '@types/through': 0.0.33
- rxjs: 7.8.1
-
- '@types/istanbul-lib-coverage@2.0.6': {}
-
- '@types/istanbul-lib-report@3.0.3':
- dependencies:
- '@types/istanbul-lib-coverage': 2.0.6
-
- '@types/istanbul-reports@3.0.4':
- dependencies:
- '@types/istanbul-lib-report': 3.0.3
-
- '@types/jest@29.5.14':
- dependencies:
- expect: 29.7.0
- pretty-format: 29.7.0
-
- '@types/json-schema@7.0.15': {}
-
- '@types/json5@0.0.29': {}
-
- '@types/katex@0.16.7': {}
-
- '@types/linkify-it@5.0.0': {}
-
- '@types/markdown-it@14.1.2':
- dependencies:
- '@types/linkify-it': 5.0.0
- '@types/mdurl': 2.0.0
-
- '@types/mdast@3.0.15':
- dependencies:
- '@types/unist': 2.0.11
-
- '@types/mdast@4.0.4':
- dependencies:
- '@types/unist': 3.0.3
-
- '@types/mdurl@2.0.0': {}
-
- '@types/mdx@2.0.13': {}
-
- '@types/memcached@2.2.10':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/mime@1.3.5': {}
-
- '@types/ms@2.1.0': {}
-
- '@types/mysql@2.15.27':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/node-fetch@2.6.13':
- dependencies:
- '@types/node': 20.19.21
- form-data: 4.0.4
-
- '@types/node@18.19.130':
- dependencies:
- undici-types: 5.26.5
-
- '@types/node@20.19.21':
- dependencies:
- undici-types: 6.21.0
-
- '@types/node@22.18.10':
- dependencies:
- undici-types: 6.21.0
-
- '@types/oracledb@6.5.2':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/pg-pool@2.0.6':
- dependencies:
- '@types/pg': 8.15.5
-
- '@types/pg@8.15.5':
- dependencies:
- '@types/node': 20.19.21
- pg-protocol: 1.10.3
- pg-types: 2.2.0
-
- '@types/prop-types@15.7.15': {}
-
- '@types/qs@6.14.0': {}
-
- '@types/range-parser@1.2.7': {}
-
- '@types/react-dom@19.2.2(@types/react@19.2.2)':
- dependencies:
- '@types/react': 19.2.2
-
- '@types/react-syntax-highlighter@15.5.13':
- dependencies:
- '@types/react': 19.2.2
-
- '@types/react@19.2.2':
- dependencies:
- csstype: 3.1.3
-
- '@types/resolve@1.20.2': {}
-
- '@types/retry@0.12.0': {}
-
- '@types/semver@7.7.1': {}
-
- '@types/send@0.17.5':
- dependencies:
- '@types/mime': 1.3.5
- '@types/node': 20.19.21
-
- '@types/send@1.2.0':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/serve-static@1.15.9':
- dependencies:
- '@types/http-errors': 2.0.5
- '@types/node': 20.19.21
- '@types/send': 0.17.5
-
- '@types/stack-utils@2.0.3': {}
-
- '@types/tedious@4.0.14':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/through@0.0.33':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/tough-cookie@4.0.5': {}
-
- '@types/unist@2.0.11': {}
-
- '@types/unist@3.0.3': {}
-
- '@types/use-sync-external-store@0.0.6': {}
-
- '@types/uuid@10.0.0': {}
-
- '@types/validator@13.15.3': {}
-
- '@types/ws@8.18.1':
- dependencies:
- '@types/node': 20.19.21
-
- '@types/yargs-parser@21.0.3': {}
-
- '@types/yargs@17.0.33':
- dependencies:
- '@types/yargs-parser': 21.0.3
-
- '@typescript-eslint/eslint-plugin@8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.46.1
- '@typescript-eslint/type-utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.46.1
- eslint: 9.37.0(jiti@2.6.1)
- graphemer: 1.4.0
- ignore: 7.0.5
- natural-compare: 1.4.0
- ts-api-utils: 2.1.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/scope-manager': 8.46.1
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.46.1
- debug: 4.4.3
- eslint: 9.37.0(jiti@2.6.1)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/types': 8.46.1
- debug: 4.4.3
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/scope-manager@8.46.1':
- dependencies:
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/visitor-keys': 8.46.1
-
- '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)':
- dependencies:
- typescript: 5.9.3
-
- '@typescript-eslint/type-utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/utils': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- debug: 4.4.3
- eslint: 9.37.0(jiti@2.6.1)
- ts-api-utils: 2.1.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/types@8.46.1': {}
-
- '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/visitor-keys': 8.46.1
- debug: 4.4.3
- fast-glob: 3.3.3
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.3
- ts-api-utils: 2.1.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)':
- dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1))
- '@typescript-eslint/scope-manager': 8.46.1
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
- eslint: 9.37.0(jiti@2.6.1)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/visitor-keys@8.46.1':
- dependencies:
- '@typescript-eslint/types': 8.46.1
- eslint-visitor-keys: 4.2.1
-
- '@ungap/structured-clone@1.3.0': {}
-
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-android-arm64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-darwin-x64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
- dependencies:
- '@napi-rs/wasm-runtime': 0.2.12
- optional: true
-
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
- optional: true
-
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
- optional: true
-
- '@upstash/redis@1.35.6':
- dependencies:
- uncrypto: 0.1.3
-
- '@urql/core@5.2.0(graphql@16.11.0)':
- dependencies:
- '@0no-co/graphql.web': 1.2.0(graphql@16.11.0)
- wonka: 6.3.5
- transitivePeerDependencies:
- - graphql
-
- '@vercel/oidc@3.0.2': {}
-
- '@webcontainer/env@1.1.1': {}
-
- '@whatwg-node/disposablestack@0.0.6':
- dependencies:
- '@whatwg-node/promise-helpers': 1.3.2
- tslib: 2.8.1
-
- '@whatwg-node/events@0.1.2':
- dependencies:
- tslib: 2.8.1
-
- '@whatwg-node/fetch@0.10.11':
- dependencies:
- '@whatwg-node/node-fetch': 0.8.1
- urlpattern-polyfill: 10.1.0
-
- '@whatwg-node/node-fetch@0.8.1':
- dependencies:
- '@fastify/busboy': 3.2.0
- '@whatwg-node/disposablestack': 0.0.6
- '@whatwg-node/promise-helpers': 1.3.2
- tslib: 2.8.1
-
- '@whatwg-node/promise-helpers@1.3.2':
- dependencies:
- tslib: 2.8.1
-
- '@whatwg-node/server@0.10.13':
- dependencies:
- '@envelop/instrumentation': 1.0.0
- '@whatwg-node/disposablestack': 0.0.6
- '@whatwg-node/fetch': 0.10.11
- '@whatwg-node/promise-helpers': 1.3.2
- tslib: 2.8.1
-
- abort-controller-x@0.4.3: {}
-
- abort-controller@3.0.0:
- dependencies:
- event-target-shim: 5.0.1
-
- accepts@1.3.8:
- dependencies:
- mime-types: 2.1.35
- negotiator: 0.6.3
-
- accepts@2.0.0:
- dependencies:
- mime-types: 3.0.1
- negotiator: 1.0.0
-
- acorn-import-attributes@1.9.5(acorn@8.15.0):
- dependencies:
- acorn: 8.15.0
-
- acorn-jsx@5.3.2(acorn@8.15.0):
- dependencies:
- acorn: 8.15.0
-
- acorn@8.15.0: {}
-
- agent-base@6.0.2:
- dependencies:
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- agent-base@7.1.4: {}
-
- agentkeepalive@4.6.0:
- dependencies:
- humanize-ms: 1.2.1
-
- ai@4.3.19(react@19.2.0)(zod@3.25.76):
- dependencies:
- '@ai-sdk/provider': 1.1.3
- '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76)
- '@ai-sdk/react': 1.2.12(react@19.2.0)(zod@3.25.76)
- '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76)
- '@opentelemetry/api': 1.9.0
- jsondiffpatch: 0.6.0
- zod: 3.25.76
- optionalDependencies:
- react: 19.2.0
-
- ai@5.0.60(zod@3.25.76):
- dependencies:
- '@ai-sdk/gateway': 1.0.33(zod@3.25.76)
- '@ai-sdk/provider': 2.0.0
- '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
- '@opentelemetry/api': 1.9.0
- zod: 3.25.76
-
- ajv@6.12.6:
- dependencies:
- fast-deep-equal: 3.1.3
- fast-json-stable-stringify: 2.1.0
- json-schema-traverse: 0.4.1
- uri-js: 4.4.1
-
- ansi-escapes@4.3.2:
- dependencies:
- type-fest: 0.21.3
-
- ansi-regex@5.0.1: {}
-
- ansi-regex@6.2.2: {}
-
- ansi-styles@4.3.0:
- dependencies:
- color-convert: 2.0.1
-
- ansi-styles@5.2.0: {}
-
- ansi-styles@6.2.3: {}
-
- any-promise@1.3.0: {}
-
- anymatch@3.1.3:
- dependencies:
- normalize-path: 3.0.0
- picomatch: 2.3.1
-
- argparse@1.0.10:
- dependencies:
- sprintf-js: 1.0.3
-
- argparse@2.0.1: {}
-
- aria-hidden@1.2.6:
- dependencies:
- tslib: 2.8.1
-
- aria-query@5.3.2: {}
-
- array-buffer-byte-length@1.0.2:
- dependencies:
- call-bound: 1.0.4
- is-array-buffer: 3.0.5
-
- array-flatten@1.1.1: {}
-
- array-includes@3.1.9:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- is-string: 1.1.1
- math-intrinsics: 1.1.0
-
- array.prototype.findlast@1.2.5:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- es-shim-unscopables: 1.1.0
-
- array.prototype.findlastindex@1.2.6:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- es-shim-unscopables: 1.1.0
-
- array.prototype.flat@1.3.3:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-shim-unscopables: 1.1.0
-
- array.prototype.flatmap@1.3.3:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-shim-unscopables: 1.1.0
-
- array.prototype.tosorted@1.1.4:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-shim-unscopables: 1.1.0
-
- arraybuffer.prototype.slice@1.0.4:
- dependencies:
- array-buffer-byte-length: 1.0.2
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- is-array-buffer: 3.0.5
-
- arrify@2.0.1: {}
-
- ast-types-flow@0.0.8: {}
-
- astring@1.9.0: {}
-
- async-function@1.0.0: {}
-
- async-mutex@0.5.0:
- dependencies:
- tslib: 2.8.1
-
- asynckit@0.4.0: {}
-
- atomic-sleep@1.0.0: {}
-
- available-typed-arrays@1.0.7:
- dependencies:
- possible-typed-array-names: 1.1.0
-
- axe-core@4.11.0: {}
-
- axios@1.12.2(debug@4.4.3):
- dependencies:
- follow-redirects: 1.15.11(debug@4.4.3)
- form-data: 4.0.4
- proxy-from-env: 1.1.0
- transitivePeerDependencies:
- - debug
-
- axobject-query@4.1.0: {}
-
- babel-jest@29.7.0(@babel/core@7.28.4):
- dependencies:
- '@babel/core': 7.28.4
- '@jest/transform': 29.7.0
- '@types/babel__core': 7.20.5
- babel-plugin-istanbul: 6.1.1
- babel-preset-jest: 29.6.3(@babel/core@7.28.4)
- chalk: 4.1.2
- graceful-fs: 4.2.11
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
- babel-plugin-istanbul@6.1.1:
- dependencies:
- '@babel/helper-plugin-utils': 7.27.1
- '@istanbuljs/load-nyc-config': 1.1.0
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-instrument: 5.2.1
- test-exclude: 6.0.0
- transitivePeerDependencies:
- - supports-color
-
- babel-plugin-jest-hoist@29.6.3:
- dependencies:
- '@babel/template': 7.27.2
- '@babel/types': 7.28.4
- '@types/babel__core': 7.20.5
- '@types/babel__traverse': 7.28.0
-
- babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4):
- dependencies:
- '@babel/core': 7.28.4
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4)
-
- babel-preset-jest@29.6.3(@babel/core@7.28.4):
- dependencies:
- '@babel/core': 7.28.4
- babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
-
- bail@2.0.2: {}
-
- balanced-match@1.0.2: {}
-
- base64-js@1.5.1: {}
-
- baseline-browser-mapping@2.8.16: {}
-
- bignumber.js@9.3.1: {}
-
- binary-extensions@2.3.0: {}
-
- bl@5.1.0:
- dependencies:
- buffer: 6.0.3
- inherits: 2.0.4
- readable-stream: 3.6.2
-
- body-parser@1.20.3:
- 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.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@2.2.0:
- dependencies:
- bytes: 3.1.2
- content-type: 1.0.5
- debug: 4.4.3
- http-errors: 2.0.0
- iconv-lite: 0.6.3
- on-finished: 2.4.1
- qs: 6.14.0
- raw-body: 3.0.1
- type-is: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
- bowser@2.12.1: {}
-
- brace-expansion@1.1.12:
- dependencies:
- balanced-match: 1.0.2
- concat-map: 0.0.1
-
- brace-expansion@2.0.2:
- dependencies:
- balanced-match: 1.0.2
-
- braces@3.0.3:
- dependencies:
- fill-range: 7.1.1
-
- browserslist@4.26.3:
- dependencies:
- baseline-browser-mapping: 2.8.16
- caniuse-lite: 1.0.30001750
- electron-to-chromium: 1.5.235
- node-releases: 2.0.23
- update-browserslist-db: 1.1.3(browserslist@4.26.3)
-
- bs-logger@0.2.6:
- dependencies:
- fast-json-stable-stringify: 2.1.0
-
- bser@2.1.1:
- dependencies:
- node-int64: 0.4.0
-
- buffer-equal-constant-time@1.0.1: {}
-
- buffer-from@1.1.2: {}
-
- buffer@6.0.3:
- dependencies:
- base64-js: 1.5.1
- ieee754: 1.2.1
-
- builtins@5.1.0:
- dependencies:
- semver: 7.7.3
-
- bundle-name@4.1.0:
- dependencies:
- run-applescript: 7.1.0
-
- bundle-require@5.1.0(esbuild@0.25.10):
- dependencies:
- esbuild: 0.25.10
- load-tsconfig: 0.2.5
-
- busboy@1.6.0:
- dependencies:
- streamsearch: 1.1.0
-
- bytes@3.1.2: {}
-
- cac@6.7.14: {}
-
- call-bind-apply-helpers@1.0.2:
- dependencies:
- es-errors: 1.3.0
- function-bind: 1.1.2
-
- call-bind@1.0.8:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- get-intrinsic: 1.3.0
- set-function-length: 1.2.2
-
- call-bound@1.0.4:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- get-intrinsic: 1.3.0
-
- callsites@3.1.0: {}
-
- camelcase@5.3.1: {}
-
- camelcase@6.3.0: {}
-
- caniuse-lite@1.0.30001750: {}
-
- case-anything@2.1.13: {}
-
- ccount@2.0.1: {}
-
- chalk@4.1.2:
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
-
- chalk@5.2.0: {}
-
- chalk@5.6.2: {}
-
- char-regex@1.0.2: {}
-
- character-entities-html4@2.1.0: {}
-
- character-entities-legacy@1.1.4: {}
-
- character-entities-legacy@3.0.0: {}
-
- character-entities@1.2.4: {}
-
- character-entities@2.0.2: {}
-
- character-reference-invalid@1.1.4: {}
-
- character-reference-invalid@2.0.1: {}
-
- chardet@2.1.0: {}
-
- chokidar@4.0.3:
- dependencies:
- readdirp: 4.1.2
-
- chownr@3.0.0: {}
-
- ci-info@3.9.0: {}
-
- citty@0.1.6:
- dependencies:
- consola: 3.4.2
-
- cjs-module-lexer@1.4.3: {}
-
- class-transformer@0.5.1: {}
-
- class-validator@0.14.2:
- dependencies:
- '@types/validator': 13.15.3
- libphonenumber-js: 1.12.24
- validator: 13.15.15
-
- class-variance-authority@0.7.1:
- dependencies:
- clsx: 2.1.1
-
- cli-cursor@4.0.0:
- dependencies:
- restore-cursor: 4.0.0
-
- cli-spinners@2.9.2: {}
-
- cli-width@4.1.0: {}
-
- client-only@0.0.1: {}
-
- cliui@8.0.1:
- dependencies:
- string-width: 4.2.3
- strip-ansi: 6.0.1
- wrap-ansi: 7.0.0
-
- clone@1.0.4: {}
-
- clone@2.1.2: {}
-
- clsx@2.1.1: {}
-
- cluster-key-slot@1.1.2: {}
-
- co@4.6.0: {}
-
- collapse-white-space@2.1.0: {}
-
- collect-v8-coverage@1.0.2: {}
-
- color-convert@2.0.1:
- dependencies:
- color-name: 1.1.4
-
- color-name@1.1.4: {}
-
- color-string@1.9.1:
- dependencies:
- color-name: 1.1.4
- simple-swizzle: 0.2.4
- optional: true
-
- color@4.2.3:
- dependencies:
- color-convert: 2.0.1
- color-string: 1.9.1
- optional: true
-
- colorette@2.0.20: {}
-
- combined-stream@1.0.8:
- dependencies:
- delayed-stream: 1.0.0
-
- comma-separated-tokens@1.0.8: {}
-
- comma-separated-tokens@2.0.3: {}
-
- commander@10.0.1: {}
-
- commander@12.1.0: {}
-
- commander@4.1.1: {}
-
- commander@8.3.0: {}
-
- commander@9.5.0: {}
-
- commondir@1.0.1: {}
-
- concat-map@0.0.1: {}
-
- concurrently@9.2.1:
- dependencies:
- chalk: 4.1.2
- rxjs: 7.8.2
- shell-quote: 1.8.3
- supports-color: 8.1.1
- tree-kill: 1.2.2
- yargs: 17.7.2
-
- confbox@0.1.8: {}
-
- confbox@0.2.2: {}
-
- consola@3.4.2: {}
-
- console-table-printer@2.14.6:
- dependencies:
- simple-wcswidth: 1.1.2
-
- content-disposition@0.5.4:
- dependencies:
- safe-buffer: 5.2.1
-
- content-disposition@1.0.0:
- dependencies:
- safe-buffer: 5.2.1
-
- content-type@1.0.5: {}
-
- convert-source-map@2.0.0: {}
-
- cookie-signature@1.0.6: {}
-
- cookie-signature@1.2.2: {}
-
- cookie@0.7.1: {}
-
- cookie@0.7.2: {}
-
- cors@2.8.5:
- dependencies:
- object-assign: 4.1.1
- vary: 1.1.2
-
- create-jest@29.7.0(@types/node@20.19.21):
- dependencies:
- '@jest/types': 29.6.3
- chalk: 4.1.2
- exit: 0.1.2
- graceful-fs: 4.2.11
- jest-config: 29.7.0(@types/node@20.19.21)
- jest-util: 29.7.0
- prompts: 2.4.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
- crelt@1.0.6: {}
-
- cross-fetch@3.2.0:
- dependencies:
- node-fetch: 2.7.0
- transitivePeerDependencies:
- - encoding
-
- cross-inspect@1.0.1:
- dependencies:
- tslib: 2.8.1
-
- cross-spawn@7.0.6:
- dependencies:
- path-key: 3.1.1
- shebang-command: 2.0.0
- which: 2.0.2
-
- cssesc@3.0.0: {}
-
- csstype@3.1.3: {}
-
- damerau-levenshtein@1.0.8: {}
-
- data-uri-to-buffer@4.0.1: {}
-
- data-view-buffer@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- data-view-byte-length@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- data-view-byte-offset@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-data-view: 1.0.2
-
- date-fns@3.6.0: {}
-
- date-fns@4.1.0: {}
-
- dateformat@4.6.3: {}
-
- debug@2.6.9:
- dependencies:
- ms: 2.0.0
-
- debug@3.2.7:
- dependencies:
- ms: 2.1.3
-
- debug@4.3.1:
- dependencies:
- ms: 2.1.2
-
- debug@4.4.3:
- dependencies:
- ms: 2.1.3
-
- decamelize@1.2.0: {}
-
- decode-named-character-reference@1.2.0:
- dependencies:
- character-entities: 2.0.2
-
- dedent@1.7.0: {}
-
- deep-is@0.1.4: {}
-
- deepmerge@4.3.1: {}
-
- default-browser-id@5.0.0: {}
-
- default-browser@5.2.1:
- dependencies:
- bundle-name: 4.1.0
- default-browser-id: 5.0.0
-
- defaults@1.0.4:
- dependencies:
- clone: 1.0.4
-
- define-data-property@1.1.4:
- dependencies:
- es-define-property: 1.0.1
- es-errors: 1.3.0
- gopd: 1.2.0
-
- define-lazy-prop@3.0.0: {}
-
- define-properties@1.2.1:
- dependencies:
- define-data-property: 1.1.4
- has-property-descriptors: 1.0.2
- object-keys: 1.1.1
-
- defu@6.1.4: {}
-
- delayed-stream@1.0.0: {}
-
- depd@2.0.0: {}
-
- dequal@2.0.3: {}
-
- destroy@1.2.0: {}
-
- detect-libc@1.0.3: {}
-
- detect-libc@2.0.2: {}
-
- detect-libc@2.1.2: {}
-
- detect-newline@3.1.0: {}
-
- detect-node-es@1.1.0: {}
-
- devlop@1.1.0:
- dependencies:
- dequal: 2.0.3
-
- diff-match-patch@1.0.5: {}
-
- diff-sequences@29.6.3: {}
-
- diff@5.2.0: {}
-
- diff@7.0.0: {}
-
- doctrine@2.1.0:
- dependencies:
- esutils: 2.0.3
-
- dompurify@3.1.7: {}
-
- dotenv@16.6.1: {}
-
- dprint-node@1.0.8:
- dependencies:
- detect-libc: 1.0.3
-
- dset@3.1.4: {}
-
- dunder-proto@1.0.1:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-errors: 1.3.0
- gopd: 1.2.0
-
- eastasianwidth@0.2.0: {}
-
- ecdsa-sig-formatter@1.0.11:
- dependencies:
- safe-buffer: 5.2.1
-
- ee-first@1.1.1: {}
-
- electrodb@3.4.7(@aws-sdk/client-dynamodb@3.910.0):
- dependencies:
- '@aws-sdk/lib-dynamodb': 3.910.0(@aws-sdk/client-dynamodb@3.910.0)
- '@aws-sdk/util-dynamodb': 3.910.0(@aws-sdk/client-dynamodb@3.910.0)
- jsonschema: 1.2.7
- transitivePeerDependencies:
- - '@aws-sdk/client-dynamodb'
-
- electron-to-chromium@1.5.235: {}
-
- embla-carousel-react@8.6.0(react@19.2.0):
- dependencies:
- embla-carousel: 8.6.0
- embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0)
- react: 19.2.0
-
- embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0):
- dependencies:
- embla-carousel: 8.6.0
-
- embla-carousel@8.6.0: {}
-
- emittery@0.13.1: {}
-
- emoji-regex@8.0.0: {}
-
- emoji-regex@9.2.2: {}
-
- empathic@2.0.0: {}
-
- encodeurl@1.0.2: {}
-
- encodeurl@2.0.0: {}
-
- end-of-stream@1.4.5:
- dependencies:
- once: 1.4.0
-
- enhanced-resolve@5.18.3:
- dependencies:
- graceful-fs: 4.2.11
- tapable: 2.3.0
-
- entities@4.5.0: {}
-
- entities@6.0.1: {}
-
- error-ex@1.3.4:
- dependencies:
- is-arrayish: 0.2.1
-
- es-abstract@1.24.0:
- dependencies:
- array-buffer-byte-length: 1.0.2
- arraybuffer.prototype.slice: 1.0.4
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- call-bound: 1.0.4
- data-view-buffer: 1.0.2
- data-view-byte-length: 1.0.2
- data-view-byte-offset: 1.0.1
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- es-set-tostringtag: 2.1.0
- es-to-primitive: 1.3.0
- function.prototype.name: 1.1.8
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- get-symbol-description: 1.1.0
- globalthis: 1.0.4
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
- has-proto: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- internal-slot: 1.1.0
- is-array-buffer: 3.0.5
- is-callable: 1.2.7
- is-data-view: 1.0.2
- is-negative-zero: 2.0.3
- is-regex: 1.2.1
- is-set: 2.0.3
- is-shared-array-buffer: 1.0.4
- is-string: 1.1.1
- is-typed-array: 1.1.15
- is-weakref: 1.1.1
- math-intrinsics: 1.1.0
- object-inspect: 1.13.4
- object-keys: 1.1.1
- object.assign: 4.1.7
- own-keys: 1.0.1
- regexp.prototype.flags: 1.5.4
- safe-array-concat: 1.1.3
- safe-push-apply: 1.0.0
- safe-regex-test: 1.1.0
- set-proto: 1.0.0
- stop-iteration-iterator: 1.1.0
- string.prototype.trim: 1.2.10
- string.prototype.trimend: 1.0.9
- string.prototype.trimstart: 1.0.8
- typed-array-buffer: 1.0.3
- typed-array-byte-length: 1.0.3
- typed-array-byte-offset: 1.0.4
- typed-array-length: 1.0.7
- unbox-primitive: 1.1.0
- which-typed-array: 1.1.19
-
- es-define-property@1.0.1: {}
-
- es-errors@1.3.0: {}
-
- es-iterator-helpers@1.2.1:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-set-tostringtag: 2.1.0
- function-bind: 1.1.2
- get-intrinsic: 1.3.0
- globalthis: 1.0.4
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
- has-proto: 1.2.0
- has-symbols: 1.1.0
- internal-slot: 1.1.0
- iterator.prototype: 1.1.5
- safe-array-concat: 1.1.3
-
- es-module-lexer@1.7.0: {}
-
- es-object-atoms@1.1.1:
- dependencies:
- es-errors: 1.3.0
-
- es-set-tostringtag@2.1.0:
- dependencies:
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
- es-shim-unscopables@1.1.0:
- dependencies:
- hasown: 2.0.2
-
- es-to-primitive@1.3.0:
- dependencies:
- is-callable: 1.2.7
- is-date-object: 1.1.0
- is-symbol: 1.1.1
-
- esast-util-from-estree@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- devlop: 1.1.0
- estree-util-visit: 2.0.0
- unist-util-position-from-estree: 2.0.0
-
- esast-util-from-js@2.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- acorn: 8.15.0
- esast-util-from-estree: 2.0.0
- vfile-message: 4.0.3
-
- esbuild@0.25.10:
- optionalDependencies:
- '@esbuild/aix-ppc64': 0.25.10
- '@esbuild/android-arm': 0.25.10
- '@esbuild/android-arm64': 0.25.10
- '@esbuild/android-x64': 0.25.10
- '@esbuild/darwin-arm64': 0.25.10
- '@esbuild/darwin-x64': 0.25.10
- '@esbuild/freebsd-arm64': 0.25.10
- '@esbuild/freebsd-x64': 0.25.10
- '@esbuild/linux-arm': 0.25.10
- '@esbuild/linux-arm64': 0.25.10
- '@esbuild/linux-ia32': 0.25.10
- '@esbuild/linux-loong64': 0.25.10
- '@esbuild/linux-mips64el': 0.25.10
- '@esbuild/linux-ppc64': 0.25.10
- '@esbuild/linux-riscv64': 0.25.10
- '@esbuild/linux-s390x': 0.25.10
- '@esbuild/linux-x64': 0.25.10
- '@esbuild/netbsd-arm64': 0.25.10
- '@esbuild/netbsd-x64': 0.25.10
- '@esbuild/openbsd-arm64': 0.25.10
- '@esbuild/openbsd-x64': 0.25.10
- '@esbuild/openharmony-arm64': 0.25.10
- '@esbuild/sunos-x64': 0.25.10
- '@esbuild/win32-arm64': 0.25.10
- '@esbuild/win32-ia32': 0.25.10
- '@esbuild/win32-x64': 0.25.10
-
- escalade@3.2.0: {}
-
- escape-html@1.0.3: {}
-
- escape-string-regexp@2.0.0: {}
-
- escape-string-regexp@4.0.0: {}
-
- escape-string-regexp@5.0.0: {}
-
- eslint-config-next@15.2.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3):
- dependencies:
- '@next/eslint-plugin-next': 15.2.1
- '@rushstack/eslint-patch': 1.14.0
- '@typescript-eslint/eslint-plugin': 8.46.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.37.0(jiti@2.6.1)
- eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1))
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1))
- eslint-plugin-jsx-a11y: 6.10.2(eslint@9.37.0(jiti@2.6.1))
- eslint-plugin-react: 7.37.5(eslint@9.37.0(jiti@2.6.1))
- eslint-plugin-react-hooks: 5.2.0(eslint@9.37.0(jiti@2.6.1))
- optionalDependencies:
- typescript: 5.9.3
- transitivePeerDependencies:
- - eslint-import-resolver-webpack
- - eslint-plugin-import-x
- - supports-color
-
- eslint-import-resolver-node@0.3.9:
- dependencies:
- debug: 3.2.7
- is-core-module: 2.16.1
- resolve: 1.22.10
- transitivePeerDependencies:
- - supports-color
-
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1)):
- dependencies:
- '@nolyfill/is-core-module': 1.0.39
- debug: 4.4.3
- eslint: 9.37.0(jiti@2.6.1)
- get-tsconfig: 4.12.0
- is-bun-module: 2.0.0
- stable-hash: 0.0.5
- tinyglobby: 0.2.15
- unrs-resolver: 1.11.1
- optionalDependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1))
- transitivePeerDependencies:
- - supports-color
-
- eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)):
- dependencies:
- debug: 3.2.7
- optionalDependencies:
- '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.37.0(jiti@2.6.1)
- eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1))
- transitivePeerDependencies:
- - supports-color
-
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)):
- dependencies:
- '@rtsao/scc': 1.1.0
- array-includes: 3.1.9
- array.prototype.findlastindex: 1.2.6
- array.prototype.flat: 1.3.3
- array.prototype.flatmap: 1.3.3
- debug: 3.2.7
- doctrine: 2.1.0
- eslint: 9.37.0(jiti@2.6.1)
- eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1))
- hasown: 2.0.2
- is-core-module: 2.16.1
- is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.8
- object.groupby: 1.0.3
- object.values: 1.2.1
- semver: 6.3.1
- string.prototype.trimend: 1.0.9
- tsconfig-paths: 3.15.0
- optionalDependencies:
- '@typescript-eslint/parser': 8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)
- transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- - supports-color
-
- eslint-plugin-jsx-a11y@6.10.2(eslint@9.37.0(jiti@2.6.1)):
- dependencies:
- aria-query: 5.3.2
- array-includes: 3.1.9
- array.prototype.flatmap: 1.3.3
- ast-types-flow: 0.0.8
- axe-core: 4.11.0
- axobject-query: 4.1.0
- damerau-levenshtein: 1.0.8
- emoji-regex: 9.2.2
- eslint: 9.37.0(jiti@2.6.1)
- hasown: 2.0.2
- jsx-ast-utils: 3.3.5
- language-tags: 1.0.9
- minimatch: 3.1.2
- object.fromentries: 2.0.8
- safe-regex-test: 1.1.0
- string.prototype.includes: 2.0.1
-
- eslint-plugin-react-hooks@5.2.0(eslint@9.37.0(jiti@2.6.1)):
- dependencies:
- eslint: 9.37.0(jiti@2.6.1)
-
- eslint-plugin-react@7.37.5(eslint@9.37.0(jiti@2.6.1)):
- dependencies:
- array-includes: 3.1.9
- array.prototype.findlast: 1.2.5
- array.prototype.flatmap: 1.3.3
- array.prototype.tosorted: 1.1.4
- doctrine: 2.1.0
- es-iterator-helpers: 1.2.1
- eslint: 9.37.0(jiti@2.6.1)
- estraverse: 5.3.0
- hasown: 2.0.2
- jsx-ast-utils: 3.3.5
- minimatch: 3.1.2
- object.entries: 1.1.9
- object.fromentries: 2.0.8
- object.values: 1.2.1
- prop-types: 15.8.1
- resolve: 2.0.0-next.5
- semver: 6.3.1
- string.prototype.matchall: 4.0.12
- string.prototype.repeat: 1.0.0
-
- eslint-scope@8.4.0:
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
-
- eslint-visitor-keys@3.4.3: {}
-
- eslint-visitor-keys@4.2.1: {}
-
- eslint@9.37.0(jiti@2.6.1):
- dependencies:
- '@eslint-community/eslint-utils': 4.9.0(eslint@9.37.0(jiti@2.6.1))
- '@eslint-community/regexpp': 4.12.1
- '@eslint/config-array': 0.21.0
- '@eslint/config-helpers': 0.4.0
- '@eslint/core': 0.16.0
- '@eslint/eslintrc': 3.3.1
- '@eslint/js': 9.37.0
- '@eslint/plugin-kit': 0.4.0
- '@humanfs/node': 0.16.7
- '@humanwhocodes/module-importer': 1.0.1
- '@humanwhocodes/retry': 0.4.3
- '@types/estree': 1.0.8
- '@types/json-schema': 7.0.15
- ajv: 6.12.6
- chalk: 4.1.2
- cross-spawn: 7.0.6
- debug: 4.4.3
- escape-string-regexp: 4.0.0
- eslint-scope: 8.4.0
- eslint-visitor-keys: 4.2.1
- espree: 10.4.0
- esquery: 1.6.0
- esutils: 2.0.3
- fast-deep-equal: 3.1.3
- file-entry-cache: 8.0.0
- find-up: 5.0.0
- glob-parent: 6.0.2
- ignore: 5.3.2
- imurmurhash: 0.1.4
- is-glob: 4.0.3
- json-stable-stringify-without-jsonify: 1.0.1
- lodash.merge: 4.6.2
- minimatch: 3.1.2
- natural-compare: 1.4.0
- optionator: 0.9.4
- optionalDependencies:
- jiti: 2.6.1
- transitivePeerDependencies:
- - supports-color
-
- espree@10.4.0:
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- eslint-visitor-keys: 4.2.1
-
- esprima@4.0.1: {}
-
- esquery@1.6.0:
- dependencies:
- estraverse: 5.3.0
-
- esrecurse@4.3.0:
- dependencies:
- estraverse: 5.3.0
-
- estraverse@5.3.0: {}
-
- estree-util-attach-comments@3.0.0:
- dependencies:
- '@types/estree': 1.0.8
-
- estree-util-build-jsx@3.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- estree-walker: 3.0.3
-
- estree-util-is-identifier-name@3.0.0: {}
-
- estree-util-scope@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
-
- estree-util-to-js@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- astring: 1.9.0
- source-map: 0.7.6
-
- estree-util-visit@2.0.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/unist': 3.0.3
-
- estree-walker@2.0.2: {}
-
- estree-walker@3.0.3:
- dependencies:
- '@types/estree': 1.0.8
-
- esutils@2.0.3: {}
-
- etag@1.8.1: {}
-
- event-target-shim@5.0.1: {}
-
- eventemitter3@4.0.7: {}
-
- events@3.3.0: {}
-
- eventsource-parser@3.0.6: {}
-
- eventsource@3.0.7:
- dependencies:
- eventsource-parser: 3.0.6
-
- execa@5.1.1:
- dependencies:
- cross-spawn: 7.0.6
- get-stream: 6.0.1
- human-signals: 2.1.0
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
-
- execa@7.2.0:
- dependencies:
- cross-spawn: 7.0.6
- get-stream: 6.0.1
- human-signals: 4.3.1
- is-stream: 3.0.0
- merge-stream: 2.0.0
- npm-run-path: 5.3.0
- onetime: 6.0.0
- signal-exit: 3.0.7
- strip-final-newline: 3.0.0
-
- execa@9.6.0:
- dependencies:
- '@sindresorhus/merge-streams': 4.0.0
- cross-spawn: 7.0.6
- figures: 6.1.0
- get-stream: 9.0.1
- human-signals: 8.0.1
- is-plain-obj: 4.1.0
- is-stream: 4.0.1
- npm-run-path: 6.0.0
- pretty-ms: 9.3.0
- signal-exit: 4.1.0
- strip-final-newline: 4.0.0
- yoctocolors: 2.1.2
-
- exit-hook@4.0.0: {}
-
- exit@0.1.2: {}
-
- expect@29.7.0:
- dependencies:
- '@jest/expect-utils': 29.7.0
- jest-get-type: 29.6.3
- jest-matcher-utils: 29.7.0
- jest-message-util: 29.7.0
- jest-util: 29.7.0
-
- expr-eval@2.0.2: {}
-
- express-rate-limit@7.5.1(express@5.1.0):
- dependencies:
- express: 5.1.0
-
- express@4.21.2:
- dependencies:
- accepts: 1.3.8
- array-flatten: 1.1.1
- body-parser: 1.20.3
- content-disposition: 0.5.4
- content-type: 1.0.5
- cookie: 0.7.1
- cookie-signature: 1.0.6
- debug: 2.6.9
- depd: 2.0.0
- encodeurl: 2.0.0
- escape-html: 1.0.3
- etag: 1.8.1
- finalhandler: 1.3.1
- fresh: 0.5.2
- http-errors: 2.0.0
- 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.13.0
- range-parser: 1.2.1
- safe-buffer: 5.2.1
- send: 0.19.0
- serve-static: 1.16.2
- setprototypeof: 1.2.0
- statuses: 2.0.1
- 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
- body-parser: 2.2.0
- content-disposition: 1.0.0
- content-type: 1.0.5
- cookie: 0.7.2
- cookie-signature: 1.2.2
- debug: 4.4.3
- encodeurl: 2.0.0
- escape-html: 1.0.3
- etag: 1.8.1
- finalhandler: 2.1.0
- fresh: 2.0.0
- http-errors: 2.0.0
- merge-descriptors: 2.0.0
- mime-types: 3.0.1
- on-finished: 2.4.1
- once: 1.4.0
- parseurl: 1.3.3
- proxy-addr: 2.0.7
- qs: 6.14.0
- range-parser: 1.2.1
- router: 2.2.0
- send: 1.2.0
- serve-static: 2.2.0
- statuses: 2.0.2
- type-is: 2.0.1
- vary: 1.1.2
- transitivePeerDependencies:
- - supports-color
-
- exsolve@1.0.7: {}
-
- extend@3.0.2: {}
-
- fast-copy@3.0.2: {}
-
- fast-deep-equal@3.1.3: {}
-
- fast-glob@3.3.1:
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.8
-
- fast-glob@3.3.3:
- dependencies:
- '@nodelib/fs.stat': 2.0.5
- '@nodelib/fs.walk': 1.2.8
- glob-parent: 5.1.2
- merge2: 1.4.1
- micromatch: 4.0.8
-
- fast-json-patch@3.1.1: {}
-
- fast-json-stable-stringify@2.1.0: {}
-
- fast-levenshtein@2.0.6: {}
-
- fast-safe-stringify@2.1.1: {}
-
- fast-text-encoding@1.0.6: {}
-
- fast-xml-parser@5.2.5:
- dependencies:
- strnum: 2.1.1
-
- fastq@1.19.1:
- dependencies:
- reusify: 1.1.0
-
- fault@1.0.4:
- dependencies:
- format: 0.2.2
-
- fb-watchman@2.0.2:
- dependencies:
- bser: 2.1.1
-
- fdir@6.5.0(picomatch@4.0.3):
- optionalDependencies:
- picomatch: 4.0.3
-
- fetch-blob@3.2.0:
- dependencies:
- node-domexception: 1.0.0
- web-streams-polyfill: 3.3.3
-
- figures@6.1.0:
- dependencies:
- is-unicode-supported: 2.1.0
-
- file-entry-cache@8.0.0:
- dependencies:
- flat-cache: 4.0.1
-
- file-type@16.5.4:
- dependencies:
- readable-web-to-node-stream: 3.0.4
- strtok3: 6.3.0
- token-types: 4.2.1
-
- fill-range@7.1.1:
- dependencies:
- to-regex-range: 5.0.1
-
- finalhandler@1.3.1:
- 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.1
- unpipe: 1.0.0
- transitivePeerDependencies:
- - supports-color
-
- finalhandler@2.1.0:
- dependencies:
- debug: 4.4.3
- encodeurl: 2.0.0
- escape-html: 1.0.3
- on-finished: 2.4.1
- parseurl: 1.3.3
- statuses: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- find-up@4.1.0:
- dependencies:
- locate-path: 5.0.0
- path-exists: 4.0.0
-
- find-up@5.0.0:
- dependencies:
- locate-path: 6.0.0
- path-exists: 4.0.0
-
- find-workspaces@0.3.1:
- dependencies:
- fast-glob: 3.3.3
- pkg-types: 1.3.1
- yaml: 2.8.1
-
- fix-dts-default-cjs-exports@1.0.1:
- dependencies:
- magic-string: 0.30.19
- mlly: 1.8.0
- rollup: 4.52.4
-
- flat-cache@4.0.1:
- dependencies:
- flatted: 3.3.3
- keyv: 4.5.4
-
- flat@5.0.2: {}
-
- flatted@3.3.3: {}
-
- follow-redirects@1.15.11(debug@4.4.3):
- optionalDependencies:
- debug: 4.4.3
-
- for-each@0.3.5:
- dependencies:
- is-callable: 1.2.7
-
- foreground-child@3.3.1:
- dependencies:
- cross-spawn: 7.0.6
- signal-exit: 4.1.0
-
- form-data-encoder@1.7.2: {}
-
- form-data@4.0.4:
- 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
-
- format@0.2.2: {}
-
- 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
-
- forwarded-parse@2.1.2: {}
-
- forwarded@0.2.0: {}
-
- fresh@0.5.2: {}
-
- fresh@2.0.0: {}
-
- fs-extra@11.3.2:
- dependencies:
- graceful-fs: 4.2.11
- jsonfile: 6.2.0
- universalify: 2.0.1
-
- fs.realpath@1.0.0: {}
-
- fsevents@2.3.2:
- optional: true
-
- fsevents@2.3.3:
- optional: true
-
- function-bind@1.1.2: {}
-
- function.prototype.name@1.1.8:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- functions-have-names: 1.2.3
- hasown: 2.0.2
- is-callable: 1.2.7
-
- functions-have-names@1.2.3: {}
-
- gaxios@5.1.3:
- dependencies:
- extend: 3.0.2
- https-proxy-agent: 5.0.1
- is-stream: 2.0.1
- node-fetch: 2.7.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- gaxios@6.7.1:
- dependencies:
- extend: 3.0.2
- https-proxy-agent: 7.0.6
- is-stream: 2.0.1
- node-fetch: 2.7.0
- uuid: 9.0.1
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- gcp-metadata@5.3.0:
- dependencies:
- gaxios: 5.1.3
- json-bigint: 1.0.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- gcp-metadata@6.1.1:
- dependencies:
- gaxios: 6.7.1
- google-logging-utils: 0.0.2
- json-bigint: 1.0.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- generator-function@2.0.1: {}
-
- gensync@1.0.0-beta.2: {}
-
- get-caller-file@2.0.5: {}
-
- get-intrinsic@1.3.0:
- dependencies:
- call-bind-apply-helpers: 1.0.2
- es-define-property: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- function-bind: 1.1.2
- get-proto: 1.0.1
- gopd: 1.2.0
- has-symbols: 1.1.0
- hasown: 2.0.2
- math-intrinsics: 1.1.0
-
- get-nonce@1.0.1: {}
-
- get-package-type@0.1.0: {}
-
- get-port@7.1.0: {}
-
- get-proto@1.0.1:
- dependencies:
- dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
-
- get-stream@6.0.1: {}
-
- get-stream@9.0.1:
- dependencies:
- '@sec-ant/readable-stream': 0.4.1
- is-stream: 4.0.1
-
- get-symbol-description@1.1.0:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
-
- get-tsconfig@4.12.0:
- dependencies:
- resolve-pkg-maps: 1.0.0
-
- giget@2.0.0:
- dependencies:
- citty: 0.1.6
- consola: 3.4.2
- defu: 6.1.4
- node-fetch-native: 1.6.7
- nypm: 0.6.2
- pathe: 2.0.3
-
- glob-parent@5.1.2:
- dependencies:
- is-glob: 4.0.3
-
- glob-parent@6.0.2:
- dependencies:
- is-glob: 4.0.3
-
- glob@10.4.5:
- dependencies:
- foreground-child: 3.3.1
- jackspeak: 3.4.3
- minimatch: 9.0.5
- minipass: 7.1.2
- package-json-from-dist: 1.0.1
- path-scurry: 1.11.1
-
- glob@7.2.3:
- dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
-
- globals@14.0.0: {}
-
- globalthis@1.0.4:
- dependencies:
- define-properties: 1.2.1
- gopd: 1.2.0
-
- google-auth-library@8.9.0:
- dependencies:
- arrify: 2.0.1
- base64-js: 1.5.1
- ecdsa-sig-formatter: 1.0.11
- fast-text-encoding: 1.0.6
- gaxios: 5.1.3
- gcp-metadata: 5.3.0
- gtoken: 6.1.2
- jws: 4.0.0
- lru-cache: 6.0.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- google-logging-utils@0.0.2: {}
-
- google-p12-pem@4.0.1:
- dependencies:
- node-forge: 1.3.1
-
- gopd@1.2.0: {}
-
- graceful-fs@4.2.11: {}
-
- graphemer@1.4.0: {}
-
- graphql-query-complexity@0.12.0(graphql@16.11.0):
- dependencies:
- graphql: 16.11.0
- lodash.get: 4.4.2
-
- graphql-request@6.1.0(graphql@16.11.0):
- dependencies:
- '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0)
- cross-fetch: 3.2.0
- graphql: 16.11.0
- transitivePeerDependencies:
- - encoding
-
- graphql-scalars@1.24.2(graphql@16.11.0):
- dependencies:
- graphql: 16.11.0
- tslib: 2.8.1
-
- graphql-yoga@5.16.0(graphql@16.11.0):
- dependencies:
- '@envelop/core': 5.3.2
- '@envelop/instrumentation': 1.0.0
- '@graphql-tools/executor': 1.4.9(graphql@16.11.0)
- '@graphql-tools/schema': 10.0.25(graphql@16.11.0)
- '@graphql-tools/utils': 10.9.1(graphql@16.11.0)
- '@graphql-yoga/logger': 2.0.1
- '@graphql-yoga/subscription': 5.0.5
- '@whatwg-node/fetch': 0.10.11
- '@whatwg-node/promise-helpers': 1.3.2
- '@whatwg-node/server': 0.10.13
- dset: 3.1.4
- graphql: 16.11.0
- lru-cache: 10.4.3
- tslib: 2.8.1
-
- graphql@16.11.0: {}
-
- groq-sdk@0.5.0:
- 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
- web-streams-polyfill: 3.3.3
- transitivePeerDependencies:
- - encoding
-
- gtoken@6.1.2:
- dependencies:
- gaxios: 5.1.3
- google-p12-pem: 4.0.1
- jws: 4.0.0
- transitivePeerDependencies:
- - encoding
- - supports-color
-
- handlebars@4.7.8:
- dependencies:
- minimist: 1.2.8
- neo-async: 2.6.2
- source-map: 0.6.1
- wordwrap: 1.0.0
- optionalDependencies:
- uglify-js: 3.19.3
-
- has-bigints@1.1.0: {}
-
- has-flag@4.0.0: {}
-
- has-property-descriptors@1.0.2:
- dependencies:
- es-define-property: 1.0.1
-
- has-proto@1.2.0:
- dependencies:
- dunder-proto: 1.0.1
-
- has-symbols@1.1.0: {}
-
- has-tostringtag@1.0.2:
- dependencies:
- has-symbols: 1.1.0
-
- hasown@2.0.2:
- dependencies:
- function-bind: 1.1.2
-
- hast-util-from-parse5@8.0.3:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- devlop: 1.1.0
- hastscript: 9.0.1
- property-information: 7.1.0
- vfile: 6.0.3
- vfile-location: 5.0.3
- web-namespaces: 2.0.1
-
- hast-util-parse-selector@2.2.5: {}
-
- hast-util-parse-selector@4.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hast-util-raw@9.1.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- '@ungap/structured-clone': 1.3.0
- hast-util-from-parse5: 8.0.3
- hast-util-to-parse5: 8.0.0
- html-void-elements: 3.0.0
- mdast-util-to-hast: 13.2.0
- parse5: 7.3.0
- unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
- web-namespaces: 2.0.1
- zwitch: 2.0.4
-
- hast-util-to-estree@3.1.3:
- dependencies:
- '@types/estree': 1.0.8
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- devlop: 1.1.0
- estree-util-attach-comments: 3.0.0
- estree-util-is-identifier-name: 3.0.0
- hast-util-whitespace: 3.0.0
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.2.0
- mdast-util-mdxjs-esm: 2.0.1
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
- style-to-js: 1.1.18
- unist-util-position: 5.0.0
- zwitch: 2.0.4
- transitivePeerDependencies:
- - supports-color
-
- hast-util-to-jsx-runtime@2.3.6:
- dependencies:
- '@types/estree': 1.0.8
- '@types/hast': 3.0.4
- '@types/unist': 3.0.3
- comma-separated-tokens: 2.0.3
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- hast-util-whitespace: 3.0.0
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.2.0
- mdast-util-mdxjs-esm: 2.0.1
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
- style-to-js: 1.1.18
- unist-util-position: 5.0.0
- vfile-message: 4.0.3
- transitivePeerDependencies:
- - supports-color
-
- hast-util-to-parse5@8.0.0:
- dependencies:
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- devlop: 1.1.0
- property-information: 6.5.0
- space-separated-tokens: 2.0.2
- web-namespaces: 2.0.1
- zwitch: 2.0.4
-
- hast-util-whitespace@2.0.1: {}
-
- hast-util-whitespace@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
-
- hastscript@6.0.0:
- dependencies:
- '@types/hast': 2.3.10
- comma-separated-tokens: 1.0.8
- hast-util-parse-selector: 2.2.5
- property-information: 5.6.0
- space-separated-tokens: 1.1.5
-
- hastscript@9.0.1:
- dependencies:
- '@types/hast': 3.0.4
- comma-separated-tokens: 2.0.3
- hast-util-parse-selector: 4.0.0
- property-information: 7.1.0
- space-separated-tokens: 2.0.2
-
- help-me@5.0.0: {}
-
- highlight.js@10.7.3: {}
-
- highlightjs-vue@1.0.0: {}
-
- hono-openapi@0.4.8(hono@4.9.12)(openapi-types@12.1.3)(zod@3.25.76):
- dependencies:
- json-schema-walker: 2.0.0
- openapi-types: 12.1.3
- optionalDependencies:
- hono: 4.9.12
- zod: 3.25.76
-
- hono@4.9.12: {}
-
- html-escaper@2.0.2: {}
-
- html-url-attributes@3.0.1: {}
-
- html-void-elements@3.0.0: {}
-
- http-errors@2.0.0:
- dependencies:
- depd: 2.0.0
- inherits: 2.0.4
- setprototypeof: 1.2.0
- statuses: 2.0.1
- toidentifier: 1.0.1
-
- https-proxy-agent@5.0.1:
- dependencies:
- agent-base: 6.0.2
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- https-proxy-agent@7.0.6:
- dependencies:
- agent-base: 7.1.4
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- human-signals@2.1.0: {}
-
- human-signals@4.3.1: {}
-
- human-signals@8.0.1: {}
-
- humanize-ms@1.2.1:
- dependencies:
- ms: 2.1.3
-
- ibm-cloud-sdk-core@5.4.3:
- dependencies:
- '@types/debug': 4.1.12
- '@types/node': 18.19.130
- '@types/tough-cookie': 4.0.5
- axios: 1.12.2(debug@4.4.3)
- camelcase: 6.3.0
- debug: 4.4.3
- dotenv: 16.6.1
- extend: 3.0.2
- file-type: 16.5.4
- form-data: 4.0.4
- isstream: 0.1.2
- jsonwebtoken: 9.0.2
- mime-types: 2.1.35
- retry-axios: 2.6.0(axios@1.12.2)
- tough-cookie: 4.1.4
- transitivePeerDependencies:
- - supports-color
-
- iconv-lite@0.4.24:
- dependencies:
- safer-buffer: 2.1.2
-
- iconv-lite@0.6.3:
- dependencies:
- safer-buffer: 2.1.2
-
- iconv-lite@0.7.0:
- dependencies:
- safer-buffer: 2.1.2
-
- ieee754@1.2.1: {}
-
- ignore@5.3.2: {}
-
- ignore@7.0.5: {}
-
- import-fresh@3.3.1:
- dependencies:
- parent-module: 1.0.1
- resolve-from: 4.0.0
-
- import-in-the-middle@1.15.0:
- dependencies:
- acorn: 8.15.0
- acorn-import-attributes: 1.9.5(acorn@8.15.0)
- cjs-module-lexer: 1.4.3
- module-details-from-path: 1.0.4
-
- import-local@3.2.0:
- dependencies:
- pkg-dir: 4.2.0
- resolve-cwd: 3.0.0
-
- imurmurhash@0.1.4: {}
-
- inflight@1.0.6:
- dependencies:
- once: 1.4.0
- wrappy: 1.0.2
-
- inherits@2.0.4: {}
-
- inline-style-parser@0.1.1: {}
-
- inline-style-parser@0.2.4: {}
-
- inquirer@12.10.0(@types/node@20.19.21):
- dependencies:
- '@inquirer/ansi': 1.0.1
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/prompts': 7.9.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
- mute-stream: 2.0.0
- run-async: 4.0.6
- rxjs: 7.8.2
- optionalDependencies:
- '@types/node': 20.19.21
-
- internal-slot@1.1.0:
- dependencies:
- es-errors: 1.3.0
- hasown: 2.0.2
- side-channel: 1.1.0
-
- ip-regex@4.3.0: {}
-
- ipaddr.js@1.9.1: {}
-
- is-alphabetical@1.0.4: {}
-
- is-alphabetical@2.0.1: {}
-
- is-alphanumerical@1.0.4:
- dependencies:
- is-alphabetical: 1.0.4
- is-decimal: 1.0.4
-
- is-alphanumerical@2.0.1:
- dependencies:
- is-alphabetical: 2.0.1
- is-decimal: 2.0.1
-
- is-array-buffer@3.0.5:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
-
- is-arrayish@0.2.1: {}
-
- is-arrayish@0.3.4:
- optional: true
-
- is-async-function@2.1.1:
- dependencies:
- async-function: 1.0.0
- call-bound: 1.0.4
- get-proto: 1.0.1
- has-tostringtag: 1.0.2
- safe-regex-test: 1.1.0
-
- is-bigint@1.1.0:
- dependencies:
- has-bigints: 1.1.0
-
- is-boolean-object@1.2.2:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-buffer@2.0.5: {}
-
- is-bun-module@2.0.0:
- dependencies:
- semver: 7.7.3
-
- is-callable@1.2.7: {}
-
- is-core-module@2.16.1:
- dependencies:
- hasown: 2.0.2
-
- is-data-view@1.0.2:
- dependencies:
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
- is-typed-array: 1.1.15
-
- is-date-object@1.1.0:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-decimal@1.0.4: {}
-
- is-decimal@2.0.1: {}
-
- is-docker@3.0.0: {}
-
- is-extglob@2.1.1: {}
-
- is-finalizationregistry@1.1.1:
- dependencies:
- call-bound: 1.0.4
-
- is-fullwidth-code-point@3.0.0: {}
-
- is-generator-fn@2.1.0: {}
-
- is-generator-function@1.1.2:
- dependencies:
- call-bound: 1.0.4
- generator-function: 2.0.1
- get-proto: 1.0.1
- has-tostringtag: 1.0.2
- safe-regex-test: 1.1.0
-
- is-glob@4.0.3:
- dependencies:
- is-extglob: 2.1.1
-
- is-hexadecimal@1.0.4: {}
-
- is-hexadecimal@2.0.1: {}
-
- is-inside-container@1.0.0:
- dependencies:
- is-docker: 3.0.0
-
- is-interactive@2.0.0: {}
-
- is-map@2.0.3: {}
-
- is-module@1.0.0: {}
-
- is-negative-zero@2.0.3: {}
-
- is-number-object@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-number@7.0.0: {}
-
- is-plain-obj@4.1.0: {}
-
- is-promise@4.0.0: {}
-
- is-reference@1.2.1:
- dependencies:
- '@types/estree': 1.0.8
-
- is-regex@1.2.1:
- dependencies:
- call-bound: 1.0.4
- gopd: 1.2.0
- has-tostringtag: 1.0.2
- hasown: 2.0.2
-
- is-set@2.0.3: {}
-
- is-shared-array-buffer@1.0.4:
- dependencies:
- call-bound: 1.0.4
-
- is-stream@2.0.1: {}
-
- is-stream@3.0.0: {}
-
- is-stream@4.0.1: {}
-
- is-string@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-tostringtag: 1.0.2
-
- is-symbol@1.1.1:
- dependencies:
- call-bound: 1.0.4
- has-symbols: 1.1.0
- safe-regex-test: 1.1.0
-
- is-typed-array@1.1.15:
- dependencies:
- which-typed-array: 1.1.19
-
- is-unicode-supported@1.3.0: {}
-
- is-unicode-supported@2.1.0: {}
-
- is-url@1.2.4: {}
-
- is-weakmap@2.0.2: {}
-
- is-weakref@1.1.1:
- dependencies:
- call-bound: 1.0.4
-
- is-weakset@2.0.4:
- dependencies:
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
-
- is-wsl@3.1.0:
- dependencies:
- is-inside-container: 1.0.0
-
- is2@2.0.9:
- dependencies:
- deep-is: 0.1.4
- ip-regex: 4.3.0
- is-url: 1.2.4
-
- isarray@2.0.5: {}
-
- isexe@2.0.0: {}
-
- isstream@0.1.2: {}
-
- istanbul-lib-coverage@3.2.2: {}
-
- istanbul-lib-instrument@5.2.1:
- dependencies:
- '@babel/core': 7.28.4
- '@babel/parser': 7.28.4
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-coverage: 3.2.2
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
- istanbul-lib-instrument@6.0.3:
- dependencies:
- '@babel/core': 7.28.4
- '@babel/parser': 7.28.4
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-coverage: 3.2.2
- semver: 7.7.3
- transitivePeerDependencies:
- - supports-color
-
- istanbul-lib-report@3.0.1:
- dependencies:
- istanbul-lib-coverage: 3.2.2
- make-dir: 4.0.0
- supports-color: 7.2.0
-
- istanbul-lib-source-maps@4.0.1:
- dependencies:
- debug: 4.4.3
- istanbul-lib-coverage: 3.2.2
- source-map: 0.6.1
- transitivePeerDependencies:
- - supports-color
-
- istanbul-reports@3.2.0:
- dependencies:
- html-escaper: 2.0.2
- istanbul-lib-report: 3.0.1
-
- iterator.prototype@1.1.5:
- dependencies:
- define-data-property: 1.1.4
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- has-symbols: 1.1.0
- set-function-name: 2.0.2
-
- jackspeak@3.4.3:
- dependencies:
- '@isaacs/cliui': 8.0.2
- optionalDependencies:
- '@pkgjs/parseargs': 0.11.0
-
- jest-changed-files@29.7.0:
- dependencies:
- execa: 5.1.1
- jest-util: 29.7.0
- p-limit: 3.1.0
-
- jest-circus@29.7.0:
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/expect': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- chalk: 4.1.2
- co: 4.6.0
- dedent: 1.7.0
- is-generator-fn: 2.1.0
- jest-each: 29.7.0
- jest-matcher-utils: 29.7.0
- jest-message-util: 29.7.0
- jest-runtime: 29.7.0
- jest-snapshot: 29.7.0
- jest-util: 29.7.0
- p-limit: 3.1.0
- pretty-format: 29.7.0
- pure-rand: 6.1.0
- slash: 3.0.0
- stack-utils: 2.0.6
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-cli@29.7.0(@types/node@20.19.21):
- dependencies:
- '@jest/core': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- chalk: 4.1.2
- create-jest: 29.7.0(@types/node@20.19.21)
- exit: 0.1.2
- import-local: 3.2.0
- jest-config: 29.7.0(@types/node@20.19.21)
- jest-util: 29.7.0
- jest-validate: 29.7.0
- yargs: 17.7.2
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
- jest-config@29.7.0(@types/node@20.19.21):
- dependencies:
- '@babel/core': 7.28.4
- '@jest/test-sequencer': 29.7.0
- '@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.28.4)
- chalk: 4.1.2
- ci-info: 3.9.0
- deepmerge: 4.3.1
- glob: 7.2.3
- graceful-fs: 4.2.11
- jest-circus: 29.7.0
- jest-environment-node: 29.7.0
- jest-get-type: 29.6.3
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-runner: 29.7.0
- jest-util: 29.7.0
- jest-validate: 29.7.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 29.7.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 20.19.21
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-diff@29.7.0:
- dependencies:
- chalk: 4.1.2
- diff-sequences: 29.6.3
- jest-get-type: 29.6.3
- pretty-format: 29.7.0
-
- jest-docblock@29.7.0:
- dependencies:
- detect-newline: 3.1.0
-
- jest-each@29.7.0:
- dependencies:
- '@jest/types': 29.6.3
- chalk: 4.1.2
- jest-get-type: 29.6.3
- jest-util: 29.7.0
- pretty-format: 29.7.0
-
- jest-environment-node@29.7.0:
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/fake-timers': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- jest-mock: 29.7.0
- jest-util: 29.7.0
-
- jest-get-type@29.6.3: {}
-
- jest-haste-map@29.7.0:
- dependencies:
- '@jest/types': 29.6.3
- '@types/graceful-fs': 4.1.9
- '@types/node': 20.19.21
- anymatch: 3.1.3
- fb-watchman: 2.0.2
- graceful-fs: 4.2.11
- jest-regex-util: 29.6.3
- jest-util: 29.7.0
- jest-worker: 29.7.0
- micromatch: 4.0.8
- walker: 1.0.8
- optionalDependencies:
- fsevents: 2.3.3
-
- jest-leak-detector@29.7.0:
- dependencies:
- jest-get-type: 29.6.3
- pretty-format: 29.7.0
-
- jest-matcher-utils@29.7.0:
- dependencies:
- chalk: 4.1.2
- jest-diff: 29.7.0
- jest-get-type: 29.6.3
- pretty-format: 29.7.0
-
- jest-message-util@29.7.0:
- dependencies:
- '@babel/code-frame': 7.27.1
- '@jest/types': 29.6.3
- '@types/stack-utils': 2.0.3
- chalk: 4.1.2
- graceful-fs: 4.2.11
- micromatch: 4.0.8
- pretty-format: 29.7.0
- slash: 3.0.0
- stack-utils: 2.0.6
-
- jest-mock@29.7.0:
- dependencies:
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- jest-util: 29.7.0
-
- jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
- optionalDependencies:
- jest-resolve: 29.7.0
-
- jest-regex-util@29.6.3: {}
-
- jest-resolve-dependencies@29.7.0:
- dependencies:
- jest-regex-util: 29.6.3
- jest-snapshot: 29.7.0
- transitivePeerDependencies:
- - supports-color
-
- jest-resolve@29.7.0:
- dependencies:
- chalk: 4.1.2
- graceful-fs: 4.2.11
- jest-haste-map: 29.7.0
- jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0)
- jest-util: 29.7.0
- jest-validate: 29.7.0
- resolve: 1.22.10
- resolve.exports: 2.0.3
- slash: 3.0.0
-
- jest-runner@29.7.0:
- dependencies:
- '@jest/console': 29.7.0
- '@jest/environment': 29.7.0
- '@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- chalk: 4.1.2
- emittery: 0.13.1
- graceful-fs: 4.2.11
- jest-docblock: 29.7.0
- jest-environment-node: 29.7.0
- jest-haste-map: 29.7.0
- jest-leak-detector: 29.7.0
- jest-message-util: 29.7.0
- jest-resolve: 29.7.0
- jest-runtime: 29.7.0
- jest-util: 29.7.0
- jest-watcher: 29.7.0
- jest-worker: 29.7.0
- p-limit: 3.1.0
- source-map-support: 0.5.13
- transitivePeerDependencies:
- - supports-color
-
- jest-runtime@29.7.0:
- dependencies:
- '@jest/environment': 29.7.0
- '@jest/fake-timers': 29.7.0
- '@jest/globals': 29.7.0
- '@jest/source-map': 29.6.3
- '@jest/test-result': 29.7.0
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- chalk: 4.1.2
- cjs-module-lexer: 1.4.3
- collect-v8-coverage: 1.0.2
- glob: 7.2.3
- graceful-fs: 4.2.11
- jest-haste-map: 29.7.0
- jest-message-util: 29.7.0
- jest-mock: 29.7.0
- jest-regex-util: 29.6.3
- jest-resolve: 29.7.0
- jest-snapshot: 29.7.0
- jest-util: 29.7.0
- slash: 3.0.0
- strip-bom: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- jest-snapshot@29.7.0:
- dependencies:
- '@babel/core': 7.28.4
- '@babel/generator': 7.28.3
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
- '@babel/types': 7.28.4
- '@jest/expect-utils': 29.7.0
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
- chalk: 4.1.2
- expect: 29.7.0
- graceful-fs: 4.2.11
- jest-diff: 29.7.0
- jest-get-type: 29.6.3
- jest-matcher-utils: 29.7.0
- jest-message-util: 29.7.0
- jest-util: 29.7.0
- natural-compare: 1.4.0
- pretty-format: 29.7.0
- semver: 7.7.3
- transitivePeerDependencies:
- - supports-color
-
- jest-util@29.7.0:
- dependencies:
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- chalk: 4.1.2
- ci-info: 3.9.0
- graceful-fs: 4.2.11
- picomatch: 2.3.1
-
- jest-validate@29.7.0:
- dependencies:
- '@jest/types': 29.6.3
- camelcase: 6.3.0
- chalk: 4.1.2
- jest-get-type: 29.6.3
- leven: 3.1.0
- pretty-format: 29.7.0
-
- jest-watcher@29.7.0:
- dependencies:
- '@jest/test-result': 29.7.0
- '@jest/types': 29.6.3
- '@types/node': 20.19.21
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- emittery: 0.13.1
- jest-util: 29.7.0
- string-length: 4.0.2
-
- jest-worker@29.7.0:
- dependencies:
- '@types/node': 20.19.21
- jest-util: 29.7.0
- merge-stream: 2.0.0
- supports-color: 8.1.1
-
- jest@29.7.0(@types/node@20.19.21):
- dependencies:
- '@jest/core': 29.7.0
- '@jest/types': 29.6.3
- import-local: 3.2.0
- jest-cli: 29.7.0(@types/node@20.19.21)
- transitivePeerDependencies:
- - '@types/node'
- - babel-plugin-macros
- - supports-color
- - ts-node
-
- jiti@2.6.1: {}
-
- jose@5.10.0: {}
-
- joycon@3.1.1: {}
-
- js-base64@3.7.8: {}
-
- js-tiktoken@1.0.21:
- dependencies:
- base64-js: 1.5.1
-
- js-tokens@4.0.0: {}
-
- js-yaml@3.14.1:
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
-
- js-yaml@4.1.0:
- dependencies:
- argparse: 2.0.1
-
- jsesc@3.1.0: {}
-
- json-bigint@1.0.0:
- dependencies:
- bignumber.js: 9.3.1
-
- json-buffer@3.0.1: {}
-
- json-parse-even-better-errors@2.3.1: {}
-
- json-schema-to-zod@2.6.1: {}
-
- json-schema-traverse@0.4.1: {}
-
- json-schema-walker@2.0.0:
- dependencies:
- '@apidevtools/json-schema-ref-parser': 11.9.3
- clone: 2.1.2
-
- json-schema@0.4.0: {}
-
- json-stable-stringify-without-jsonify@1.0.1: {}
-
- json5@1.0.2:
- dependencies:
- minimist: 1.2.8
-
- json5@2.2.3: {}
-
- jsondiffpatch@0.6.0:
- dependencies:
- '@types/diff-match-patch': 1.0.36
- chalk: 5.6.2
- diff-match-patch: 1.0.5
-
- jsonfile@6.2.0:
- dependencies:
- universalify: 2.0.1
- optionalDependencies:
- graceful-fs: 4.2.11
-
- jsonpointer@5.0.1: {}
-
- jsonschema@1.2.7: {}
-
- jsonwebtoken@9.0.2:
- dependencies:
- jws: 3.2.2
- 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
-
- jsx-ast-utils@3.3.5:
- dependencies:
- array-includes: 3.1.9
- array.prototype.flat: 1.3.3
- object.assign: 4.1.7
- object.values: 1.2.1
-
- jwa@1.4.2:
- dependencies:
- buffer-equal-constant-time: 1.0.1
- ecdsa-sig-formatter: 1.0.11
- safe-buffer: 5.2.1
-
- jwa@2.0.1:
- dependencies:
- buffer-equal-constant-time: 1.0.1
- ecdsa-sig-formatter: 1.0.11
- safe-buffer: 5.2.1
-
- jws@3.2.2:
- dependencies:
- jwa: 1.4.2
- safe-buffer: 5.2.1
-
- jws@4.0.0:
- dependencies:
- jwa: 2.0.1
- safe-buffer: 5.2.1
-
- katex@0.16.25:
- dependencies:
- commander: 8.3.0
-
- keyv@4.5.4:
- dependencies:
- json-buffer: 3.0.1
-
- kleur@3.0.3: {}
-
- kleur@4.1.5: {}
-
- langchain@0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3):
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)
- '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))
- js-tiktoken: 1.0.21
- js-yaml: 4.1.0
- jsonpointer: 5.0.1
- langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- openapi-types: 12.1.3
- p-retry: 4.6.2
- uuid: 10.0.0
- yaml: 2.8.1
- zod: 3.25.76
- optionalDependencies:
- '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))
- axios: 1.12.2(debug@4.4.3)
- handlebars: 4.7.8
- transitivePeerDependencies:
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - openai
- - ws
-
- langchain@0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3):
- dependencies:
- '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
- '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)
- '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))
- js-tiktoken: 1.0.21
- js-yaml: 4.1.0
- jsonpointer: 5.0.1
- langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
- openapi-types: 12.1.3
- p-retry: 4.6.2
- uuid: 10.0.0
- yaml: 2.8.1
- zod: 3.25.76
- optionalDependencies:
- '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))
- axios: 1.12.2(debug@4.4.3)
- handlebars: 4.7.8
- transitivePeerDependencies:
- - '@opentelemetry/api'
- - '@opentelemetry/exporter-trace-otlp-proto'
- - '@opentelemetry/sdk-trace-base'
- - openai
- - ws
-
- langsmith@0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)):
- dependencies:
- '@types/uuid': 10.0.0
- chalk: 4.1.2
- console-table-printer: 2.14.6
- p-queue: 6.6.2
- p-retry: 4.6.2
- semver: 7.7.3
- uuid: 10.0.0
- optionalDependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/exporter-trace-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
-
- langsmith@0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)):
- dependencies:
- '@types/uuid': 10.0.0
- chalk: 4.1.2
- console-table-printer: 2.14.6
- p-queue: 6.6.2
- p-retry: 4.6.2
- semver: 7.7.3
- uuid: 10.0.0
- optionalDependencies:
- '@opentelemetry/api': 1.9.0
- '@opentelemetry/exporter-trace-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
- openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
-
- language-subtag-registry@0.3.23: {}
-
- language-tags@1.0.9:
- dependencies:
- language-subtag-registry: 0.3.23
-
- leven@3.1.0: {}
-
- levn@0.4.1:
- dependencies:
- prelude-ls: 1.2.1
- type-check: 0.4.0
-
- libphonenumber-js@1.12.24: {}
-
- libsql@0.5.22:
- dependencies:
- '@neon-rs/load': 0.0.4
- detect-libc: 2.0.2
- optionalDependencies:
- '@libsql/darwin-arm64': 0.5.22
- '@libsql/darwin-x64': 0.5.22
- '@libsql/linux-arm-gnueabihf': 0.5.22
- '@libsql/linux-arm-musleabihf': 0.5.22
- '@libsql/linux-arm64-gnu': 0.5.22
- '@libsql/linux-arm64-musl': 0.5.22
- '@libsql/linux-x64-gnu': 0.5.22
- '@libsql/linux-x64-musl': 0.5.22
- '@libsql/win32-x64-msvc': 0.5.22
-
- lightningcss-darwin-arm64@1.30.1:
- optional: true
-
- lightningcss-darwin-x64@1.30.1:
- optional: true
-
- lightningcss-freebsd-x64@1.30.1:
- optional: true
-
- lightningcss-linux-arm-gnueabihf@1.30.1:
- optional: true
-
- lightningcss-linux-arm64-gnu@1.30.1:
- optional: true
-
- lightningcss-linux-arm64-musl@1.30.1:
- optional: true
-
- lightningcss-linux-x64-gnu@1.30.1:
- optional: true
-
- lightningcss-linux-x64-musl@1.30.1:
- optional: true
-
- lightningcss-win32-arm64-msvc@1.30.1:
- optional: true
-
- lightningcss-win32-x64-msvc@1.30.1:
- optional: true
-
- lightningcss@1.30.1:
- dependencies:
- detect-libc: 2.1.2
- optionalDependencies:
- lightningcss-darwin-arm64: 1.30.1
- lightningcss-darwin-x64: 1.30.1
- lightningcss-freebsd-x64: 1.30.1
- lightningcss-linux-arm-gnueabihf: 1.30.1
- lightningcss-linux-arm64-gnu: 1.30.1
- lightningcss-linux-arm64-musl: 1.30.1
- lightningcss-linux-x64-gnu: 1.30.1
- lightningcss-linux-x64-musl: 1.30.1
- lightningcss-win32-arm64-msvc: 1.30.1
- lightningcss-win32-x64-msvc: 1.30.1
-
- lilconfig@3.1.3: {}
-
- lines-and-columns@1.2.4: {}
-
- linkify-it@5.0.0:
- dependencies:
- uc.micro: 2.1.0
-
- load-tsconfig@0.2.5: {}
-
- local-pkg@1.1.2:
- dependencies:
- mlly: 1.8.0
- pkg-types: 2.3.0
- quansync: 0.2.11
-
- locate-path@5.0.0:
- dependencies:
- p-locate: 4.1.0
-
- locate-path@6.0.0:
- dependencies:
- p-locate: 5.0.0
-
- lodash.camelcase@4.3.0: {}
-
- lodash.get@4.4.2: {}
-
- 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.memoize@4.1.2: {}
-
- lodash.merge@4.6.2: {}
-
- lodash.once@4.1.1: {}
-
- lodash.sortby@4.7.0: {}
-
- log-symbols@5.1.0:
- dependencies:
- chalk: 5.2.0
- is-unicode-supported: 1.3.0
-
- long@5.3.2: {}
-
- longest-streak@3.1.0: {}
-
- loose-envify@1.4.0:
- dependencies:
- js-tokens: 4.0.0
-
- lowlight@1.20.0:
- dependencies:
- fault: 1.0.4
- highlight.js: 10.7.3
-
- lru-cache@10.4.3: {}
-
- lru-cache@5.1.1:
- dependencies:
- yallist: 3.1.1
-
- lru-cache@6.0.0:
- dependencies:
- yallist: 4.0.0
-
- lucide-react@0.477.0(react@19.2.0):
- dependencies:
- react: 19.2.0
-
- magic-string@0.30.19:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
-
- make-dir@4.0.0:
- dependencies:
- semver: 7.7.3
-
- make-error@1.3.6: {}
-
- makeerror@1.0.12:
- dependencies:
- tmpl: 1.0.5
-
- markdown-extensions@2.0.0: {}
-
- markdown-it-ins@4.0.0: {}
-
- markdown-it@14.1.0:
- dependencies:
- argparse: 2.0.1
- entities: 4.5.0
- linkify-it: 5.0.0
- mdurl: 2.0.0
- punycode.js: 2.3.1
- uc.micro: 2.1.0
-
- markdown-table@3.0.4: {}
-
- marked@14.0.0: {}
-
- mastra@0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(@opentelemetry/api@1.9.0)(@types/json-schema@7.0.15)(typescript@5.9.3)(zod@3.25.76):
- dependencies:
- '@clack/prompts': 0.11.0
- '@expo/devcert': 1.2.0
- '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
- '@mastra/deployer': 0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(typescript@5.9.3)(zod@3.25.76)
- '@mastra/loggers': 0.10.15(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))
- '@mastra/mcp': 0.13.4(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(@types/json-schema@7.0.15)(zod@3.25.76)
- '@opentelemetry/auto-instrumentations-node': 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0))
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/semantic-conventions': 1.37.0
- '@webcontainer/env': 1.1.1
- commander: 12.1.0
- dotenv: 16.6.1
- execa: 9.6.0
- fs-extra: 11.3.2
- get-port: 7.1.0
- open: 10.2.0
- picocolors: 1.1.1
- posthog-node: 4.18.0
- prettier: 3.6.2
- shell-quote: 1.8.3
- strip-json-comments: 5.0.3
- tcp-port-used: 1.0.2
- yocto-spinner: 0.2.3
- zod: 3.25.76
- zod-to-json-schema: 3.24.6(zod@3.25.76)
- transitivePeerDependencies:
- - '@opentelemetry/api'
- - '@types/json-schema'
- - debug
- - encoding
- - supports-color
- - typescript
-
- math-intrinsics@1.1.0: {}
-
- mdast-util-definitions@5.1.2:
- dependencies:
- '@types/mdast': 3.0.15
- '@types/unist': 2.0.11
- unist-util-visit: 4.1.2
-
- mdast-util-find-and-replace@3.0.2:
- dependencies:
- '@types/mdast': 4.0.4
- escape-string-regexp: 5.0.0
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
-
- mdast-util-from-markdown@1.3.1:
- dependencies:
- '@types/mdast': 3.0.15
- '@types/unist': 2.0.11
- decode-named-character-reference: 1.2.0
- mdast-util-to-string: 3.2.0
- micromark: 3.2.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-decode-string: 1.1.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- unist-util-stringify-position: 3.0.3
- uvu: 0.5.6
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-from-markdown@2.0.2:
- dependencies:
- '@types/mdast': 4.0.4
- '@types/unist': 3.0.3
- decode-named-character-reference: 1.2.0
- devlop: 1.1.0
- mdast-util-to-string: 4.0.0
- micromark: 4.0.2
- micromark-util-decode-numeric-character-reference: 2.0.2
- micromark-util-decode-string: 2.0.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- unist-util-stringify-position: 4.0.0
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-autolink-literal@2.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- ccount: 2.0.1
- devlop: 1.1.0
- mdast-util-find-and-replace: 3.0.2
- micromark-util-character: 2.1.1
-
- mdast-util-gfm-footnote@2.1.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- micromark-util-normalize-identifier: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-strikethrough@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-table@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- markdown-table: 3.0.4
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm-task-list-item@2.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-gfm@3.1.0:
- dependencies:
- mdast-util-from-markdown: 2.0.2
- mdast-util-gfm-autolink-literal: 2.0.1
- mdast-util-gfm-footnote: 2.1.0
- mdast-util-gfm-strikethrough: 2.0.0
- mdast-util-gfm-table: 2.0.0
- mdast-util-gfm-task-list-item: 2.0.0
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-math@3.0.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- longest-streak: 3.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- unist-util-remove-position: 5.0.0
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdx-expression@2.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdx-jsx@3.2.0:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- '@types/unist': 3.0.3
- ccount: 2.0.1
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- parse-entities: 4.0.2
- stringify-entities: 4.0.4
- unist-util-stringify-position: 4.0.0
- vfile-message: 4.0.3
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdx@3.0.0:
- dependencies:
- mdast-util-from-markdown: 2.0.2
- mdast-util-mdx-expression: 2.0.1
- mdast-util-mdx-jsx: 3.2.0
- mdast-util-mdxjs-esm: 2.0.1
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-mdxjs-esm@2.0.1:
- dependencies:
- '@types/estree-jsx': 1.0.5
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- devlop: 1.1.0
- mdast-util-from-markdown: 2.0.2
- mdast-util-to-markdown: 2.1.2
- transitivePeerDependencies:
- - supports-color
-
- mdast-util-phrasing@4.1.0:
- dependencies:
- '@types/mdast': 4.0.4
- unist-util-is: 6.0.0
-
- mdast-util-to-hast@12.3.0:
- dependencies:
- '@types/hast': 2.3.10
- '@types/mdast': 3.0.15
- mdast-util-definitions: 5.1.2
- micromark-util-sanitize-uri: 1.2.0
- trim-lines: 3.0.1
- unist-util-generated: 2.0.1
- unist-util-position: 4.0.4
- unist-util-visit: 4.1.2
-
- mdast-util-to-hast@13.2.0:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- '@ungap/structured-clone': 1.3.0
- devlop: 1.1.0
- micromark-util-sanitize-uri: 2.0.1
- trim-lines: 3.0.1
- unist-util-position: 5.0.0
- unist-util-visit: 5.0.0
- vfile: 6.0.3
-
- mdast-util-to-markdown@2.1.2:
- dependencies:
- '@types/mdast': 4.0.4
- '@types/unist': 3.0.3
- longest-streak: 3.1.0
- mdast-util-phrasing: 4.1.0
- mdast-util-to-string: 4.0.0
- micromark-util-classify-character: 2.0.1
- micromark-util-decode-string: 2.0.1
- unist-util-visit: 5.0.0
- zwitch: 2.0.4
-
- mdast-util-to-string@3.2.0:
- dependencies:
- '@types/mdast': 3.0.15
-
- mdast-util-to-string@4.0.0:
- dependencies:
- '@types/mdast': 4.0.4
-
- mdurl@2.0.0: {}
-
- media-typer@0.3.0: {}
-
- media-typer@1.1.0: {}
-
- merge-descriptors@1.0.3: {}
-
- merge-descriptors@2.0.0: {}
-
- merge-stream@2.0.0: {}
-
- merge2@1.4.1: {}
-
- methods@1.1.2: {}
-
- micromark-core-commonmark@1.1.0:
- dependencies:
- decode-named-character-reference: 1.2.0
- micromark-factory-destination: 1.1.0
- micromark-factory-label: 1.1.0
- micromark-factory-space: 1.1.0
- micromark-factory-title: 1.1.0
- micromark-factory-whitespace: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-chunked: 1.1.0
- micromark-util-classify-character: 1.1.0
- micromark-util-html-tag-name: 1.2.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-resolve-all: 1.1.0
- micromark-util-subtokenize: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
-
- micromark-core-commonmark@2.0.3:
- dependencies:
- decode-named-character-reference: 1.2.0
- devlop: 1.1.0
- micromark-factory-destination: 2.0.1
- micromark-factory-label: 2.0.1
- micromark-factory-space: 2.0.1
- micromark-factory-title: 2.0.1
- micromark-factory-whitespace: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-chunked: 2.0.1
- micromark-util-classify-character: 2.0.1
- micromark-util-html-tag-name: 2.0.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-resolve-all: 2.0.1
- micromark-util-subtokenize: 2.1.0
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-autolink-literal@2.1.0:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-footnote@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-strikethrough@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-util-chunked: 2.0.1
- micromark-util-classify-character: 2.0.1
- micromark-util-resolve-all: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-table@2.1.1:
- dependencies:
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-tagfilter@2.0.0:
- dependencies:
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm-task-list-item@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-gfm@3.0.0:
- dependencies:
- micromark-extension-gfm-autolink-literal: 2.1.0
- micromark-extension-gfm-footnote: 2.1.0
- micromark-extension-gfm-strikethrough: 2.1.0
- micromark-extension-gfm-table: 2.1.1
- micromark-extension-gfm-tagfilter: 2.0.0
- micromark-extension-gfm-task-list-item: 2.1.0
- micromark-util-combine-extensions: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-math@3.1.0:
- dependencies:
- '@types/katex': 0.16.7
- devlop: 1.1.0
- katex: 0.16.25
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-mdx-expression@3.0.1:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- micromark-factory-mdx-expression: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-extension-mdx-jsx@3.0.2:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- estree-util-is-identifier-name: 3.0.0
- micromark-factory-mdx-expression: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- vfile-message: 4.0.3
-
- micromark-extension-mdx-md@2.0.0:
- dependencies:
- micromark-util-types: 2.0.2
-
- micromark-extension-mdxjs-esm@3.0.0:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.3
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.3
-
- micromark-extension-mdxjs@3.0.0:
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- micromark-extension-mdx-expression: 3.0.1
- micromark-extension-mdx-jsx: 3.0.2
- micromark-extension-mdx-md: 2.0.0
- micromark-extension-mdxjs-esm: 3.0.0
- micromark-util-combine-extensions: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-destination@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-factory-destination@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-label@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
-
- micromark-factory-label@2.0.1:
- dependencies:
- devlop: 1.1.0
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-mdx-expression@2.0.3:
- dependencies:
- '@types/estree': 1.0.8
- devlop: 1.1.0
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-events-to-acorn: 2.0.3
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- unist-util-position-from-estree: 2.0.0
- vfile-message: 4.0.3
-
- micromark-factory-space@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-types: 1.1.0
-
- micromark-factory-space@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-types: 2.0.2
-
- micromark-factory-title@1.1.0:
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-factory-title@2.0.1:
- dependencies:
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-factory-whitespace@1.1.0:
- dependencies:
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-factory-whitespace@2.0.1:
- dependencies:
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-character@1.2.0:
- dependencies:
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-util-character@2.1.1:
- dependencies:
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-chunked@1.1.0:
- dependencies:
- micromark-util-symbol: 1.1.0
-
- micromark-util-chunked@2.0.1:
- dependencies:
- micromark-util-symbol: 2.0.1
-
- micromark-util-classify-character@1.1.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-util-classify-character@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-combine-extensions@1.1.0:
- dependencies:
- micromark-util-chunked: 1.1.0
- micromark-util-types: 1.1.0
-
- micromark-util-combine-extensions@2.0.1:
- dependencies:
- micromark-util-chunked: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-decode-numeric-character-reference@1.1.0:
- dependencies:
- micromark-util-symbol: 1.1.0
-
- micromark-util-decode-numeric-character-reference@2.0.2:
- dependencies:
- micromark-util-symbol: 2.0.1
-
- micromark-util-decode-string@1.1.0:
- dependencies:
- decode-named-character-reference: 1.2.0
- micromark-util-character: 1.2.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-symbol: 1.1.0
-
- micromark-util-decode-string@2.0.1:
- dependencies:
- decode-named-character-reference: 1.2.0
- micromark-util-character: 2.1.1
- micromark-util-decode-numeric-character-reference: 2.0.2
- micromark-util-symbol: 2.0.1
-
- micromark-util-encode@1.1.0: {}
-
- micromark-util-encode@2.0.1: {}
-
- micromark-util-events-to-acorn@2.0.3:
- dependencies:
- '@types/estree': 1.0.8
- '@types/unist': 3.0.3
- devlop: 1.1.0
- estree-util-visit: 2.0.0
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- vfile-message: 4.0.3
-
- micromark-util-html-tag-name@1.2.0: {}
-
- micromark-util-html-tag-name@2.0.1: {}
-
- micromark-util-normalize-identifier@1.1.0:
- dependencies:
- micromark-util-symbol: 1.1.0
-
- micromark-util-normalize-identifier@2.0.1:
- dependencies:
- micromark-util-symbol: 2.0.1
-
- micromark-util-resolve-all@1.1.0:
- dependencies:
- micromark-util-types: 1.1.0
-
- micromark-util-resolve-all@2.0.1:
- dependencies:
- micromark-util-types: 2.0.2
-
- micromark-util-sanitize-uri@1.2.0:
- dependencies:
- micromark-util-character: 1.2.0
- micromark-util-encode: 1.1.0
- micromark-util-symbol: 1.1.0
-
- micromark-util-sanitize-uri@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-encode: 2.0.1
- micromark-util-symbol: 2.0.1
-
- micromark-util-subtokenize@1.1.0:
- dependencies:
- micromark-util-chunked: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
-
- micromark-util-subtokenize@2.1.0:
- dependencies:
- devlop: 1.1.0
- micromark-util-chunked: 2.0.1
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-symbol@1.1.0: {}
-
- micromark-util-symbol@2.0.1: {}
-
- micromark-util-types@1.1.0: {}
-
- micromark-util-types@2.0.2: {}
-
- micromark@3.2.0:
- dependencies:
- '@types/debug': 4.1.12
- debug: 4.4.3
- decode-named-character-reference: 1.2.0
- micromark-core-commonmark: 1.1.0
- micromark-factory-space: 1.1.0
- micromark-util-character: 1.2.0
- micromark-util-chunked: 1.1.0
- micromark-util-combine-extensions: 1.1.0
- micromark-util-decode-numeric-character-reference: 1.1.0
- micromark-util-encode: 1.1.0
- micromark-util-normalize-identifier: 1.1.0
- micromark-util-resolve-all: 1.1.0
- micromark-util-sanitize-uri: 1.2.0
- micromark-util-subtokenize: 1.1.0
- micromark-util-symbol: 1.1.0
- micromark-util-types: 1.1.0
- uvu: 0.5.6
- transitivePeerDependencies:
- - supports-color
-
- micromark@4.0.2:
- dependencies:
- '@types/debug': 4.1.12
- debug: 4.4.3
- decode-named-character-reference: 1.2.0
- devlop: 1.1.0
- micromark-core-commonmark: 2.0.3
- micromark-factory-space: 2.0.1
- micromark-util-character: 2.1.1
- micromark-util-chunked: 2.0.1
- micromark-util-combine-extensions: 2.0.1
- micromark-util-decode-numeric-character-reference: 2.0.2
- micromark-util-encode: 2.0.1
- micromark-util-normalize-identifier: 2.0.1
- micromark-util-resolve-all: 2.0.1
- micromark-util-sanitize-uri: 2.0.1
- micromark-util-subtokenize: 2.1.0
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- micromatch@4.0.8:
- dependencies:
- braces: 3.0.3
- picomatch: 2.3.1
-
- mime-db@1.52.0: {}
-
- mime-db@1.54.0: {}
-
- mime-types@2.1.35:
- dependencies:
- mime-db: 1.52.0
-
- mime-types@3.0.1:
- dependencies:
- mime-db: 1.54.0
-
- mime@1.6.0: {}
-
- mimic-fn@2.1.0: {}
-
- mimic-fn@4.0.0: {}
-
- minimatch@3.1.2:
- dependencies:
- brace-expansion: 1.1.12
-
- minimatch@9.0.5:
- dependencies:
- brace-expansion: 2.0.2
-
- minimist@1.2.8: {}
-
- minipass@7.1.2: {}
-
- minizlib@3.1.0:
- dependencies:
- minipass: 7.1.2
-
- mlly@1.8.0:
- dependencies:
- acorn: 8.15.0
- pathe: 2.0.3
- pkg-types: 1.3.1
- ufo: 1.6.1
-
- mnemonist@0.38.3:
- dependencies:
- obliterator: 1.6.1
-
- module-details-from-path@1.0.4: {}
-
- monaco-editor@0.54.0:
- dependencies:
- dompurify: 3.1.7
- marked: 14.0.0
-
- mri@1.2.0: {}
-
- ms@2.0.0: {}
-
- ms@2.1.2: {}
-
- ms@2.1.3: {}
-
- mustache@4.2.0: {}
-
- mute-stream@2.0.0: {}
-
- mz@2.7.0:
- dependencies:
- any-promise: 1.3.0
- object-assign: 4.1.1
- thenify-all: 1.6.0
-
- nanoid@3.3.11: {}
-
- napi-postinstall@0.3.4: {}
-
- natural-compare@1.4.0: {}
-
- negotiator@0.6.3: {}
-
- negotiator@1.0.0: {}
-
- neo-async@2.6.2: {}
-
- next-themes@0.4.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
- dependencies:
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
-
- next@15.2.1(@opentelemetry/api@1.9.0)(@playwright/test@1.56.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
- dependencies:
- '@next/env': 15.2.1
- '@swc/counter': 0.1.3
- '@swc/helpers': 0.5.15
- busboy: 1.6.0
- caniuse-lite: 1.0.30001750
- postcss: 8.4.31
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- styled-jsx: 5.1.6(react@19.2.0)
- optionalDependencies:
- '@next/swc-darwin-arm64': 15.2.1
- '@next/swc-darwin-x64': 15.2.1
- '@next/swc-linux-arm64-gnu': 15.2.1
- '@next/swc-linux-arm64-musl': 15.2.1
- '@next/swc-linux-x64-gnu': 15.2.1
- '@next/swc-linux-x64-musl': 15.2.1
- '@next/swc-win32-arm64-msvc': 15.2.1
- '@next/swc-win32-x64-msvc': 15.2.1
- '@opentelemetry/api': 1.9.0
- '@playwright/test': 1.56.0
- sharp: 0.33.5
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
-
- nice-grpc-client-middleware-retry@3.1.12:
- dependencies:
- abort-controller-x: 0.4.3
- nice-grpc-common: 2.0.2
-
- nice-grpc-common@2.0.2:
- dependencies:
- ts-error: 1.0.6
-
- nice-grpc@2.1.13:
- dependencies:
- '@grpc/grpc-js': 1.14.0
- abort-controller-x: 0.4.3
- nice-grpc-common: 2.0.2
-
- node-domexception@1.0.0: {}
-
- node-fetch-native@1.6.7: {}
-
- node-fetch@2.7.0:
- dependencies:
- whatwg-url: 5.0.0
-
- node-fetch@3.3.2:
- dependencies:
- data-uri-to-buffer: 4.0.1
- fetch-blob: 3.2.0
- formdata-polyfill: 4.0.10
-
- node-forge@1.3.1: {}
-
- node-int64@0.4.0: {}
-
- node-releases@2.0.23: {}
-
- normalize-path@3.0.0: {}
-
- npm-run-path@4.0.1:
- dependencies:
- path-key: 3.1.1
-
- npm-run-path@5.3.0:
- dependencies:
- path-key: 4.0.0
-
- npm-run-path@6.0.0:
- dependencies:
- path-key: 4.0.0
- unicorn-magic: 0.3.0
-
- nypm@0.6.2:
- dependencies:
- citty: 0.1.6
- consola: 3.4.2
- pathe: 2.0.3
- pkg-types: 2.3.0
- tinyexec: 1.0.1
-
- object-assign@4.1.1: {}
-
- object-inspect@1.13.4: {}
-
- object-keys@1.1.1: {}
-
- object.assign@4.1.7:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
- has-symbols: 1.1.0
- object-keys: 1.1.1
-
- object.entries@1.1.9:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- object.fromentries@2.0.8:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-object-atoms: 1.1.1
-
- object.groupby@1.0.3:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
-
- object.values@1.2.1:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- obliterator@1.6.1: {}
-
- on-exit-leak-free@2.1.2: {}
-
- on-finished@2.4.1:
- dependencies:
- ee-first: 1.1.1
-
- once@1.4.0:
- dependencies:
- wrappy: 1.0.2
-
- onetime@5.1.2:
- dependencies:
- mimic-fn: 2.1.0
-
- onetime@6.0.0:
- dependencies:
- mimic-fn: 4.0.0
-
- open@10.2.0:
- dependencies:
- default-browser: 5.2.1
- define-lazy-prop: 3.0.0
- is-inside-container: 1.0.0
- wsl-utils: 0.1.0
-
- openai@4.104.0(ws@8.18.3)(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
- optionalDependencies:
- ws: 8.18.3
- zod: 3.25.76
- transitivePeerDependencies:
- - encoding
-
- openai@5.12.2(ws@8.18.3)(zod@3.25.76):
- optionalDependencies:
- ws: 8.18.3
- zod: 3.25.76
-
- openapi-types@12.1.3: {}
-
- optionator@0.9.4:
- dependencies:
- deep-is: 0.1.4
- fast-levenshtein: 2.0.6
- levn: 0.4.1
- prelude-ls: 1.2.1
- type-check: 0.4.0
- word-wrap: 1.2.5
-
- ora@6.3.1:
- dependencies:
- chalk: 5.2.0
- cli-cursor: 4.0.0
- cli-spinners: 2.9.2
- is-interactive: 2.0.0
- is-unicode-supported: 1.3.0
- log-symbols: 5.1.0
- stdin-discarder: 0.1.0
- strip-ansi: 7.1.2
- wcwidth: 1.0.1
-
- orderedmap@2.1.1: {}
-
- own-keys@1.0.1:
- dependencies:
- get-intrinsic: 1.3.0
- object-keys: 1.1.1
- safe-push-apply: 1.0.0
-
- p-finally@1.0.0: {}
-
- p-limit@2.3.0:
- dependencies:
- p-try: 2.2.0
-
- p-limit@3.1.0:
- dependencies:
- yocto-queue: 0.1.0
-
- p-locate@4.1.0:
- dependencies:
- p-limit: 2.3.0
-
- p-locate@5.0.0:
- dependencies:
- p-limit: 3.1.0
-
- p-map@7.0.3: {}
-
- p-queue@6.6.2:
- dependencies:
- eventemitter3: 4.0.7
- p-timeout: 3.2.0
-
- p-retry@4.6.2:
- dependencies:
- '@types/retry': 0.12.0
- retry: 0.13.1
-
- p-timeout@3.2.0:
- dependencies:
- p-finally: 1.0.0
-
- p-try@2.2.0: {}
-
- package-json-from-dist@1.0.1: {}
-
- parent-module@1.0.1:
- dependencies:
- callsites: 3.1.0
-
- parse-entities@2.0.0:
- dependencies:
- character-entities: 1.2.4
- character-entities-legacy: 1.1.4
- character-reference-invalid: 1.1.4
- is-alphanumerical: 1.0.4
- is-decimal: 1.0.4
- is-hexadecimal: 1.0.4
-
- parse-entities@4.0.2:
- dependencies:
- '@types/unist': 2.0.11
- character-entities-legacy: 3.0.0
- character-reference-invalid: 2.0.1
- decode-named-character-reference: 1.2.0
- is-alphanumerical: 2.0.1
- is-decimal: 2.0.1
- is-hexadecimal: 2.0.1
-
- parse-json@5.2.0:
- dependencies:
- '@babel/code-frame': 7.27.1
- error-ex: 1.3.4
- json-parse-even-better-errors: 2.3.1
- lines-and-columns: 1.2.4
-
- parse-ms@4.0.0: {}
-
- parse5@7.3.0:
- dependencies:
- entities: 6.0.1
-
- parseurl@1.3.3: {}
-
- partial-json@0.1.7: {}
-
- path-exists@4.0.0: {}
-
- path-is-absolute@1.0.1: {}
-
- path-key@3.1.1: {}
-
- path-key@4.0.0: {}
-
- path-parse@1.0.7: {}
-
- path-scurry@1.11.1:
- dependencies:
- lru-cache: 10.4.3
- minipass: 7.1.2
-
- path-to-regexp@0.1.12: {}
-
- path-to-regexp@8.3.0: {}
-
- pathe@2.0.3: {}
-
- peek-readable@4.1.0: {}
-
- pg-cloudflare@1.2.7:
- optional: true
-
- pg-connection-string@2.9.1: {}
-
- pg-int8@1.0.1: {}
-
- pg-pool@3.10.1(pg@8.16.3):
- dependencies:
- pg: 8.16.3
-
- pg-protocol@1.10.3: {}
-
- pg-types@2.2.0:
- dependencies:
- pg-int8: 1.0.1
- postgres-array: 2.0.0
- postgres-bytea: 1.0.0
- postgres-date: 1.0.7
- postgres-interval: 1.2.0
-
- pg@8.16.3:
- dependencies:
- pg-connection-string: 2.9.1
- pg-pool: 3.10.1(pg@8.16.3)
- pg-protocol: 1.10.3
- pg-types: 2.2.0
- pgpass: 1.0.5
- optionalDependencies:
- pg-cloudflare: 1.2.7
-
- pgpass@1.0.5:
- dependencies:
- split2: 4.2.0
-
- picocolors@1.1.1: {}
-
- picomatch@2.3.1: {}
-
- picomatch@4.0.3: {}
-
- pino-abstract-transport@2.0.0:
- dependencies:
- split2: 4.2.0
-
- pino-pretty@11.3.0:
- dependencies:
- colorette: 2.0.20
- dateformat: 4.6.3
- fast-copy: 3.0.2
- fast-safe-stringify: 2.1.1
- help-me: 5.0.0
- joycon: 3.1.1
- minimist: 1.2.8
- on-exit-leak-free: 2.1.2
- pino-abstract-transport: 2.0.0
- pump: 3.0.3
- readable-stream: 4.7.0
- secure-json-parse: 2.7.0
- sonic-boom: 4.2.0
- strip-json-comments: 3.1.1
-
- pino-pretty@13.1.2:
- dependencies:
- colorette: 2.0.20
- dateformat: 4.6.3
- fast-copy: 3.0.2
- fast-safe-stringify: 2.1.1
- help-me: 5.0.0
- joycon: 3.1.1
- minimist: 1.2.8
- on-exit-leak-free: 2.1.2
- pino-abstract-transport: 2.0.0
- pump: 3.0.3
- secure-json-parse: 4.1.0
- sonic-boom: 4.2.0
- strip-json-comments: 5.0.3
-
- pino-std-serializers@7.0.0: {}
-
- pino@9.13.1:
- dependencies:
- atomic-sleep: 1.0.0
- on-exit-leak-free: 2.1.2
- pino-abstract-transport: 2.0.0
- pino-std-serializers: 7.0.0
- process-warning: 5.0.0
- quick-format-unescaped: 4.0.4
- real-require: 0.2.0
- safe-stable-stringify: 2.5.0
- slow-redact: 0.3.2
- sonic-boom: 4.2.0
- thread-stream: 3.1.0
-
- pirates@4.0.7: {}
-
- pkce-challenge@5.0.0: {}
-
- pkg-dir@4.2.0:
- dependencies:
- find-up: 4.1.0
-
- pkg-types@1.3.1:
- dependencies:
- confbox: 0.1.8
- mlly: 1.8.0
- pathe: 2.0.3
-
- pkg-types@2.3.0:
- dependencies:
- confbox: 0.2.2
- exsolve: 1.0.7
- pathe: 2.0.3
-
- playwright-core@1.56.0: {}
-
- playwright@1.56.0:
- dependencies:
- playwright-core: 1.56.0
- optionalDependencies:
- fsevents: 2.3.2
-
- possible-typed-array-names@1.1.0: {}
-
- postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(yaml@2.8.1):
- dependencies:
- lilconfig: 3.1.3
- optionalDependencies:
- jiti: 2.6.1
- postcss: 8.5.6
- tsx: 4.20.6
- yaml: 2.8.1
-
- postcss-selector-parser@6.0.10:
- dependencies:
- cssesc: 3.0.0
- util-deprecate: 1.0.2
-
- postcss@8.4.31:
- dependencies:
- nanoid: 3.3.11
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
- postcss@8.5.6:
- dependencies:
- nanoid: 3.3.11
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
- postgres-array@2.0.0: {}
-
- postgres-bytea@1.0.0: {}
-
- postgres-date@1.0.7: {}
-
- postgres-interval@1.2.0:
- dependencies:
- xtend: 4.0.2
-
- postgres@3.4.7: {}
-
- posthog-node@4.18.0:
- dependencies:
- axios: 1.12.2(debug@4.4.3)
- transitivePeerDependencies:
- - debug
-
- prelude-ls@1.2.1: {}
-
- prettier@3.6.2: {}
-
- pretty-format@29.7.0:
- dependencies:
- '@jest/schemas': 29.6.3
- ansi-styles: 5.2.0
- react-is: 18.3.1
-
- pretty-ms@9.3.0:
- dependencies:
- parse-ms: 4.0.0
-
- prismjs@1.27.0: {}
-
- prismjs@1.30.0: {}
-
- process-warning@5.0.0: {}
-
- process@0.11.10: {}
-
- promise-limit@2.7.0: {}
-
- prompts@2.4.2:
- dependencies:
- kleur: 3.0.3
- sisteransi: 1.0.5
-
- prop-types@15.8.1:
- dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- react-is: 16.13.1
-
- property-information@5.6.0:
- dependencies:
- xtend: 4.0.2
-
- property-information@6.5.0: {}
-
- property-information@7.1.0: {}
-
- prosemirror-changeset@2.3.1:
- dependencies:
- prosemirror-transform: 1.10.4
-
- prosemirror-collab@1.3.1:
- dependencies:
- prosemirror-state: 1.4.3
-
- prosemirror-commands@1.7.1:
- dependencies:
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
-
- prosemirror-dropcursor@1.8.2:
- dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
-
- prosemirror-gapcursor@1.3.2:
- dependencies:
- prosemirror-keymap: 1.2.3
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
- prosemirror-view: 1.41.3
-
- prosemirror-history@1.4.1:
- dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
- rope-sequence: 1.3.4
-
- prosemirror-inputrules@1.5.0:
- dependencies:
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
-
- prosemirror-keymap@1.2.3:
- dependencies:
- prosemirror-state: 1.4.3
- w3c-keyname: 2.2.8
-
- prosemirror-markdown@1.13.2:
- dependencies:
- '@types/markdown-it': 14.1.2
- markdown-it: 14.1.0
- prosemirror-model: 1.25.3
-
- prosemirror-menu@1.2.5:
- dependencies:
- crelt: 1.0.6
- prosemirror-commands: 1.7.1
- prosemirror-history: 1.4.1
- prosemirror-state: 1.4.3
-
- prosemirror-model@1.25.3:
- dependencies:
- orderedmap: 2.1.1
-
- prosemirror-schema-basic@1.2.4:
- dependencies:
- prosemirror-model: 1.25.3
-
- prosemirror-schema-list@1.5.1:
- dependencies:
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
-
- prosemirror-state@1.4.3:
- dependencies:
- prosemirror-model: 1.25.3
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
-
- prosemirror-tables@1.8.1:
- dependencies:
- prosemirror-keymap: 1.2.3
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
- prosemirror-view: 1.41.3
-
- prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.3)(prosemirror-state@1.4.3)(prosemirror-view@1.41.3):
- dependencies:
- '@remirror/core-constants': 3.0.0
- escape-string-regexp: 4.0.0
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
- prosemirror-view: 1.41.3
-
- prosemirror-transform@1.10.4:
- dependencies:
- prosemirror-model: 1.25.3
-
- prosemirror-view@1.41.3:
- dependencies:
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
- prosemirror-transform: 1.10.4
-
- protobufjs@7.5.4:
- dependencies:
- '@protobufjs/aspromise': 1.1.2
- '@protobufjs/base64': 1.1.2
- '@protobufjs/codegen': 2.0.4
- '@protobufjs/eventemitter': 1.1.0
- '@protobufjs/fetch': 1.1.0
- '@protobufjs/float': 1.0.2
- '@protobufjs/inquire': 1.1.0
- '@protobufjs/path': 1.1.2
- '@protobufjs/pool': 1.1.0
- '@protobufjs/utf8': 1.1.0
- '@types/node': 20.19.21
- long: 5.3.2
-
- proxy-addr@2.0.7:
- dependencies:
- forwarded: 0.2.0
- ipaddr.js: 1.9.1
-
- proxy-from-env@1.1.0: {}
-
- psl@1.15.0:
- dependencies:
- punycode: 2.3.1
-
- pump@3.0.3:
- dependencies:
- end-of-stream: 1.4.5
- once: 1.4.0
-
- punycode.js@2.3.1: {}
-
- punycode@2.3.1: {}
-
- pure-rand@6.1.0: {}
-
- qs@6.13.0:
- dependencies:
- side-channel: 1.1.0
-
- qs@6.14.0:
- dependencies:
- side-channel: 1.1.0
-
- quansync@0.2.11: {}
-
- querystringify@2.2.0: {}
-
- queue-microtask@1.2.3: {}
-
- quick-format-unescaped@4.0.4: {}
-
- radash@12.1.1: {}
-
- range-parser@1.2.1: {}
-
- raw-body@2.5.2:
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.4.24
- unpipe: 1.0.0
-
- raw-body@3.0.1:
- dependencies:
- bytes: 3.1.2
- http-errors: 2.0.0
- iconv-lite: 0.7.0
- unpipe: 1.0.0
-
- react-dom@19.2.0(react@19.2.0):
- dependencies:
- react: 19.2.0
- scheduler: 0.27.0
-
- react-is@16.13.1: {}
-
- react-is@18.3.1: {}
-
- react-markdown@10.1.0(@types/react@19.2.2)(react@19.2.0):
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- '@types/react': 19.2.2
- devlop: 1.1.0
- hast-util-to-jsx-runtime: 2.3.6
- html-url-attributes: 3.0.1
- mdast-util-to-hast: 13.2.0
- react: 19.2.0
- remark-parse: 11.0.0
- remark-rehype: 11.1.2
- unified: 11.0.5
- unist-util-visit: 5.0.0
- vfile: 6.0.3
- transitivePeerDependencies:
- - supports-color
-
- react-markdown@8.0.7(@types/react@19.2.2)(react@19.2.0):
- dependencies:
- '@types/hast': 2.3.10
- '@types/prop-types': 15.7.15
- '@types/react': 19.2.2
- '@types/unist': 2.0.11
- comma-separated-tokens: 2.0.3
- hast-util-whitespace: 2.0.1
- prop-types: 15.8.1
- property-information: 6.5.0
- react: 19.2.0
- react-is: 18.3.1
- remark-parse: 10.0.2
- remark-rehype: 10.1.0
- space-separated-tokens: 2.0.2
- style-to-object: 0.4.4
- unified: 10.1.2
- unist-util-visit: 4.1.2
- vfile: 5.3.7
- transitivePeerDependencies:
- - supports-color
-
- react-remove-scroll-bar@2.3.8(@types/react@19.2.2)(react@19.2.0):
- dependencies:
- react: 19.2.0
- react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.0)
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.2.2
-
- react-remove-scroll@2.7.1(@types/react@19.2.2)(react@19.2.0):
- dependencies:
- react: 19.2.0
- react-remove-scroll-bar: 2.3.8(@types/react@19.2.2)(react@19.2.0)
- react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.2.0)
- tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.2.2)(react@19.2.0)
- use-sidecar: 1.1.3(@types/react@19.2.2)(react@19.2.0)
- optionalDependencies:
- '@types/react': 19.2.2
-
- react-style-singleton@2.2.3(@types/react@19.2.2)(react@19.2.0):
- dependencies:
- get-nonce: 1.0.1
- react: 19.2.0
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.2.2
-
- react-syntax-highlighter@15.6.6(react@19.2.0):
- dependencies:
- '@babel/runtime': 7.28.4
- highlight.js: 10.7.3
- highlightjs-vue: 1.0.0
- lowlight: 1.20.0
- prismjs: 1.30.0
- react: 19.2.0
- refractor: 3.6.0
-
- react@19.2.0: {}
-
- readable-stream@3.6.2:
- dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
-
- readable-stream@4.7.0:
- dependencies:
- abort-controller: 3.0.0
- buffer: 6.0.3
- events: 3.3.0
- process: 0.11.10
- string_decoder: 1.3.0
-
- readable-web-to-node-stream@3.0.4:
- dependencies:
- readable-stream: 4.7.0
-
- readdirp@4.1.2: {}
-
- real-require@0.2.0: {}
-
- recma-build-jsx@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- estree-util-build-jsx: 3.0.1
- vfile: 6.0.3
-
- recma-jsx@1.0.1(acorn@8.15.0):
- dependencies:
- acorn: 8.15.0
- acorn-jsx: 5.3.2(acorn@8.15.0)
- estree-util-to-js: 2.0.0
- recma-parse: 1.0.0
- recma-stringify: 1.0.0
- unified: 11.0.5
-
- recma-parse@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- esast-util-from-js: 2.0.1
- unified: 11.0.5
- vfile: 6.0.3
-
- recma-stringify@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- estree-util-to-js: 2.0.0
- unified: 11.0.5
- vfile: 6.0.3
-
- redis@5.8.3:
- dependencies:
- '@redis/bloom': 5.8.3(@redis/client@5.8.3)
- '@redis/client': 5.8.3
- '@redis/json': 5.8.3(@redis/client@5.8.3)
- '@redis/search': 5.8.3(@redis/client@5.8.3)
- '@redis/time-series': 5.8.3(@redis/client@5.8.3)
-
- reflect-metadata@0.2.2: {}
-
- reflect.getprototypeof@1.0.10:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- get-proto: 1.0.1
- which-builtin-type: 1.2.1
-
- refractor@3.6.0:
- dependencies:
- hastscript: 6.0.0
- parse-entities: 2.0.0
- prismjs: 1.27.0
-
- regexp.prototype.flags@1.5.4:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-errors: 1.3.0
- get-proto: 1.0.1
- gopd: 1.2.0
- set-function-name: 2.0.2
-
- rehype-raw@7.0.0:
- dependencies:
- '@types/hast': 3.0.4
- hast-util-raw: 9.1.0
- vfile: 6.0.3
-
- rehype-recma@1.0.0:
- dependencies:
- '@types/estree': 1.0.8
- '@types/hast': 3.0.4
- hast-util-to-estree: 3.1.3
- transitivePeerDependencies:
- - supports-color
-
- remark-gfm@4.0.1:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-gfm: 3.1.0
- micromark-extension-gfm: 3.0.0
- remark-parse: 11.0.0
- remark-stringify: 11.0.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-math@6.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-math: 3.0.0
- micromark-extension-math: 3.1.0
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-mdx@3.1.1:
- dependencies:
- mdast-util-mdx: 3.0.0
- micromark-extension-mdxjs: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
- remark-parse@10.0.2:
- dependencies:
- '@types/mdast': 3.0.15
- mdast-util-from-markdown: 1.3.1
- unified: 10.1.2
- transitivePeerDependencies:
- - supports-color
-
- remark-parse@11.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-from-markdown: 2.0.2
- micromark-util-types: 2.0.2
- unified: 11.0.5
- transitivePeerDependencies:
- - supports-color
-
- remark-rehype@10.1.0:
- dependencies:
- '@types/hast': 2.3.10
- '@types/mdast': 3.0.15
- mdast-util-to-hast: 12.3.0
- unified: 10.1.2
-
- remark-rehype@11.1.2:
- dependencies:
- '@types/hast': 3.0.4
- '@types/mdast': 4.0.4
- mdast-util-to-hast: 13.2.0
- unified: 11.0.5
- vfile: 6.0.3
-
- remark-stringify@11.0.0:
- dependencies:
- '@types/mdast': 4.0.4
- mdast-util-to-markdown: 2.1.2
- unified: 11.0.5
-
- require-directory@2.1.1: {}
-
- require-in-the-middle@7.5.2:
- dependencies:
- debug: 4.4.3
- module-details-from-path: 1.0.4
- resolve: 1.22.10
- transitivePeerDependencies:
- - supports-color
-
- requires-port@1.0.0: {}
-
- resolve-cwd@3.0.0:
- dependencies:
- resolve-from: 5.0.0
-
- resolve-from@4.0.0: {}
-
- resolve-from@5.0.0: {}
-
- resolve-pkg-maps@1.0.0: {}
-
- resolve.exports@2.0.3: {}
-
- resolve@1.22.10:
- dependencies:
- is-core-module: 2.16.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
-
- resolve@2.0.0-next.5:
- dependencies:
- is-core-module: 2.16.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
-
- restore-cursor@4.0.0:
- dependencies:
- onetime: 5.1.2
- signal-exit: 3.0.7
-
- retry-axios@2.6.0(axios@1.12.2):
- dependencies:
- axios: 1.12.2(debug@4.4.3)
-
- retry@0.13.1: {}
-
- reusify@1.1.0: {}
-
- rollup-plugin-esbuild@6.2.1(esbuild@0.25.10)(rollup@4.50.2):
- dependencies:
- debug: 4.4.3
- es-module-lexer: 1.7.0
- esbuild: 0.25.10
- get-tsconfig: 4.12.0
- rollup: 4.50.2
- unplugin-utils: 0.2.5
- transitivePeerDependencies:
- - supports-color
-
- rollup-plugin-node-externals@8.1.1(rollup@4.50.2):
- dependencies:
- rollup: 4.50.2
-
- rollup@4.50.2:
- dependencies:
- '@types/estree': 1.0.8
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.50.2
- '@rollup/rollup-android-arm64': 4.50.2
- '@rollup/rollup-darwin-arm64': 4.50.2
- '@rollup/rollup-darwin-x64': 4.50.2
- '@rollup/rollup-freebsd-arm64': 4.50.2
- '@rollup/rollup-freebsd-x64': 4.50.2
- '@rollup/rollup-linux-arm-gnueabihf': 4.50.2
- '@rollup/rollup-linux-arm-musleabihf': 4.50.2
- '@rollup/rollup-linux-arm64-gnu': 4.50.2
- '@rollup/rollup-linux-arm64-musl': 4.50.2
- '@rollup/rollup-linux-loong64-gnu': 4.50.2
- '@rollup/rollup-linux-ppc64-gnu': 4.50.2
- '@rollup/rollup-linux-riscv64-gnu': 4.50.2
- '@rollup/rollup-linux-riscv64-musl': 4.50.2
- '@rollup/rollup-linux-s390x-gnu': 4.50.2
- '@rollup/rollup-linux-x64-gnu': 4.50.2
- '@rollup/rollup-linux-x64-musl': 4.50.2
- '@rollup/rollup-openharmony-arm64': 4.50.2
- '@rollup/rollup-win32-arm64-msvc': 4.50.2
- '@rollup/rollup-win32-ia32-msvc': 4.50.2
- '@rollup/rollup-win32-x64-msvc': 4.50.2
- fsevents: 2.3.3
-
- rollup@4.52.4:
- dependencies:
- '@types/estree': 1.0.8
- optionalDependencies:
- '@rollup/rollup-android-arm-eabi': 4.52.4
- '@rollup/rollup-android-arm64': 4.52.4
- '@rollup/rollup-darwin-arm64': 4.52.4
- '@rollup/rollup-darwin-x64': 4.52.4
- '@rollup/rollup-freebsd-arm64': 4.52.4
- '@rollup/rollup-freebsd-x64': 4.52.4
- '@rollup/rollup-linux-arm-gnueabihf': 4.52.4
- '@rollup/rollup-linux-arm-musleabihf': 4.52.4
- '@rollup/rollup-linux-arm64-gnu': 4.52.4
- '@rollup/rollup-linux-arm64-musl': 4.52.4
- '@rollup/rollup-linux-loong64-gnu': 4.52.4
- '@rollup/rollup-linux-ppc64-gnu': 4.52.4
- '@rollup/rollup-linux-riscv64-gnu': 4.52.4
- '@rollup/rollup-linux-riscv64-musl': 4.52.4
- '@rollup/rollup-linux-s390x-gnu': 4.52.4
- '@rollup/rollup-linux-x64-gnu': 4.52.4
- '@rollup/rollup-linux-x64-musl': 4.52.4
- '@rollup/rollup-openharmony-arm64': 4.52.4
- '@rollup/rollup-win32-arm64-msvc': 4.52.4
- '@rollup/rollup-win32-ia32-msvc': 4.52.4
- '@rollup/rollup-win32-x64-gnu': 4.52.4
- '@rollup/rollup-win32-x64-msvc': 4.52.4
- fsevents: 2.3.3
-
- rope-sequence@1.3.4: {}
-
- router@2.2.0:
- dependencies:
- debug: 4.4.3
- depd: 2.0.0
- is-promise: 4.0.0
- parseurl: 1.3.3
- path-to-regexp: 8.3.0
- transitivePeerDependencies:
- - supports-color
-
- run-applescript@7.1.0: {}
-
- run-async@4.0.6: {}
-
- run-parallel@1.2.0:
- dependencies:
- queue-microtask: 1.2.3
-
- rxjs@7.8.1:
- dependencies:
- tslib: 2.8.1
-
- rxjs@7.8.2:
- dependencies:
- tslib: 2.8.1
-
- sade@1.8.1:
- dependencies:
- mri: 1.2.0
-
- safe-array-concat@1.1.3:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- get-intrinsic: 1.3.0
- has-symbols: 1.1.0
- isarray: 2.0.5
-
- safe-buffer@5.2.1: {}
-
- safe-push-apply@1.0.0:
- dependencies:
- es-errors: 1.3.0
- isarray: 2.0.5
-
- safe-regex-test@1.1.0:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-regex: 1.2.1
-
- safe-stable-stringify@2.5.0: {}
-
- safer-buffer@2.1.2: {}
-
- scheduler@0.27.0: {}
-
- secure-json-parse@2.7.0: {}
-
- secure-json-parse@4.1.0: {}
-
- semver@6.3.1: {}
-
- semver@7.7.3: {}
-
- send@0.19.0:
- dependencies:
- debug: 2.6.9
- depd: 2.0.0
- destroy: 1.2.0
- encodeurl: 1.0.2
- escape-html: 1.0.3
- etag: 1.8.1
- fresh: 0.5.2
- http-errors: 2.0.0
- mime: 1.6.0
- ms: 2.1.3
- on-finished: 2.4.1
- range-parser: 1.2.1
- statuses: 2.0.1
- transitivePeerDependencies:
- - supports-color
-
- send@1.2.0:
- dependencies:
- debug: 4.4.3
- encodeurl: 2.0.0
- escape-html: 1.0.3
- etag: 1.8.1
- fresh: 2.0.0
- http-errors: 2.0.0
- mime-types: 3.0.1
- ms: 2.1.3
- on-finished: 2.4.1
- range-parser: 1.2.1
- statuses: 2.0.2
- transitivePeerDependencies:
- - supports-color
-
- serve-static@1.16.2:
- dependencies:
- encodeurl: 2.0.0
- escape-html: 1.0.3
- parseurl: 1.3.3
- send: 0.19.0
- transitivePeerDependencies:
- - supports-color
-
- serve-static@2.2.0:
- dependencies:
- encodeurl: 2.0.0
- escape-html: 1.0.3
- parseurl: 1.3.3
- send: 1.2.0
- transitivePeerDependencies:
- - supports-color
-
- set-function-length@1.2.2:
- dependencies:
- define-data-property: 1.1.4
- es-errors: 1.3.0
- function-bind: 1.1.2
- get-intrinsic: 1.3.0
- gopd: 1.2.0
- has-property-descriptors: 1.0.2
-
- set-function-name@2.0.2:
- dependencies:
- define-data-property: 1.1.4
- es-errors: 1.3.0
- functions-have-names: 1.2.3
- has-property-descriptors: 1.0.2
-
- set-proto@1.0.0:
- dependencies:
- dunder-proto: 1.0.1
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
-
- setprototypeof@1.2.0: {}
-
- sharp@0.33.5:
- dependencies:
- color: 4.2.3
- detect-libc: 2.1.2
- semver: 7.7.3
- optionalDependencies:
- '@img/sharp-darwin-arm64': 0.33.5
- '@img/sharp-darwin-x64': 0.33.5
- '@img/sharp-libvips-darwin-arm64': 1.0.4
- '@img/sharp-libvips-darwin-x64': 1.0.4
- '@img/sharp-libvips-linux-arm': 1.0.5
- '@img/sharp-libvips-linux-arm64': 1.0.4
- '@img/sharp-libvips-linux-s390x': 1.0.4
- '@img/sharp-libvips-linux-x64': 1.0.4
- '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
- '@img/sharp-libvips-linuxmusl-x64': 1.0.4
- '@img/sharp-linux-arm': 0.33.5
- '@img/sharp-linux-arm64': 0.33.5
- '@img/sharp-linux-s390x': 0.33.5
- '@img/sharp-linux-x64': 0.33.5
- '@img/sharp-linuxmusl-arm64': 0.33.5
- '@img/sharp-linuxmusl-x64': 0.33.5
- '@img/sharp-wasm32': 0.33.5
- '@img/sharp-win32-ia32': 0.33.5
- '@img/sharp-win32-x64': 0.33.5
- optional: true
-
- shebang-command@2.0.0:
- dependencies:
- shebang-regex: 3.0.0
-
- shebang-regex@3.0.0: {}
-
- shell-quote@1.8.3: {}
-
- side-channel-list@1.0.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-map@1.0.1:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
-
- side-channel-weakmap@1.0.2:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- get-intrinsic: 1.3.0
- object-inspect: 1.13.4
- side-channel-map: 1.0.1
-
- side-channel@1.1.0:
- dependencies:
- es-errors: 1.3.0
- object-inspect: 1.13.4
- side-channel-list: 1.0.0
- side-channel-map: 1.0.1
- side-channel-weakmap: 1.0.2
-
- sift@17.1.3: {}
-
- signal-exit@3.0.7: {}
-
- signal-exit@4.1.0: {}
-
- simple-swizzle@0.2.4:
- dependencies:
- is-arrayish: 0.3.4
- optional: true
-
- simple-wcswidth@1.1.2: {}
-
- sisteransi@1.0.5: {}
-
- slash@3.0.0: {}
-
- slow-redact@0.3.2: {}
-
- sonic-boom@4.2.0:
- dependencies:
- atomic-sleep: 1.0.0
-
- source-map-js@1.2.1: {}
-
- source-map-support@0.5.13:
- dependencies:
- buffer-from: 1.1.2
- source-map: 0.6.1
-
- source-map@0.6.1: {}
-
- source-map@0.7.6: {}
-
- source-map@0.8.0-beta.0:
- dependencies:
- whatwg-url: 7.1.0
-
- space-separated-tokens@1.1.5: {}
-
- space-separated-tokens@2.0.2: {}
-
- split2@4.2.0: {}
-
- sprintf-js@1.0.3: {}
-
- stable-hash@0.0.5: {}
-
- stack-utils@2.0.6:
- dependencies:
- escape-string-regexp: 2.0.0
-
- state-local@1.0.7: {}
-
- statuses@2.0.1: {}
-
- statuses@2.0.2: {}
-
- stdin-discarder@0.1.0:
- dependencies:
- bl: 5.1.0
-
- stop-iteration-iterator@1.1.0:
- dependencies:
- es-errors: 1.3.0
- internal-slot: 1.1.0
-
- streamsearch@1.1.0: {}
-
- string-length@4.0.2:
- dependencies:
- char-regex: 1.0.2
- strip-ansi: 6.0.1
-
- string-width@4.2.3:
- dependencies:
- emoji-regex: 8.0.0
- is-fullwidth-code-point: 3.0.0
- strip-ansi: 6.0.1
-
- string-width@5.1.2:
- dependencies:
- eastasianwidth: 0.2.0
- emoji-regex: 9.2.2
- strip-ansi: 7.1.2
-
- string.prototype.includes@2.0.1:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-abstract: 1.24.0
-
- string.prototype.matchall@4.0.12:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-errors: 1.3.0
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
- gopd: 1.2.0
- has-symbols: 1.1.0
- internal-slot: 1.1.0
- regexp.prototype.flags: 1.5.4
- set-function-name: 2.0.2
- side-channel: 1.1.0
-
- string.prototype.repeat@1.0.0:
- dependencies:
- define-properties: 1.2.1
- es-abstract: 1.24.0
-
- string.prototype.trim@1.2.10:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-data-property: 1.1.4
- define-properties: 1.2.1
- es-abstract: 1.24.0
- es-object-atoms: 1.1.1
- has-property-descriptors: 1.0.2
-
- string.prototype.trimend@1.0.9:
- dependencies:
- call-bind: 1.0.8
- call-bound: 1.0.4
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- string.prototype.trimstart@1.0.8:
- dependencies:
- call-bind: 1.0.8
- define-properties: 1.2.1
- es-object-atoms: 1.1.1
-
- string_decoder@1.3.0:
- dependencies:
- safe-buffer: 5.2.1
-
- stringify-entities@4.0.4:
- dependencies:
- character-entities-html4: 2.1.0
- character-entities-legacy: 3.0.0
-
- strip-ansi@6.0.1:
- dependencies:
- ansi-regex: 5.0.1
-
- strip-ansi@7.1.2:
- dependencies:
- ansi-regex: 6.2.2
-
- strip-bom@3.0.0: {}
-
- strip-bom@4.0.0: {}
-
- strip-final-newline@2.0.0: {}
-
- strip-final-newline@3.0.0: {}
-
- strip-final-newline@4.0.0: {}
-
- strip-json-comments@3.1.1: {}
-
- strip-json-comments@5.0.3: {}
-
- strnum@2.1.1: {}
-
- strtok3@6.3.0:
- dependencies:
- '@tokenizer/token': 0.3.0
- peek-readable: 4.1.0
-
- style-to-js@1.1.18:
- dependencies:
- style-to-object: 1.0.11
-
- style-to-object@0.4.4:
- dependencies:
- inline-style-parser: 0.1.1
-
- style-to-object@1.0.11:
- dependencies:
- inline-style-parser: 0.2.4
-
- styled-jsx@5.1.6(react@19.2.0):
- dependencies:
- client-only: 0.0.1
- react: 19.2.0
-
- sucrase@3.35.0:
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- commander: 4.1.1
- glob: 10.4.5
- lines-and-columns: 1.2.4
- mz: 2.7.0
- pirates: 4.0.7
- ts-interface-checker: 0.1.13
-
- supports-color@7.2.0:
- dependencies:
- has-flag: 4.0.0
-
- supports-color@8.1.1:
- dependencies:
- has-flag: 4.0.0
-
- supports-preserve-symlinks-flag@1.0.0: {}
-
- swr@2.3.6(react@19.2.0):
- dependencies:
- dequal: 2.0.3
- react: 19.2.0
- use-sync-external-store: 1.6.0(react@19.2.0)
-
- tabbable@6.2.0: {}
-
- tailwind-merge@3.3.1: {}
-
- tailwindcss-animate@1.0.7(tailwindcss@4.1.14):
- dependencies:
- tailwindcss: 4.1.14
-
- tailwindcss@4.1.14: {}
-
- tapable@2.3.0: {}
-
- tar@7.5.1:
- dependencies:
- '@isaacs/fs-minipass': 4.0.1
- chownr: 3.0.0
- minipass: 7.1.2
- minizlib: 3.1.0
- yallist: 5.0.0
-
- tcp-port-used@1.0.2:
- dependencies:
- debug: 4.3.1
- is2: 2.0.9
- transitivePeerDependencies:
- - supports-color
-
- test-exclude@6.0.0:
- dependencies:
- '@istanbuljs/schema': 0.1.3
- glob: 7.2.3
- minimatch: 3.1.2
-
- thenify-all@1.6.0:
- dependencies:
- thenify: 3.3.1
-
- thenify@3.3.1:
- dependencies:
- any-promise: 1.3.0
-
- thread-stream@3.1.0:
- dependencies:
- real-require: 0.2.0
-
- throttleit@2.1.0: {}
-
- tinyexec@0.3.2: {}
-
- tinyexec@1.0.1: {}
-
- tinyglobby@0.2.15:
- dependencies:
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
-
- tippy.js@6.3.7:
- dependencies:
- '@popperjs/core': 2.11.8
-
- tmpl@1.0.5: {}
-
- to-regex-range@5.0.1:
- dependencies:
- is-number: 7.0.0
-
- toidentifier@1.0.1: {}
-
- token-types@4.2.1:
- dependencies:
- '@tokenizer/token': 0.3.0
- ieee754: 1.2.1
-
- tough-cookie@4.1.4:
- dependencies:
- psl: 1.15.0
- punycode: 2.3.1
- universalify: 0.2.0
- url-parse: 1.5.10
-
- tr46@0.0.3: {}
-
- tr46@1.0.1:
- dependencies:
- punycode: 2.3.1
-
- tree-kill@1.2.2: {}
-
- trim-lines@3.0.1: {}
-
- trough@2.2.0: {}
-
- ts-api-utils@2.1.0(typescript@5.9.3):
- dependencies:
- typescript: 5.9.3
-
- ts-error@1.0.6: {}
-
- ts-interface-checker@0.1.13: {}
-
- ts-jest@29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3):
- dependencies:
- bs-logger: 0.2.6
- fast-json-stable-stringify: 2.1.0
- handlebars: 4.7.8
- jest: 29.7.0(@types/node@20.19.21)
- json5: 2.2.3
- lodash.memoize: 4.1.2
- make-error: 1.3.6
- semver: 7.7.3
- type-fest: 4.41.0
- typescript: 5.9.3
- yargs-parser: 21.1.1
- optionalDependencies:
- '@babel/core': 7.28.4
- '@jest/transform': 29.7.0
- '@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.28.4)
- jest-util: 29.7.0
-
- ts-poet@6.12.0:
- dependencies:
- dprint-node: 1.0.8
-
- ts-proto-descriptors@2.0.0:
- dependencies:
- '@bufbuild/protobuf': 2.9.0
-
- ts-proto@2.7.7:
- dependencies:
- '@bufbuild/protobuf': 2.9.0
- case-anything: 2.1.13
- ts-poet: 6.12.0
- ts-proto-descriptors: 2.0.0
-
- tsconfig-paths@3.15.0:
- dependencies:
- '@types/json5': 0.0.29
- json5: 1.0.2
- minimist: 1.2.8
- strip-bom: 3.0.0
-
- tslib@2.8.1: {}
-
- tsup@8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1):
- dependencies:
- bundle-require: 5.1.0(esbuild@0.25.10)
- cac: 6.7.14
- chokidar: 4.0.3
- consola: 3.4.2
- debug: 4.4.3
- esbuild: 0.25.10
- fix-dts-default-cjs-exports: 1.0.1
- joycon: 3.1.1
- picocolors: 1.1.1
- postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(yaml@2.8.1)
- resolve-from: 5.0.0
- rollup: 4.52.4
- source-map: 0.8.0-beta.0
- sucrase: 3.35.0
- tinyexec: 0.3.2
- tinyglobby: 0.2.15
- tree-kill: 1.2.2
- optionalDependencies:
- postcss: 8.5.6
- typescript: 5.9.3
- transitivePeerDependencies:
- - jiti
- - supports-color
- - tsx
- - yaml
-
- tsx@4.20.6:
- dependencies:
- esbuild: 0.25.10
- get-tsconfig: 4.12.0
- optionalDependencies:
- fsevents: 2.3.3
-
- turbo-darwin-64@2.5.8:
- optional: true
-
- turbo-darwin-arm64@2.5.8:
- optional: true
-
- turbo-linux-64@2.5.8:
- optional: true
-
- turbo-linux-arm64@2.5.8:
- optional: true
-
- turbo-windows-64@2.5.8:
- optional: true
-
- turbo-windows-arm64@2.5.8:
- optional: true
-
- turbo@2.5.8:
- optionalDependencies:
- turbo-darwin-64: 2.5.8
- turbo-darwin-arm64: 2.5.8
- turbo-linux-64: 2.5.8
- turbo-linux-arm64: 2.5.8
- turbo-windows-64: 2.5.8
- turbo-windows-arm64: 2.5.8
-
- type-check@0.4.0:
- dependencies:
- prelude-ls: 1.2.1
-
- type-detect@4.0.8: {}
-
- type-fest@0.21.3: {}
-
- type-fest@4.41.0: {}
-
- type-graphql@2.0.0-rc.1(class-validator@0.14.2)(graphql-scalars@1.24.2(graphql@16.11.0))(graphql@16.11.0):
- dependencies:
- '@graphql-yoga/subscription': 5.0.5
- '@types/node': 20.19.21
- '@types/semver': 7.7.1
- graphql: 16.11.0
- graphql-query-complexity: 0.12.0(graphql@16.11.0)
- graphql-scalars: 1.24.2(graphql@16.11.0)
- semver: 7.7.3
- tslib: 2.8.1
- optionalDependencies:
- class-validator: 0.14.2
-
- type-is@1.6.18:
- dependencies:
- media-typer: 0.3.0
- mime-types: 2.1.35
-
- type-is@2.0.1:
- dependencies:
- content-type: 1.0.5
- media-typer: 1.1.0
- mime-types: 3.0.1
-
- typed-array-buffer@1.0.3:
- dependencies:
- call-bound: 1.0.4
- es-errors: 1.3.0
- is-typed-array: 1.1.15
-
- typed-array-byte-length@1.0.3:
- dependencies:
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- has-proto: 1.2.0
- is-typed-array: 1.1.15
-
- typed-array-byte-offset@1.0.4:
- dependencies:
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- has-proto: 1.2.0
- is-typed-array: 1.1.15
- reflect.getprototypeof: 1.0.10
-
- typed-array-length@1.0.7:
- dependencies:
- call-bind: 1.0.8
- for-each: 0.3.5
- gopd: 1.2.0
- is-typed-array: 1.1.15
- possible-typed-array-names: 1.1.0
- reflect.getprototypeof: 1.0.10
-
- typescript-paths@1.5.1(typescript@5.9.3):
- dependencies:
- typescript: 5.9.3
-
- typescript@5.8.2: {}
-
- typescript@5.9.3: {}
-
- uc.micro@2.1.0: {}
-
- ufo@1.6.1: {}
-
- uglify-js@3.19.3:
- optional: true
-
- unbox-primitive@1.1.0:
- dependencies:
- call-bound: 1.0.4
- has-bigints: 1.1.0
- has-symbols: 1.1.0
- which-boxed-primitive: 1.1.1
-
- uncrypto@0.1.3: {}
-
- undici-types@5.26.5: {}
-
- undici-types@6.21.0: {}
-
- unicorn-magic@0.3.0: {}
-
- unified@10.1.2:
- dependencies:
- '@types/unist': 2.0.11
- bail: 2.0.2
- extend: 3.0.2
- is-buffer: 2.0.5
- is-plain-obj: 4.1.0
- trough: 2.2.0
- vfile: 5.3.7
-
- unified@11.0.5:
- dependencies:
- '@types/unist': 3.0.3
- bail: 2.0.2
- devlop: 1.1.0
- extend: 3.0.2
- is-plain-obj: 4.1.0
- trough: 2.2.0
- vfile: 6.0.3
-
- unist-util-generated@2.0.1: {}
-
- unist-util-is@5.2.1:
- dependencies:
- '@types/unist': 2.0.11
-
- unist-util-is@6.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-position-from-estree@2.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-position@4.0.4:
- dependencies:
- '@types/unist': 2.0.11
-
- unist-util-position@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-remove-position@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-visit: 5.0.0
-
- unist-util-stringify-position@3.0.3:
- dependencies:
- '@types/unist': 2.0.11
-
- unist-util-stringify-position@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-visit-parents@5.1.3:
- dependencies:
- '@types/unist': 2.0.11
- unist-util-is: 5.2.1
-
- unist-util-visit-parents@6.0.1:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
-
- unist-util-visit@4.1.2:
- dependencies:
- '@types/unist': 2.0.11
- unist-util-is: 5.2.1
- unist-util-visit-parents: 5.1.3
-
- unist-util-visit@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.0
- unist-util-visit-parents: 6.0.1
-
- universalify@0.2.0: {}
-
- universalify@2.0.1: {}
-
- unpipe@1.0.0: {}
-
- unplugin-utils@0.2.5:
- dependencies:
- pathe: 2.0.3
- picomatch: 4.0.3
-
- unrs-resolver@1.11.1:
- dependencies:
- napi-postinstall: 0.3.4
- optionalDependencies:
- '@unrs/resolver-binding-android-arm-eabi': 1.11.1
- '@unrs/resolver-binding-android-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-x64': 1.11.1
- '@unrs/resolver-binding-freebsd-x64': 1.11.1
- '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-arm64-musl': 1.11.1
- '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1
- '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-musl': 1.11.1
- '@unrs/resolver-binding-wasm32-wasi': 1.11.1
- '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1
- '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
- '@unrs/resolver-binding-win32-x64-msvc': 1.11.1
-
- untruncate-json@0.0.1: {}
-
- update-browserslist-db@1.1.3(browserslist@4.26.3):
- dependencies:
- browserslist: 4.26.3
- escalade: 3.2.0
- picocolors: 1.1.1
-
- uri-js@4.4.1:
- dependencies:
- punycode: 2.3.1
-
- url-parse@1.5.10:
- dependencies:
- querystringify: 2.2.0
- requires-port: 1.0.0
-
- urlpattern-polyfill@10.1.0: {}
-
- urql@4.2.2(@urql/core@5.2.0(graphql@16.11.0))(react@19.2.0):
- dependencies:
- '@urql/core': 5.2.0(graphql@16.11.0)
- react: 19.2.0
- wonka: 6.3.5
-
- use-callback-ref@1.3.3(@types/react@19.2.2)(react@19.2.0):
- dependencies:
- react: 19.2.0
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.2.2
-
- use-sidecar@1.1.3(@types/react@19.2.2)(react@19.2.0):
- dependencies:
- detect-node-es: 1.1.0
- react: 19.2.0
- tslib: 2.8.1
- optionalDependencies:
- '@types/react': 19.2.2
-
- use-sync-external-store@1.6.0(react@19.2.0):
- dependencies:
- react: 19.2.0
-
- util-deprecate@1.0.2: {}
-
- utils-merge@1.0.1: {}
-
- uuid@10.0.0: {}
-
- uuid@11.1.0: {}
-
- uuid@9.0.1: {}
-
- uvu@0.5.6:
- dependencies:
- dequal: 2.0.3
- diff: 5.2.0
- kleur: 4.1.5
- sade: 1.8.1
-
- v8-to-istanbul@9.3.0:
- dependencies:
- '@jridgewell/trace-mapping': 0.3.31
- '@types/istanbul-lib-coverage': 2.0.6
- convert-source-map: 2.0.0
-
- validator@13.15.15: {}
-
- vary@1.1.2: {}
-
- vfile-location@5.0.3:
- dependencies:
- '@types/unist': 3.0.3
- vfile: 6.0.3
-
- vfile-message@3.1.4:
- dependencies:
- '@types/unist': 2.0.11
- unist-util-stringify-position: 3.0.3
-
- vfile-message@4.0.3:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-stringify-position: 4.0.0
-
- vfile@5.3.7:
- dependencies:
- '@types/unist': 2.0.11
- is-buffer: 2.0.5
- unist-util-stringify-position: 3.0.3
- vfile-message: 3.1.4
-
- vfile@6.0.3:
- dependencies:
- '@types/unist': 3.0.3
- vfile-message: 4.0.3
-
- w3c-keyname@2.2.8: {}
-
- wait-port@1.1.0:
- dependencies:
- chalk: 4.1.2
- commander: 9.5.0
- debug: 4.4.3
- transitivePeerDependencies:
- - supports-color
-
- walker@1.0.8:
- dependencies:
- makeerror: 1.0.12
-
- wcwidth@1.0.1:
- dependencies:
- defaults: 1.0.4
-
- weaviate-client@3.9.0:
- dependencies:
- abort-controller-x: 0.4.3
- graphql: 16.11.0
- graphql-request: 6.1.0(graphql@16.11.0)
- long: 5.3.2
- nice-grpc: 2.1.13
- nice-grpc-client-middleware-retry: 3.1.12
- nice-grpc-common: 2.0.2
- uuid: 9.0.1
- transitivePeerDependencies:
- - encoding
-
- web-namespaces@2.0.1: {}
-
- web-streams-polyfill@3.3.3: {}
-
- web-streams-polyfill@4.0.0-beta.3: {}
-
- webidl-conversions@3.0.1: {}
-
- webidl-conversions@4.0.2: {}
-
- whatwg-url@5.0.0:
- dependencies:
- tr46: 0.0.3
- webidl-conversions: 3.0.1
-
- whatwg-url@7.1.0:
- dependencies:
- lodash.sortby: 4.7.0
- tr46: 1.0.1
- webidl-conversions: 4.0.2
-
- which-boxed-primitive@1.1.1:
- dependencies:
- is-bigint: 1.1.0
- is-boolean-object: 1.2.2
- is-number-object: 1.1.1
- is-string: 1.1.1
- is-symbol: 1.1.1
-
- which-builtin-type@1.2.1:
- dependencies:
- call-bound: 1.0.4
- function.prototype.name: 1.1.8
- has-tostringtag: 1.0.2
- is-async-function: 2.1.1
- is-date-object: 1.1.0
- is-finalizationregistry: 1.1.1
- is-generator-function: 1.1.2
- is-regex: 1.2.1
- is-weakref: 1.1.1
- isarray: 2.0.5
- which-boxed-primitive: 1.1.1
- which-collection: 1.0.2
- which-typed-array: 1.1.19
-
- which-collection@1.0.2:
- dependencies:
- is-map: 2.0.3
- is-set: 2.0.3
- is-weakmap: 2.0.2
- is-weakset: 2.0.4
-
- which-typed-array@1.1.19:
- dependencies:
- available-typed-arrays: 1.0.7
- call-bind: 1.0.8
- call-bound: 1.0.4
- for-each: 0.3.5
- get-proto: 1.0.1
- gopd: 1.2.0
- has-tostringtag: 1.0.2
-
- which@2.0.2:
- dependencies:
- isexe: 2.0.0
-
- wonka@6.3.5: {}
-
- word-wrap@1.2.5: {}
-
- wordwrap@1.0.0: {}
-
- wrap-ansi@6.2.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- wrap-ansi@7.0.0:
- dependencies:
- ansi-styles: 4.3.0
- string-width: 4.2.3
- strip-ansi: 6.0.1
-
- wrap-ansi@8.1.0:
- dependencies:
- ansi-styles: 6.2.3
- string-width: 5.1.2
- strip-ansi: 7.1.2
-
- wrappy@1.0.2: {}
-
- write-file-atomic@4.0.2:
- dependencies:
- imurmurhash: 0.1.4
- signal-exit: 3.0.7
-
- ws@8.18.3: {}
-
- wsl-utils@0.1.0:
- dependencies:
- is-wsl: 3.1.0
-
- xstate@5.23.0: {}
-
- xtend@4.0.2: {}
-
- xxhash-wasm@1.1.0: {}
-
- y18n@5.0.8: {}
-
- yallist@3.1.1: {}
-
- yallist@4.0.0: {}
-
- yallist@5.0.0: {}
-
- yaml@2.8.1: {}
-
- yargs-parser@21.1.1: {}
-
- yargs@17.7.2:
- dependencies:
- cliui: 8.0.1
- escalade: 3.2.0
- get-caller-file: 2.0.5
- require-directory: 2.1.1
- string-width: 4.2.3
- y18n: 5.0.8
- yargs-parser: 21.1.1
-
- yocto-queue@0.1.0: {}
-
- yocto-spinner@0.2.3:
- dependencies:
- yoctocolors: 2.1.2
-
- yoctocolors-cjs@2.1.3: {}
-
- yoctocolors@2.1.2: {}
-
- zod-from-json-schema@0.0.5:
- dependencies:
- zod: 3.25.76
-
- zod-from-json-schema@0.5.0:
- dependencies:
- zod: 4.1.12
-
- zod-to-json-schema@3.24.6(zod@3.25.76):
- dependencies:
- zod: 3.25.76
-
- zod@3.25.76: {}
-
- zod@4.1.12: {}
-
- zwitch@2.0.4: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 512b27006..d770b73f7 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -3,5 +3,6 @@ packages:
- "middlewares/*"
- "sdks/typescript/packages/*"
- "integrations/*/typescript"
+ - "integrations/*/typescript/examples"
- "integrations/community/*/typescript"
- "integrations/mastra/typescript/examples"
diff --git a/sdks/python/README.md b/sdks/python/README.md
index 843d9d028..d9e48e26a 100644
--- a/sdks/python/README.md
+++ b/sdks/python/README.md
@@ -38,6 +38,23 @@ sse_data = encoder.encode(event)
# Output: data: {"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_123","delta":"Hello from Python!"}\n\n
```
+### Multimodal user message
+
+```python
+from ag_ui.core import UserMessage, TextInputContent, BinaryInputContent
+
+message = UserMessage(
+ id="user-123",
+ content=[
+ TextInputContent(text="Please describe this image"),
+ BinaryInputContent(mime_type="image/png", url="https://example.com/cat.png"),
+ ],
+)
+
+payload = message.model_dump(by_alias=True)
+# {"id": "user-123", "role": "user", "content": [...]}
+```
+
## Packages
- **`ag_ui.core`** – Types, events, and data models for AG-UI protocol
diff --git a/sdks/python/ag_ui/core/__init__.py b/sdks/python/ag_ui/core/__init__.py
index 7e909ad5b..248ff1005 100644
--- a/sdks/python/ag_ui/core/__init__.py
+++ b/sdks/python/ag_ui/core/__init__.py
@@ -22,6 +22,8 @@
StateSnapshotEvent,
StateDeltaEvent,
MessagesSnapshotEvent,
+ ActivitySnapshotEvent,
+ ActivityDeltaEvent,
RawEvent,
CustomEvent,
RunStartedEvent,
@@ -41,12 +43,16 @@
AssistantMessage,
UserMessage,
ToolMessage,
+ ActivityMessage,
Message,
Role,
Context,
Tool,
RunAgentInput,
- State
+ State,
+ TextInputContent,
+ BinaryInputContent,
+ InputContent,
)
__all__ = [
@@ -70,6 +76,8 @@
"StateSnapshotEvent",
"StateDeltaEvent",
"MessagesSnapshotEvent",
+ "ActivitySnapshotEvent",
+ "ActivityDeltaEvent",
"RawEvent",
"CustomEvent",
"RunStartedEvent",
@@ -87,10 +95,14 @@
"AssistantMessage",
"UserMessage",
"ToolMessage",
+ "ActivityMessage",
"Message",
"Role",
"Context",
"Tool",
"RunAgentInput",
- "State"
+ "State",
+ "TextInputContent",
+ "BinaryInputContent",
+ "InputContent",
]
diff --git a/sdks/python/ag_ui/core/events.py b/sdks/python/ag_ui/core/events.py
index 2a54a9c8e..94fb63c75 100644
--- a/sdks/python/ag_ui/core/events.py
+++ b/sdks/python/ag_ui/core/events.py
@@ -7,7 +7,7 @@
from pydantic import Field
-from .types import ConfiguredBaseModel, Message, State, Role
+from .types import ConfiguredBaseModel, Message, State, Role, RunAgentInput
# Text messages can have any role except "tool"
TextMessageRole = Literal["developer", "system", "assistant", "user"]
@@ -34,6 +34,8 @@ class EventType(str, Enum):
STATE_SNAPSHOT = "STATE_SNAPSHOT"
STATE_DELTA = "STATE_DELTA"
MESSAGES_SNAPSHOT = "MESSAGES_SNAPSHOT"
+ ACTIVITY_SNAPSHOT = "ACTIVITY_SNAPSHOT"
+ ACTIVITY_DELTA = "ACTIVITY_DELTA"
RAW = "RAW"
CUSTOM = "CUSTOM"
RUN_STARTED = "RUN_STARTED"
@@ -188,6 +190,25 @@ class MessagesSnapshotEvent(BaseEvent):
messages: List[Message]
+class ActivitySnapshotEvent(BaseEvent):
+ """Event containing a snapshot of an activity message."""
+
+ type: Literal[EventType.ACTIVITY_SNAPSHOT] = EventType.ACTIVITY_SNAPSHOT # pyright: ignore[reportIncompatibleVariableOverride]
+ message_id: str
+ activity_type: str
+ content: Any
+ replace: bool = True
+
+
+class ActivityDeltaEvent(BaseEvent):
+ """Event containing a JSON Patch delta for an activity message."""
+
+ type: Literal[EventType.ACTIVITY_DELTA] = EventType.ACTIVITY_DELTA # pyright: ignore[reportIncompatibleVariableOverride]
+ message_id: str
+ activity_type: str
+ patch: List[Any]
+
+
class RawEvent(BaseEvent):
"""
Event containing a raw event.
@@ -213,6 +234,8 @@ class RunStartedEvent(BaseEvent):
type: Literal[EventType.RUN_STARTED] = EventType.RUN_STARTED # pyright: ignore[reportIncompatibleVariableOverride]
thread_id: str
run_id: str
+ parent_run_id: Optional[str] = None
+ input: Optional[RunAgentInput] = None
class RunFinishedEvent(BaseEvent):
@@ -264,6 +287,8 @@ class StepFinishedEvent(BaseEvent):
StateSnapshotEvent,
StateDeltaEvent,
MessagesSnapshotEvent,
+ ActivitySnapshotEvent,
+ ActivityDeltaEvent,
RawEvent,
CustomEvent,
RunStartedEvent,
diff --git a/sdks/python/ag_ui/core/types.py b/sdks/python/ag_ui/core/types.py
index 47b7ae182..e4e358caf 100644
--- a/sdks/python/ag_ui/core/types.py
+++ b/sdks/python/ag_ui/core/types.py
@@ -2,9 +2,9 @@
This module contains the types for the Agent User Interaction Protocol Python SDK.
"""
-from typing import Annotated, Any, List, Literal, Optional, Union
+from typing import Annotated, Any, Dict, List, Literal, Optional, Union
-from pydantic import BaseModel, ConfigDict, Field
+from pydantic import BaseModel, ConfigDict, Field, model_validator
from pydantic.alias_generators import to_camel
@@ -13,7 +13,7 @@ class ConfiguredBaseModel(BaseModel):
A configurable base model.
"""
model_config = ConfigDict(
- extra="forbid",
+ extra="allow",
alias_generator=to_camel,
populate_by_name=True,
)
@@ -70,12 +70,44 @@ class AssistantMessage(BaseMessage):
tool_calls: Optional[List[ToolCall]] = None
+class TextInputContent(ConfiguredBaseModel):
+ """A text fragment in a multimodal user message."""
+
+ type: Literal["text"] = "text"
+ text: str
+
+
+class BinaryInputContent(ConfiguredBaseModel):
+ """A binary payload reference in a multimodal user message."""
+
+ type: Literal["binary"] = "binary" # pyright: ignore[reportIncompatibleVariableOverride]
+ mime_type: str
+ id: Optional[str] = None
+ url: Optional[str] = None
+ data: Optional[str] = None
+ filename: Optional[str] = None
+
+ @model_validator(mode="after")
+ def validate_source(self) -> "BinaryInputContent":
+ """Ensure at least one binary payload source is provided."""
+ if not any([self.id, self.url, self.data]):
+ raise ValueError("BinaryInputContent requires id, url, or data to be provided.")
+ return self
+
+
+InputContent = Annotated[
+ Union[TextInputContent, BinaryInputContent],
+ Field(discriminator="type"),
+]
+
+
class UserMessage(BaseMessage):
"""
- A user message.
+ A user message supporting text or multimodal content.
"""
- role: Literal["user"] = "user" # pyright: ignore[reportIncompatibleVariableOverride]
- content: str
+
+ role: Literal["user"] = "user" # pyright: ignore[reportIncompatibleVariableOverride]
+ content: Union[str, List[InputContent]]
class ToolMessage(ConfiguredBaseModel):
@@ -89,12 +121,30 @@ class ToolMessage(ConfiguredBaseModel):
error: Optional[str] = None
+class ActivityMessage(ConfiguredBaseModel):
+ """
+ An activity progress message emitted between chat messages.
+ """
+
+ id: str
+ role: Literal["activity"] = "activity" # pyright: ignore[reportIncompatibleVariableOverride]
+ activity_type: str
+ content: Dict[str, Any]
+
+
Message = Annotated[
- Union[DeveloperMessage, SystemMessage, AssistantMessage, UserMessage, ToolMessage],
+ Union[
+ DeveloperMessage,
+ SystemMessage,
+ AssistantMessage,
+ UserMessage,
+ ToolMessage,
+ ActivityMessage,
+ ],
Field(discriminator="role")
]
-Role = Literal["developer", "system", "assistant", "user", "tool"]
+Role = Literal["developer", "system", "assistant", "user", "tool", "activity"]
class Context(ConfiguredBaseModel):
@@ -120,6 +170,7 @@ class RunAgentInput(ConfiguredBaseModel):
"""
thread_id: str
run_id: str
+ parent_run_id: Optional[str] = None
state: Any
messages: List[Message]
tools: List[Tool]
diff --git a/sdks/python/pyproject.toml b/sdks/python/pyproject.toml
index a8de00217..84eadcfee 100644
--- a/sdks/python/pyproject.toml
+++ b/sdks/python/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "ag-ui-protocol"
-version = "0.1.9"
+version = "0.1.10"
description = ""
authors = ["Markus Ecker "]
readme = "README.md"
diff --git a/sdks/python/tests/test_events.py b/sdks/python/tests/test_events.py
index c73a2537c..7245d88aa 100644
--- a/sdks/python/tests/test_events.py
+++ b/sdks/python/tests/test_events.py
@@ -16,6 +16,8 @@
StateSnapshotEvent,
StateDeltaEvent,
MessagesSnapshotEvent,
+ ActivitySnapshotEvent,
+ ActivityDeltaEvent,
RawEvent,
CustomEvent,
RunStartedEvent,
@@ -202,6 +204,58 @@ def test_messages_snapshot(self):
self.assertEqual(serialized["messages"][0]["role"], "user")
self.assertEqual(serialized["messages"][1]["toolCalls"][0]["function"]["name"], "get_weather")
+ def test_activity_snapshot(self):
+ """Test creating and serializing an ActivitySnapshotEvent"""
+ content = {"tasks": ["search", "summarize"]}
+ event = ActivitySnapshotEvent(
+ message_id="msg_activity",
+ activity_type="PLAN",
+ content=content,
+ timestamp=1648214400000,
+ )
+
+ self.assertEqual(event.message_id, "msg_activity")
+ self.assertEqual(event.activity_type, "PLAN")
+ self.assertEqual(event.content, content)
+ self.assertTrue(event.replace)
+
+ serialized = event.model_dump(by_alias=True)
+ self.assertEqual(serialized["type"], "ACTIVITY_SNAPSHOT")
+ self.assertEqual(serialized["messageId"], "msg_activity")
+ self.assertEqual(serialized["activityType"], "PLAN")
+ self.assertEqual(serialized["content"], content)
+ self.assertTrue(serialized["replace"])
+
+ event_replace_false = ActivitySnapshotEvent(
+ message_id="msg_activity",
+ activity_type="PLAN",
+ content=content,
+ replace=False,
+ )
+ self.assertFalse(event_replace_false.replace)
+ serialized_false = event_replace_false.model_dump(by_alias=True)
+ self.assertFalse(serialized_false["replace"])
+
+ def test_activity_delta(self):
+ """Test creating and serializing an ActivityDeltaEvent"""
+ patch = [{"op": "replace", "path": "/tasks/0", "value": "✓ search"}]
+ event = ActivityDeltaEvent(
+ message_id="msg_activity",
+ activity_type="PLAN",
+ patch=patch,
+ timestamp=1648214400000,
+ )
+
+ self.assertEqual(event.message_id, "msg_activity")
+ self.assertEqual(event.activity_type, "PLAN")
+ self.assertEqual(event.patch, patch)
+
+ serialized = event.model_dump(by_alias=True)
+ self.assertEqual(serialized["type"], "ACTIVITY_DELTA")
+ self.assertEqual(serialized["messageId"], "msg_activity")
+ self.assertEqual(serialized["activityType"], "PLAN")
+ self.assertEqual(serialized["patch"], patch)
+
def test_raw_event(self):
"""Test creating and serializing a RawEvent"""
raw_data = {"origin": "server", "data": {"key": "value"}}
@@ -338,6 +392,13 @@ def test_event_union_deserialization(self):
"snapshot": {"status": "active"},
"timestamp": 1648214400000
},
+ {
+ "type": "ACTIVITY_SNAPSHOT",
+ "messageId": "msg_activity",
+ "activityType": "PLAN",
+ "content": {"tasks": []},
+ "timestamp": 1648214400000,
+ },
{
"type": "RUN_ERROR",
"message": "Error occurred",
@@ -345,12 +406,13 @@ def test_event_union_deserialization(self):
"timestamp": 1648214400000
}
]
-
+
expected_types = [
TextMessageStartEvent,
TextMessageContentEvent,
ToolCallStartEvent,
StateSnapshotEvent,
+ ActivitySnapshotEvent,
RunErrorEvent
]
@@ -392,6 +454,16 @@ def test_serialization_round_trip(self):
UserMessage(id="user_1", content="Hello")
]
),
+ ActivitySnapshotEvent(
+ message_id="msg_activity",
+ activity_type="PLAN",
+ content={"tasks": []},
+ ),
+ ActivityDeltaEvent(
+ message_id="msg_activity",
+ activity_type="PLAN",
+ patch=[{"op": "add", "path": "/tasks/-", "value": "search"}],
+ ),
RunStartedEvent(
thread_id="thread_123",
run_id="run_456"
diff --git a/sdks/python/tests/test_types.py b/sdks/python/tests/test_types.py
index e534aa5ab..843a5a977 100644
--- a/sdks/python/tests/test_types.py
+++ b/sdks/python/tests/test_types.py
@@ -10,8 +10,11 @@
AssistantMessage,
UserMessage,
ToolMessage,
+ ActivityMessage,
Message,
- RunAgentInput
+ RunAgentInput,
+ TextInputContent,
+ BinaryInputContent,
)
@@ -56,6 +59,24 @@ def test_tool_message_camel_case(self):
self.assertIn("toolCallId", serialized)
self.assertEqual(serialized["toolCallId"], "call_456")
+ def test_activity_message(self):
+ """Test creating and serializing an activity message"""
+ content = {"steps": ["search", "summarize"]}
+ msg = ActivityMessage(
+ id="activity_123",
+ activity_type="PLAN",
+ content=content,
+ )
+
+ self.assertEqual(msg.role, "activity")
+ self.assertEqual(msg.activity_type, "PLAN")
+ self.assertEqual(msg.content, content)
+
+ serialized = msg.model_dump(by_alias=True)
+ self.assertEqual(serialized["role"], "activity")
+ self.assertEqual(serialized["activityType"], "PLAN")
+ self.assertEqual(serialized["content"], content)
+
def test_parse_camel_case_json_tool_message(self):
"""Test parsing JSON with camelCase field names"""
# JSON data with camelCase field names
@@ -143,6 +164,31 @@ def test_user_message(self):
self.assertEqual(serialized["role"], "user")
self.assertEqual(serialized["content"], "User query")
+ def test_user_message_multimodal_content(self):
+ """Test creating and serializing a multimodal user message"""
+ contents = [
+ TextInputContent(text="Check this out"),
+ BinaryInputContent(mime_type="image/png", url="https://example.com/image.png"),
+ ]
+ msg = UserMessage(
+ id="user_multi",
+ content=contents,
+ )
+ self.assertIsInstance(msg.content, list)
+ self.assertEqual(len(msg.content), 2)
+ serialized = msg.model_dump(by_alias=True)
+ self.assertIsInstance(serialized["content"], list)
+ self.assertEqual(serialized["content"][0]["type"], "text")
+ self.assertEqual(serialized["content"][0]["text"], "Check this out")
+ self.assertEqual(serialized["content"][1]["mimeType"], "image/png")
+ self.assertEqual(serialized["content"][1]["url"], "https://example.com/image.png")
+
+ def test_binary_input_requires_payload_source(self):
+ """Binary content must specify at least one delivery channel"""
+ with self.assertRaises(ValidationError):
+ BinaryInputContent(mime_type="image/png")
+
+
def test_message_union_deserialization(self):
"""Test that the Message union correctly deserializes to the appropriate type"""
# Create type adapter for the union
@@ -159,7 +205,13 @@ def test_message_union_deserialization(self):
"role": "tool",
"content": "Tool result",
"toolCallId": "call_303"
- }
+ },
+ {
+ "id": "activity_404",
+ "role": "activity",
+ "activityType": "PLAN",
+ "content": {"steps": []},
+ },
]
expected_types = [
@@ -167,7 +219,8 @@ def test_message_union_deserialization(self):
SystemMessage,
AssistantMessage,
UserMessage,
- ToolMessage
+ ToolMessage,
+ ActivityMessage,
]
for data, expected_type in zip(message_data, expected_types):
@@ -209,6 +262,7 @@ def test_run_agent_input_deserialization(self):
run_agent_input_data = {
"threadId": "thread_12345",
"runId": "run_67890",
+ "parentRunId": "run_parent_123",
"state": {"conversation_state": "active", "custom_data": {"key": "value"}},
"messages": [
# System message
@@ -256,7 +310,14 @@ def test_run_agent_input_deserialization(self):
{
"id": "user_002",
"role": "user",
- "content": "Can you explain these results?"
+ "content": [
+ {"type": "text", "text": "Can you explain these results?"},
+ {
+ "type": "binary",
+ "mimeType": "image/png",
+ "url": "https://example.com/results-chart.png"
+ }
+ ]
}
],
"tools": [
@@ -307,6 +368,7 @@ def test_run_agent_input_deserialization(self):
# Verify basic fields
self.assertEqual(run_agent_input.thread_id, "thread_12345")
self.assertEqual(run_agent_input.run_id, "run_67890")
+ self.assertEqual(run_agent_input.parent_run_id, "run_parent_123")
self.assertEqual(run_agent_input.state["conversation_state"], "active")
# Verify messages count and types
@@ -321,6 +383,12 @@ def test_run_agent_input_deserialization(self):
# Verify specific message content
self.assertEqual(run_agent_input.messages[0].content, "You are a helpful assistant.")
self.assertEqual(run_agent_input.messages[1].content, "Can you help me analyze this data?")
+ multimodal_content = run_agent_input.messages[5].content
+ self.assertIsInstance(multimodal_content, list)
+ self.assertEqual(multimodal_content[0].type, "text")
+ self.assertEqual(multimodal_content[0].text, "Can you explain these results?")
+ self.assertEqual(multimodal_content[1].mime_type, "image/png")
+ self.assertEqual(multimodal_content[1].url, "https://example.com/results-chart.png")
# Verify assistant message with tool call
assistant_msg = run_agent_input.messages[3]
@@ -368,15 +436,17 @@ def test_validation_errors(self):
with self.assertRaises(ValidationError):
UserMessage.model_validate(missing_id_data)
- # Test extra fields
+ # Test extra fields are now allowed for backwards compatibility
extra_field_data = {
"id": "msg_456",
"role": "user",
"content": "Hello",
- "extra_field": "This shouldn't be here" # Extra field
+ "extra_field": "This is allowed for backwards compatibility" # Extra field
}
- with self.assertRaises(ValidationError):
- UserMessage.model_validate(extra_field_data)
+ # Should not raise an error - extra fields are allowed
+ msg = UserMessage.model_validate(extra_field_data)
+ self.assertEqual(msg.id, "msg_456")
+ self.assertEqual(msg.content, "Hello")
# Test invalid tool_call_id in ToolMessage
invalid_tool_data = {
diff --git a/sdks/typescript/README.md b/sdks/typescript/README.md
index 64b9a5f4a..1de4bd2f4 100644
--- a/sdks/typescript/README.md
+++ b/sdks/typescript/README.md
@@ -3,3 +3,21 @@
The TypeScript SDK for the [Agent User Interaction Protocol](https://ag-ui.com).
For more information visit the [official documentation](https://docs.ag-ui.com/).
+
+## Multimodal user messages
+
+```ts
+import { UserMessageSchema } from "@ag-ui/core";
+
+const message = UserMessageSchema.parse({
+ id: "user-123",
+ role: "user" as const,
+ content: [
+ { type: "text", text: "Please describe this image" },
+ { type: "binary", mimeType: "image/png", url: "https://example.com/cat.png" },
+ ],
+});
+
+console.log(message);
+// { id: "user-123", role: "user", content: [...] }
+```
diff --git a/sdks/typescript/packages/client/README.md b/sdks/typescript/packages/client/README.md
index 1be36135a..fbc9c41db 100644
--- a/sdks/typescript/packages/client/README.md
+++ b/sdks/typescript/packages/client/README.md
@@ -19,6 +19,7 @@ yarn add @ag-ui/client
- 📡 **Event streaming** – Full AG-UI event processing with validation and transformation
- 🔄 **State management** – Automatic message/state tracking with reactive updates
- 🪝 **Subscriber system** – Middleware-style hooks for logging, persistence, and custom logic
+- 🎯 **Middleware support** – Transform and filter events with function or class-based middleware
## Quick example
@@ -37,6 +38,32 @@ const result = await agent.runAgent({
console.log(result.newMessages);
```
+## Using Middleware
+
+```ts
+import { HttpAgent, FilterToolCallsMiddleware } from "@ag-ui/client";
+
+const agent = new HttpAgent({
+ url: "https://api.example.com/agent",
+});
+
+// Add middleware to transform or filter events
+agent.use(
+ // Function middleware for logging
+ (input, next) => {
+ console.log("Starting run:", input.runId);
+ return next.run(input);
+ },
+
+ // Class middleware for filtering tool calls
+ new FilterToolCallsMiddleware({
+ allowedToolCalls: ["search", "calculate"]
+ })
+);
+
+await agent.runAgent();
+```
+
## Documentation
- Concepts & architecture: [`docs/concepts`](https://docs.ag-ui.com/concepts/architecture)
diff --git a/sdks/typescript/packages/client/jest.config.js b/sdks/typescript/packages/client/jest.config.js
index 0521f8d91..919fd78b9 100644
--- a/sdks/typescript/packages/client/jest.config.js
+++ b/sdks/typescript/packages/client/jest.config.js
@@ -6,5 +6,11 @@ module.exports = {
passWithNoTests: true,
moduleNameMapper: {
"^@/(.*)$": "/src/$1",
+ "^@ag-ui/core$": "/../core/src/index.ts",
+ "^@ag-ui/core/(.*)$": "/../core/src/$1",
+ "^@ag-ui/proto$": "/../proto/src/index.ts",
+ "^@ag-ui/proto/(.*)$": "/../proto/src/$1",
+ "^@ag-ui/encoder$": "/../encoder/src/index.ts",
+ "^@ag-ui/encoder/(.*)$": "/../encoder/src/$1",
},
};
diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json
index c963ffe1a..908c96199 100644
--- a/sdks/typescript/packages/client/package.json
+++ b/sdks/typescript/packages/client/package.json
@@ -25,9 +25,10 @@
},
"dependencies": {
"@ag-ui/core": "workspace:*",
- "@ag-ui/proto": "workspace:*",
"@ag-ui/encoder": "workspace:*",
+ "@ag-ui/proto": "workspace:*",
"@types/uuid": "^10.0.0",
+ "compare-versions": "^6.1.1",
"fast-json-patch": "^3.1.1",
"rxjs": "7.8.1",
"untruncate-json": "^0.0.1",
diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts
new file mode 100644
index 000000000..3fb00e8a0
--- /dev/null
+++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts
@@ -0,0 +1,81 @@
+import { AbstractAgent } from "../agent";
+import { HttpAgent } from "../http";
+import { BaseEvent, Message, RunAgentInput } from "@ag-ui/core";
+import { EMPTY, Observable } from "rxjs";
+
+class CloneableTestAgent extends AbstractAgent {
+ constructor() {
+ super({
+ agentId: "test-agent",
+ description: "Cloneable test agent",
+ threadId: "thread-test",
+ initialMessages: [
+ {
+ id: "msg-1",
+ role: "user",
+ content: "Hello world",
+ toolCalls: [],
+ } as Message,
+ ],
+ initialState: { stage: "initial" },
+ });
+ }
+
+ protected run(_: RunAgentInput): Observable {
+ return EMPTY as Observable;
+ }
+}
+
+describe("AbstractAgent cloning", () => {
+ it("clones subclass instances with independent state", () => {
+ const agent = new CloneableTestAgent();
+
+ const cloned = agent.clone() as CloneableTestAgent;
+
+ expect(cloned).toBeInstanceOf(CloneableTestAgent);
+ expect(cloned).not.toBe(agent);
+ expect(cloned.agentId).toBe(agent.agentId);
+ expect(cloned.threadId).toBe(agent.threadId);
+ expect(cloned.messages).toEqual(agent.messages);
+ expect(cloned.messages).not.toBe(agent.messages);
+ expect(cloned.state).toEqual(agent.state);
+ expect(cloned.state).not.toBe(agent.state);
+ });
+});
+
+describe("HttpAgent cloning", () => {
+ it("produces a new HttpAgent with cloned configuration and abort controller", () => {
+ const httpAgent = new HttpAgent({
+ url: "https://example.com/agent",
+ headers: { Authorization: "Bearer token" },
+ threadId: "thread-http",
+ initialMessages: [
+ {
+ id: "msg-http",
+ role: "assistant",
+ content: "response",
+ toolCalls: [],
+ } as Message,
+ ],
+ initialState: { status: "ready" },
+ });
+
+ httpAgent.abortController.abort("cancelled");
+
+ const cloned = httpAgent.clone() as HttpAgent;
+
+ expect(cloned).toBeInstanceOf(HttpAgent);
+ expect(cloned).not.toBe(httpAgent);
+ expect(cloned.url).toBe(httpAgent.url);
+ expect(cloned.headers).toEqual(httpAgent.headers);
+ expect(cloned.headers).not.toBe(httpAgent.headers);
+ expect(cloned.messages).toEqual(httpAgent.messages);
+ expect(cloned.messages).not.toBe(httpAgent.messages);
+ expect(cloned.state).toEqual(httpAgent.state);
+ expect(cloned.state).not.toBe(httpAgent.state);
+ expect(cloned.abortController).not.toBe(httpAgent.abortController);
+ expect(cloned.abortController).toBeInstanceOf(AbortController);
+ expect(cloned.abortController.signal.aborted).toBe(true);
+ expect(cloned.abortController.signal.reason).toBe("cancelled");
+ });
+});
diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts
index 4f3633d6a..009df2cb7 100644
--- a/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts
+++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts
@@ -1,5 +1,5 @@
-import { AbstractAgent, RunAgentResult } from "../agent";
-import { BaseEvent, EventType, Message, RunAgentInput, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, RunStartedEvent, RunFinishedEvent } from "@ag-ui/core";
+import { AbstractAgent } from "../agent";
+import { BaseEvent, EventType, Message, RunAgentInput, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, RunStartedEvent, RunFinishedEvent, ActivitySnapshotEvent } from "@ag-ui/core";
import { Observable, of } from "rxjs";
describe("AbstractAgent multiple runs", () => {
@@ -273,4 +273,65 @@ describe("AbstractAgent multiple runs", () => {
expect(agent.messages[0].content).toBe("Initial message");
expect(agent.messages[1].content).toBe("Response message");
});
-});
\ No newline at end of file
+
+ it("should retain activity messages across runs", async () => {
+ const agent = new TestAgent({
+ threadId: "test-thread",
+ initialMessages: [],
+ });
+
+ const firstRunEvents: BaseEvent[] = [
+ {
+ type: EventType.RUN_STARTED,
+ threadId: "test-thread",
+ runId: "run-1",
+ } as RunStartedEvent,
+ {
+ type: EventType.ACTIVITY_SNAPSHOT,
+ messageId: "activity-1",
+ activityType: "PLAN",
+ content: { tasks: ["task 1"] },
+ } as ActivitySnapshotEvent,
+ {
+ type: EventType.RUN_FINISHED,
+ } as RunFinishedEvent,
+ ];
+
+ agent.setEvents(firstRunEvents);
+ await agent.runAgent({ runId: "run-1" });
+
+ expect(agent.messages.length).toBe(1);
+ expect(agent.messages[0].role).toBe("activity");
+
+ const secondRunEvents: BaseEvent[] = [
+ {
+ type: EventType.RUN_STARTED,
+ threadId: "test-thread",
+ runId: "run-2",
+ } as RunStartedEvent,
+ {
+ type: EventType.TEXT_MESSAGE_START,
+ messageId: "msg-2",
+ role: "assistant",
+ } as TextMessageStartEvent,
+ {
+ type: EventType.TEXT_MESSAGE_CONTENT,
+ messageId: "msg-2",
+ delta: "Hello from run 2",
+ } as TextMessageContentEvent,
+ {
+ type: EventType.TEXT_MESSAGE_END,
+ messageId: "msg-2",
+ } as TextMessageEndEvent,
+ {
+ type: EventType.RUN_FINISHED,
+ } as RunFinishedEvent,
+ ];
+
+ agent.setEvents(secondRunEvents);
+ await agent.runAgent({ runId: "run-2" });
+
+ expect(agent.messages.length).toBe(2);
+ expect(agent.messages.some((message) => message.role === "activity" && message.id === "activity-1")).toBe(true);
+ });
+});
diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts
index 55d50ddd1..e6e7c0fbc 100644
--- a/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts
+++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts
@@ -17,14 +17,18 @@ jest.mock("uuid", () => ({
}));
// Mock utils
-jest.mock("@/utils", () => ({
- structuredClone_: (obj: any) => {
- if (obj === undefined) return undefined;
- const jsonString = JSON.stringify(obj);
- if (jsonString === undefined || jsonString === "undefined") return undefined;
- return JSON.parse(jsonString);
- },
-}));
+jest.mock("@/utils", () => {
+ const actual = jest.requireActual("@/utils");
+ return {
+ ...actual,
+ structuredClone_: (obj: any) => {
+ if (obj === undefined) return undefined;
+ const jsonString = JSON.stringify(obj);
+ if (jsonString === undefined || jsonString === "undefined") return undefined;
+ return JSON.parse(jsonString);
+ },
+ };
+});
// Helper function to wait for async notifications to complete
const waitForAsyncNotifications = async () => {
diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts
index 5df3a5cf1..bf7b614ae 100644
--- a/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts
+++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts
@@ -1,11 +1,12 @@
import { AbstractAgent } from "../agent";
import { AgentSubscriber } from "../subscriber";
import {
+ ActivityDeltaEvent,
+ ActivitySnapshotEvent,
BaseEvent,
EventType,
Message,
RunAgentInput,
- State,
MessagesSnapshotEvent,
RunFinishedEvent,
RunStartedEvent,
@@ -18,14 +19,18 @@ jest.mock("uuid", () => ({
}));
// Mock utils
-jest.mock("@/utils", () => ({
- structuredClone_: (obj: any) => {
- if (obj === undefined) return undefined;
- const jsonString = JSON.stringify(obj);
- if (jsonString === undefined || jsonString === "undefined") return undefined;
- return JSON.parse(jsonString);
- },
-}));
+jest.mock("@/utils", () => {
+ const actual = jest.requireActual("@/utils");
+ return {
+ ...actual,
+ structuredClone_: (obj: any) => {
+ if (obj === undefined) return undefined;
+ const jsonString = JSON.stringify(obj);
+ if (jsonString === undefined || jsonString === "undefined") return undefined;
+ return JSON.parse(jsonString);
+ },
+ };
+});
// Mock the verify and chunks modules
jest.mock("@/verify", () => ({
@@ -307,6 +312,60 @@ describe("Agent Result", () => {
expect(result.newMessages[1].id).toBe("new-2");
expect(result.newMessages[2].id).toBe("new-3");
});
+
+ it("should retain appended activity operations in agent messages", async () => {
+ const firstOperation = { id: "op-1", status: "PENDING" };
+ const secondOperation = { id: "op-2", status: "COMPLETE" };
+
+ agent.setEventsToEmit([
+ {
+ type: EventType.RUN_STARTED,
+ threadId: "test-thread",
+ runId: "run-ops",
+ } as RunStartedEvent,
+ {
+ type: EventType.ACTIVITY_SNAPSHOT,
+ messageId: "activity-ops",
+ activityType: "PLAN",
+ content: { operations: [] },
+ replace: false,
+ } as ActivitySnapshotEvent,
+ {
+ type: EventType.ACTIVITY_DELTA,
+ messageId: "activity-ops",
+ activityType: "PLAN",
+ patch: [{ op: "add", path: "/operations/-", value: firstOperation }],
+ } as ActivityDeltaEvent,
+ {
+ type: EventType.ACTIVITY_DELTA,
+ messageId: "activity-ops",
+ activityType: "PLAN",
+ patch: [{ op: "add", path: "/operations/-", value: secondOperation }],
+ } as ActivityDeltaEvent,
+ {
+ type: EventType.RUN_FINISHED,
+ threadId: "test-thread",
+ runId: "run-ops",
+ } as RunFinishedEvent,
+ ]);
+
+ const result = await agent.runAgent({ runId: "run-ops" });
+
+ const activityMessage = agent.messages.find((message) => message.id === "activity-ops");
+
+ expect(activityMessage).toBeTruthy();
+ expect(activityMessage?.role).toBe("activity");
+ expect(activityMessage?.activityType).toBe("PLAN");
+ expect(activityMessage?.content).toEqual({
+ operations: [firstOperation, secondOperation],
+ });
+
+ expect(result.newMessages).toHaveLength(1);
+ expect(result.newMessages[0].id).toBe("activity-ops");
+ expect(result.newMessages[0].content).toEqual({
+ operations: [firstOperation, secondOperation],
+ });
+ });
});
describe("combined result and newMessages", () => {
diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts
new file mode 100644
index 000000000..382cc9733
--- /dev/null
+++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts
@@ -0,0 +1,19 @@
+import { AbstractAgent } from "@/agent";
+import { BaseEvent, RunAgentInput } from "@ag-ui/core";
+import { Observable } from "rxjs";
+import packageJson from "../../../package.json";
+
+describe("AbstractAgent maxVersion default", () => {
+ class VersionAgent extends AbstractAgent {
+ run(input: RunAgentInput): Observable {
+ return new Observable((subscriber) => {
+ subscriber.complete();
+ });
+ }
+ }
+
+ it("uses the package.json version by default", () => {
+ const agent = new VersionAgent();
+ expect(agent.maxVersion).toBe(packageJson.version);
+ });
+});
diff --git a/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts
index 6dee07da1..f6305a1a9 100644
--- a/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts
+++ b/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts
@@ -28,14 +28,18 @@ jest.mock("uuid", () => ({
}));
// Mock utils with handling for undefined values
-jest.mock("@/utils", () => ({
- structuredClone_: (obj: any) => {
- if (obj === undefined) return undefined;
- const jsonString = JSON.stringify(obj);
- if (jsonString === undefined || jsonString === "undefined") return undefined;
- return JSON.parse(jsonString);
- },
-}));
+jest.mock("@/utils", () => {
+ const actual = jest.requireActual("@/utils");
+ return {
+ ...actual,
+ structuredClone_: (obj: any) => {
+ if (obj === undefined) return undefined;
+ const jsonString = JSON.stringify(obj);
+ if (jsonString === undefined || jsonString === "undefined") return undefined;
+ return JSON.parse(jsonString);
+ },
+ };
+});
// Mock the verify modules but NOT apply - we want to test against real defaultApplyEvents
jest.mock("@/verify", () => ({
diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts
index 8e2f95610..4820ed5b2 100644
--- a/sdks/typescript/packages/client/src/agent/agent.ts
+++ b/sdks/typescript/packages/client/src/agent/agent.ts
@@ -4,15 +4,24 @@ import { Message, State, RunAgentInput, BaseEvent, ToolCall, AssistantMessage }
import { AgentConfig, RunAgentParameters } from "./types";
import { v4 as uuidv4 } from "uuid";
import { structuredClone_ } from "@/utils";
+import { compareVersions } from "compare-versions";
import { catchError, map, tap } from "rxjs/operators";
import { finalize } from "rxjs/operators";
-import { pipe, Observable, from, of } from "rxjs";
+import { pipe, Observable, from, of, EMPTY } from "rxjs";
import { verifyEvents } from "@/verify";
import { convertToLegacyEvents } from "@/legacy/convert";
import { LegacyRuntimeProtocolEvent } from "@/legacy/types";
import { lastValueFrom } from "rxjs";
import { transformChunks } from "@/chunks";
import { AgentStateMutation, AgentSubscriber, runSubscribersWithMutation } from "./subscriber";
+import { AGUIConnectNotImplementedError } from "@ag-ui/core";
+import {
+ Middleware,
+ MiddlewareFunction,
+ FunctionMiddleware,
+ BackwardCompatibility_0_0_39,
+} from "@/middleware";
+import packageJson from "../../package.json";
export interface RunAgentResult {
result: any;
@@ -27,6 +36,12 @@ export abstract class AbstractAgent {
public state: State;
public debug: boolean = false;
public subscribers: AgentSubscriber[] = [];
+ public isRunning: boolean = false;
+ private middlewares: Middleware[] = [];
+
+ get maxVersion() {
+ return packageJson.version;
+ }
constructor({
agentId,
@@ -42,6 +57,10 @@ export abstract class AbstractAgent {
this.messages = structuredClone_(initialMessages ?? []);
this.state = structuredClone_(initialState ?? {});
this.debug = debug ?? false;
+
+ if (compareVersions(this.maxVersion, "0.0.39") <= 0) {
+ this.middlewares.unshift(new BackwardCompatibility_0_0_39());
+ }
}
public subscribe(subscriber: AgentSubscriber) {
@@ -55,47 +74,131 @@ export abstract class AbstractAgent {
abstract run(input: RunAgentInput): Observable;
+ public use(...middlewares: (Middleware | MiddlewareFunction)[]): this {
+ const normalizedMiddlewares = middlewares.map((middleware) =>
+ typeof middleware === "function" ? new FunctionMiddleware(middleware) : middleware,
+ );
+ this.middlewares.push(...normalizedMiddlewares);
+ return this;
+ }
+
public async runAgent(
parameters?: RunAgentParameters,
subscriber?: AgentSubscriber,
): Promise {
- this.agentId = this.agentId ?? uuidv4();
- const input = this.prepareRunAgentInput(parameters);
- let result: any = undefined;
- const currentMessageIds = new Set(this.messages.map((message) => message.id));
-
- const subscribers: AgentSubscriber[] = [
- {
- onRunFinishedEvent: (params) => {
- result = params.result;
+ try {
+ this.isRunning = true;
+ this.agentId = this.agentId ?? uuidv4();
+ const input = this.prepareRunAgentInput(parameters);
+ let result: any = undefined;
+ const currentMessageIds = new Set(this.messages.map((message) => message.id));
+
+ const subscribers: AgentSubscriber[] = [
+ {
+ onRunFinishedEvent: (params) => {
+ result = params.result;
+ },
},
- },
- ...this.subscribers,
- subscriber ?? {},
- ];
+ ...this.subscribers,
+ subscriber ?? {},
+ ];
- await this.onInitialize(input, subscribers);
+ await this.onInitialize(input, subscribers);
- const pipeline = pipe(
- () => this.run(input),
- transformChunks(this.debug),
- verifyEvents(this.debug),
- (source$) => this.apply(input, source$, subscribers),
- (source$) => this.processApplyEvents(input, source$, subscribers),
- catchError((error) => {
- return this.onError(input, error, subscribers);
- }),
- finalize(() => {
- void this.onFinalize(input, subscribers);
- }),
- );
+ const pipeline = pipe(
+ () => {
+ // Build middleware chain using reduceRight so middlewares can intercept runs.
+ if (this.middlewares.length === 0) {
+ return this.run(input);
+ }
- return lastValueFrom(pipeline(of(null))).then(() => {
+ const chainedAgent = this.middlewares.reduceRight(
+ (nextAgent: AbstractAgent, middleware) =>
+ ({
+ run: (i: RunAgentInput) => middleware.run(i, nextAgent),
+ }) as AbstractAgent,
+ this, // Original agent is the final 'next'
+ );
+
+ return chainedAgent.run(input);
+ },
+ transformChunks(this.debug),
+ verifyEvents(this.debug),
+ (source$) => this.apply(input, source$, subscribers),
+ (source$) => this.processApplyEvents(input, source$, subscribers),
+ catchError((error) => {
+ this.isRunning = false;
+ return this.onError(input, error, subscribers);
+ }),
+ finalize(() => {
+ this.isRunning = false;
+ void this.onFinalize(input, subscribers);
+ }),
+ );
+
+ await lastValueFrom(pipeline(of(null)));
const newMessages = structuredClone_(this.messages).filter(
(message: Message) => !currentMessageIds.has(message.id),
);
return { result, newMessages };
- });
+ } finally {
+ this.isRunning = false;
+ }
+ }
+
+ protected connect(input: RunAgentInput): Observable {
+ throw new AGUIConnectNotImplementedError();
+ }
+ public async connectAgent(
+ parameters?: RunAgentParameters,
+ subscriber?: AgentSubscriber,
+ ): Promise {
+ try {
+ this.isRunning = true;
+ this.agentId = this.agentId ?? uuidv4();
+ const input = this.prepareRunAgentInput(parameters);
+ let result: any = undefined;
+ const currentMessageIds = new Set(this.messages.map((message) => message.id));
+
+ const subscribers: AgentSubscriber[] = [
+ {
+ onRunFinishedEvent: (params) => {
+ result = params.result;
+ },
+ },
+ ...this.subscribers,
+ subscriber ?? {},
+ ];
+
+ await this.onInitialize(input, subscribers);
+
+ const pipeline = pipe(
+ () => this.connect(input),
+ transformChunks(this.debug),
+ verifyEvents(this.debug),
+ (source$) => this.apply(input, source$, subscribers),
+ (source$) => this.processApplyEvents(input, source$, subscribers),
+ catchError((error) => {
+ this.isRunning = false;
+ if (!(error instanceof AGUIConnectNotImplementedError)) {
+ return this.onError(input, error, subscribers);
+ }
+ return EMPTY;
+ }),
+ finalize(() => {
+ this.isRunning = false;
+ void this.onFinalize(input, subscribers);
+ }),
+ );
+
+ await lastValueFrom(pipeline(of(null))); // wait for stream completion before toggling isRunning
+ const newMessages = structuredClone_(this.messages).filter(
+ (message: Message) => !currentMessageIds.has(message.id),
+ );
+ return { result, newMessages };
+ } finally {
+ this.isRunning = false;
+ }
}
public abortRun() {}
@@ -142,6 +245,11 @@ export abstract class AbstractAgent {
}
protected prepareRunAgentInput(parameters?: RunAgentParameters): RunAgentInput {
+ const clonedMessages = structuredClone_(this.messages) as Message[];
+ const messagesWithoutActivity = clonedMessages.filter(
+ (message) => message.role !== "activity",
+ );
+
return {
threadId: this.threadId,
runId: parameters?.runId || uuidv4(),
@@ -149,7 +257,7 @@ export abstract class AbstractAgent {
context: structuredClone_(parameters?.context ?? []),
forwardedProps: structuredClone_(parameters?.forwardedProps ?? {}),
state: structuredClone_(this.state),
- messages: structuredClone_(this.messages),
+ messages: messagesWithoutActivity,
};
}
@@ -281,12 +389,14 @@ export abstract class AbstractAgent {
public clone() {
const cloned = Object.create(Object.getPrototypeOf(this));
- for (const key of Object.getOwnPropertyNames(this)) {
- const value = (this as any)[key];
- if (typeof value !== "function") {
- cloned[key] = structuredClone_(value);
- }
- }
+ cloned.agentId = this.agentId;
+ cloned.description = this.description;
+ cloned.threadId = this.threadId;
+ cloned.messages = structuredClone_(this.messages);
+ cloned.state = structuredClone_(this.state);
+ cloned.debug = this.debug;
+ cloned.isRunning = this.isRunning;
+ cloned.subscribers = [...this.subscribers];
return cloned;
}
@@ -416,7 +526,24 @@ export abstract class AbstractAgent {
this.agentId = this.agentId ?? uuidv4();
const input = this.prepareRunAgentInput(config);
- return this.run(input).pipe(
+ // Build middleware chain for legacy bridge
+ const runObservable = (() => {
+ if (this.middlewares.length === 0) {
+ return this.run(input);
+ }
+
+ const chainedAgent = this.middlewares.reduceRight(
+ (nextAgent: AbstractAgent, middleware) =>
+ ({
+ run: (i: RunAgentInput) => middleware.run(i, nextAgent),
+ }) as AbstractAgent,
+ this,
+ );
+
+ return chainedAgent.run(input);
+ })();
+
+ return runObservable.pipe(
transformChunks(this.debug),
verifyEvents(this.debug),
convertToLegacyEvents(this.threadId, input.runId, this.agentId),
diff --git a/sdks/typescript/packages/client/src/agent/http.ts b/sdks/typescript/packages/client/src/agent/http.ts
index 49fae2173..f9d9c3002 100644
--- a/sdks/typescript/packages/client/src/agent/http.ts
+++ b/sdks/typescript/packages/client/src/agent/http.ts
@@ -58,4 +58,19 @@ export class HttpAgent extends AbstractAgent {
const httpEvents = runHttpRequest(this.url, this.requestInit(input));
return transformHttpEventStream(httpEvents);
}
+
+ public clone(): HttpAgent {
+ const cloned = super.clone() as HttpAgent;
+ cloned.url = this.url;
+ cloned.headers = structuredClone_(this.headers ?? {});
+
+ const newController = new AbortController();
+ const originalSignal = this.abortController.signal as AbortSignal & { reason?: unknown };
+ if (originalSignal.aborted) {
+ newController.abort(originalSignal.reason);
+ }
+ cloned.abortController = newController;
+
+ return cloned;
+ }
}
diff --git a/sdks/typescript/packages/client/src/agent/index.ts b/sdks/typescript/packages/client/src/agent/index.ts
index e1a25b101..046bfa90b 100644
--- a/sdks/typescript/packages/client/src/agent/index.ts
+++ b/sdks/typescript/packages/client/src/agent/index.ts
@@ -2,4 +2,4 @@ export { AbstractAgent } from "./agent";
export type { RunAgentResult } from "./agent";
export { HttpAgent } from "./http";
export type { AgentConfig, HttpAgentConfig, RunAgentParameters } from "./types";
-export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams} from "./subscriber";
\ No newline at end of file
+export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams } from "./subscriber";
diff --git a/sdks/typescript/packages/client/src/agent/subscriber.ts b/sdks/typescript/packages/client/src/agent/subscriber.ts
index ab7d09e9f..204038e62 100644
--- a/sdks/typescript/packages/client/src/agent/subscriber.ts
+++ b/sdks/typescript/packages/client/src/agent/subscriber.ts
@@ -21,6 +21,9 @@ import {
RawEvent,
CustomEvent,
ToolCall,
+ ActivitySnapshotEvent,
+ ActivityDeltaEvent,
+ ActivityMessage,
} from "@ag-ui/core";
import { AbstractAgent } from "./agent";
import { structuredClone_ } from "@/utils";
@@ -123,6 +126,21 @@ export interface AgentSubscriber {
params: { event: MessagesSnapshotEvent } & AgentSubscriberParams,
): MaybePromise;
+ onActivitySnapshotEvent?(
+ params: {
+ event: ActivitySnapshotEvent;
+ activityMessage?: ActivityMessage;
+ existingMessage?: Message;
+ } & AgentSubscriberParams,
+ ): MaybePromise;
+
+ onActivityDeltaEvent?(
+ params: {
+ event: ActivityDeltaEvent;
+ activityMessage?: ActivityMessage;
+ } & AgentSubscriberParams,
+ ): MaybePromise;
+
onRawEvent?(
params: { event: RawEvent } & AgentSubscriberParams,
): MaybePromise