diff --git a/.github/workflows/auto-approve-community.yml b/.github/workflows/auto-approve-community.yml
deleted file mode 100644
index 7e5cabb4a..000000000
--- a/.github/workflows/auto-approve-community.yml
+++ /dev/null
@@ -1,193 +0,0 @@
-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 e80391eaa..fbffdac22 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,7 +13,3 @@ node_modules
.vscode
**/mastra.db*
-
-.pnpm-store
-
-**/.poetry-cache
diff --git a/CLAUDE.md b/CLAUDE.md
index 765ff030c..6e771634e 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -19,7 +19,6 @@ pnpm dev
# Run linting
pnpm lint
-
# Run type checking
pnpm check-types
diff --git a/README.md b/README.md
index b014a781a..6630afe55 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,7 @@ 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:
diff --git a/apps/client-cli-example/package.json b/apps/client-cli-example/package.json
index 8b062237e..3a8564b75 100644
--- a/apps/client-cli-example/package.json
+++ b/apps/client-cli-example/package.json
@@ -18,12 +18,12 @@
"@mastra/libsql": "0.12.0",
"@mastra/loggers": "0.10.5",
"@mastra/memory": "0.12.0",
- "open": "^10.1.2",
- "zod": "^3.22.4"
+ "open": "^10.2.0",
+ "zod": "^3.25.76"
},
"devDependencies": {
- "@types/node": "^20",
- "tsx": "^4.7.0",
- "typescript": "^5"
+ "@types/node": "^20.19.24",
+ "tsx": "^4.20.6",
+ "typescript": "^5.9.3"
}
}
diff --git a/apps/dojo/package.json b/apps/dojo/package.json
index 8a8cd3d68..c429c40c9 100644
--- a/apps/dojo/package.json
+++ b/apps/dojo/package.json
@@ -12,8 +12,6 @@
"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:*",
@@ -27,36 +25,37 @@
"@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",
- "@copilotkit/react-ui": "1.10.6",
- "@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",
- "@mastra/libsql": "^0.15.1",
- "@mastra/loggers": "^0.10.15",
- "@mastra/memory": "^0.15.6",
- "@mdx-js/loader": "^3.1.0",
- "@mdx-js/mdx": "^3.1.0",
- "@mdx-js/react": "^3.1.0",
+ "@ai-sdk/openai": "^2.0.57",
+ "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251107155707",
+ "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251107155707",
+ "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251107155707",
+ "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251107155707",
+ "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251107155707",
+ "@copilotkitnext/core": "0.0.21",
+ "@copilotkitnext/runtime": "0.0.21",
+ "@copilotkitnext/react": "0.0.21",
+ "@mastra/client-js": "^0.16.8",
+ "@mastra/core": "^0.23.3",
+ "@mastra/dynamodb": "^0.15.9",
+ "@mastra/libsql": "^0.16.1 ",
+ "@mastra/loggers": "^0.10.18",
+ "@mastra/memory": "^0.15.10",
+ "@mdx-js/loader": "^3.1.1",
+ "@mdx-js/mdx": "^3.1.1",
+ "@mdx-js/react": "^3.1.1",
"@monaco-editor/react": "^4.7.0",
- "@next/mdx": "^15.2.3",
+ "@next/mdx": "^15.5.6",
"@phosphor-icons/react": "^2.1.10",
- "@radix-ui/react-dropdown-menu": "^2.1.6",
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-slot": "^1.2.3",
- "@radix-ui/react-tabs": "^1.1.3",
- "@tiptap/extension-color": "^2.11.5",
- "@tiptap/extension-placeholder": "^2.11.5",
- "@tiptap/pm": "^2.11.5",
- "@tiptap/react": "^2.11.5",
- "@tiptap/starter-kit": "^2.11.5",
+ "@radix-ui/react-tabs": "^1.1.13",
+ "@tiptap/extension-color": "^2.27.0",
+ "@tiptap/extension-placeholder": "^2.27.0",
+ "@tiptap/pm": "^2.27.0",
+ "@tiptap/react": "^2.27.0",
+ "@tiptap/starter-kit": "^2.27.0",
"@types/react-syntax-highlighter": "^15.5.13",
+ "ai": "5.0.59",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"dedent": "^1.7.0",
@@ -69,17 +68,17 @@
"markdown-it-ins": "^4.0.0",
"next": "15.2.1",
"next-themes": "^0.4.6",
- "openai": "^4.98.0",
- "react": "^19.0.0",
- "react-dom": "^19.0.0",
+ "openai": "^5.9.0",
+ "react": "^19.2.0",
+ "react-dom": "^19.2.0",
"react-markdown": "^10.1.0",
- "react-syntax-highlighter": "^15.6.1",
+ "react-syntax-highlighter": "^15.6.6",
"rxjs": "7.8.1",
- "tailwind-merge": "^3.3.0",
+ "tailwind-merge": "^3.3.1",
"tailwindcss-animate": "^1.0.7",
"untruncate-json": "^0.0.1",
"uuid": "^11.1.0",
- "zod": "^3.25.67"
+ "zod": "^3.25.76"
},
"peerDependencies": {
"@ag-ui/client": "workspace:*",
@@ -88,21 +87,21 @@
"@ag-ui/proto": "workspace:*"
},
"devDependencies": {
- "@eslint/eslintrc": "^3",
+ "@eslint/eslintrc": "^3.3.1",
"@shadcn/ui": "^0.0.4",
- "@tailwindcss/postcss": "^4",
- "@tailwindcss/typography": "^0.5.16",
- "@types/diff": "^7.0.1",
+ "@tailwindcss/postcss": "^4.1.16",
+ "@tailwindcss/typography": "^0.5.19",
+ "@types/diff": "^7.0.2",
"@types/markdown-it": "^14.1.2",
- "@types/node": "^20",
- "@types/react": "^19",
- "@types/react-dom": "^19",
- "concurrently": "^9.2.0",
- "eslint": "^9",
+ "@types/node": "^20.19.24",
+ "@types/react": "^19.2.2",
+ "@types/react-dom": "^19.2.2",
+ "concurrently": "^9.2.1",
+ "eslint": "^9.38.0",
"eslint-config-next": "15.2.1",
- "tailwindcss": "^4",
- "tsx": "^4.7.0",
- "typescript": "^5",
+ "tailwindcss": "^4.1.16",
+ "tsx": "^4.20.6",
+ "typescript": "^5.9.3",
"wait-port": "^1.1.0"
}
}
diff --git a/apps/dojo/src/agents.ts b/apps/dojo/src/agents.ts
index 02db44e28..c36a6bca5 100644
--- a/apps/dojo/src/agents.ts
+++ b/apps/dojo/src/agents.ts
@@ -19,8 +19,6 @@ import { ADKAgent } from "@ag-ui/adk";
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[] = [
@@ -136,15 +134,14 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [
return MastraAgent.getLocalAgents({ mastra });
},
},
- // Disabled until we can support Vercel AI SDK v5
- // {
- // id: "vercel-ai-sdk",
- // agents: async () => {
- // return {
- // agentic_chat: new VercelAISDKAgent({ model: openai("gpt-4o") }),
- // };
- // },
- // },
+ {
+ id: "vercel-ai-sdk",
+ agents: async () => {
+ return {
+ agentic_chat: new VercelAISDKAgent({ model: openai("gpt-4o") }),
+ };
+ },
+ },
{
id: "langgraph",
agents: async () => {
@@ -345,19 +342,6 @@ 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
deleted file mode 100644
index b81ab7ecb..000000000
--- a/apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx
+++ /dev/null
@@ -1,39 +0,0 @@
-"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]/[[...slug]]/route.ts
similarity index 96%
rename from apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts
rename to apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts
index a1c04b856..007913f91 100644
--- a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts
+++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts
@@ -1,12 +1,13 @@
+import "reflect-metadata";
import {
CopilotRuntime,
ExperimentalEmptyAdapter,
copilotRuntimeNextJSAppRouterEndpoint,
} from "@copilotkit/runtime";
-import { NextRequest } from "next/server";
-
import { agentsIntegrations } from "@/agents";
+import { NextRequest } from "next/server";
+
export async function POST(request: NextRequest) {
const integrationId = request.url.split("/").pop();
@@ -14,7 +15,6 @@ 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
@@ -28,4 +28,3 @@ 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
deleted file mode 100644
index 80f03f2c1..000000000
--- a/apps/dojo/src/app/api/copilotkit/route.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-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
deleted file mode 100644
index 8ecd15ff3..000000000
--- a/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-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/config.ts b/apps/dojo/src/config.ts
index df7e0f25e..e27f3a4b8 100644
--- a/apps/dojo/src/config.ts
+++ b/apps/dojo/src/config.ts
@@ -32,15 +32,13 @@ 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({
@@ -58,8 +56,7 @@ 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({
@@ -71,8 +68,7 @@ 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({
@@ -81,12 +77,6 @@ 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 569c6cfdc..c63344897 100644
--- a/apps/dojo/src/env.ts
+++ b/apps/dojo/src/env.ts
@@ -11,7 +11,6 @@ type envVars = {
crewAiUrl: string;
pydanticAIUrl: string;
adkMiddlewareUrl: string;
- a2aUrl: string;
a2aMiddlewareBuildingsManagementUrl: string;
a2aMiddlewareFinanceUrl: string;
a2aMiddlewareItUrl: string;
@@ -41,11 +40,10 @@ 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/files.json b/apps/dojo/src/files.json
index 4fdd3b9d6..67fa84bd9 100644
--- a/apps/dojo/src/files.json
+++ b/apps/dojo/src/files.json
@@ -519,6 +519,27 @@
"type": "file"
}
],
+ "vercel-ai-sdk::agentic_chat": [
+ {
+ "name": "page.tsx",
+ "content": "\"use client\";\nimport React, { useState } from \"react\";\nimport \"@copilotkit/react-ui/styles.css\";\nimport \"./style.css\";\nimport {\n CopilotKit,\n useFrontendTool,\n} from \"@copilotkit/react-core\";\nimport { CopilotChat } from \"@copilotkit/react-ui\";\n\ninterface AgenticChatProps {\n params: Promise<{\n integrationId: string;\n }>;\n}\n\nconst AgenticChat: React.FC = ({ params }) => {\n const { integrationId } = React.use(params);\n\n return (\n \n \n \n );\n};\n\nconst Chat = () => {\n const [background, setBackground] = useState(\"--copilot-kit-background-color\");\n\n useFrontendTool({\n name: \"change_background\",\n description:\n \"Change the background color of the chat. Can be anything that the CSS background attribute accepts. Regular colors, linear of radial gradients etc.\",\n parameters: [\n {\n name: \"background\",\n type: \"string\",\n description: \"The background. Prefer gradients. Only use when asked.\",\n },\n ],\n handler: ({ background }) => {\n setBackground(background);\n return {\n status: \"success\",\n message: `Background changed to ${background}`,\n };\n },\n });\n\n return (\n \n );\n};\n\nexport default AgenticChat;\n",
+ "language": "typescript",
+ "type": "file"
+ },
+ {
+ "name": "style.css",
+ "content": ".copilotKitInput {\n border-bottom-left-radius: 0.75rem;\n border-bottom-right-radius: 0.75rem;\n border-top-left-radius: 0.75rem;\n border-top-right-radius: 0.75rem;\n border: 1px solid var(--copilot-kit-separator-color) !important;\n}\n \n.copilotKitChat {\n background-color: #fff !important;\n}\n ",
+ "language": "css",
+ "type": "file"
+ },
+ {
+ "name": "README.mdx",
+ "content": "# 🤖 Agentic Chat with Frontend Tools\n\n## What This Demo Shows\n\nThis demo showcases CopilotKit's **agentic chat** capabilities with **frontend\ntool integration**:\n\n1. **Natural Conversation**: Chat with your Copilot in a familiar chat interface\n2. **Frontend Tool Execution**: The Copilot can directly interacts with your UI\n by calling frontend functions\n3. **Seamless Integration**: Tools defined in the frontend and automatically\n discovered and made available to the agent\n\n## How to Interact\n\nTry asking your Copilot to:\n\n- \"Can you change the background color to something more vibrant?\"\n- \"Make the background a blue to purple gradient\"\n- \"Set the background to a sunset-themed gradient\"\n- \"Change it back to a simple light color\"\n\nYou can also chat about other topics - the agent will respond conversationally\nwhile having the ability to use your UI tools when appropriate.\n\n## ✨ Frontend Tool Integration in Action\n\n**What's happening technically:**\n\n- The React component defines a frontend function using `useCopilotAction`\n- CopilotKit automatically exposes this function to the agent\n- When you make a request, the agent determines whether to use the tool\n- The agent calls the function with the appropriate parameters\n- The UI immediately updates in response\n\n**What you'll see in this demo:**\n\n- The Copilot understands requests to change the background\n- It generates CSS values for colors and gradients\n- When it calls the tool, the background changes instantly\n- The agent provides a conversational response about the changes it made\n\nThis technique of exposing frontend functions to your Copilot can be extended to\nany UI manipulation you want to enable, from theme changes to data filtering,\nnavigation, or complex UI state management!\n",
+ "language": "markdown",
+ "type": "file"
+ },
+ {}
+ ],
"langgraph::agentic_chat": [
{
"name": "page.tsx",
diff --git a/apps/dojo/src/mastra/index.ts b/apps/dojo/src/mastra/index.ts
index 2be1e299a..7dd48523c 100644
--- a/apps/dojo/src/mastra/index.ts
+++ b/apps/dojo/src/mastra/index.ts
@@ -57,7 +57,7 @@ export const mastra = new Mastra({
Your primary function is to help users get weather details for specific locations. When responding:
- Always ask for a location if none is provided
- - If the location name isn’t in English, please translate it
+ - If the location name isn't in English, please translate it
- If giving a location with multiple parts (e.g. "New York, NY"), use the most relevant part (e.g. "New York")
- Include relevant details like humidity, wind conditions, and precipitation
- Keep responses concise but informative
@@ -105,7 +105,7 @@ export const mastra = new Mastra({
"One-Pot Meal",
"Vegetarian",
"Vegan",
- ]),
+ ])
)
.describe("A list of special preferences for the recipe"),
cooking_time: z
@@ -117,21 +117,25 @@ export const mastra = new Mastra({
icon: z
.string()
.describe(
- "The icon emoji (not emoji code like '\x1f35e', but the actual emoji like 🥕) of the ingredient",
+ "The icon emoji (not emoji code like '\x1f35e', but the actual emoji like 🥕) of the ingredient"
),
name: z.string().describe("The name of the ingredient"),
- amount: z.string().describe("The amount of the ingredient"),
- }),
+ amount: z
+ .string()
+ .describe("The amount of the ingredient"),
+ })
)
.describe(
- "Entire list of ingredients for the recipe, including the new ingredients and the ones that are already in the recipe",
+ "Entire list of ingredients for the recipe, including the new ingredients and the ones that are already in the recipe"
),
instructions: z
.array(z.string())
.describe(
- "Entire list of instructions for the recipe, including the new instructions and the ones that are already there",
+ "Entire list of instructions for the recipe, including the new instructions and the ones that are already there"
),
- changes: z.string().describe("A description of the changes made to the recipe"),
+ changes: z
+ .string()
+ .describe("A description of the changes made to the recipe"),
}),
}),
},
diff --git a/apps/dojo/src/menu.ts b/apps/dojo/src/menu.ts
index 36959a218..25d02f283 100644
--- a/apps/dojo/src/menu.ts
+++ b/apps/dojo/src/menu.ts
@@ -47,11 +47,7 @@ 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",
@@ -64,15 +60,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",
@@ -103,11 +99,7 @@ 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",
@@ -133,11 +125,6 @@ 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 182933a6f..59d9b3adb 100644
--- a/apps/dojo/src/types/integration.ts
+++ b/apps/dojo/src/types/integration.ts
@@ -10,8 +10,7 @@ export type Feature =
| "backend_tool_rendering"
| "agentic_chat_reasoning"
| "subgraphs"
- | "a2a_chat"
- | "vnext_chat";
+ | "a2a_chat";
export interface MenuIntegrationConfig {
id: string;
diff --git a/apps/dojo/tsconfig.json b/apps/dojo/tsconfig.json
index a57e78c43..af157911a 100644
--- a/apps/dojo/tsconfig.json
+++ b/apps/dojo/tsconfig.json
@@ -19,9 +19,9 @@
}
],
"paths": {
- "@/*": ["./src/*", "../../sdks/typescript/packages/client/src/*"],
- "@ag-ui/client": ["../../sdks/typescript/packages/client/src"],
- "@ag-ui/client/*": ["../../sdks/typescript/packages/client/src/*"]
+ "@/*": ["./src/*", "../../packages/client/src/*"],
+ "@ag-ui/client": ["../../packages/client/src"],
+ "@ag-ui/client/*": ["../../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 985576379..920b203b9 100644
--- a/docs/concepts/events.mdx
+++ b/docs/concepts/events.mdx
@@ -19,7 +19,6 @@ 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 |
@@ -84,12 +83,10 @@ 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 |
-| `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 |
+| Property | Description |
+| ---------- | ----------------------------- |
+| `threadId` | ID of the conversation thread |
+| `runId` | ID of the agent run |
### RunFinished
@@ -237,23 +234,18 @@ automatic scrolling to ensure the full message is visible.
### TextMessageChunk
-Convenience event that expands to Start → Content → End automatically.
+A self-contained text message event that combines start, content, and end.
-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.
+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.
| Property | Description |
| ----------- | ------------------------------------------------------------------------------------- |
-| `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") |
+| `messageId` | Optional unique identifier for the message |
+| `role` | Optional role of the sender ("developer", "system", "assistant", "user", "tool") |
| `delta` | Optional text content of the message |
## Tool Call Events
@@ -364,28 +356,6 @@ 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
@@ -475,41 +445,6 @@ 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
@@ -557,6 +492,32 @@ 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)
@@ -645,7 +606,7 @@ The `RunFinished` event gains new fields to support interrupt-aware workflows.
| `outcome` | Optional: "success" or "interrupt" |
| `interrupt` | Optional: Contains interrupt details when paused |
-See [Serialization](/concepts/serialization) for lineage and input capture.
+DRAFT [View Proposal](/drafts/serialization)
#### RunStarted (Extended)
diff --git a/docs/concepts/messages.mdx b/docs/concepts/messages.mdx
index c37011d1b..4777cbfe1 100644
--- a/docs/concepts/messages.mdx
+++ b/docs/concepts/messages.mdx
@@ -28,10 +28,6 @@ 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
@@ -45,31 +41,11 @@ Messages from the end user to the agent:
interface UserMessage {
id: string
role: "user"
- content: string | InputContent[] // Text or multimodal input from the user
+ content: string // Text 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:
@@ -110,24 +86,6 @@ 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
deleted file mode 100644
index 835d10566..000000000
--- a/docs/concepts/middleware.mdx
+++ /dev/null
@@ -1,307 +0,0 @@
----
-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
deleted file mode 100644
index 8a4196131..000000000
--- a/docs/concepts/serialization.mdx
+++ /dev/null
@@ -1,188 +0,0 @@
----
-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 b92fca9ba..664f672bd 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -40,10 +40,8 @@
"concepts/architecture",
"concepts/events",
"concepts/agents",
- "concepts/middleware",
"concepts/messages",
"concepts/state",
- "concepts/serialization",
"concepts/tools"
]
},
@@ -51,7 +49,9 @@
"group": "Draft Proposals",
"pages": [
"drafts/overview",
+ "drafts/activity-events",
"drafts/reasoning",
+ "drafts/serialization",
"drafts/multimodal-messages",
"drafts/interrupts",
"drafts/generative-ui",
@@ -85,9 +85,7 @@
"sdk/js/client/overview",
"sdk/js/client/abstract-agent",
"sdk/js/client/http-agent",
- "sdk/js/client/middleware",
- "sdk/js/client/subscriber",
- "sdk/js/client/compaction"
+ "sdk/js/client/subscriber"
]
},
"sdk/js/encoder",
diff --git a/docs/drafts/activity-events.mdx b/docs/drafts/activity-events.mdx
new file mode 100644
index 000000000..a1eb5f88c
--- /dev/null
+++ b/docs/drafts/activity-events.mdx
@@ -0,0 +1,262 @@
+---
+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 6b375ff89..969032fc9 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**: Implemented — October 16, 2025
+- **Status**: Draft
- **Author(s)**: Markus Ecker (mail@mme.xyz)
## Detailed Specification
diff --git a/docs/drafts/overview.mdx b/docs/drafts/overview.mdx
index 1acc15a44..a8c307bc5 100644
--- a/docs/drafts/overview.mdx
+++ b/docs/drafts/overview.mdx
@@ -10,6 +10,15 @@ 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
+
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.
@@ -141,33 +111,6 @@ 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
@@ -175,8 +118,6 @@ historical events.
- `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
@@ -190,17 +131,6 @@ 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
deleted file mode 100644
index 415c0556c..000000000
--- a/docs/sdk/js/client/compaction.mdx
+++ /dev/null
@@ -1,76 +0,0 @@
----
-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
deleted file mode 100644
index 31462257b..000000000
--- a/docs/sdk/js/client/middleware.mdx
+++ /dev/null
@@ -1,408 +0,0 @@
----
-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 3902715c5..0bfcf085f 100644
--- a/docs/sdk/js/client/overview.mdx
+++ b/docs/sdk/js/client/overview.mdx
@@ -61,30 +61,6 @@ 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 f97ab1389..ee010488f 100644
--- a/docs/sdk/js/client/subscriber.mdx
+++ b/docs/sdk/js/client/subscriber.mdx
@@ -271,32 +271,6 @@ 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 569be5d21..ea119090c 100644
--- a/docs/sdk/js/core/events.mdx
+++ b/docs/sdk/js/core/events.mdx
@@ -26,8 +26,6 @@ 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",
@@ -70,17 +68,13 @@ 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 |
-| `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 |
+| Property | Type | Description |
+| ---------- | -------- | ----------------------------- |
+| `threadId` | `string` | ID of the conversation thread |
+| `runId` | `string` | ID of the agent run |
### RunFinishedEvent
@@ -201,29 +195,6 @@ 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.
@@ -349,46 +320,6 @@ 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
@@ -453,26 +384,3 @@ 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 758549ed0..afc011609 100644
--- a/docs/sdk/js/core/types.mdx
+++ b/docs/sdk/js/core/types.mdx
@@ -20,7 +20,6 @@ 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[]
@@ -33,7 +32,6 @@ 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 |
@@ -50,7 +48,7 @@ messages in the system.
Represents the possible roles a message sender can have.
```typescript
-type Role = "developer" | "system" | "assistant" | "user" | "tool" | "activity"
+type Role = "developer" | "system" | "assistant" | "user" | "tool"
```
### DeveloperMessage
@@ -123,49 +121,17 @@ Represents a message from a user.
type UserMessage = {
id: string
role: "user"
- content: string | InputContent[]
+ content: string
name?: string
}
```
-| 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.
+| 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 |
### ToolMessage
@@ -189,26 +155,6 @@ 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.
@@ -220,7 +166,6 @@ type Message =
| AssistantMessage
| UserMessage
| ToolMessage
- | ActivityMessage
```
### ToolCall
diff --git a/docs/sdk/python/core/events.mdx b/docs/sdk/python/core/events.mdx
index 8283a42bc..6d5cdc934 100644
--- a/docs/sdk/python/core/events.mdx
+++ b/docs/sdk/python/core/events.mdx
@@ -29,8 +29,6 @@ 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"
@@ -75,16 +73,12 @@ 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 |
-| `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 |
+| Property | Type | Description |
+| ----------- | ----- | ----------------------------- |
+| `thread_id` | `str` | ID of the conversation thread |
+| `run_id` | `str` | ID of the agent run |
### RunFinishedEvent
@@ -348,48 +342,6 @@ 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
@@ -461,50 +413,3 @@ 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 70275c4e2..4f9180455 100644
--- a/docs/sdk/python/core/types.mdx
+++ b/docs/sdk/python/core/types.mdx
@@ -22,7 +22,6 @@ 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]
@@ -34,7 +33,6 @@ 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 |
@@ -53,7 +51,7 @@ messages in the system.
Represents the possible roles a message sender can have.
```python
-Role = Literal["developer", "system", "assistant", "user", "tool", "activity"]
+Role = Literal["developer", "system", "assistant", "user", "tool"]
```
### DeveloperMessage
@@ -124,55 +122,15 @@ Represents a message from a user.
```python
class UserMessage(BaseMessage):
role: Literal["user"]
- 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
+ content: str
```
-| 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.
+| 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 |
### ToolMessage
@@ -197,27 +155,6 @@ 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`
@@ -226,14 +163,7 @@ A union type representing any type of message in the system.
```python
Message = Annotated[
- Union[
- DeveloperMessage,
- SystemMessage,
- AssistantMessage,
- UserMessage,
- ToolMessage,
- ActivityMessage,
- ],
+ Union[DeveloperMessage, SystemMessage, AssistantMessage, UserMessage, ToolMessage],
Field(discriminator="role")
]
```
diff --git a/integrations/a2a/typescript/.gitignore b/integrations/a2a/typescript/.gitignore
deleted file mode 100644
index de4d1f007..000000000
--- a/integrations/a2a/typescript/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-dist
-node_modules
diff --git a/integrations/a2a/typescript/.npmrc b/integrations/a2a/typescript/.npmrc
deleted file mode 100644
index 3e775efb0..000000000
--- a/integrations/a2a/typescript/.npmrc
+++ /dev/null
@@ -1 +0,0 @@
-auto-install-peers=true
diff --git a/integrations/a2a/typescript/README.md b/integrations/a2a/typescript/README.md
deleted file mode 100644
index e1f689eb1..000000000
--- a/integrations/a2a/typescript/README.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# @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
deleted file mode 100644
index 0521f8d91..000000000
--- a/integrations/a2a/typescript/jest.config.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/** @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
deleted file mode 100644
index d939bf829..000000000
--- a/integrations/a2a/typescript/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "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
deleted file mode 100644
index 9d9ab88b9..000000000
--- a/integrations/a2a/typescript/src/__tests__/agent.test.ts
+++ /dev/null
@@ -1,143 +0,0 @@
-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
deleted file mode 100644
index 2621e62df..000000000
--- a/integrations/a2a/typescript/src/__tests__/utils.test.ts
+++ /dev/null
@@ -1,191 +0,0 @@
-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
deleted file mode 100644
index f8fcc7a93..000000000
--- a/integrations/a2a/typescript/src/agent.ts
+++ /dev/null
@@ -1,360 +0,0 @@
-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
deleted file mode 100644
index c06315272..000000000
--- a/integrations/a2a/typescript/src/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index b3e51181c..000000000
--- a/integrations/a2a/typescript/src/types.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-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
deleted file mode 100644
index 8aba08fcd..000000000
--- a/integrations/a2a/typescript/src/utils.ts
+++ /dev/null
@@ -1,488 +0,0 @@
-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
deleted file mode 100644
index ceecfd457..000000000
--- a/integrations/a2a/typescript/tsconfig.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "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
deleted file mode 100644
index a0ee0a256..000000000
--- a/integrations/a2a/typescript/tsup.config.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-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 2bcfbe16d..922bd0279 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,16 +223,10 @@ async def translate(
# Handle state changes
- 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)
+ 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
+ )
# Handle custom events or metadata
@@ -589,9 +583,23 @@ 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=state_snapshot
+ snapshot=FullSnapShot
)
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 2cef5241d..dd33b7b46 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, TextInputContent, BinaryInputContent
+ ToolCall, FunctionCall
)
from google.adk.events import Event as ADKEvent
from google.genai import types
@@ -38,19 +38,18 @@ def convert_ag_ui_messages_to_adk(messages: List[Message]) -> List[ADKEvent]:
# Convert content based on message type
if isinstance(message, (UserMessage, SystemMessage)):
- flattened_content = flatten_message_content(message.content)
- if flattened_content:
+ if message.content:
event.content = types.Content(
role=message.role,
- parts=[types.Part(text=flattened_content)]
+ parts=[types.Part(text=message.content)]
)
-
+
elif isinstance(message, AssistantMessage):
parts = []
-
+
# Add text content if present
if message.content:
- parts.append(types.Part(text=flatten_message_content(message.content)))
+ parts.append(types.Part(text=message.content))
# Add tool calls if present
if message.tool_calls:
@@ -206,32 +205,25 @@ 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."""
+ """Extract all text from ADK Content object.
+
+ Args:
+ content: ADK Content object
+
+ Returns:
+ Combined text from all text parts
+ """
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.
@@ -248,4 +240,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}"
+ return f"{error_type}: {error_msg}"
\ No newline at end of file
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 7e7ea8d5b..8ef9d17ea 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, StateSnapshotEvent, CustomEvent
+ StateDeltaEvent, CustomEvent
)
from google.adk.events import Event as ADKEvent
from ag_ui_adk.event_translator import EventTranslator
@@ -185,7 +185,6 @@ 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 = []
@@ -202,55 +201,6 @@ 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."""
@@ -907,15 +857,14 @@ 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, state snapshot, and custom event
- assert len(events) == 6 # START, CONTENT, STATE_DELTA, STATE_SNAPSHOT, CUSTOM, END
+ # Should have text events, state delta, and custom event
+ assert len(events) == 5 # START, CONTENT, STATE_DELTA, 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/adk-middleware/typescript/package.json b/integrations/adk-middleware/typescript/package.json
index 28945b63b..3ccee4884 100644
--- a/integrations/adk-middleware/typescript/package.json
+++ b/integrations/adk-middleware/typescript/package.json
@@ -18,16 +18,15 @@
"unlink:global": "pnpm unlink --global"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.37",
"@ag-ui/client": ">=0.0.37",
+ "@ag-ui/core": ">=0.0.37",
"rxjs": "7.8.1"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
-
- "@types/node": "^20.11.19",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "@ag-ui/core": "workspace:*",
+ "@types/node": "^20.19.24",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/agno/typescript/package.json b/integrations/agno/typescript/package.json
index a1747e3ab..5d4bcb33c 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.3",
+ "version": "0.0.2",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -24,18 +24,18 @@
"unlink:global": "pnpm unlink --global"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.37",
"@ag-ui/client": ">=0.0.37",
+ "@ag-ui/core": ">=0.0.37",
"rxjs": "7.8.1"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/agno/typescript/src/index.ts b/integrations/agno/typescript/src/index.ts
index 641d5a6bd..e3f0db93e 100644
--- a/integrations/agno/typescript/src/index.ts
+++ b/integrations/agno/typescript/src/index.ts
@@ -5,8 +5,4 @@
import { HttpAgent } from "@ag-ui/client";
-export class AgnoAgent extends HttpAgent {
- public override get maxVersion(): string {
- return "0.0.39";
- }
-}
+export class AgnoAgent extends HttpAgent {}
diff --git a/integrations/community/spring-ai/typescript/package.json b/integrations/community/spring-ai/typescript/package.json
index b379310cd..a8a4f9c69 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.2",
+ "version": "0.0.1",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -24,18 +24,18 @@
"unlink:global": "pnpm unlink --global"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.37",
"@ag-ui/client": ">=0.0.37",
+ "@ag-ui/core": ">=0.0.37",
"rxjs": "7.8.1"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/community/spring-ai/typescript/src/index.ts b/integrations/community/spring-ai/typescript/src/index.ts
index b347df14d..9d4f4a8c6 100644
--- a/integrations/community/spring-ai/typescript/src/index.ts
+++ b/integrations/community/spring-ai/typescript/src/index.ts
@@ -4,8 +4,4 @@
import { HttpAgent } from "@ag-ui/client";
-export class SpringAiAgent extends HttpAgent {
- public override get maxVersion(): string {
- return "0.0.39";
- }
-}
+export class SpringAiAgent extends HttpAgent {}
diff --git a/integrations/crew-ai/typescript/package.json b/integrations/crew-ai/typescript/package.json
index de7c8b1da..6490e7111 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.3",
+ "version": "0.0.2",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -24,18 +24,18 @@
"unlink:global": "pnpm unlink --global"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.37",
"@ag-ui/client": ">=0.0.37",
+ "@ag-ui/core": ">=0.0.37",
"rxjs": "7.8.1"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/crew-ai/typescript/src/index.ts b/integrations/crew-ai/typescript/src/index.ts
index deb09e421..ec5d5c7e2 100644
--- a/integrations/crew-ai/typescript/src/index.ts
+++ b/integrations/crew-ai/typescript/src/index.ts
@@ -1,7 +1,3 @@
import { HttpAgent } from "@ag-ui/client";
-export class CrewAIAgent extends HttpAgent {
- public override get maxVersion(): string {
- return "0.0.39";
- }
-}
+export class CrewAIAgent extends HttpAgent {}
diff --git a/integrations/langgraph/python/ag_ui_langgraph/agent.py b/integrations/langgraph/python/ag_ui_langgraph/agent.py
index 566ceba72..07bac0b7c 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, ToolMessage
+ from langchain.schema import BaseMessage, SystemMessage
except ImportError:
# Langchain >= 1.0.0
- from langchain_core.messages import BaseMessage, SystemMessage, ToolMessage
+ from langchain_core.messages import BaseMessage, SystemMessage
from langchain_core.runnables import RunnableConfig, ensure_config
from langchain_core.messages import HumanMessage
@@ -682,51 +682,6 @@ 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(
diff --git a/integrations/langgraph/python/ag_ui_langgraph/utils.py b/integrations/langgraph/python/ag_ui_langgraph/utils.py
index 4e0067512..ed5060887 100644
--- a/integrations/langgraph/python/ag_ui_langgraph/utils.py
+++ b/integrations/langgraph/python/ag_ui_langgraph/utils.py
@@ -13,8 +13,6 @@
ToolMessage as AGUIToolMessage,
ToolCall as AGUIToolCall,
FunctionCall as AGUIFunctionCall,
- TextInputContent,
- BinaryInputContent,
)
from .types import State, SchemaKeys, LangGraphReasoning
@@ -43,56 +41,14 @@ 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=content,
+ content=stringify_if_needed(resolve_message_content(message.content)),
name=message.name,
))
elif isinstance(message, AIMessage):
@@ -135,49 +91,14 @@ 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=content,
+ content=message.content,
name=message.name,
))
elif role == "assistant":
@@ -256,36 +177,6 @@ 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)
+ return repr(value)
\ No newline at end of file
diff --git a/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py b/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py
deleted file mode 100644
index 989a9b717..000000000
--- a/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""
-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
deleted file mode 100644
index 067006f9b..000000000
--- a/integrations/langgraph/python/examples/agents/multimodal_messages/agent.py
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-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 58a6626f1..813d3a181 100644
--- a/integrations/langgraph/python/examples/poetry.lock
+++ b/integrations/langgraph/python/examples/poetry.lock
@@ -1,16 +1,17 @@
-# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand.
[[package]]
name = "ag-ui-langgraph"
-version = "0.0.18a0"
+version = "0.0.17"
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.2.0a0"
+ag-ui-protocol = "==0.1.9"
langchain = ">=0.3.0"
langchain-core = ">=0.3.0"
langgraph = ">=0.3.25,<1.1.0"
@@ -24,13 +25,14 @@ url = ".."
[[package]]
name = "ag-ui-protocol"
-version = "0.2.0a0"
+version = "0.1.9"
description = ""
optional = false
python-versions = "<4.0,>=3.9"
+groups = ["main"]
files = [
- {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"},
+ {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"},
]
[package.dependencies]
@@ -42,6 +44,7 @@ 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"},
@@ -53,6 +56,7 @@ 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"},
@@ -147,7 +151,7 @@ propcache = ">=0.2.0"
yarl = ">=1.17.0,<2.0"
[package.extras]
-speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"]
+speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
[[package]]
name = "aiosignal"
@@ -155,6 +159,7 @@ 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"},
@@ -169,6 +174,7 @@ 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"},
@@ -180,6 +186,7 @@ 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.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d"},
{file = "anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a"},
@@ -206,6 +213,7 @@ 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"},
@@ -218,7 +226,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)", "uvloop (>=0.21)"]
+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\""]
trio = ["trio (>=0.26.1)"]
[[package]]
@@ -227,18 +235,19 @@ 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", "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]"]
+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]"]
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"]
-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"]
+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\""]
[[package]]
name = "cachetools"
@@ -246,6 +255,7 @@ 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"},
@@ -257,6 +267,7 @@ 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"},
@@ -268,6 +279,8 @@ 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"},
@@ -347,6 +360,7 @@ 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"},
@@ -448,6 +462,7 @@ 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"},
@@ -462,6 +477,8 @@ 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"},
@@ -473,6 +490,7 @@ 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"},
@@ -488,6 +506,7 @@ 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"},
@@ -499,13 +518,14 @@ version = "0.17.0"
description = "Parse Python docstrings in reST, Google and Numpydoc format"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
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"]
+dev = ["pre-commit (>=2.16.0) ; python_version >= \"3.9\"", "pydoctor (>=25.4.0)", "pytest"]
docs = ["pydoctor (>=25.4.0)"]
test = ["pytest"]
@@ -515,6 +535,7 @@ 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"},
]
@@ -528,6 +549,7 @@ 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"},
@@ -548,6 +570,7 @@ 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"},
@@ -559,6 +582,7 @@ 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"},
@@ -660,6 +684,7 @@ 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.9.0-py3-none-any.whl", hash = "sha256:59f61e54cb341e602073098389876594c4d12e458617727558bb2628a86f3eb2"},
{file = "google_ai_generativelanguage-0.9.0.tar.gz", hash = "sha256:2524748f413917446febc8e0879dc0d4f026a064f89f17c42b81bea77ab76c84"},
@@ -670,7 +695,7 @@ google-api-core = {version = ">=1.34.1,<2.0.dev0 || >=2.11.dev0,<3.0.0", extras
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", markers = "python_version < \"3.13\""},
+ {version = ">=1.22.3,<2.0.0"},
{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"
@@ -681,6 +706,7 @@ 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"},
@@ -692,7 +718,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", markers = "python_version < \"3.13\""},
+ {version = ">=1.22.3,<2.0.0"},
{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"
@@ -700,7 +726,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)", "grpcio-status (>=1.33.2,<2.0.0)", "grpcio-status (>=1.49.1,<2.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\""]
grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"]
grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"]
@@ -710,6 +736,7 @@ 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"},
@@ -723,11 +750,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)", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"]
-pyopenssl = ["cryptography (<39.0.0)", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"]
+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)"]
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)", "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) ; 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"]
urllib3 = ["packaging", "urllib3"]
[[package]]
@@ -736,6 +763,7 @@ 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"},
@@ -753,6 +781,8 @@ 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"},
@@ -821,6 +851,7 @@ 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"},
@@ -884,6 +915,7 @@ 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"},
@@ -900,6 +932,7 @@ 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"},
@@ -911,6 +944,7 @@ 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"},
@@ -932,6 +966,7 @@ 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"},
@@ -945,7 +980,7 @@ idna = "*"
sniffio = "*"
[package.extras]
-brotli = ["brotli", "brotlicffi"]
+brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
http2 = ["h2 (>=3,<5)"]
socks = ["socksio (==1.*)"]
@@ -957,6 +992,7 @@ 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"},
@@ -968,6 +1004,7 @@ 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"},
@@ -982,6 +1019,7 @@ 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"},
@@ -1067,6 +1105,7 @@ 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"},
@@ -1081,6 +1120,7 @@ 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"},
@@ -1092,6 +1132,7 @@ version = "1.0.3"
description = "Building applications with LLMs through composability"
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{file = "langchain-1.0.3-py3-none-any.whl", hash = "sha256:a7d57964ed16278c991de4ab15516a81937a58c5ac7d7aadccb18431ad8179b2"},
{file = "langchain-1.0.3.tar.gz", hash = "sha256:f96d8d185cb8cbba9793f5c648e7d5eeec688f8e3778f700d75d89d6570ae11e"},
@@ -1125,6 +1166,7 @@ version = "1.0.1"
description = "Integration package connecting Claude (Anthropic) APIs and LangChain"
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{file = "langchain_anthropic-1.0.1-py3-none-any.whl", hash = "sha256:a883f1030c50c2422a57985c0a89b1f49e9e0abe3117d212e510e3b838df7417"},
{file = "langchain_anthropic-1.0.1.tar.gz", hash = "sha256:cd4c2f5d5d85d3aba290ea7b9976371d3e25fd58f6d70cfd0ef3323787862edc"},
@@ -1141,6 +1183,7 @@ version = "1.0.0"
description = "Building applications with LLMs through composability"
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{file = "langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33"},
{file = "langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5"},
@@ -1176,6 +1219,7 @@ version = "0.4.1"
description = "Community contributed LangChain integrations."
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{file = "langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a"},
{file = "langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85"},
@@ -1204,6 +1248,7 @@ version = "1.0.3"
description = "Building applications with LLMs through composability"
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{file = "langchain_core-1.0.3-py3-none-any.whl", hash = "sha256:64f1bd45f04b174bbfd54c135a8adc52f4902b347c15a117d6383b412bf558a5"},
{file = "langchain_core-1.0.3.tar.gz", hash = "sha256:10744945d21168fb40d1162a5f1cf69bf0137ff6ad2b12c87c199a5297410887"},
@@ -1224,6 +1269,7 @@ version = "3.0.1"
description = "An integration package connecting Google's genai package and LangChain"
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{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"},
@@ -1241,6 +1287,7 @@ version = "1.0.2"
description = "An integration package connecting OpenAI and LangChain"
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{file = "langchain_openai-1.0.2-py3-none-any.whl", hash = "sha256:b3eb9b82752063b46452aa868d8c8bc1604e57631648c3bc325bba58d3aeb143"},
{file = "langchain_openai-1.0.2.tar.gz", hash = "sha256:621e8295c52db9a1fc74806a0bd227ea215c132c6c5e421d2982c9ee78468769"},
@@ -1257,6 +1304,7 @@ version = "1.0.0"
description = "LangChain text splitting utilities"
optional = false
python-versions = "<4.0.0,>=3.10.0"
+groups = ["main"]
files = [
{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"},
@@ -1271,6 +1319,7 @@ version = "1.0.2"
description = "Building stateful, multi-actor applications with LLMs"
optional = false
python-versions = ">=3.10"
+groups = ["main"]
files = [
{file = "langgraph-1.0.2-py3-none-any.whl", hash = "sha256:b3d56b8c01de857b5fb1da107e8eab6e30512a377685eeedb4f76456724c9729"},
{file = "langgraph-1.0.2.tar.gz", hash = "sha256:dae1af08d6025cb1fcaed68f502c01af7d634d9044787c853a46c791cfc52f67"},
@@ -1290,6 +1339,7 @@ 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"},
@@ -1305,6 +1355,7 @@ version = "1.0.2"
description = "Library with high-level APIs for creating and executing LangGraph agents and tools."
optional = false
python-versions = ">=3.10"
+groups = ["main"]
files = [
{file = "langgraph_prebuilt-1.0.2-py3-none-any.whl", hash = "sha256:d9499f7c449fb637ee7b87e3f6a3b74095f4202053c74d33894bd839ea4c57c7"},
{file = "langgraph_prebuilt-1.0.2.tar.gz", hash = "sha256:9896dbabf04f086eb59df4294f54ab5bdb21cd78e27e0a10e695dffd1cc6097d"},
@@ -1320,6 +1371,7 @@ 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.9-py3-none-any.whl", hash = "sha256:fbf302edadbf0fb343596f91c597794e936ef68eebc0d3e1d358b6f9f72a1429"},
{file = "langgraph_sdk-0.2.9.tar.gz", hash = "sha256:b3bd04c6be4fa382996cd2be8fbc1e7cc94857d2bc6b6f4599a7f2a245975303"},
@@ -1335,6 +1387,7 @@ 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"},
@@ -1364,6 +1417,7 @@ 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"},
@@ -1383,6 +1437,7 @@ 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"},
@@ -1496,6 +1551,7 @@ 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"},
@@ -1507,6 +1563,7 @@ 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"},
@@ -1571,6 +1628,7 @@ version = "2.2.0"
description = "The official Python library for the openai API"
optional = false
python-versions = ">=3.8"
+groups = ["main"]
files = [
{file = "openai-2.2.0-py3-none-any.whl", hash = "sha256:d222e63436e33f3134a3d7ce490dc2d2f146fa98036eb65cc225df3ce163916f"},
{file = "openai-2.2.0.tar.gz", hash = "sha256:bc49d077a8bf0e370eec4d038bc05e232c20855a19df0b58e5b3e5a8da7d33e0"},
@@ -1598,6 +1656,7 @@ 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"},
@@ -1675,6 +1734,7 @@ 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"},
@@ -1725,6 +1785,7 @@ 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"},
@@ -1736,6 +1797,7 @@ 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"},
@@ -1843,6 +1905,7 @@ 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"},
@@ -1860,6 +1923,7 @@ 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"},
@@ -1878,6 +1942,7 @@ 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"},
@@ -1889,6 +1954,7 @@ 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"},
@@ -1903,6 +1969,8 @@ 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"},
@@ -1914,6 +1982,7 @@ 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"},
@@ -1927,7 +1996,7 @@ typing-inspection = ">=0.4.0"
[package.extras]
email = ["email-validator (>=2.0.0)"]
-timezone = ["tzdata"]
+timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""]
[[package]]
name = "pydantic-core"
@@ -1935,6 +2004,7 @@ 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"},
@@ -2046,6 +2116,7 @@ version = "2.11.0"
description = "Settings management using Pydantic"
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "pydantic_settings-2.11.0-py3-none-any.whl", hash = "sha256:fe2cea3413b9530d10f3a5875adffb17ada5c1e1bab0b2885546d7310415207c"},
{file = "pydantic_settings-2.11.0.tar.gz", hash = "sha256:d0e87a1c7d33593beb7194adb8470fc426e95ba02af83a0f23474a04c9a08180"},
@@ -2069,6 +2140,7 @@ 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"},
@@ -2083,6 +2155,7 @@ 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"},
@@ -2145,6 +2218,7 @@ 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"},
@@ -2248,6 +2322,7 @@ version = "2.32.5"
description = "Python HTTP for Humans."
optional = false
python-versions = ">=3.9"
+groups = ["main"]
files = [
{file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"},
{file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"},
@@ -2269,6 +2344,7 @@ 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"},
@@ -2283,6 +2359,7 @@ 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"},
@@ -2297,6 +2374,7 @@ 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"},
@@ -2308,6 +2386,7 @@ 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"},
@@ -2403,6 +2482,7 @@ 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"},
@@ -2420,6 +2500,7 @@ 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"},
@@ -2435,6 +2516,7 @@ 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"},
@@ -2482,6 +2564,7 @@ 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"},
@@ -2503,6 +2586,7 @@ 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"},
@@ -2514,6 +2598,7 @@ 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"},
@@ -2529,6 +2614,7 @@ 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"},
@@ -2543,13 +2629,14 @@ 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)", "brotlicffi (>=0.8.0)"]
+brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""]
h2 = ["h2 (>=4,<5)"]
socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
zstd = ["zstandard (>=0.18.0)"]
@@ -2560,6 +2647,7 @@ 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"},
@@ -2570,7 +2658,7 @@ click = ">=7.0"
h11 = ">=0.8"
[package.extras]
-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)"]
+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)"]
[[package]]
name = "xxhash"
@@ -2578,6 +2666,7 @@ 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"},
@@ -2710,6 +2799,7 @@ 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"},
@@ -2811,6 +2901,7 @@ 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"},
@@ -2918,6 +3009,6 @@ cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\
cffi = ["cffi (>=1.11)"]
[metadata]
-lock-version = "2.0"
+lock-version = "2.1"
python-versions = ">=3.12,<3.14"
content-hash = "4c35ba27df33f05f4bc754cc44eeebad8cee1d14a78a9697483a2bdfbad359d5"
diff --git a/integrations/langgraph/python/examples/pyproject.toml b/integrations/langgraph/python/examples/pyproject.toml
index efccd802e..218f05e09 100644
--- a/integrations/langgraph/python/examples/pyproject.toml
+++ b/integrations/langgraph/python/examples/pyproject.toml
@@ -4,7 +4,6 @@ version = "0.1.0"
description = ""
readme = "README.md"
packages = [{ include = "agents" }]
-authors = ["Ran Shem Tov"]
[project]
name = "agents"
diff --git a/integrations/langgraph/python/examples/uv.lock b/integrations/langgraph/python/examples/uv.lock
index 3830bac2c..27ef7c382 100644
--- a/integrations/langgraph/python/examples/uv.lock
+++ b/integrations/langgraph/python/examples/uv.lock
@@ -1,13 +1,14 @@
version = 1
-requires-python = ">=3.13"
+requires-python = ">=3.12"
resolution-markers = [
"python_full_version >= '3.14'",
- "python_full_version < '3.14'",
+ "python_full_version == '3.13.*'",
+ "python_full_version < '3.13'",
]
[[package]]
name = "ag-ui-langgraph"
-version = "0.0.18a0"
+version = "0.0.17"
source = { directory = "../" }
dependencies = [
{ name = "ag-ui-protocol" },
@@ -18,7 +19,7 @@ dependencies = [
[package.metadata]
requires-dist = [
- { name = "ag-ui-protocol", specifier = "==0.2.0a0" },
+ { name = "ag-ui-protocol", specifier = "==0.1.9" },
{ 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" },
@@ -27,14 +28,14 @@ requires-dist = [
[[package]]
name = "ag-ui-protocol"
-version = "0.2.0a0"
+version = "0.1.9"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pydantic" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/15/35/dd487e5d4930236c6fd2a9530863e1899eb003d9f96bc3b7800ac73530bb/ag_ui_protocol-0.2.0a0.tar.gz", hash = "sha256:422bc284f9ab7019d2796641bac96faddd20eba815e1bad6122d72be1f989b80", size = 5582 }
+sdist = { url = "https://files.pythonhosted.org/packages/7b/d7/a8f8789b3b8b5f7263a902361468e8dfefd85ec63d1d5398579b9175d76d/ag_ui_protocol-0.1.9.tar.gz", hash = "sha256:94d75e3919ff75e0b608a7eed445062ea0e6f11cd33b3386a7649047e0c7abd3", size = 4988 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/76/85/b2b1eacf49c09c9d40ca2be61213e8e3fdbc88e77eebb0d7668570cf4da3/ag_ui_protocol-0.2.0a0-py3-none-any.whl", hash = "sha256:3f1fbf7ea1f0333ce8034cdc67df192b3c1a85a6c39dc866c35f9329df85b9cf", size = 7674 },
+ { url = "https://files.pythonhosted.org/packages/39/50/2bb71a2a9135f4d88706293773320d185789b592987c09f79e9bf2f4875f/ag_ui_protocol-0.1.9-py3-none-any.whl", hash = "sha256:44c1238b0576a3915b3a16e1b3855724e08e92ebc96b1ff29379fbd3bfbd400b", size = 7070 },
]
[[package]]
@@ -96,6 +97,23 @@ dependencies = [
]
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/29/9b/01f00e9856d0a73260e86dd8ed0c2234a466c5c1712ce1c281548df39777/aiohttp-3.13.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b", size = 737623 },
+ { url = "https://files.pythonhosted.org/packages/5a/1b/4be39c445e2b2bd0aab4ba736deb649fabf14f6757f405f0c9685019b9e9/aiohttp-3.13.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc", size = 492664 },
+ { url = "https://files.pythonhosted.org/packages/28/66/d35dcfea8050e131cdd731dff36434390479b4045a8d0b9d7111b0a968f1/aiohttp-3.13.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7", size = 491808 },
+ { url = "https://files.pythonhosted.org/packages/00/29/8e4609b93e10a853b65f8291e64985de66d4f5848c5637cddc70e98f01f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb", size = 1738863 },
+ { url = "https://files.pythonhosted.org/packages/9d/fa/4ebdf4adcc0def75ced1a0d2d227577cd7b1b85beb7edad85fcc87693c75/aiohttp-3.13.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3", size = 1700586 },
+ { url = "https://files.pythonhosted.org/packages/da/04/73f5f02ff348a3558763ff6abe99c223381b0bace05cd4530a0258e52597/aiohttp-3.13.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f", size = 1768625 },
+ { url = "https://files.pythonhosted.org/packages/f8/49/a825b79ffec124317265ca7d2344a86bcffeb960743487cb11988ffb3494/aiohttp-3.13.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6", size = 1867281 },
+ { url = "https://files.pythonhosted.org/packages/b9/48/adf56e05f81eac31edcfae45c90928f4ad50ef2e3ea72cb8376162a368f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e", size = 1752431 },
+ { url = "https://files.pythonhosted.org/packages/30/ab/593855356eead019a74e862f21523db09c27f12fd24af72dbc3555b9bfd9/aiohttp-3.13.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7", size = 1562846 },
+ { url = "https://files.pythonhosted.org/packages/39/0f/9f3d32271aa8dc35036e9668e31870a9d3b9542dd6b3e2c8a30931cb27ae/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d", size = 1699606 },
+ { url = "https://files.pythonhosted.org/packages/2c/3c/52d2658c5699b6ef7692a3f7128b2d2d4d9775f2a68093f74bca06cf01e1/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b", size = 1720663 },
+ { url = "https://files.pythonhosted.org/packages/9b/d4/8f8f3ff1fb7fb9e3f04fcad4e89d8a1cd8fc7d05de67e3de5b15b33008ff/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8", size = 1737939 },
+ { url = "https://files.pythonhosted.org/packages/03/d3/ddd348f8a27a634daae39a1b8e291ff19c77867af438af844bf8b7e3231b/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16", size = 1555132 },
+ { url = "https://files.pythonhosted.org/packages/39/b8/46790692dc46218406f94374903ba47552f2f9f90dad554eed61bfb7b64c/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169", size = 1764802 },
+ { url = "https://files.pythonhosted.org/packages/ba/e4/19ce547b58ab2a385e5f0b8aa3db38674785085abcf79b6e0edd1632b12f/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248", size = 1719512 },
+ { url = "https://files.pythonhosted.org/packages/70/30/6355a737fed29dcb6dfdd48682d5790cb5eab050f7b4e01f49b121d3acad/aiohttp-3.13.2-cp312-cp312-win32.whl", hash = "sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e", size = 426690 },
+ { url = "https://files.pythonhosted.org/packages/0a/0d/b10ac09069973d112de6ef980c1f6bb31cb7dcd0bc363acbdad58f927873/aiohttp-3.13.2-cp312-cp312-win_amd64.whl", hash = "sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45", size = 453465 },
{ 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 },
@@ -155,6 +173,7 @@ 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 = [
@@ -196,6 +215,7 @@ 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 = [
@@ -235,6 +255,22 @@ 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 },
@@ -362,6 +398,22 @@ 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 },
@@ -469,16 +521,16 @@ grpc = [
[[package]]
name = "google-auth"
-version = "2.43.0"
+version = "2.42.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "cachetools" },
{ name = "pyasn1-modules" },
{ name = "rsa" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/ff/ef/66d14cf0e01b08d2d51ffc3c20410c4e134a1548fc246a6081eae585a4fe/google_auth-2.43.0.tar.gz", hash = "sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483", size = 296359 }
+sdist = { url = "https://files.pythonhosted.org/packages/25/6b/22a77135757c3a7854c9f008ffed6bf4e8851616d77faf13147e9ab5aae6/google_auth-2.42.1.tar.gz", hash = "sha256:30178b7a21aa50bffbdc1ffcb34ff770a2f65c712170ecd5446c4bef4dc2b94e", size = 295541 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/6f/d1/385110a9ae86d91cc14c5282c61fe9f4dc41c0b9f7d423c6ad77038c4448/google_auth-2.43.0-py2.py3-none-any.whl", hash = "sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16", size = 223114 },
+ { url = "https://files.pythonhosted.org/packages/92/05/adeb6c495aec4f9d93f9e2fc29eeef6e14d452bba11d15bdb874ce1d5b10/google_auth-2.42.1-py2.py3-none-any.whl", hash = "sha256:eb73d71c91fc95dbd221a2eb87477c278a355e7367a35c0d84e6b0e5f9b4ad11", size = 222550 },
]
[[package]]
@@ -499,6 +551,15 @@ 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 },
@@ -507,8 +568,6 @@ 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 },
@@ -516,8 +575,6 @@ 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 },
]
@@ -530,6 +587,16 @@ dependencies = [
]
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/bf/05/8e29121994b8d959ffa0afd28996d452f291b48cfc0875619de0bde2c50c/grpcio-1.76.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:81fd9652b37b36f16138611c7e884eb82e0cec137c40d3ef7c3f9b3ed00f6ed8", size = 5799718 },
+ { url = "https://files.pythonhosted.org/packages/d9/75/11d0e66b3cdf998c996489581bdad8900db79ebd83513e45c19548f1cba4/grpcio-1.76.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:04bbe1bfe3a68bbfd4e52402ab7d4eb59d72d02647ae2042204326cf4bbad280", size = 11825627 },
+ { url = "https://files.pythonhosted.org/packages/28/50/2f0aa0498bc188048f5d9504dcc5c2c24f2eb1a9337cd0fa09a61a2e75f0/grpcio-1.76.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d388087771c837cdb6515539f43b9d4bf0b0f23593a24054ac16f7a960be16f4", size = 6359167 },
+ { url = "https://files.pythonhosted.org/packages/66/e5/bbf0bb97d29ede1d59d6588af40018cfc345b17ce979b7b45424628dc8bb/grpcio-1.76.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:9f8f757bebaaea112c00dba718fc0d3260052ce714e25804a03f93f5d1c6cc11", size = 7044267 },
+ { url = "https://files.pythonhosted.org/packages/f5/86/f6ec2164f743d9609691115ae8ece098c76b894ebe4f7c94a655c6b03e98/grpcio-1.76.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:980a846182ce88c4f2f7e2c22c56aefd515daeb36149d1c897f83cf57999e0b6", size = 6573963 },
+ { url = "https://files.pythonhosted.org/packages/60/bc/8d9d0d8505feccfdf38a766d262c71e73639c165b311c9457208b56d92ae/grpcio-1.76.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f92f88e6c033db65a5ae3d97905c8fea9c725b63e28d5a75cb73b49bda5024d8", size = 7164484 },
+ { url = "https://files.pythonhosted.org/packages/67/e6/5d6c2fc10b95edf6df9b8f19cf10a34263b7fd48493936fffd5085521292/grpcio-1.76.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4baf3cbe2f0be3289eb68ac8ae771156971848bb8aaff60bad42005539431980", size = 8127777 },
+ { url = "https://files.pythonhosted.org/packages/3f/c8/dce8ff21c86abe025efe304d9e31fdb0deaaa3b502b6a78141080f206da0/grpcio-1.76.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:615ba64c208aaceb5ec83bfdce7728b80bfeb8be97562944836a7a0a9647d882", size = 7594014 },
+ { url = "https://files.pythonhosted.org/packages/e0/42/ad28191ebf983a5d0ecef90bab66baa5a6b18f2bfdef9d0a63b1973d9f75/grpcio-1.76.0-cp312-cp312-win32.whl", hash = "sha256:45d59a649a82df5718fd9527ce775fd66d1af35e6d31abdcdc906a49c6822958", size = 3984750 },
+ { url = "https://files.pythonhosted.org/packages/9e/00/7bd478cbb851c04a48baccaa49b75abaa8e4122f7d86da797500cccdd771/grpcio-1.76.0-cp312-cp312-win_amd64.whl", hash = "sha256:c088e7a90b6017307f423efbb9d1ba97a22aa2170876223f9709e9d1de0b5347", size = 4704003 },
{ 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 },
@@ -627,6 +694,19 @@ 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/15/8b/318e8af2c904a9d29af91f78c1e18f0592e189bbdb8a462902d31fe20682/jiter-0.11.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c92148eec91052538ce6823dfca9525f5cfc8b622d7f07e9891a280f61b8c96c", size = 305655 },
+ { url = "https://files.pythonhosted.org/packages/f7/29/6c7de6b5d6e511d9e736312c0c9bfcee8f9b6bef68182a08b1d78767e627/jiter-0.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ecd4da91b5415f183a6be8f7158d127bdd9e6a3174138293c0d48d6ea2f2009d", size = 315645 },
+ { url = "https://files.pythonhosted.org/packages/ac/5f/ef9e5675511ee0eb7f98dd8c90509e1f7743dbb7c350071acae87b0145f3/jiter-0.11.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7e3ac25c00b9275684d47aa42febaa90a9958e19fd1726c4ecf755fbe5e553b", size = 348003 },
+ { url = "https://files.pythonhosted.org/packages/56/1b/abe8c4021010b0a320d3c62682769b700fb66f92c6db02d1a1381b3db025/jiter-0.11.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:57d7305c0a841858f866cd459cd9303f73883fb5e097257f3d4a3920722c69d4", size = 365122 },
+ { url = "https://files.pythonhosted.org/packages/2a/2d/4a18013939a4f24432f805fbd5a19893e64650b933edb057cd405275a538/jiter-0.11.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e86fa10e117dce22c547f31dd6d2a9a222707d54853d8de4e9a2279d2c97f239", size = 488360 },
+ { url = "https://files.pythonhosted.org/packages/f0/77/38124f5d02ac4131f0dfbcfd1a19a0fac305fa2c005bc4f9f0736914a1a4/jiter-0.11.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae5ef1d48aec7e01ee8420155d901bb1d192998fa811a65ebb82c043ee186711", size = 376884 },
+ { url = "https://files.pythonhosted.org/packages/7b/43/59fdc2f6267959b71dd23ce0bd8d4aeaf55566aa435a5d00f53d53c7eb24/jiter-0.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb68e7bf65c990531ad8715e57d50195daf7c8e6f1509e617b4e692af1108939", size = 358827 },
+ { url = "https://files.pythonhosted.org/packages/7d/d0/b3cc20ff5340775ea3bbaa0d665518eddecd4266ba7244c9cb480c0c82ec/jiter-0.11.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43b30c8154ded5845fa454ef954ee67bfccce629b2dea7d01f795b42bc2bda54", size = 385171 },
+ { url = "https://files.pythonhosted.org/packages/d2/bc/94dd1f3a61f4dc236f787a097360ec061ceeebebf4ea120b924d91391b10/jiter-0.11.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:586cafbd9dd1f3ce6a22b4a085eaa6be578e47ba9b18e198d4333e598a91db2d", size = 518359 },
+ { url = "https://files.pythonhosted.org/packages/7e/8c/12ee132bd67e25c75f542c227f5762491b9a316b0dad8e929c95076f773c/jiter-0.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:677cc2517d437a83bb30019fd4cf7cad74b465914c56ecac3440d597ac135250", size = 509205 },
+ { url = "https://files.pythonhosted.org/packages/39/d5/9de848928ce341d463c7e7273fce90ea6d0ea4343cd761f451860fa16b59/jiter-0.11.1-cp312-cp312-win32.whl", hash = "sha256:fa992af648fcee2b850a3286a35f62bbbaeddbb6dbda19a00d8fbc846a947b6e", size = 205448 },
+ { url = "https://files.pythonhosted.org/packages/ee/b0/8002d78637e05009f5e3fb5288f9d57d65715c33b5d6aa20fd57670feef5/jiter-0.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:88b5cae9fa51efeb3d4bd4e52bfd4c85ccc9cac44282e2a9640893a042ba4d87", size = 204285 },
+ { url = "https://files.pythonhosted.org/packages/9f/a2/bb24d5587e4dff17ff796716542f663deee337358006a80c8af43ddc11e5/jiter-0.11.1-cp312-cp312-win_arm64.whl", hash = "sha256:9a6cae1ab335551917f882f2c3c1efe7617b71b4c02381e4382a8fc80a02588c", size = 188712 },
{ 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 },
@@ -772,7 +852,7 @@ wheels = [
[[package]]
name = "langchain-core"
-version = "1.0.3"
+version = "1.0.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "jsonpatch" },
@@ -783,14 +863,14 @@ dependencies = [
{ name = "tenacity" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/41/15/dfe0c2af463d63296fe18608a06570ce3a4b245253d4f26c301481380f7d/langchain_core-1.0.3.tar.gz", hash = "sha256:10744945d21168fb40d1162a5f1cf69bf0137ff6ad2b12c87c199a5297410887", size = 770278 }
+sdist = { url = "https://files.pythonhosted.org/packages/b4/96/b298cb46643bb235240de7ec8d87d3b4ccefead6bf41ca3c48c7d5397e01/langchain_core-1.0.2.tar.gz", hash = "sha256:9aae1908cc00d50b88e812305e980e7fd06d07375590ce8da01c04037bdccd72", size = 769167 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/f2/1b/b0a37674bdcbd2931944e12ea742fd167098de5212ee2391e91dce631162/langchain_core-1.0.3-py3-none-any.whl", hash = "sha256:64f1bd45f04b174bbfd54c135a8adc52f4902b347c15a117d6383b412bf558a5", size = 469927 },
+ { url = "https://files.pythonhosted.org/packages/52/54/3aed89938a42cf7115575c333647551e35adc380feed651105d2d86c22f5/langchain_core-1.0.2-py3-none-any.whl", hash = "sha256:1f4ab4a41fc2e135e5dd4b97a89af123bbdc535af8f1f0644e8e8801bc288a12", size = 469251 },
]
[[package]]
name = "langchain-google-genai"
-version = "3.0.1"
+version = "3.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "filetype" },
@@ -798,23 +878,23 @@ dependencies = [
{ name = "langchain-core" },
{ name = "pydantic" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/b9/62/4352390e10b95d8a42da769b9bd7a7547af9aafd71e4012159f7394f7513/langchain_google_genai-3.0.1.tar.gz", hash = "sha256:d3f82fd274d2e9ca86448d5f89ac37b37b2d3cdfa6dec1af7bc792317b11dde7", size = 92794 }
+sdist = { url = "https://files.pythonhosted.org/packages/43/31/d8da49fe51fffb44b2359691d1677f449ccdb01d30d03b441dca80a00b8d/langchain_google_genai-3.0.0.tar.gz", hash = "sha256:31331acd6fd90fcb466da7f79c6eb0d5335ec11aea99c97022ac329a735db4a7", size = 91632 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/75/4f/4694f86ad0dfa920f8a7cd22000fa7f87e12551cbb40f26c40d5ce2c7205/langchain_google_genai-3.0.1-py3-none-any.whl", hash = "sha256:2420396c75d3911af42af1bffb2c2ddd3fff73f9db9d619963429b5385e5f55e", size = 58145 },
+ { url = "https://files.pythonhosted.org/packages/ec/9d/bf0a4335f9df912e722fce34fb83aeb2c44e937dcb1d60afaae959b9abfc/langchain_google_genai-3.0.0-py3-none-any.whl", hash = "sha256:b26909a30c5c4cd8b5d634d8feafc1ec0c2583726b4cf747d732d7ad2c080ee7", size = 57783 },
]
[[package]]
name = "langchain-openai"
-version = "1.0.2"
+version = "1.0.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
{ name = "openai" },
{ name = "tiktoken" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/b3/3c/edb7ffca76fdcfd938ce8380bf8ec79a0a8be41ba7fdbf6f9fe1cb5fd1a8/langchain_openai-1.0.2.tar.gz", hash = "sha256:621e8295c52db9a1fc74806a0bd227ea215c132c6c5e421d2982c9ee78468769", size = 1025578 }
+sdist = { url = "https://files.pythonhosted.org/packages/f1/50/eaa53ac18f63b3e92e6c3a30269714cff477af5a568f486254779a9973f1/langchain_openai-1.0.1.tar.gz", hash = "sha256:78aff09a631fccca08a64f5fc669b325d0f5821490acce024e5da4cf0a08e0d0", size = 1025305 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/78/9b/7af1d539a051d195c5ecc5990ebd483f208c40f75a8a9532846d16762704/langchain_openai-1.0.2-py3-none-any.whl", hash = "sha256:b3eb9b82752063b46452aa868d8c8bc1604e57631648c3bc325bba58d3aeb143", size = 81934 },
+ { url = "https://files.pythonhosted.org/packages/62/c0/06d74093e3e798eb464ef76f53d031235b87feccdadbbf6f7b8409043e4d/langchain_openai-1.0.1-py3-none-any.whl", hash = "sha256:9b61309a7268e7c1c614c554cfd66401519e7434aaefc52de7e251887aceb5f7", size = 81898 },
]
[[package]]
@@ -848,15 +928,15 @@ wheels = [
[[package]]
name = "langgraph-checkpoint"
-version = "3.0.1"
+version = "3.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "langchain-core" },
{ name = "ormsgpack" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/0f/07/2b1c042fa87d40cf2db5ca27dc4e8dd86f9a0436a10aa4361a8982718ae7/langgraph_checkpoint-3.0.1.tar.gz", hash = "sha256:59222f875f85186a22c494aedc65c4e985a3df27e696e5016ba0b98a5ed2cee0", size = 137785 }
+sdist = { url = "https://files.pythonhosted.org/packages/b7/cb/2a6dad2f0a14317580cc122e2a60e7f0ecabb50aaa6dc5b7a6a2c94cead7/langgraph_checkpoint-3.0.0.tar.gz", hash = "sha256:f738695ad938878d8f4775d907d9629e9fcd345b1950196effb08f088c52369e", size = 132132 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/48/e3/616e3a7ff737d98c1bbb5700dd62278914e2a9ded09a79a1fa93cf24ce12/langgraph_checkpoint-3.0.1-py3-none-any.whl", hash = "sha256:9b04a8d0edc0474ce4eaf30c5d731cee38f11ddff50a6177eead95b5c4e4220b", size = 46249 },
+ { url = "https://files.pythonhosted.org/packages/85/2a/2efe0b5a72c41e3a936c81c5f5d8693987a1b260287ff1bbebaae1b7b888/langgraph_checkpoint-3.0.0-py3-none-any.whl", hash = "sha256:560beb83e629784ab689212a3d60834fb3196b4bbe1d6ac18e5cad5d85d46010", size = 46060 },
]
[[package]]
@@ -887,7 +967,7 @@ wheels = [
[[package]]
name = "langsmith"
-version = "0.4.41"
+version = "0.4.39"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "httpx" },
@@ -898,9 +978,9 @@ dependencies = [
{ name = "requests-toolbelt" },
{ name = "zstandard" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/dc/7d/5c658251230b233958cbf8be46600254d6248613081d670dc7fe9b241778/langsmith-0.4.41.tar.gz", hash = "sha256:b88d03bb157cf69d1afee250a658d847003babbbd9647f720edcc9b03a0857cd", size = 949854 }
+sdist = { url = "https://files.pythonhosted.org/packages/a7/67/cf7c22d2744286f872aacee2ac13928c46e2ba5d486514d60cd4ab59f58d/langsmith-0.4.39.tar.gz", hash = "sha256:8f2e6bae5cba88f86d8df2a4f95b20a319c65e9945be639302876ab6ef2f13e0", size = 943095 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/98/4c/6c0c338ca7182e4ecb7af61049415e7b3513cc6cea9aa5bf8ca508f53539/langsmith-0.4.41-py3-none-any.whl", hash = "sha256:5cdc554e5f0361bf791fdd5e8dea16d5ba9dfce09b3b8f8bba5e99450c569b27", size = 399279 },
+ { url = "https://files.pythonhosted.org/packages/1f/38/9a97f650b8cdb2ba0356d65aef9239f4a30db69ae44c30daa2cf8dd3f350/langsmith-0.4.39-py3-none-any.whl", hash = "sha256:48872eaaa449fc10781b5251f4fc05bc7d5c2d1d733a734566a96dd9166108b4", size = 397767 },
]
[[package]]
@@ -921,6 +1001,24 @@ 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 },
@@ -1011,6 +1109,17 @@ 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/96/7a/02420400b736f84317e759291b8edaeee9dc921f72b045475a9cbdb26b17/numpy-2.3.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ef1b5a3e808bc40827b5fa2c8196151a4c5abe110e1726949d7abddfe5c7ae11", size = 20957727 },
+ { url = "https://files.pythonhosted.org/packages/18/90/a014805d627aa5750f6f0e878172afb6454552da929144b3c07fcae1bb13/numpy-2.3.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c2f91f496a87235c6aaf6d3f3d89b17dba64996abadccb289f48456cff931ca9", size = 14187262 },
+ { url = "https://files.pythonhosted.org/packages/c7/e4/0a94b09abe89e500dc748e7515f21a13e30c5c3fe3396e6d4ac108c25fca/numpy-2.3.4-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f77e5b3d3da652b474cc80a14084927a5e86a5eccf54ca8ca5cbd697bf7f2667", size = 5115992 },
+ { url = "https://files.pythonhosted.org/packages/88/dd/db77c75b055c6157cbd4f9c92c4458daef0dd9cbe6d8d2fe7f803cb64c37/numpy-2.3.4-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8ab1c5f5ee40d6e01cbe96de5863e39b215a4d24e7d007cad56c7184fdf4aeef", size = 6648672 },
+ { url = "https://files.pythonhosted.org/packages/e1/e6/e31b0d713719610e406c0ea3ae0d90760465b086da8783e2fd835ad59027/numpy-2.3.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77b84453f3adcb994ddbd0d1c5d11db2d6bda1a2b7fd5ac5bd4649d6f5dc682e", size = 14284156 },
+ { url = "https://files.pythonhosted.org/packages/f9/58/30a85127bfee6f108282107caf8e06a1f0cc997cb6b52cdee699276fcce4/numpy-2.3.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4121c5beb58a7f9e6dfdee612cb24f4df5cd4db6e8261d7f4d7450a997a65d6a", size = 16641271 },
+ { url = "https://files.pythonhosted.org/packages/06/f2/2e06a0f2adf23e3ae29283ad96959267938d0efd20a2e25353b70065bfec/numpy-2.3.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:65611ecbb00ac9846efe04db15cbe6186f562f6bb7e5e05f077e53a599225d16", size = 16059531 },
+ { url = "https://files.pythonhosted.org/packages/b0/e7/b106253c7c0d5dc352b9c8fab91afd76a93950998167fa3e5afe4ef3a18f/numpy-2.3.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dabc42f9c6577bcc13001b8810d300fe814b4cfbe8a92c873f269484594f9786", size = 18578983 },
+ { url = "https://files.pythonhosted.org/packages/73/e3/04ecc41e71462276ee867ccbef26a4448638eadecf1bc56772c9ed6d0255/numpy-2.3.4-cp312-cp312-win32.whl", hash = "sha256:a49d797192a8d950ca59ee2d0337a4d804f713bb5c3c50e8db26d49666e351dc", size = 6291380 },
+ { url = "https://files.pythonhosted.org/packages/3d/a8/566578b10d8d0e9955b1b6cd5db4e9d4592dd0026a941ff7994cedda030a/numpy-2.3.4-cp312-cp312-win_amd64.whl", hash = "sha256:985f1e46358f06c2a09921e8921e2c98168ed4ae12ccd6e5e87a4f1857923f32", size = 12787999 },
+ { url = "https://files.pythonhosted.org/packages/58/22/9c903a957d0a8071b607f5b1bff0761d6e608b9a965945411f867d515db1/numpy-2.3.4-cp312-cp312-win_arm64.whl", hash = "sha256:4635239814149e06e2cb9db3dd584b2fa64316c96f10656983b8026a82e6e4db", size = 10197412 },
{ 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 },
@@ -1059,7 +1168,7 @@ wheels = [
[[package]]
name = "openai"
-version = "2.7.1"
+version = "2.6.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
@@ -1071,9 +1180,9 @@ dependencies = [
{ name = "tqdm" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/51/a2/f4023c1e0c868a6a5854955b3374f17153388aed95e835af114a17eac95b/openai-2.7.1.tar.gz", hash = "sha256:df4d4a3622b2df3475ead8eb0fbb3c27fd1c070fa2e55d778ca4f40e0186c726", size = 595933 }
+sdist = { url = "https://files.pythonhosted.org/packages/c4/44/303deb97be7c1c9b53118b52825cbd1557aeeff510f3a52566b1fa66f6a2/openai-2.6.1.tar.gz", hash = "sha256:27ae704d190615fca0c0fc2b796a38f8b5879645a3a52c9c453b23f97141bb49", size = 593043 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/8c/74/6bfc3adc81f6c2cea4439f2a734c40e3a420703bbcdc539890096a732bbd/openai-2.7.1-py3-none-any.whl", hash = "sha256:2f2530354d94c59c614645a4662b9dab0a5b881c5cd767a8587398feac0c9021", size = 1008780 },
+ { url = "https://files.pythonhosted.org/packages/15/0e/331df43df633e6105ff9cf45e0ce57762bd126a45ac16b25a43f6738d8a2/openai-2.6.1-py3-none-any.whl", hash = "sha256:904e4b5254a8416746a2f05649594fa41b19d799843cd134dac86167e094edef", size = 1005551 },
]
[[package]]
@@ -1082,6 +1191,21 @@ 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/63/51/6b556192a04595b93e277a9ff71cd0cc06c21a7df98bcce5963fa0f5e36f/orjson-3.11.4-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:d4371de39319d05d3f482f372720b841c841b52f5385bd99c61ed69d55d9ab50", size = 243571 },
+ { url = "https://files.pythonhosted.org/packages/1c/2c/2602392ddf2601d538ff11848b98621cd465d1a1ceb9db9e8043181f2f7b/orjson-3.11.4-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:e41fd3b3cac850eaae78232f37325ed7d7436e11c471246b87b2cd294ec94853", size = 128891 },
+ { url = "https://files.pythonhosted.org/packages/4e/47/bf85dcf95f7a3a12bf223394a4f849430acd82633848d52def09fa3f46ad/orjson-3.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:600e0e9ca042878c7fdf189cf1b028fe2c1418cc9195f6cb9824eb6ed99cb938", size = 130137 },
+ { url = "https://files.pythonhosted.org/packages/b4/4d/a0cb31007f3ab6f1fd2a1b17057c7c349bc2baf8921a85c0180cc7be8011/orjson-3.11.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7bbf9b333f1568ef5da42bc96e18bf30fd7f8d54e9ae066d711056add508e415", size = 129152 },
+ { url = "https://files.pythonhosted.org/packages/f7/ef/2811def7ce3d8576b19e3929fff8f8f0d44bc5eb2e0fdecb2e6e6cc6c720/orjson-3.11.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4806363144bb6e7297b8e95870e78d30a649fdc4e23fc84daa80c8ebd366ce44", size = 136834 },
+ { url = "https://files.pythonhosted.org/packages/00/d4/9aee9e54f1809cec8ed5abd9bc31e8a9631d19460e3b8470145d25140106/orjson-3.11.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad355e8308493f527d41154e9053b86a5be892b3b359a5c6d5d95cda23601cb2", size = 137519 },
+ { url = "https://files.pythonhosted.org/packages/db/ea/67bfdb5465d5679e8ae8d68c11753aaf4f47e3e7264bad66dc2f2249e643/orjson-3.11.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8a7517482667fb9f0ff1b2f16fe5829296ed7a655d04d68cd9711a4d8a4e708", size = 136749 },
+ { url = "https://files.pythonhosted.org/packages/01/7e/62517dddcfce6d53a39543cd74d0dccfcbdf53967017c58af68822100272/orjson-3.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97eb5942c7395a171cbfecc4ef6701fc3c403e762194683772df4c54cfbb2210", size = 136325 },
+ { url = "https://files.pythonhosted.org/packages/18/ae/40516739f99ab4c7ec3aaa5cc242d341fcb03a45d89edeeaabc5f69cb2cf/orjson-3.11.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:149d95d5e018bdd822e3f38c103b1a7c91f88d38a88aada5c4e9b3a73a244241", size = 140204 },
+ { url = "https://files.pythonhosted.org/packages/82/18/ff5734365623a8916e3a4037fcef1cd1782bfc14cf0992afe7940c5320bf/orjson-3.11.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:624f3951181eb46fc47dea3d221554e98784c823e7069edb5dbd0dc826ac909b", size = 406242 },
+ { url = "https://files.pythonhosted.org/packages/e1/43/96436041f0a0c8c8deca6a05ebeaf529bf1de04839f93ac5e7c479807aec/orjson-3.11.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:03bfa548cf35e3f8b3a96c4e8e41f753c686ff3d8e182ce275b1751deddab58c", size = 150013 },
+ { url = "https://files.pythonhosted.org/packages/1b/48/78302d98423ed8780479a1e682b9aecb869e8404545d999d34fa486e573e/orjson-3.11.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:525021896afef44a68148f6ed8a8bf8375553d6066c7f48537657f64823565b9", size = 139951 },
+ { url = "https://files.pythonhosted.org/packages/4a/7b/ad613fdcdaa812f075ec0875143c3d37f8654457d2af17703905425981bf/orjson-3.11.4-cp312-cp312-win32.whl", hash = "sha256:b58430396687ce0f7d9eeb3dd47761ca7d8fda8e9eb92b3077a7a353a75efefa", size = 136049 },
+ { url = "https://files.pythonhosted.org/packages/b9/3c/9cf47c3ff5f39b8350fb21ba65d789b6a1129d4cbb3033ba36c8a9023520/orjson-3.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:c6dbf422894e1e3c80a177133c0dda260f81428f9de16d61041949f6a2e5c140", size = 131461 },
+ { url = "https://files.pythonhosted.org/packages/c6/3b/e2425f61e5825dc5b08c2a5a2b3af387eaaca22a12b9c8c01504f8614c36/orjson-3.11.4-cp312-cp312-win_arm64.whl", hash = "sha256:d38d2bc06d6415852224fcc9c0bfa834c25431e466dc319f0edd56cca81aa96e", size = 126167 },
{ 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 },
@@ -1116,31 +1240,40 @@ wheels = [
[[package]]
name = "ormsgpack"
-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 },
+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 },
]
[[package]]
@@ -1158,6 +1291,21 @@ 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 },
@@ -1271,7 +1419,7 @@ wheels = [
[[package]]
name = "pydantic"
-version = "2.12.4"
+version = "2.12.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "annotated-types" },
@@ -1279,70 +1427,80 @@ dependencies = [
{ name = "typing-extensions" },
{ name = "typing-inspection" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/96/ad/a17bc283d7d81837c061c49e3eaa27a45991759a1b7eae1031921c6bd924/pydantic-2.12.4.tar.gz", hash = "sha256:0f8cb9555000a4b5b617f66bfd2566264c4984b27589d3b845685983e8ea85ac", size = 821038 }
+sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/82/2f/e68750da9b04856e2a7ec56fc6f034a5a79775e9b9a81882252789873798/pydantic-2.12.4-py3-none-any.whl", hash = "sha256:92d3d202a745d46f9be6df459ac5a064fdaa3c1c4cd8adcfa332ccf3c05f871e", size = 463400 },
+ { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431 },
]
[[package]]
name = "pydantic-core"
-version = "2.41.5"
+version = "2.41.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "typing-extensions" },
]
-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 },
+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 },
]
[[package]]
@@ -1374,6 +1532,16 @@ 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 },
@@ -1406,66 +1574,80 @@ wheels = [
[[package]]
name = "regex"
-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 },
+version = "2025.10.23"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/f8/c8/1d2160d36b11fbe0a61acb7c3c81ab032d9ec8ad888ac9e0a61b85ab99dd/regex-2025.10.23.tar.gz", hash = "sha256:8cbaf8ceb88f96ae2356d01b9adf5e6306fa42fa6f7eab6b97794e37c959ac26", size = 401266 }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/f6/57/eeb274d83ab189d02d778851b1ac478477522a92b52edfa6e2ae9ff84679/regex-2025.10.23-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7a44d9c00f7a0a02d3b777429281376370f3d13d2c75ae74eb94e11ebcf4a7fc", size = 489187 },
+ { url = "https://files.pythonhosted.org/packages/55/5c/7dad43a9b6ea88bf77e0b8b7729a4c36978e1043165034212fd2702880c6/regex-2025.10.23-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b83601f84fde939ae3478bb32a3aef36f61b58c3208d825c7e8ce1a735f143f2", size = 291122 },
+ { url = "https://files.pythonhosted.org/packages/66/21/38b71e6f2818f0f4b281c8fba8d9d57cfca7b032a648fa59696e0a54376a/regex-2025.10.23-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ec13647907bb9d15fd192bbfe89ff06612e098a5709e7d6ecabbdd8f7908fc45", size = 288797 },
+ { url = "https://files.pythonhosted.org/packages/be/95/888f069c89e7729732a6d7cca37f76b44bfb53a1e35dda8a2c7b65c1b992/regex-2025.10.23-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78d76dd2957d62501084e7012ddafc5fcd406dd982b7a9ca1ea76e8eaaf73e7e", size = 798442 },
+ { url = "https://files.pythonhosted.org/packages/76/70/4f903c608faf786627a8ee17c06e0067b5acade473678b69c8094b248705/regex-2025.10.23-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8668e5f067e31a47699ebb354f43aeb9c0ef136f915bd864243098524482ac43", size = 864039 },
+ { url = "https://files.pythonhosted.org/packages/62/19/2df67b526bf25756c7f447dde554fc10a220fd839cc642f50857d01e4a7b/regex-2025.10.23-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a32433fe3deb4b2d8eda88790d2808fed0dc097e84f5e683b4cd4f42edef6cca", size = 912057 },
+ { url = "https://files.pythonhosted.org/packages/99/14/9a39b7c9e007968411bc3c843cc14cf15437510c0a9991f080cab654fd16/regex-2025.10.23-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d97d73818c642c938db14c0668167f8d39520ca9d983604575ade3fda193afcc", size = 803374 },
+ { url = "https://files.pythonhosted.org/packages/d4/f7/3495151dd3ca79949599b6d069b72a61a2c5e24fc441dccc79dcaf708fe6/regex-2025.10.23-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bca7feecc72ee33579e9f6ddf8babbe473045717a0e7dbc347099530f96e8b9a", size = 787714 },
+ { url = "https://files.pythonhosted.org/packages/28/65/ee882455e051131869957ee8597faea45188c9a98c0dad724cfb302d4580/regex-2025.10.23-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7e24af51e907d7457cc4a72691ec458320b9ae67dc492f63209f01eecb09de32", size = 858392 },
+ { url = "https://files.pythonhosted.org/packages/53/25/9287fef5be97529ebd3ac79d256159cb709a07eb58d4be780d1ca3885da8/regex-2025.10.23-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d10bcde58bbdf18146f3a69ec46dd03233b94a4a5632af97aa5378da3a47d288", size = 850484 },
+ { url = "https://files.pythonhosted.org/packages/f3/b4/b49b88b4fea2f14dc73e5b5842755e782fc2e52f74423d6f4adc130d5880/regex-2025.10.23-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:44383bc0c933388516c2692c9a7503e1f4a67e982f20b9a29d2fb70c6494f147", size = 789634 },
+ { url = "https://files.pythonhosted.org/packages/b6/3c/2f8d199d0e84e78bcd6bdc2be9b62410624f6b796e2893d1837ae738b160/regex-2025.10.23-cp312-cp312-win32.whl", hash = "sha256:6040a86f95438a0114bba16e51dfe27f1bc004fd29fe725f54a586f6d522b079", size = 266060 },
+ { url = "https://files.pythonhosted.org/packages/d7/67/c35e80969f6ded306ad70b0698863310bdf36aca57ad792f45ddc0e2271f/regex-2025.10.23-cp312-cp312-win_amd64.whl", hash = "sha256:436b4c4352fe0762e3bfa34a5567079baa2ef22aa9c37cf4d128979ccfcad842", size = 276931 },
+ { url = "https://files.pythonhosted.org/packages/f5/a1/4ed147de7d2b60174f758412c87fa51ada15cd3296a0ff047f4280aaa7ca/regex-2025.10.23-cp312-cp312-win_arm64.whl", hash = "sha256:f4b1b1991617055b46aff6f6db24888c1f05f4db9801349d23f09ed0714a9335", size = 270103 },
+ { url = "https://files.pythonhosted.org/packages/28/c6/195a6217a43719d5a6a12cc192a22d12c40290cecfa577f00f4fb822f07d/regex-2025.10.23-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b7690f95404a1293923a296981fd943cca12c31a41af9c21ba3edd06398fc193", size = 488956 },
+ { url = "https://files.pythonhosted.org/packages/4c/93/181070cd1aa2fa541ff2d3afcf763ceecd4937b34c615fa92765020a6c90/regex-2025.10.23-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1a32d77aeaea58a13230100dd8797ac1a84c457f3af2fdf0d81ea689d5a9105b", size = 290997 },
+ { url = "https://files.pythonhosted.org/packages/b6/c5/9d37fbe3a40ed8dda78c23e1263002497540c0d1522ed75482ef6c2000f0/regex-2025.10.23-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b24b29402f264f70a3c81f45974323b41764ff7159655360543b7cabb73e7d2f", size = 288686 },
+ { url = "https://files.pythonhosted.org/packages/5f/e7/db610ff9f10c2921f9b6ac0c8d8be4681b28ddd40fc0549429366967e61f/regex-2025.10.23-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:563824a08c7c03d96856d84b46fdb3bbb7cfbdf79da7ef68725cda2ce169c72a", size = 798466 },
+ { url = "https://files.pythonhosted.org/packages/90/10/aab883e1fa7fe2feb15ac663026e70ca0ae1411efa0c7a4a0342d9545015/regex-2025.10.23-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0ec8bdd88d2e2659c3518087ee34b37e20bd169419ffead4240a7004e8ed03b", size = 863996 },
+ { url = "https://files.pythonhosted.org/packages/a2/b0/8f686dd97a51f3b37d0238cd00a6d0f9ccabe701f05b56de1918571d0d61/regex-2025.10.23-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b577601bfe1d33913fcd9276d7607bbac827c4798d9e14d04bf37d417a6c41cb", size = 912145 },
+ { url = "https://files.pythonhosted.org/packages/a3/ca/639f8cd5b08797bca38fc5e7e07f76641a428cf8c7fca05894caf045aa32/regex-2025.10.23-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c9f2c68ac6cb3de94eea08a437a75eaa2bd33f9e97c84836ca0b610a5804368", size = 803370 },
+ { url = "https://files.pythonhosted.org/packages/0d/1e/a40725bb76959eddf8abc42a967bed6f4851b39f5ac4f20e9794d7832aa5/regex-2025.10.23-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:89f8b9ea3830c79468e26b0e21c3585f69f105157c2154a36f6b7839f8afb351", size = 787767 },
+ { url = "https://files.pythonhosted.org/packages/3d/d8/8ee9858062936b0f99656dce390aa667c6e7fb0c357b1b9bf76fb5e2e708/regex-2025.10.23-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:98fd84c4e4ea185b3bb5bf065261ab45867d8875032f358a435647285c722673", size = 858335 },
+ { url = "https://files.pythonhosted.org/packages/d8/0a/ed5faaa63fa8e3064ab670e08061fbf09e3a10235b19630cf0cbb9e48c0a/regex-2025.10.23-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1e11d3e5887b8b096f96b4154dfb902f29c723a9556639586cd140e77e28b313", size = 850402 },
+ { url = "https://files.pythonhosted.org/packages/79/14/d05f617342f4b2b4a23561da500ca2beab062bfcc408d60680e77ecaf04d/regex-2025.10.23-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f13450328a6634348d47a88367e06b64c9d84980ef6a748f717b13f8ce64e87", size = 789739 },
+ { url = "https://files.pythonhosted.org/packages/f9/7b/e8ce8eef42a15f2c3461f8b3e6e924bbc86e9605cb534a393aadc8d3aff8/regex-2025.10.23-cp313-cp313-win32.whl", hash = "sha256:37be9296598a30c6a20236248cb8b2c07ffd54d095b75d3a2a2ee5babdc51df1", size = 266054 },
+ { url = "https://files.pythonhosted.org/packages/71/2d/55184ed6be6473187868d2f2e6a0708195fc58270e62a22cbf26028f2570/regex-2025.10.23-cp313-cp313-win_amd64.whl", hash = "sha256:ea7a3c283ce0f06fe789365841e9174ba05f8db16e2fd6ae00a02df9572c04c0", size = 276917 },
+ { url = "https://files.pythonhosted.org/packages/9c/d4/927eced0e2bd45c45839e556f987f8c8f8683268dd3c00ad327deb3b0172/regex-2025.10.23-cp313-cp313-win_arm64.whl", hash = "sha256:d9a4953575f300a7bab71afa4cd4ac061c7697c89590a2902b536783eeb49a4f", size = 270105 },
+ { url = "https://files.pythonhosted.org/packages/3e/b3/95b310605285573341fc062d1d30b19a54f857530e86c805f942c4ff7941/regex-2025.10.23-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:7d6606524fa77b3912c9ef52a42ef63c6cfbfc1077e9dc6296cd5da0da286044", size = 491850 },
+ { url = "https://files.pythonhosted.org/packages/a4/8f/207c2cec01e34e56db1eff606eef46644a60cf1739ecd474627db90ad90b/regex-2025.10.23-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:c037aadf4d64bdc38af7db3dbd34877a057ce6524eefcb2914d6d41c56f968cc", size = 292537 },
+ { url = "https://files.pythonhosted.org/packages/98/3b/025240af4ada1dc0b5f10d73f3e5122d04ce7f8908ab8881e5d82b9d61b6/regex-2025.10.23-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:99018c331fb2529084a0c9b4c713dfa49fafb47c7712422e49467c13a636c656", size = 290904 },
+ { url = "https://files.pythonhosted.org/packages/81/8e/104ac14e2d3450c43db18ec03e1b96b445a94ae510b60138f00ce2cb7ca1/regex-2025.10.23-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fd8aba965604d70306eb90a35528f776e59112a7114a5162824d43b76fa27f58", size = 807311 },
+ { url = "https://files.pythonhosted.org/packages/19/63/78aef90141b7ce0be8a18e1782f764f6997ad09de0e05251f0d2503a914a/regex-2025.10.23-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:238e67264b4013e74136c49f883734f68656adf8257bfa13b515626b31b20f8e", size = 873241 },
+ { url = "https://files.pythonhosted.org/packages/b3/a8/80eb1201bb49ae4dba68a1b284b4211ed9daa8e74dc600018a10a90399fb/regex-2025.10.23-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b2eb48bd9848d66fd04826382f5e8491ae633de3233a3d64d58ceb4ecfa2113a", size = 914794 },
+ { url = "https://files.pythonhosted.org/packages/f0/d5/1984b6ee93281f360a119a5ca1af6a8ca7d8417861671388bf750becc29b/regex-2025.10.23-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d36591ce06d047d0c0fe2fc5f14bfbd5b4525d08a7b6a279379085e13f0e3d0e", size = 812581 },
+ { url = "https://files.pythonhosted.org/packages/c4/39/11ebdc6d9927172a64ae237d16763145db6bd45ebb4055c17b88edab72a7/regex-2025.10.23-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b5d4ece8628d6e364302006366cea3ee887db397faebacc5dacf8ef19e064cf8", size = 795346 },
+ { url = "https://files.pythonhosted.org/packages/3b/b4/89a591bcc08b5e436af43315284bd233ba77daf0cf20e098d7af12f006c1/regex-2025.10.23-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:39a7e8083959cb1c4ff74e483eecb5a65d3b3e1d821b256e54baf61782c906c6", size = 868214 },
+ { url = "https://files.pythonhosted.org/packages/3d/ff/58ba98409c1dbc8316cdb20dafbc63ed267380a07780cafecaf5012dabc9/regex-2025.10.23-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:842d449a8fefe546f311656cf8c0d6729b08c09a185f1cad94c756210286d6a8", size = 854540 },
+ { url = "https://files.pythonhosted.org/packages/9a/f2/4a9e9338d67626e2071b643f828a482712ad15889d7268e11e9a63d6f7e9/regex-2025.10.23-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d614986dc68506be8f00474f4f6960e03e4ca9883f7df47744800e7d7c08a494", size = 799346 },
+ { url = "https://files.pythonhosted.org/packages/63/be/543d35c46bebf6f7bf2be538cca74d6585f25714700c36f37f01b92df551/regex-2025.10.23-cp313-cp313t-win32.whl", hash = "sha256:a5b7a26b51a9df473ec16a1934d117443a775ceb7b39b78670b2e21893c330c9", size = 268657 },
+ { url = "https://files.pythonhosted.org/packages/14/9f/4dd6b7b612037158bb2c9bcaa710e6fb3c40ad54af441b9c53b3a137a9f1/regex-2025.10.23-cp313-cp313t-win_amd64.whl", hash = "sha256:ce81c5544a5453f61cb6f548ed358cfb111e3b23f3cd42d250a4077a6be2a7b6", size = 280075 },
+ { url = "https://files.pythonhosted.org/packages/81/7a/5bd0672aa65d38c8da6747c17c8b441bdb53d816c569e3261013af8e83cf/regex-2025.10.23-cp313-cp313t-win_arm64.whl", hash = "sha256:e9bf7f6699f490e4e43c44757aa179dab24d1960999c84ab5c3d5377714ed473", size = 271219 },
+ { url = "https://files.pythonhosted.org/packages/73/f6/0caf29fec943f201fbc8822879c99d31e59c1d51a983d9843ee5cf398539/regex-2025.10.23-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:5b5cb5b6344c4c4c24b2dc87b0bfee78202b07ef7633385df70da7fcf6f7cec6", size = 488960 },
+ { url = "https://files.pythonhosted.org/packages/8e/7d/ebb7085b8fa31c24ce0355107cea2b92229d9050552a01c5d291c42aecea/regex-2025.10.23-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a6ce7973384c37bdf0f371a843f95a6e6f4e1489e10e0cf57330198df72959c5", size = 290932 },
+ { url = "https://files.pythonhosted.org/packages/27/41/43906867287cbb5ca4cee671c3cc8081e15deef86a8189c3aad9ac9f6b4d/regex-2025.10.23-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2ee3663f2c334959016b56e3bd0dd187cbc73f948e3a3af14c3caaa0c3035d10", size = 288766 },
+ { url = "https://files.pythonhosted.org/packages/ab/9e/ea66132776700fc77a39b1056e7a5f1308032fead94507e208dc6716b7cd/regex-2025.10.23-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2003cc82a579107e70d013482acce8ba773293f2db534fb532738395c557ff34", size = 798884 },
+ { url = "https://files.pythonhosted.org/packages/d5/99/aed1453687ab63819a443930770db972c5c8064421f0d9f5da9ad029f26b/regex-2025.10.23-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:182c452279365a93a9f45874f7f191ec1c51e1f1eb41bf2b16563f1a40c1da3a", size = 864768 },
+ { url = "https://files.pythonhosted.org/packages/99/5d/732fe747a1304805eb3853ce6337eea16b169f7105a0d0dd9c6a5ffa9948/regex-2025.10.23-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b1249e9ff581c5b658c8f0437f883b01f1edcf424a16388591e7c05e5e9e8b0c", size = 911394 },
+ { url = "https://files.pythonhosted.org/packages/5e/48/58a1f6623466522352a6efa153b9a3714fc559d9f930e9bc947b4a88a2c3/regex-2025.10.23-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b841698f93db3ccc36caa1900d2a3be281d9539b822dc012f08fc80b46a3224", size = 803145 },
+ { url = "https://files.pythonhosted.org/packages/ea/f6/7dea79be2681a5574ab3fc237aa53b2c1dfd6bd2b44d4640b6c76f33f4c1/regex-2025.10.23-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:956d89e0c92d471e8f7eee73f73fdff5ed345886378c45a43175a77538a1ffe4", size = 787831 },
+ { url = "https://files.pythonhosted.org/packages/3a/ad/07b76950fbbe65f88120ca2d8d845047c401450f607c99ed38862904671d/regex-2025.10.23-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5c259cb363299a0d90d63b5c0d7568ee98419861618a95ee9d91a41cb9954462", size = 859162 },
+ { url = "https://files.pythonhosted.org/packages/41/87/374f3b2021b22aa6a4fc0b750d63f9721e53d1631a238f7a1c343c1cd288/regex-2025.10.23-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:185d2b18c062820b3a40d8fefa223a83f10b20a674bf6e8c4a432e8dfd844627", size = 849899 },
+ { url = "https://files.pythonhosted.org/packages/12/4a/7f7bb17c5a5a9747249807210e348450dab9212a46ae6d23ebce86ba6a2b/regex-2025.10.23-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:281d87fa790049c2b7c1b4253121edd80b392b19b5a3d28dc2a77579cb2a58ec", size = 789372 },
+ { url = "https://files.pythonhosted.org/packages/c9/dd/9c7728ff544fea09bbc8635e4c9e7c423b11c24f1a7a14e6ac4831466709/regex-2025.10.23-cp314-cp314-win32.whl", hash = "sha256:63b81eef3656072e4ca87c58084c7a9c2b81d41a300b157be635a8a675aacfb8", size = 271451 },
+ { url = "https://files.pythonhosted.org/packages/48/f8/ef7837ff858eb74079c4804c10b0403c0b740762e6eedba41062225f7117/regex-2025.10.23-cp314-cp314-win_amd64.whl", hash = "sha256:0967c5b86f274800a34a4ed862dfab56928144d03cb18821c5153f8777947796", size = 280173 },
+ { url = "https://files.pythonhosted.org/packages/8e/d0/d576e1dbd9885bfcd83d0e90762beea48d9373a6f7ed39170f44ed22e336/regex-2025.10.23-cp314-cp314-win_arm64.whl", hash = "sha256:c70dfe58b0a00b36aa04cdb0f798bf3e0adc31747641f69e191109fd8572c9a9", size = 273206 },
+ { url = "https://files.pythonhosted.org/packages/a6/d0/2025268315e8b2b7b660039824cb7765a41623e97d4cd421510925400487/regex-2025.10.23-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:1f5799ea1787aa6de6c150377d11afad39a38afd033f0c5247aecb997978c422", size = 491854 },
+ { url = "https://files.pythonhosted.org/packages/44/35/5681c2fec5e8b33454390af209c4353dfc44606bf06d714b0b8bd0454ffe/regex-2025.10.23-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:a9639ab7540cfea45ef57d16dcbea2e22de351998d614c3ad2f9778fa3bdd788", size = 292542 },
+ { url = "https://files.pythonhosted.org/packages/5d/17/184eed05543b724132e4a18149e900f5189001fcfe2d64edaae4fbaf36b4/regex-2025.10.23-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:08f52122c352eb44c3421dab78b9b73a8a77a282cc8314ae576fcaa92b780d10", size = 290903 },
+ { url = "https://files.pythonhosted.org/packages/25/d0/5e3347aa0db0de382dddfa133a7b0ae72f24b4344f3989398980b44a3924/regex-2025.10.23-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ebf1baebef1c4088ad5a5623decec6b52950f0e4d7a0ae4d48f0a99f8c9cb7d7", size = 807546 },
+ { url = "https://files.pythonhosted.org/packages/d2/bb/40c589bbdce1be0c55e9f8159789d58d47a22014f2f820cf2b517a5cd193/regex-2025.10.23-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:16b0f1c2e2d566c562d5c384c2b492646be0a19798532fdc1fdedacc66e3223f", size = 873322 },
+ { url = "https://files.pythonhosted.org/packages/fe/56/a7e40c01575ac93360e606278d359f91829781a9f7fb6e5aa435039edbda/regex-2025.10.23-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7ada5d9dceafaab92646aa00c10a9efd9b09942dd9b0d7c5a4b73db92cc7e61", size = 914855 },
+ { url = "https://files.pythonhosted.org/packages/5c/4b/d55587b192763db3163c3f508b3b67b31bb6f5e7a0e08b83013d0a59500a/regex-2025.10.23-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a36b4005770044bf08edecc798f0e41a75795b9e7c9c12fe29da8d792ef870c", size = 812724 },
+ { url = "https://files.pythonhosted.org/packages/33/20/18bac334955fbe99d17229f4f8e98d05e4a501ac03a442be8facbb37c304/regex-2025.10.23-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:af7b2661dcc032da1fae82069b5ebf2ac1dfcd5359ef8b35e1367bfc92181432", size = 795439 },
+ { url = "https://files.pythonhosted.org/packages/67/46/c57266be9df8549c7d85deb4cb82280cb0019e46fff677534c5fa1badfa4/regex-2025.10.23-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:1cb976810ac1416a67562c2e5ba0accf6f928932320fef302e08100ed681b38e", size = 868336 },
+ { url = "https://files.pythonhosted.org/packages/b8/f3/bd5879e41ef8187fec5e678e94b526a93f99e7bbe0437b0f2b47f9101694/regex-2025.10.23-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:1a56a54be3897d62f54290190fbcd754bff6932934529fbf5b29933da28fcd43", size = 854567 },
+ { url = "https://files.pythonhosted.org/packages/e6/57/2b6bbdbd2f24dfed5b028033aa17ad8f7d86bb28f1a892cac8b3bc89d059/regex-2025.10.23-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8f3e6d202fb52c2153f532043bbcf618fd177df47b0b306741eb9b60ba96edc3", size = 799565 },
+ { url = "https://files.pythonhosted.org/packages/c7/ba/a6168f542ba73b151ed81237adf6b869c7b2f7f8d51618111296674e20ee/regex-2025.10.23-cp314-cp314t-win32.whl", hash = "sha256:1fa1186966b2621b1769fd467c7b22e317e6ba2d2cdcecc42ea3089ef04a8521", size = 274428 },
+ { url = "https://files.pythonhosted.org/packages/ef/a0/c84475e14a2829e9b0864ebf77c3f7da909df9d8acfe2bb540ff0072047c/regex-2025.10.23-cp314-cp314t-win_amd64.whl", hash = "sha256:08a15d40ce28362eac3e78e83d75475147869c1ff86bc93285f43b4f4431a741", size = 284140 },
+ { url = "https://files.pythonhosted.org/packages/51/33/6a08ade0eee5b8ba79386869fa6f77afeb835b60510f3525db987e2fffc4/regex-2025.10.23-cp314-cp314t-win_arm64.whl", hash = "sha256:a93e97338e1c8ea2649e130dcfbe8cd69bba5e1e163834752ab64dcb4de6d5ed", size = 274497 },
]
[[package]]
@@ -1526,6 +1708,14 @@ 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 },
@@ -1568,6 +1758,13 @@ 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 },
@@ -1672,6 +1869,21 @@ 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 },
@@ -1745,6 +1957,22 @@ 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 },
@@ -1818,6 +2046,23 @@ 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 aa5300483..d5ffe403a 100644
--- a/integrations/langgraph/python/poetry.lock
+++ b/integrations/langgraph/python/poetry.lock
@@ -1,21 +1,19 @@
-# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand.
[[package]]
name = "ag-ui-protocol"
-version = "0.1.9"
+version = "0.1.7"
description = ""
optional = false
-python-versions = "^3.9"
+python-versions = "<4.0,>=3.9"
groups = ["main"]
-files = []
-develop = true
+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"},
+]
[package.dependencies]
-pydantic = "^2.11.2"
-
-[package.source]
-type = "directory"
-url = "../../../sdks/python"
+pydantic = ">=2.11.2,<3.0.0"
[[package]]
name = "annotated-types"
@@ -1475,4 +1473,4 @@ fastapi = ["fastapi"]
[metadata]
lock-version = "2.1"
python-versions = "<3.14,>=3.10"
-content-hash = "7b62eac41b70b284f5d430698b1e0c8dd23dca37f9178ee00f10edc774f006f5"
+content-hash = "b4f98fd8fba22b450b106c36ab12b2dc3bdc656b060ac257b5d21b40b51b4f17"
diff --git a/integrations/langgraph/python/pyproject.toml b/integrations/langgraph/python/pyproject.toml
index 8c0db183a..44a9fa636 100644
--- a/integrations/langgraph/python/pyproject.toml
+++ b/integrations/langgraph/python/pyproject.toml
@@ -10,7 +10,7 @@ exclude = [
[tool.poetry.dependencies]
python = "<3.14,>=3.10"
-ag-ui-protocol = "==0.2.0a0"
+ag-ui-protocol = "==0.1.9"
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
deleted file mode 100644
index afc68fffc..000000000
--- a/integrations/langgraph/python/tests/test_multimodal.py
+++ /dev/null
@@ -1,227 +0,0 @@
-"""
-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/src/agents/multimodal_messages/agent.ts b/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts
deleted file mode 100644
index f6c0ac7da..000000000
--- a/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * 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 e6e4cd5a1..27145deac 100644
--- a/integrations/langgraph/typescript/package.json
+++ b/integrations/langgraph/typescript/package.json
@@ -1,6 +1,6 @@
{
"name": "@ag-ui/langgraph",
- "version": "0.0.19-alpha.1",
+ "version": "0.0.18",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -23,23 +23,23 @@
"unlink:global": "pnpm unlink --global"
},
"dependencies": {
- "@langchain/core": "^0.3.66",
- "@langchain/langgraph-sdk": "^0.1.2",
+ "@langchain/core": "^0.3.79",
+ "@langchain/langgraph-sdk": "^0.1.10",
"partial-json": "^0.1.7",
"rxjs": "7.8.1"
},
"peerDependencies": {
- "@ag-ui/core": "0.0.40-alpha.7",
- "@ag-ui/client": "0.0.40-alpha.7"
+ "@ag-ui/client": ">=0.0.38",
+ "@ag-ui/core": ">=0.0.38"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/langgraph/typescript/src/utils.test.ts b/integrations/langgraph/typescript/src/utils.test.ts
deleted file mode 100644
index 5042c6e20..000000000
--- a/integrations/langgraph/typescript/src/utils.test.ts
+++ /dev/null
@@ -1,224 +0,0 @@
-/**
- * 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 8866a9d7f..d69ac6778 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, TextInputContent, BinaryInputContent, InputContent , UserMessage} from "@ag-ui/client";
+import { Message, ToolCall } from "@ag-ui/client";
export const DEFAULT_SCHEMA_KEYS = ["messages", "tools"];
@@ -26,118 +26,21 @@ 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: userContent,
+ content: stringifyIfNeeded(resolveMessageContent(message.content)),
};
case "ai":
- const aiContent = resolveMessageContent(message.content)
+ const content = resolveMessageContent(message.content)
return {
id: message.id!,
role: "assistant",
- content: aiContent ? stringifyIfNeeded(aiContent) : '',
+ content: content ? stringifyIfNeeded(content) : '',
toolCalls: message.tool_calls?.map((tc) => ({
id: tc.id!,
type: "function",
@@ -170,22 +73,12 @@ 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,
+ content: message.content,
type: "human",
- } as LangGraphMessage;
+ };
case "assistant":
return {
id: message.id,
@@ -226,42 +119,6 @@ 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 6b37b380a..730c309b8 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.5",
+ "version": "0.1.4",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -24,18 +24,18 @@
"unlink:global": "pnpm unlink --global"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.39",
"@ag-ui/client": ">=0.0.39",
+ "@ag-ui/core": ">=0.0.39",
"rxjs": "7.8.1"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/llama-index/typescript/src/index.ts b/integrations/llama-index/typescript/src/index.ts
index f4a08b8eb..b89fe27d8 100644
--- a/integrations/llama-index/typescript/src/index.ts
+++ b/integrations/llama-index/typescript/src/index.ts
@@ -34,10 +34,6 @@ 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 c4d033e9d..5c90d73b1 100644
--- a/integrations/mastra/typescript/examples/.gitignore
+++ b/integrations/mastra/typescript/examples/.gitignore
@@ -2,7 +2,6 @@ output.txt
node_modules
dist
.mastra
-.npm-cache
.env.development
.env
*.db
diff --git a/integrations/mastra/typescript/examples/package.json b/integrations/mastra/typescript/examples/package.json
index 4a5c96063..dffe1d0bc 100644
--- a/integrations/mastra/typescript/examples/package.json
+++ b/integrations/mastra/typescript/examples/package.json
@@ -16,17 +16,18 @@
"node": ">=20.9.0"
},
"dependencies": {
- "@ai-sdk/openai": "^2.0.23",
+ "@ai-sdk/openai": "^2.0.57",
"@mastra/client-js": "^0.15.2",
"@mastra/core": "^0.20.2",
- "@mastra/libsql": "^0.15.1",
- "@mastra/loggers": "^0.10.15",
- "@mastra/memory": "^0.15.6",
- "zod": "^3.25.48"
+ "@mastra/libsql": "^0.15.2",
+ "@mastra/loggers": "^0.10.18",
+ "@mastra/memory": "^0.15.10",
+ "ai": "^5.0.82",
+ "zod": "^3.25.76"
},
"devDependencies": {
- "@types/node": "^22.15.29",
+ "@types/node": "^22.18.13",
"mastra": "^0.15.1",
- "typescript": "^5.8.3"
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/mastra/typescript/package.json b/integrations/mastra/typescript/package.json
index 8da1b6c9a..8e0125d45 100644
--- a/integrations/mastra/typescript/package.json
+++ b/integrations/mastra/typescript/package.json
@@ -57,26 +57,26 @@
"clean": true
},
"dependencies": {
- "@ai-sdk/ui-utils": "^1.1.19",
- "@mastra/client-js": "^0.15.2",
+ "@ai-sdk/ui-utils": "^1.2.11",
+ "@mastra/client-js": "^0.16.8",
"rxjs": "7.8.1"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.39",
"@ag-ui/client": ">=0.0.40",
+ "@ag-ui/core": ">=0.0.39",
"@copilotkit/runtime": "^1.10.5",
- "@mastra/core": ">=0.20.1",
+ "@mastra/core": ">=0.23.3",
"zod": "^3.25.67"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
- "@mastra/core": "^0.20.1",
+ "@ag-ui/core": "workspace:*",
+ "@mastra/core": "^0.23.3",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/mastra/typescript/src/mastra.ts b/integrations/mastra/typescript/src/mastra.ts
index 27cbe4425..570872108 100644
--- a/integrations/mastra/typescript/src/mastra.ts
+++ b/integrations/mastra/typescript/src/mastra.ts
@@ -40,12 +40,8 @@ export interface MastraAgentConfig extends AgentConfig {
interface MastraAgentStreamOptions {
onTextPart?: (text: string) => void;
onFinishMessagePart?: () => void;
- onToolCallPart?: (streamPart: {
- toolCallId: string;
- toolName: string;
- args: any;
- }) => void;
- onToolResultPart?: (streamPart: { toolCallId: string; result: any }) => void;
+ onToolCallPart?: (streamPart: { toolCallId: string; toolName: string; args: unknown }) => void;
+ onToolResultPart?: (streamPart: { toolCallId: string; output: unknown }) => void;
onError?: (error: Error) => void;
onRunFinished?: () => Promise;
}
@@ -55,18 +51,13 @@ export class MastraAgent extends AbstractAgent {
resourceId?: string;
runtimeContext?: RuntimeContext;
- constructor(private config: MastraAgentConfig) {
- const { agent, resourceId, runtimeContext, ...rest } = config;
+ constructor({ agent, resourceId, runtimeContext, ...rest }: MastraAgentConfig) {
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();
@@ -84,11 +75,7 @@ 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,
});
@@ -104,14 +91,9 @@ 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({
@@ -163,7 +145,7 @@ export class MastraAgent extends AbstractAgent {
const toolCallResultEvent: ToolCallResultEvent = {
type: EventType.TOOL_CALL_RESULT,
toolCallId: streamPart.toolCallId,
- content: JSON.stringify(streamPart.result),
+ content: safeStringify(streamPart.output),
messageId: randomUUID(),
role: "tool",
};
@@ -233,9 +215,7 @@ export class MastraAgent extends AbstractAgent {
});
}
- isLocalMastraAgent(
- agent: LocalMastraAgent | RemoteMastraAgent,
- ): agent is LocalMastraAgent {
+ isLocalMastraAgent(agent: LocalMastraAgent | RemoteMastraAgent): agent is LocalMastraAgent {
return "getMemory" in agent;
}
@@ -288,37 +268,13 @@ export class MastraAgent extends AbstractAgent {
// Process it using the agent's built-in streaming mechanism
if (response && typeof response === "object") {
for await (const chunk of response.fullStream) {
- switch (chunk.type) {
- case "text-delta": {
- onTextPart?.(chunk.payload.text);
- break;
- }
- case "tool-call": {
- onToolCallPart?.({
- toolCallId: chunk.payload.toolCallId,
- toolName: chunk.payload.toolName,
- args: chunk.payload.args,
- });
- break;
- }
- case "tool-result": {
- onToolResultPart?.({
- toolCallId: chunk.payload.toolCallId,
- result: chunk.payload.result,
- });
- break;
- }
-
- case "error": {
- onError?.(new Error(chunk.payload.error as string));
- break;
- }
-
- case "finish": {
- onFinishMessagePart?.();
- break;
- }
- }
+ handleStreamChunk(chunk, {
+ onTextPart,
+ onToolCallPart,
+ onToolResultPart,
+ onFinishMessagePart,
+ onError,
+ });
}
await onRunFinished?.();
@@ -343,35 +299,28 @@ export class MastraAgent extends AbstractAgent {
if (response && typeof response.processDataStream === "function") {
await response.processDataStream({
onChunk: async (chunk) => {
- switch (chunk.type) {
- case "text-delta": {
- onTextPart?.(chunk.payload.text);
- break;
- }
- case "tool-call": {
- onToolCallPart?.({
- toolCallId: chunk.payload.toolCallId,
- toolName: chunk.payload.toolName,
- args: chunk.payload.args,
- });
- break;
- }
- case "tool-result": {
- onToolResultPart?.({
- toolCallId: chunk.payload.toolCallId,
- result: chunk.payload.result,
- });
- break;
- }
-
- case "finish": {
- onFinishMessagePart?.();
- break;
- }
- }
+ handleStreamChunk(chunk, {
+ onTextPart,
+ onToolCallPart,
+ onToolResultPart,
+ onFinishMessagePart,
+ onError,
+ });
},
});
await onRunFinished?.();
+ } else if (response && typeof (response as { fullStream?: unknown }).fullStream === "object") {
+ const fullStream = (response as unknown as { fullStream: AsyncIterable }).fullStream;
+ for await (const chunk of fullStream) {
+ handleStreamChunk(chunk, {
+ onTextPart,
+ onToolCallPart,
+ onToolResultPart,
+ onFinishMessagePart,
+ onError,
+ });
+ }
+ await onRunFinished?.();
} else {
throw new Error("Invalid response from remote agent");
}
@@ -387,9 +336,7 @@ export class MastraAgent extends AbstractAgent {
return getRemoteAgents(options);
}
- static getLocalAgents(
- options: GetLocalAgentsOptions,
- ): Record {
+ static getLocalAgents(options: GetLocalAgentsOptions): Record {
return getLocalAgents(options);
}
@@ -401,3 +348,170 @@ export class MastraAgent extends AbstractAgent {
return getNetwork(options);
}
}
+
+function handleStreamChunk(
+ chunk: unknown,
+ handlers: {
+ onTextPart?: (text: string) => void;
+ onToolCallPart?: (streamPart: { toolCallId: string; toolName: string; args: unknown }) => void;
+ onToolResultPart?: (streamPart: { toolCallId: string; output: unknown }) => void;
+ onFinishMessagePart?: () => void;
+ onError?: (error: Error) => void;
+ },
+) {
+ if (!chunk || typeof chunk !== "object" || !("type" in chunk)) {
+ return;
+ }
+
+ const type = (chunk as { type: string }).type;
+
+ switch (type) {
+ case "text-delta": {
+ const text = extractTextDelta(chunk);
+ if (typeof text === "string" && text.length > 0) {
+ handlers.onTextPart?.(text);
+ }
+ break;
+ }
+
+ case "tool-call": {
+ const toolCall = extractToolCall(chunk);
+ if (toolCall) {
+ handlers.onToolCallPart?.(toolCall);
+ }
+ break;
+ }
+
+ case "tool-result": {
+ const toolResult = extractToolResult(chunk);
+ if (toolResult) {
+ handlers.onToolResultPart?.(toolResult);
+ }
+ break;
+ }
+
+ case "tool-error": {
+ handlers.onError?.(
+ new Error(
+ safeStringify((chunk as { error?: unknown }).error ?? "Tool execution failed"),
+ ),
+ );
+ break;
+ }
+
+ case "error": {
+ handlers.onError?.(extractError(chunk) ?? new Error("Stream error"));
+ break;
+ }
+
+ case "finish": {
+ handlers.onFinishMessagePart?.();
+ break;
+ }
+
+ default:
+ break;
+ }
+}
+
+function extractTextDelta(chunk: unknown): string | undefined {
+ if (!chunk || typeof chunk !== "object") {
+ return undefined;
+ }
+
+ const candidate = chunk as Record;
+ if (typeof candidate.text === "string") {
+ return candidate.text;
+ }
+ if (typeof candidate.delta === "string") {
+ return candidate.delta;
+ }
+ const payload = candidate.payload as Record | undefined;
+ if (payload) {
+ if (typeof payload.text === "string") {
+ return payload.text;
+ }
+ if (typeof payload.delta === "string") {
+ return payload.delta;
+ }
+ }
+ return undefined;
+}
+
+function extractToolCall(chunk: unknown):
+ | { toolCallId: string; toolName: string; args: unknown }
+ | undefined {
+ if (!chunk || typeof chunk !== "object") {
+ return undefined;
+ }
+
+ const candidate = chunk as Record;
+ const toolCallId = getString(candidate.toolCallId) ?? getString(candidate.tool_call_id);
+ const toolName = getString(candidate.toolName) ?? getString(candidate.tool_name);
+ const input = candidate.input ?? candidate.args;
+ const payload = candidate.payload as Record | undefined;
+
+ return toolCallId && toolName
+ ? {
+ toolCallId,
+ toolName,
+ args: input ?? payload?.input ?? payload?.args,
+ }
+ : undefined;
+}
+
+function extractToolResult(chunk: unknown):
+ | { toolCallId: string; output: unknown }
+ | undefined {
+ if (!chunk || typeof chunk !== "object") {
+ return undefined;
+ }
+
+ const candidate = chunk as Record;
+ const toolCallId = getString(candidate.toolCallId) ?? getString(candidate.tool_call_id);
+ const output = candidate.output ?? candidate.result;
+ const payload = candidate.payload as Record | undefined;
+
+ return toolCallId
+ ? {
+ toolCallId,
+ output: output ?? payload?.output ?? payload?.result,
+ }
+ : undefined;
+}
+
+function extractError(chunk: unknown): Error | undefined {
+ if (!chunk || typeof chunk !== "object") {
+ return undefined;
+ }
+
+ const candidate = chunk as Record;
+ const payload = candidate.payload as Record | undefined;
+ const errorValue = candidate.error ?? payload?.error ?? payload?.message;
+
+ if (!errorValue) {
+ return undefined;
+ }
+
+ if (errorValue instanceof Error) {
+ return errorValue;
+ }
+
+ const message = typeof errorValue === "string" ? errorValue : safeStringify(errorValue);
+ return new Error(message);
+}
+
+function safeStringify(value: unknown): string {
+ if (typeof value === "string") {
+ return value;
+ }
+ try {
+ return JSON.stringify(value ?? {});
+ } catch {
+ return String(value);
+ }
+}
+
+function getString(value: unknown): string | undefined {
+ return typeof value === "string" ? value : undefined;
+}
diff --git a/integrations/mastra/typescript/src/utils.ts b/integrations/mastra/typescript/src/utils.ts
index e775d353f..8014531b6 100644
--- a/integrations/mastra/typescript/src/utils.ts
+++ b/integrations/mastra/typescript/src/utils.ts
@@ -1,4 +1,4 @@
-import type { InputContent, Message } from "@ag-ui/client";
+import type { 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,84 +6,60 @@ 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[] = [];
+ const result: Array> = [];
for (const message of messages) {
if (message.role === "assistant") {
- const assistantContent = toMastraTextContent(message.content);
- const parts: any[] = [];
- if (assistantContent) {
- parts.push({ type: "text", text: assistantContent });
+ const parts: Array> = [];
+
+ if (message.content) {
+ parts.push({ type: "text", text: message.content });
}
+
for (const toolCall of message.toolCalls ?? []) {
parts.push({
type: "tool-call",
toolCallId: toolCall.id,
toolName: toolCall.function.name,
- args: JSON.parse(toolCall.function.arguments),
+ input: safeJsonParse(toolCall.function.arguments),
});
}
+
result.push({
role: "assistant",
content: parts,
});
- } else if (message.role === "user") {
- const userContent = toMastraTextContent(message.content);
+ continue;
+ }
+
+ if (message.role === "user") {
result.push({
role: "user",
- content: userContent,
+ content: message.content ?? "",
});
- } else if (message.role === "tool") {
- let toolName = "unknown";
- for (const msg of messages) {
- if (msg.role === "assistant") {
- for (const toolCall of msg.toolCalls ?? []) {
- if (toolCall.id === message.toolCallId) {
- toolName = toolCall.function.name;
- break;
- }
- }
- }
- }
+ continue;
+ }
+
+ if (message.role === "tool") {
+ const toolName = findToolNameForMessage(messages, message.toolCallId) ?? "unknown";
+
result.push({
role: "tool",
content: [
{
type: "tool-result",
toolCallId: message.toolCallId,
- toolName: toolName,
- result: message.content,
+ toolName,
+ output: toToolResultOutput(message.content),
},
],
});
+ continue;
}
}
- return result;
+ return result as unknown as CoreMessage[];
}
export interface GetRemoteAgentsOptions {
@@ -186,3 +162,48 @@ export function getNetwork({ mastra, networkId, resourceId, runtimeContext }: Ge
runtimeContext,
}) as AbstractAgent;
}
+
+function safeJsonParse(value: string | undefined): unknown {
+ if (!value) {
+ return {};
+ }
+
+ try {
+ return JSON.parse(value);
+ } catch {
+ return value;
+ }
+}
+
+function toToolResultOutput(content: string | undefined) {
+ if (!content) {
+ return { type: "text" as const, value: "" };
+ }
+
+ const parsed = safeJsonParse(content);
+ if (typeof parsed === "string") {
+ return { type: "text" as const, value: parsed };
+ }
+
+ return { type: "json" as const, value: parsed };
+}
+
+function findToolNameForMessage(messages: Message[], toolCallId: string | undefined) {
+ if (!toolCallId) {
+ return undefined;
+ }
+
+ for (const msg of messages) {
+ if (msg.role !== "assistant") {
+ continue;
+ }
+
+ for (const toolCall of msg.toolCalls ?? []) {
+ if (toolCall.id === toolCallId) {
+ return toolCall.function.name;
+ }
+ }
+ }
+
+ return undefined;
+}
diff --git a/integrations/pydantic-ai/typescript/package.json b/integrations/pydantic-ai/typescript/package.json
index d1b203e9d..fdfcf8aa4 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.2",
+ "version": "0.0.1",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
@@ -19,18 +19,18 @@
"unlink:global": "pnpm unlink --global"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.37",
"@ag-ui/client": ">=0.0.37",
+ "@ag-ui/core": ">=0.0.37",
"rxjs": "7.8.1"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/pydantic-ai/typescript/src/index.ts b/integrations/pydantic-ai/typescript/src/index.ts
index 1232063a6..f3a3190a8 100644
--- a/integrations/pydantic-ai/typescript/src/index.ts
+++ b/integrations/pydantic-ai/typescript/src/index.ts
@@ -1,7 +1,3 @@
import { HttpAgent } from "@ag-ui/client";
-export class PydanticAIAgent extends HttpAgent {
- public override get maxVersion(): string {
- return "0.0.39";
- }
-}
+export class PydanticAIAgent extends HttpAgent {}
diff --git a/integrations/server-starter-all-features/typescript/package.json b/integrations/server-starter-all-features/typescript/package.json
index 940e76bb3..6ec4cef4b 100644
--- a/integrations/server-starter-all-features/typescript/package.json
+++ b/integrations/server-starter-all-features/typescript/package.json
@@ -26,10 +26,10 @@
},
"devDependencies": {
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/server-starter/typescript/package.json b/integrations/server-starter/typescript/package.json
index 6be0b43f4..c78d4e4b0 100644
--- a/integrations/server-starter/typescript/package.json
+++ b/integrations/server-starter/typescript/package.json
@@ -26,10 +26,10 @@
},
"devDependencies": {
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/integrations/vercel-ai-sdk/typescript/package.json b/integrations/vercel-ai-sdk/typescript/package.json
index 3a085de91..becb9b95c 100644
--- a/integrations/vercel-ai-sdk/typescript/package.json
+++ b/integrations/vercel-ai-sdk/typescript/package.json
@@ -19,22 +19,22 @@
"unlink:global": "pnpm unlink --global"
},
"peerDependencies": {
- "@ag-ui/core": ">=0.0.37",
"@ag-ui/client": ">=0.0.40",
+ "@ag-ui/core": ">=0.0.37",
"rxjs": "7.8.1"
},
"devDependencies": {
- "@ag-ui/core": "workspace:*",
"@ag-ui/client": "workspace:*",
+ "@ag-ui/core": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
},
"dependencies": {
- "ai": "^4.3.16",
- "zod": "^3.22.4"
+ "ai": "^5.0.0",
+ "zod": "^3.25.76"
}
}
diff --git a/integrations/vercel-ai-sdk/typescript/src/index.ts b/integrations/vercel-ai-sdk/typescript/src/index.ts
index e00c68234..2e1482584 100644
--- a/integrations/vercel-ai-sdk/typescript/src/index.ts
+++ b/integrations/vercel-ai-sdk/typescript/src/index.ts
@@ -18,66 +18,18 @@ import {
} from "@ag-ui/client";
import { Observable } from "rxjs";
import {
- CoreMessage,
- LanguageModelV1,
- processDataStream,
+ ModelMessage,
+ LanguageModel,
streamText,
tool as createVercelAISDKTool,
+ Tool,
ToolChoice,
ToolSet,
- FilePart,
- ImagePart,
- TextPart,
+ stepCountIs,
} 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
@@ -88,27 +40,22 @@ type ProcessedEvent =
| ToolCallStartEvent;
interface VercelAISDKAgentConfig extends AgentConfig {
- model: LanguageModelV1;
+ model: LanguageModel;
maxSteps?: number;
toolChoice?: ToolChoice>;
}
export class VercelAISDKAgent extends AbstractAgent {
- model: LanguageModelV1;
+ model: LanguageModel;
maxSteps: number;
toolChoice: ToolChoice>;
- constructor(private config: VercelAISDKAgentConfig) {
- const { model, maxSteps, toolChoice, ...rest } = config;
+ constructor({ model, maxSteps, toolChoice, ...rest }: VercelAISDKAgentConfig) {
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;
@@ -119,12 +66,15 @@ export class VercelAISDKAgent extends AbstractAgent {
runId: input.runId,
} as RunStartedEvent);
+ const toolSet = convertToolToVercelAISDKTools(input.tools);
+ const stopCondition = this.maxSteps > 0 ? stepCountIs(this.maxSteps) : undefined;
+
const response = streamText({
model: this.model,
- messages: convertMessagesToVercelAISDKMessages(input.messages),
- tools: convertToolToVerlAISDKTools(input.tools),
- maxSteps: this.maxSteps,
+ messages: convertMessagesToModelMessages(input.messages),
toolChoice: this.toolChoice,
+ ...(Object.keys(toolSet).length > 0 ? { tools: toolSet } : {}),
+ ...(stopCondition ? { stopWhen: stopCondition } : {}),
});
let messageId = randomUUID();
@@ -136,107 +86,140 @@ export class VercelAISDKAgent extends AbstractAgent {
};
finalMessages.push(assistantMessage);
- processDataStream({
- stream: response.toDataStreamResponse().body!,
- onTextPart: (text) => {
- assistantMessage.content += text;
- const event: TextMessageChunkEvent = {
- type: EventType.TEXT_MESSAGE_CHUNK,
- role: "assistant",
- messageId,
- delta: text,
- };
- subscriber.next(event);
- },
- onFinishMessagePart: () => {
- // Emit message snapshot
- const event: MessagesSnapshotEvent = {
- type: EventType.MESSAGES_SNAPSHOT,
- messages: finalMessages,
- };
- subscriber.next(event);
+ let hasCompleted = false;
+ const seenToolCallIds = new Set();
- // Emit run finished event
- subscriber.next({
- type: EventType.RUN_FINISHED,
- threadId: input.threadId,
- runId: input.runId,
- } as RunFinishedEvent);
+ const finalizeRun = () => {
+ if (hasCompleted) {
+ return;
+ }
+ hasCompleted = true;
- // Complete the observable
- subscriber.complete();
- },
- onToolCallPart(streamPart) {
- let toolCall: ToolCall = {
- id: streamPart.toolCallId,
- type: "function",
- function: {
- name: streamPart.toolName,
- arguments: JSON.stringify(streamPart.args),
- },
- };
- assistantMessage.toolCalls!.push(toolCall);
+ const snapshotEvent: MessagesSnapshotEvent = {
+ type: EventType.MESSAGES_SNAPSHOT,
+ messages: finalMessages,
+ };
+ subscriber.next(snapshotEvent);
- const startEvent: ToolCallStartEvent = {
- type: EventType.TOOL_CALL_START,
- parentMessageId: messageId,
- toolCallId: streamPart.toolCallId,
- toolCallName: streamPart.toolName,
- };
- subscriber.next(startEvent);
+ subscriber.next({
+ type: EventType.RUN_FINISHED,
+ threadId: input.threadId,
+ runId: input.runId,
+ } as RunFinishedEvent);
- const argsEvent: ToolCallArgsEvent = {
- type: EventType.TOOL_CALL_ARGS,
- toolCallId: streamPart.toolCallId,
- delta: JSON.stringify(streamPart.args),
- };
- subscriber.next(argsEvent);
+ subscriber.complete();
+ };
- const endEvent: ToolCallEndEvent = {
- type: EventType.TOOL_CALL_END,
- toolCallId: streamPart.toolCallId,
- };
- subscriber.next(endEvent);
- },
- onToolResultPart(streamPart) {
- const toolMessage: ToolMessage = {
- role: "tool",
- id: randomUUID(),
- toolCallId: streamPart.toolCallId,
- content: JSON.stringify(streamPart.result),
- };
- finalMessages.push(toolMessage);
- },
- onErrorPart(streamPart) {
- subscriber.error(streamPart);
- },
- }).catch((error) => {
- console.error("catch error", error);
- // Handle error
- subscriber.error(error);
- });
+ const processStream = async () => {
+ try {
+ for await (const part of response.fullStream) {
+ switch (part.type) {
+ case "text-delta": {
+ if (!part.text) {
+ break;
+ }
+ assistantMessage.content += part.text;
+ const event: TextMessageChunkEvent = {
+ type: EventType.TEXT_MESSAGE_CHUNK,
+ role: "assistant",
+ messageId,
+ delta: part.text,
+ };
+ subscriber.next(event);
+ break;
+ }
+ case "tool-call": {
+ if (seenToolCallIds.has(part.toolCallId)) {
+ break;
+ }
+ seenToolCallIds.add(part.toolCallId);
+ const argumentsJson = safeStringify(part.input);
+ let toolCall: ToolCall = {
+ id: part.toolCallId,
+ type: "function",
+ function: {
+ name: part.toolName,
+ arguments: argumentsJson,
+ },
+ };
+ assistantMessage.toolCalls!.push(toolCall);
+
+ const startEvent: ToolCallStartEvent = {
+ type: EventType.TOOL_CALL_START,
+ parentMessageId: messageId,
+ toolCallId: part.toolCallId,
+ toolCallName: part.toolName,
+ };
+ subscriber.next(startEvent);
+
+ const argsEvent: ToolCallArgsEvent = {
+ type: EventType.TOOL_CALL_ARGS,
+ toolCallId: part.toolCallId,
+ delta: argumentsJson,
+ };
+ subscriber.next(argsEvent);
+
+ const endEvent: ToolCallEndEvent = {
+ type: EventType.TOOL_CALL_END,
+ toolCallId: part.toolCallId,
+ };
+ subscriber.next(endEvent);
+ break;
+ }
+ case "tool-result": {
+ if (part.preliminary) {
+ break;
+ }
+ const toolMessage: ToolMessage = {
+ role: "tool",
+ id: randomUUID(),
+ toolCallId: part.toolCallId,
+ content: safeStringify(part.output),
+ };
+ finalMessages.push(toolMessage);
+ break;
+ }
+ case "tool-error": {
+ subscriber.error(part.error ?? new Error(`Tool ${part.toolName} failed`));
+ return;
+ }
+ case "error": {
+ subscriber.error(part.error ?? new Error("Stream error"));
+ return;
+ }
+ case "finish": {
+ finalizeRun();
+ return;
+ }
+ default:
+ break;
+ }
+ }
+ finalizeRun();
+ } catch (error) {
+ subscriber.error(error);
+ }
+ };
+
+ processStream();
return () => {};
});
}
}
-export function convertMessagesToVercelAISDKMessages(
- messages: Message[],
-): CoreMessage[] {
- const result: CoreMessage[] = [];
+export function convertMessagesToModelMessages(messages: Message[]): ModelMessage[] {
+ const result: ModelMessage[] = [];
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",
toolCallId: toolCall.id,
toolName: toolCall.function.name,
- args: JSON.parse(toolCall.function.arguments),
+ input: JSON.parse(toolCall.function.arguments),
});
}
result.push({
@@ -246,7 +229,7 @@ export function convertMessagesToVercelAISDKMessages(
} else if (message.role === "user") {
result.push({
role: "user",
- content: toVercelUserContent(message.content),
+ content: message.content || "",
});
} else if (message.role === "tool") {
let toolName = "unknown";
@@ -267,7 +250,7 @@ export function convertMessagesToVercelAISDKMessages(
type: "tool-result",
toolCallId: message.toolCallId,
toolName: toolName,
- result: message.content,
+ output: parseToolMessageContent(message.content),
},
],
});
@@ -277,12 +260,9 @@ export function convertMessagesToVercelAISDKMessages(
return result;
}
-export function convertJsonSchemaToZodSchema(
- jsonSchema: any,
- required: boolean,
-): z.ZodSchema {
+export function convertJsonSchemaToZodSchema(jsonSchema: any, required: boolean): z.ZodTypeAny {
if (jsonSchema.type === "object") {
- const spec: { [key: string]: z.ZodSchema } = {};
+ const spec: Record = {};
if (!jsonSchema.properties || !Object.keys(jsonSchema.properties).length) {
return !required ? z.object(spec).optional() : z.object(spec);
@@ -313,17 +293,42 @@ export function convertJsonSchemaToZodSchema(
throw new Error("Invalid JSON schema");
}
-export function convertToolToVerlAISDKTools(
- tools: RunAgentInput["tools"],
-): ToolSet {
- return tools.reduce(
- (acc: ToolSet, tool: RunAgentInput["tools"][number]) => ({
- ...acc,
- [tool.name]: createVercelAISDKTool({
- description: tool.description,
- parameters: convertJsonSchemaToZodSchema(tool.parameters, true),
- }),
- }),
- {},
- );
+export function convertToolToVercelAISDKTools(tools: RunAgentInput["tools"]): ToolSet {
+ const toolSet: Record = {};
+
+ for (const tool of tools) {
+ const inputSchema = convertJsonSchemaToZodSchema(tool.parameters, true) as z.ZodTypeAny;
+ const toolDefinition = {
+ description: tool.description,
+ inputSchema,
+ outputSchema: z.any(),
+ } as unknown;
+ toolSet[tool.name] = createVercelAISDKTool(toolDefinition as any);
+ }
+
+ return toolSet as ToolSet;
+}
+
+function safeStringify(value: unknown): string {
+ if (typeof value === "string") {
+ return value;
+ }
+ try {
+ return JSON.stringify(value ?? {});
+ } catch {
+ return JSON.stringify({ value: String(value) });
+ }
+}
+
+function parseToolMessageContent(content: string) {
+ if (!content) {
+ return { type: "text" as const, value: "" };
+ }
+
+ try {
+ const parsed = JSON.parse(content);
+ return { type: "json" as const, value: parsed };
+ } catch {
+ return { type: "text" as const, value: content };
+ }
}
diff --git a/middlewares/a2a-middleware/package.json b/middlewares/a2a-middleware/package.json
index 39f2cf91d..2a1ee8fcc 100644
--- a/middlewares/a2a-middleware/package.json
+++ b/middlewares/a2a-middleware/package.json
@@ -19,9 +19,9 @@
"unlink:global": "pnpm unlink --global"
},
"dependencies": {
- "@a2a-js/sdk": "^0.2.2",
- "ai": "^4.3.16",
- "zod": "^3.22.4"
+ "@a2a-js/sdk": "^0.2.5",
+ "ai": "^5.0.0",
+ "zod": "^3.25.76"
},
"peerDependencies": {
"@ag-ui/client": ">=0.0.40",
@@ -30,10 +30,10 @@
"devDependencies": {
"@ag-ui/client": "workspace:*",
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/middlewares/a2a-middleware/src/index.ts b/middlewares/a2a-middleware/src/index.ts
index 3ddc5f8bb..7e5b90e16 100644
--- a/middlewares/a2a-middleware/src/index.ts
+++ b/middlewares/a2a-middleware/src/index.ts
@@ -16,11 +16,7 @@ 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";
@@ -41,9 +37,7 @@ 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;
}
@@ -79,11 +73,7 @@ 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
@@ -104,11 +94,7 @@ 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
@@ -116,9 +102,7 @@ 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);
@@ -155,19 +139,14 @@ 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) => {
@@ -216,12 +195,7 @@ 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);
@@ -259,10 +233,7 @@ 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") {
@@ -279,21 +250,13 @@ 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) => {
@@ -326,11 +289,7 @@ 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);
@@ -346,12 +305,6 @@ 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/middlewares/middleware-starter/package.json b/middlewares/middleware-starter/package.json
index 7a13b4419..a61fa3538 100644
--- a/middlewares/middleware-starter/package.json
+++ b/middlewares/middleware-starter/package.json
@@ -26,10 +26,10 @@
},
"devDependencies": {
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/package.json b/package.json
index ec3d2bda9..61ec3fdd0 100644
--- a/package.json
+++ b/package.json
@@ -13,20 +13,29 @@
"check-types": "turbo run check-types",
"test": "turbo run test",
"create-integration": "pnpm dlx tsx create-integration.ts",
- "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/*'",
+ "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/*'",
"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='./sdks/typescript/packages/*' --tag alpha"
+ "publish:alpha": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --no-git-checks --filter='./packages/*' --tag alpha"
},
"devDependencies": {
- "prettier": "^3.5.3",
- "turbo": "^2.4.4",
+ "prettier": "^3.6.2",
+ "turbo": "^2.5.8",
"typescript": "5.8.2"
},
"packageManager": "pnpm@10.13.1",
"engines": {
"node": ">=18"
},
- "version": "0.0.1"
+ "version": "0.0.1",
+ "pnpm": {
+ "overrides": {
+ "@copilotkit/runtime>openai": "^5.12.2",
+ "@browserbasehq/stagehand>openai": "^4.62.1",
+ "@mastra/core>ai": "5.0.59",
+ "@openrouter/ai-sdk-provider>ai": "5.0.59",
+ "ai": "5.0.59"
+ }
+ }
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 0758e2016..69110f6a5 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,15 +4,22 @@ settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
+overrides:
+ '@copilotkit/runtime>openai': ^5.12.2
+ '@browserbasehq/stagehand>openai': ^4.62.1
+ '@mastra/core>ai': 5.0.59
+ '@openrouter/ai-sdk-provider>ai': 5.0.59
+ ai: 5.0.59
+
importers:
.:
devDependencies:
prettier:
- specifier: ^3.5.3
+ specifier: ^3.6.2
version: 3.6.2
turbo:
- specifier: ^2.4.4
+ specifier: ^2.5.8
version: 2.5.8
typescript:
specifier: 5.8.2
@@ -34,44 +41,38 @@ importers:
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)
+ version: 0.10.18(openapi-types@12.1.3)(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)
+ version: 0.12.1(openapi-types@12.1.3)(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))
+ version: 0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(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))
+ version: 0.10.5(@mastra/core@0.12.1(openapi-types@12.1.3)(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)
+ version: 0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(zod@3.25.76))
open:
- specifier: ^10.1.2
+ specifier: ^10.2.0
version: 10.2.0
zod:
- specifier: ^3.22.4
+ specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@types/node':
- specifier: ^20
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
tsx:
- specifier: ^4.7.0
+ specifier: ^4.20.6
version: 4.20.6
typescript:
- specifier: ^5
+ specifier: ^5.9.3
version: 5.9.3
apps/dojo:
dependencies:
- '@a2a-js/sdk':
- specifier: 0.2.5
- version: 0.2.5
- '@ag-ui/a2a':
- specifier: workspace:*
- version: link:../../integrations/a2a/typescript
'@ag-ui/a2a-middleware':
specifier: workspace:*
version: link:../../middlewares/a2a-middleware
@@ -124,95 +125,98 @@ importers:
specifier: workspace:*
version: link:../../integrations/vercel-ai-sdk/typescript
'@ai-sdk/openai':
- specifier: ^2.0.42
- version: 2.0.52(zod@3.25.76)
+ specifier: ^2.0.57
+ version: 2.0.57(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)
+ specifier: 0.0.0-feat-cpk-1-5-20251107155707
+ version: 0.0.0-feat-cpk-1-5-20251107155707(@copilotkitnext/core@0.0.21)(@copilotkitnext/react@0.0.21(@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))(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@3.25.76)
'@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)
+ specifier: 0.0.0-feat-cpk-1-5-20251107155707
+ version: 0.0.0-feat-cpk-1-5-20251107155707(@copilotkitnext/core@0.0.21)(@copilotkitnext/react@0.0.21(@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))(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@3.25.76)
'@copilotkit/runtime':
- specifier: 1.10.6
- version: 1.10.6(iqshwn2xropb3vpfei3flnb2ay)
+ specifier: 0.0.0-feat-cpk-1-5-20251107155707
+ version: 0.0.0-feat-cpk-1-5-20251107155707(11e8d990ef61bbafaa75597e5e9ed522)
'@copilotkit/runtime-client-gql':
- specifier: 1.10.6
- version: 1.10.6(graphql@16.11.0)(react@19.2.0)
+ specifier: 0.0.0-feat-cpk-1-5-20251107155707
+ version: 0.0.0-feat-cpk-1-5-20251107155707(graphql@16.11.0)(react@19.2.0)
'@copilotkit/shared':
- specifier: 1.10.6
- version: 1.10.6
- '@copilotkitnext/agent':
- specifier: 0.0.19-alpha.0
- version: 0.0.19-alpha.0
+ specifier: 0.0.0-feat-cpk-1-5-20251107155707
+ version: 0.0.0-feat-cpk-1-5-20251107155707
+ '@copilotkitnext/core':
+ specifier: 0.0.21
+ version: 0.0.21
'@copilotkitnext/react':
- specifier: 0.0.19-alpha.0
- version: 0.0.19-alpha.0(@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)
+ specifier: 0.0.21
+ version: 0.0.21(@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)
'@copilotkitnext/runtime':
- specifier: 0.0.19-alpha.0
- version: 0.0.19-alpha.0(openai@4.104.0(ws@8.18.3)(zod@3.25.76))
+ specifier: 0.0.21
+ version: 0.0.21(openai@5.12.2(ws@8.18.3)(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)
+ specifier: ^0.16.8
+ version: 0.16.8(openapi-types@12.1.3)(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)
+ specifier: ^0.23.3
+ version: 0.23.3(openapi-types@12.1.3)(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))
+ specifier: ^0.15.9
+ version: 0.15.9(@mastra/core@0.23.3(openapi-types@12.1.3)(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))
+ specifier: '^0.16.1 '
+ version: 0.16.1(@mastra/core@0.23.3(openapi-types@12.1.3)(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))
+ specifier: ^0.10.18
+ version: 0.10.18(@mastra/core@0.23.3(openapi-types@12.1.3)(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)
+ specifier: ^0.15.10
+ version: 0.15.10(@mastra/core@0.23.3(openapi-types@12.1.3)(zod@3.25.76))(zod@3.25.76)
'@mdx-js/loader':
- specifier: ^3.1.0
+ specifier: ^3.1.1
version: 3.1.1
'@mdx-js/mdx':
- specifier: ^3.1.0
+ specifier: ^3.1.1
version: 3.1.1
'@mdx-js/react':
- specifier: ^3.1.0
+ specifier: ^3.1.1
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))
+ specifier: ^15.5.6
+ version: 15.5.6(@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
+ specifier: ^2.1.16
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
+ specifier: ^1.1.13
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)))
+ specifier: ^2.27.0
+ version: 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/extension-text-style@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0)))
'@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)
+ specifier: ^2.27.0
+ version: 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
'@tiptap/pm':
- specifier: ^2.11.5
- version: 2.26.3
+ specifier: ^2.27.0
+ version: 2.27.0
'@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)
+ specifier: ^2.27.0
+ version: 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@tiptap/starter-kit':
- specifier: ^2.11.5
- version: 2.26.3
+ specifier: ^2.27.0
+ version: 2.27.0
'@types/react-syntax-highlighter':
specifier: ^15.5.13
version: 15.5.13
+ ai:
+ specifier: 5.0.59
+ version: 5.0.59(zod@3.25.76)
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@@ -250,29 +254,29 @@ importers:
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)
+ specifier: ^5.9.0
+ version: 5.12.2(ws@8.18.3)(zod@3.25.76)
react:
- specifier: ^19.0.0
+ specifier: ^19.2.0
version: 19.2.0
react-dom:
- specifier: ^19.0.0
+ specifier: ^19.2.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
+ specifier: ^15.6.6
version: 15.6.6(react@19.2.0)
rxjs:
specifier: 7.8.1
version: 7.8.1
tailwind-merge:
- specifier: ^3.3.0
+ specifier: ^3.3.1
version: 3.3.1
tailwindcss-animate:
specifier: ^1.0.7
- version: 1.0.7(tailwindcss@4.1.14)
+ version: 1.0.7(tailwindcss@4.1.16)
untruncate-json:
specifier: ^0.0.1
version: 0.0.1
@@ -280,92 +284,58 @@ importers:
specifier: ^11.1.0
version: 11.1.0
zod:
- specifier: ^3.25.67
+ specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@eslint/eslintrc':
- specifier: ^3
+ specifier: ^3.3.1
version: 3.3.1
'@shadcn/ui':
specifier: ^0.0.4
version: 0.0.4
'@tailwindcss/postcss':
- specifier: ^4
- version: 4.1.14
+ specifier: ^4.1.16
+ version: 4.1.16
'@tailwindcss/typography':
- specifier: ^0.5.16
- version: 0.5.19(tailwindcss@4.1.14)
+ specifier: ^0.5.19
+ version: 0.5.19(tailwindcss@4.1.16)
'@types/diff':
- specifier: ^7.0.1
+ specifier: ^7.0.2
version: 7.0.2
'@types/markdown-it':
specifier: ^14.1.2
version: 14.1.2
'@types/node':
- specifier: ^20
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
'@types/react':
- specifier: ^19
+ specifier: ^19.2.2
version: 19.2.2
'@types/react-dom':
- specifier: ^19
+ specifier: ^19.2.2
version: 19.2.2(@types/react@19.2.2)
concurrently:
- specifier: ^9.2.0
+ specifier: ^9.2.1
version: 9.2.1
eslint:
- specifier: ^9
- version: 9.37.0(jiti@2.6.1)
+ specifier: ^9.38.0
+ version: 9.38.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)
+ version: 15.2.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
tailwindcss:
- specifier: ^4
- version: 4.1.14
+ specifier: ^4.1.16
+ version: 4.1.16
tsx:
- specifier: ^4.7.0
+ specifier: ^4.20.6
version: 4.20.6
typescript:
- specifier: ^5
+ specifier: ^5.9.3
version: 5.9.3
wait-port:
specifier: ^1.1.0
version: 1.1.0
- integrations/a2a/typescript:
- dependencies:
- '@a2a-js/sdk':
- specifier: ^0.2.2
- version: 0.2.5
- 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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(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/adk-middleware/typescript:
dependencies:
rxjs:
@@ -379,13 +349,13 @@ importers:
specifier: workspace:*
version: link:../../../sdks/typescript/packages/core
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
integrations/agno/typescript:
@@ -404,19 +374,19 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
integrations/community/spring-ai/typescript:
@@ -435,19 +405,19 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
integrations/crew-ai/typescript:
@@ -466,29 +436,29 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.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(zod@3.25.76))
+ specifier: ^0.3.79
+ version: 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ specifier: ^0.1.10
+ version: 0.1.10(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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
@@ -506,19 +476,19 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
integrations/llama-index/typescript:
@@ -537,32 +507,32 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
integrations/mastra/typescript:
dependencies:
'@ai-sdk/ui-utils':
- specifier: ^1.1.19
+ specifier: ^1.2.11
version: 1.2.11(zod@3.25.76)
'@copilotkit/runtime':
specifier: ^1.10.5
- version: 1.10.6(jkrvcwfv2zltibfgwihn5nuqn4)
+ version: 1.10.6(fd98da3164a8f33e40360d9abc7c5d40)
'@mastra/client-js':
- specifier: ^0.15.2
- version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
+ specifier: ^0.16.8
+ version: 0.16.8(openapi-types@12.1.3)(zod@3.25.76)
rxjs:
specifier: 7.8.1
version: 7.8.1
@@ -577,59 +547,62 @@ importers:
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)
+ specifier: ^0.23.3
+ version: 0.23.3(openapi-types@12.1.3)(zod@3.25.76)
'@types/jest':
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.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)
+ specifier: ^2.0.57
+ version: 2.0.57(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)
+ version: 0.15.2(openapi-types@12.1.3)(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)
+ version: 0.20.2(openapi-types@12.1.3)(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))
+ specifier: ^0.15.2
+ version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(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))
+ specifier: ^0.10.18
+ version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(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)
+ specifier: ^0.15.10
+ version: 0.15.10(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(zod@3.25.76)
+ ai:
+ specifier: 5.0.59
+ version: 5.0.59(zod@3.25.76)
zod:
- specifier: ^3.25.48
+ specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@types/node':
- specifier: ^22.15.29
- version: 22.18.10
+ specifier: ^22.18.13
+ version: 22.18.13
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)
+ version: 0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(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
+ specifier: ^5.9.3
version: 5.9.3
integrations/pydantic-ai/typescript:
@@ -648,19 +621,19 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
integrations/server-starter-all-features/typescript:
@@ -676,19 +649,19 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
integrations/server-starter/typescript:
@@ -704,31 +677,31 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.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)
+ specifier: 5.0.59
+ version: 5.0.59(zod@3.25.76)
rxjs:
specifier: 7.8.1
version: 7.8.1
zod:
- specifier: ^3.22.4
+ specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@ag-ui/client':
@@ -741,34 +714,34 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
middlewares/a2a-middleware:
dependencies:
'@a2a-js/sdk':
- specifier: ^0.2.2
+ specifier: ^0.2.5
version: 0.2.5
ai:
- specifier: ^4.3.16
- version: 4.3.19(react@19.2.0)(zod@3.25.76)
+ specifier: 5.0.59
+ version: 5.0.59(zod@3.25.76)
rxjs:
specifier: 7.8.1
version: 7.8.1
zod:
- specifier: ^3.22.4
+ specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@ag-ui/client':
@@ -778,19 +751,19 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
middlewares/middleware-starter:
@@ -806,25 +779,25 @@ importers:
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
sdks/typescript/packages/cli:
dependencies:
'@types/inquirer':
- specifier: ^9.0.8
+ specifier: ^9.0.9
version: 9.0.9
commander:
specifier: ^12.1.0
@@ -833,26 +806,26 @@ importers:
specifier: 2.0.0
version: 2.0.0
inquirer:
- specifier: ^12.6.3
- version: 12.10.0(@types/node@20.19.21)
+ specifier: ^12.10.0
+ version: 12.10.0(@types/node@20.19.24)
devDependencies:
'@types/jest':
specifier: ^29.5.14
version: 29.5.14
'@types/node':
- specifier: ^20.11.19
- version: 20.19.21
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
sdks/typescript/packages/client:
@@ -869,9 +842,6 @@ importers:
'@types/uuid':
specifier: ^10.0.0
version: 10.0.0
- compare-versions:
- specifier: ^6.1.1
- version: 6.1.1
fast-json-patch:
specifier: ^3.1.1
version: 3.1.1
@@ -885,26 +855,26 @@ importers:
specifier: ^11.1.0
version: 11.1.0
zod:
- specifier: ^3.22.4
+ specifier: ^3.25.76
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
+ specifier: ^20.19.24
+ version: 20.19.24
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(typescript@5.9.3)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
sdks/typescript/packages/core:
@@ -913,23 +883,23 @@ importers:
specifier: 7.8.1
version: 7.8.1
zod:
- specifier: ^3.22.4
+ specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@types/jest':
- specifier: ^29.5.12
+ specifier: ^29.5.14
version: 29.5.14
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
sdks/typescript/packages/encoder:
@@ -942,19 +912,19 @@ importers:
version: link:../proto
devDependencies:
'@types/jest':
- specifier: ^29.5.12
+ specifier: ^29.5.14
version: 29.5.14
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
sdks/typescript/packages/proto:
@@ -963,8 +933,8 @@ importers:
specifier: workspace:*
version: link:../core
'@bufbuild/protobuf':
- specifier: ^2.2.5
- version: 2.9.0
+ specifier: ^2.10.0
+ version: 2.10.0
'@protobuf-ts/protoc':
specifier: ^2.11.1
version: 2.11.1
@@ -977,18 +947,18 @@ importers:
version: 29.5.14
jest:
specifier: ^29.7.0
- version: 29.7.0(@types/node@20.19.21)
+ version: 29.7.0(@types/node@20.19.24)
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)
+ specifier: ^29.4.5
+ version: 29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3)
ts-proto:
- specifier: ^2.7.0
- version: 2.7.7
+ specifier: ^2.8.2
+ version: 2.8.2
tsup:
- specifier: ^8.0.2
+ specifier: ^8.5.0
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
+ specifier: ^5.9.3
version: 5.9.3
packages:
@@ -1008,8 +978,8 @@ packages:
'@ag-ui/client@0.0.35':
resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==}
- '@ag-ui/client@0.0.40-alpha.10':
- resolution: {integrity: sha512-b1hcS1+nMzsNSSt4E3tryFD4Bd9DQqcqYg0R1CeD9dx4bbDg2cF0sjtUBDpbAQ6N3l4438VranGE9Sj+UozUBg==}
+ '@ag-ui/client@0.0.40-alpha.11':
+ resolution: {integrity: sha512-n04KBxlAdsUhAtD6aa5B9Y779fRrnDMNAb22EGm/L60eHhvocVEqztqb05+s84bSnVhncoX7aD2Da8Y3B+kjew==}
'@ag-ui/core@0.0.35':
resolution: {integrity: sha512-YAqrln3S3fdo+Hs5FFQPODXiBttyilv/E3xSSHCuxqC0Y/Fp3+VqyDx97BorO3NVp2VKZ9cG2nsO3cbmcTwkQw==}
@@ -1017,33 +987,24 @@ packages:
'@ag-ui/core@0.0.37':
resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==}
- '@ag-ui/core@0.0.40-alpha.10':
- resolution: {integrity: sha512-VczUym5UTwVdvJPD95z4cqSEnrygjINqrqZX4ru1gnNlf8PPmhElNPdE/ZiFEgmZAXaxzK6rI+LB6iDx5NltQA==}
-
'@ag-ui/core@0.0.40-alpha.11':
resolution: {integrity: sha512-zGOl1NSF3QOgHCniu58BeicIuCRPiuxQFmDFXb5asciI60LLM9GdF+E58EwUczMsq/+ouK5lNp9lKdrduiURWg==}
'@ag-ui/encoder@0.0.35':
resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==}
- '@ag-ui/encoder@0.0.40-alpha.10':
- resolution: {integrity: sha512-aoBhFIcX+SGWzvw/FAK4+mHY6NIz5YA7DchjRCBWAyAGWrdSEObKRgPRifahOrl3hhKgSZo0MYwOin9Q33B+rg==}
-
'@ag-ui/encoder@0.0.40-alpha.11':
resolution: {integrity: sha512-T/sLvCIpDK2H7I3/XI3Sa8kMRBuvpZTs+zRJfcpFyzLWfDbqovOXLACmMeruap7tlmk2IPXcY9CVUmJsQPBwjw==}
- '@ag-ui/langgraph@0.0.19-alpha.1':
- resolution: {integrity: sha512-rX8Y4LSxTXWUMFzCspO0c42b6YWGTuciP69Okrh7Lw3kpGsmFq/zmXoBLFz654Yuii2zLHl5mZvkBJ5a3nI6lA==}
+ '@ag-ui/langgraph@0.0.18':
+ resolution: {integrity: sha512-soWSV8+xR91jMArZUJoRv85UCgTi3Zt3u3gTMZhvs1t6fGFpAi6+hEQ4AqP13Rgvg90IlmIU8MTWo2k0OZDnoA==}
peerDependencies:
- '@ag-ui/client': 0.0.40-alpha.7
- '@ag-ui/core': 0.0.40-alpha.7
+ '@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.40-alpha.10':
- resolution: {integrity: sha512-d7FzAIjWyQzaMEZyMkTMgIyW+qK7LUg2T/MpjAGqWjjcrWGk2Zh6DU/rNMwMbYnK/YlXS3Ljo5a5gI95SrLS+Q==}
-
'@ag-ui/proto@0.0.40-alpha.11':
resolution: {integrity: sha512-AlPaBBDdVAl8ZAu6fW/knFI4XDmSQJHDy6ADi+va8Hx4oPcG7cI9WhBaEVqETDLqhglRrFfGMt7KeQL+1NMo8Q==}
@@ -1053,24 +1014,66 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
+ '@ai-sdk/anthropic@2.0.33':
+ resolution: {integrity: sha512-egqr9PHqqX2Am5mn/Xs1C3+1/wphVKiAjpsVpW85eLc2WpW7AgiAg52DCBr4By9bw3UVVuMeR4uEO1X0dKDUDA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
+ '@ai-sdk/anthropic@2.0.39':
+ resolution: {integrity: sha512-8YckXsPN9e0NfU4zZvP23xCIKNESyYb1Y/xVllI1fZ+uVsd/shoz2zplbeGVQHPjXHWfY9aT5tF98Lp920HDIQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
+ '@ai-sdk/gateway@1.0.32':
+ resolution: {integrity: sha512-TQRIM63EI/ccJBc7RxeB8nq/CnGNnyl7eu5stWdLwL41stkV5skVeZJe0QRvFbaOrwCkgUVE0yrUqJi4tgDC1A==}
+ 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/gateway@2.0.0':
+ resolution: {integrity: sha512-Gj0PuawK7NkZuyYgO/h5kDK/l6hFOjhLdTq3/Lli1FTl47iGmwhH1IZQpAL3Z09BeFYWakcwUmn02ovIm2wy9g==}
+ 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/google@2.0.23':
+ resolution: {integrity: sha512-VbCnKR+6aWUVLkAiSW5gUEtST7KueEmlt+d6qwDikxlLnFG9pzy59je8MiDVeM5G2tuSXbvZQF78PGIfXDBmow==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
+ '@ai-sdk/google@2.0.25':
+ resolution: {integrity: sha512-tH2rA3428jnY6COoPfKB/BoQMs57sv9t+PEdyIB9ePtlV9dnVUbfKcdKoEcAaVffNZ6pzk8otrQYnu67pyn8TQ==}
+ 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-compatible@1.0.22':
+ resolution: {integrity: sha512-Q+lwBIeMprc/iM+vg1yGjvzRrp74l316wDpqWdbmd4VXXlllblzGsUgBLTeKvcEapFTgqk0FRETvSb58Y6dsfA==}
+ 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'}
@@ -1083,8 +1086,14 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
- '@ai-sdk/openai@2.0.52':
- resolution: {integrity: sha512-n1arAo4+63e6/FFE6z/1ZsZbiOl4cfsoZ3F4i2X7LPIEea786Y2yd7Qdr7AdB4HTLVo3OSb1PHVIcQmvYIhmEA==}
+ '@ai-sdk/openai@2.0.53':
+ resolution: {integrity: sha512-GIkR3+Fyif516ftXv+YPSPstnAHhcZxNoR2s8uSHhQ1yBT7I7aQYTVwpjAuYoT3GR+TeP50q7onj2/nDRbT2FQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
+ '@ai-sdk/openai@2.0.57':
+ resolution: {integrity: sha512-ad2e4Ah9KdLnchMcWFv2FfU1JCwm50b3+UZq2VhkO8qLYEh2kh/aVQomZyAsIbx5ft5nOv2KmDwZrefXkeKttQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
@@ -1107,6 +1116,12 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
+ '@ai-sdk/provider-utils@3.0.14':
+ resolution: {integrity: sha512-CYRU6L7IlR7KslSBVxvlqlybQvXJln/PI57O8swhOaDIURZbjRP2AY3igKgUsrmWqqnFFUHP+AwTN8xqJAknnA==}
+ 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'}
@@ -1115,16 +1130,6 @@ packages:
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'}
@@ -1137,6 +1142,12 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
+ '@ai-sdk/xai@2.0.26':
+ resolution: {integrity: sha512-+VtaLZSxmoKnNeJGM9bbtbZ3QMkPFlBB4N8prngbrSnvU/hG8cNdvvSBW/rIk6/DHrc2R8nFntNIBQoIRuBdQw==}
+ 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'}
@@ -1181,139 +1192,139 @@ packages:
'@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==}
+ '@aws-sdk/client-bedrock-agent-runtime@3.919.0':
+ resolution: {integrity: sha512-5fuFijmJw1SkFTzo0sg8e/2e+8j7I3FbZpfoUt29vuhvqp+avN5cZCGRF0JbezS9chDQm1wW3gPwhS4WBUUbSw==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-bedrock-runtime@3.910.0':
- resolution: {integrity: sha512-qWzvNFuv0fZWvc5cpMm2S5CRsn5EKUeqb3OL8PAVk4QPSJmFnX3RMlELxnd4+o1mvpYNs6fxwjEHN0SYPBFdPw==}
+ '@aws-sdk/client-bedrock-runtime@3.919.0':
+ resolution: {integrity: sha512-l1jcUNAhoBDaV+2mte1hRr1qjF9D6uRXXPfqp8pKToXcoGTQUo/piEBFYpmgZ5wmBZGnU4zk5WQ6u4mlK8gJdg==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-dynamodb@3.910.0':
- resolution: {integrity: sha512-taIbikBDq1J3e6Hk1YIe3736l2Ep0blzY5JRuNnXeh1xJxnINaWH3BQW0w+OXmNThV/LRYruOru6+QAd2BekmA==}
+ '@aws-sdk/client-dynamodb@3.919.0':
+ resolution: {integrity: sha512-RXIebz/xPJN0Sl00FX5dVElHAuWOmHN3c5JyuC72h4kXeDpULPa+I1rFdZ458+FequaLt4JGk7unrT7QO2noCA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-kendra@3.910.0':
- resolution: {integrity: sha512-hzSspLIBXWYk1iqKV5oNNbtF3CP0so5hPXAuOcGHysv+OIV+L98moUH4oYBMWeaGCjBZixE0+W3xHQS1VG8k7A==}
+ '@aws-sdk/client-kendra@3.919.0':
+ resolution: {integrity: sha512-I0EozSt0DBibgCSfTgPHCI6zN56wRoiysOA4CWch9Qfj2Hfg0TXLxKZR8csSRs8ERIHIHj4PmuAwZjsroqUTaA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/client-sso@3.910.0':
- resolution: {integrity: sha512-oEWXhe2RHiSPKxhrq1qp7M4fxOsxMIJc4d75z8tTLLm5ujlmTZYU3kd0l2uBBaZSlbkrMiefntT6XrGint1ibw==}
+ '@aws-sdk/client-sso@3.919.0':
+ resolution: {integrity: sha512-9DVw/1DCzZ9G7Jofnhpg/XDC3wdJ3NAJdNWY1TrgE5ZcpTM+UTIQMGyaljCv9rgxggutHBgmBI5lP3YMcPk9ZQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/core@3.910.0':
- resolution: {integrity: sha512-b/FVNyPxZMmBp+xDwANDgR6o5Ehh/RTY9U/labH56jJpte196Psru/FmQULX3S6kvIiafQA9JefWUq81SfWVLg==}
+ '@aws-sdk/core@3.916.0':
+ resolution: {integrity: sha512-1JHE5s6MD5PKGovmx/F1e01hUbds/1y3X8rD+Gvi/gWVfdg5noO7ZCerpRsWgfzgvCMZC9VicopBqNHCKLykZA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-env@3.910.0':
- resolution: {integrity: sha512-Os8I5XtTLBBVyHJLxrEB06gSAZeFMH2jVoKhAaFybjOTiV7wnjBgjvWjRfStnnXs7p9d+vc/gd6wIZHjony5YQ==}
+ '@aws-sdk/credential-provider-env@3.916.0':
+ resolution: {integrity: sha512-3gDeqOXcBRXGHScc6xb7358Lyf64NRG2P08g6Bu5mv1Vbg9PKDyCAZvhKLkG7hkdfAM8Yc6UJNhbFxr1ud/tCQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-http@3.910.0':
- resolution: {integrity: sha512-3KiGsTlqMnvthv90K88Uv3SvaUbmcTShBIVWYNaHdbrhrjVRR08dm2Y6XjQILazLf1NPFkxUou1YwCWK4nae1Q==}
+ '@aws-sdk/credential-provider-http@3.916.0':
+ resolution: {integrity: sha512-NmooA5Z4/kPFJdsyoJgDxuqXC1C6oPMmreJjbOPqcwo6E/h2jxaG8utlQFgXe5F9FeJsMx668dtxVxSYnAAqHQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-ini@3.910.0':
- resolution: {integrity: sha512-/8x9LKKaLGarvF1++bFEFdIvd9/djBb+HTULbJAf4JVg3tUlpHtGe7uquuZaQkQGeW4XPbcpB9RMWx5YlZkw3w==}
+ '@aws-sdk/credential-provider-ini@3.919.0':
+ resolution: {integrity: sha512-fAWVfh0P54UFbyAK4tmIPh/X3COFAyXYSp8b2Pc1R6GRwDDMvrAigwGJuyZS4BmpPlXij1gB0nXbhM5Yo4MMMA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-node@3.910.0':
- resolution: {integrity: sha512-Zz5tF/U4q9ir3rfVnPLlxbhMTHjPaPv78TarspFYn9mNN7cPVXBaXVVnMNu6ypZzBdTB8M44UYo827Qcw3kouA==}
+ '@aws-sdk/credential-provider-node@3.919.0':
+ resolution: {integrity: sha512-GL5filyxYS+eZq8ZMQnY5hh79Wxor7Rljo0SUJxZVwEj8cf3zY0MMuwoXU1HQrVabvYtkPDOWSreX8GkIBtBCw==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-process@3.910.0':
- resolution: {integrity: sha512-l1lZfHIl/z0SxXibt7wMQ2HmRIyIZjlOrT6a554xlO//y671uxPPwScVw7QW4fPIvwfmKbl8dYCwGI//AgQ0bA==}
+ '@aws-sdk/credential-provider-process@3.916.0':
+ resolution: {integrity: sha512-SXDyDvpJ1+WbotZDLJW1lqP6gYGaXfZJrgFSXIuZjHb75fKeNRgPkQX/wZDdUvCwdrscvxmtyJorp2sVYkMcvA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-sso@3.910.0':
- resolution: {integrity: sha512-cwc9bmomjUqPDF58THUCmEnpAIsCFV3Y9FHlQmQbMkYUm7Wlrb5E2iFrZ4WDefAHuh25R/gtj+Yo74r3gl9kbw==}
+ '@aws-sdk/credential-provider-sso@3.919.0':
+ resolution: {integrity: sha512-oN1XG/frOc2K2KdVwRQjLTBLM1oSFJLtOhuV/6g9N0ASD+44uVJai1CF9JJv5GjHGV+wsqAt+/Dzde0tZEXirA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/credential-provider-web-identity@3.910.0':
- resolution: {integrity: sha512-HFQgZm1+7WisJ8tqcZkNRRmnoFO+So+L12wViVxneVJ+OclfL2vE/CoKqHTozP6+JCOKMlv6Vi61Lu6xDtKdTA==}
+ '@aws-sdk/credential-provider-web-identity@3.919.0':
+ resolution: {integrity: sha512-Wi7RmyWA8kUJ++/8YceC7U5r4LyvOHGCnJLDHliP8rOC8HLdSgxw/Upeq3WmC+RPw1zyGOtEDRS/caop2xLXEA==}
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==}
+ '@aws-sdk/eventstream-handler-node@3.914.0':
+ resolution: {integrity: sha512-S4Zf+N6xrfQk0Fox+eWftbSqlXh9DUPjuXSbFXwneP7yEJ0+KbbRFsci84MQapNKa5IPb+Kt/li5i7Zp9B4qIw==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/lib-dynamodb@3.910.0':
- resolution: {integrity: sha512-ltGlB9p57RTHuyKBci5siNb92iq43kWd4EwwIIgPyADjgjcRIZcSbyAhB9eBdb2aX0IqsDpPUyBz7iAsOzOffQ==}
+ '@aws-sdk/lib-dynamodb@3.919.0':
+ resolution: {integrity: sha512-mfHe5Qa/QZA2h/LhlyOII5gbFnmyDNfhogApM5NgPhzz3cfsrwr3+NYR+FHVs6zrdefb+5abq6jaK+bid/QxtQ==}
engines: {node: '>=18.0.0'}
peerDependencies:
- '@aws-sdk/client-dynamodb': ^3.910.0
+ '@aws-sdk/client-dynamodb': ^3.919.0
- '@aws-sdk/middleware-endpoint-discovery@3.910.0':
- resolution: {integrity: sha512-KZvTt8lUUhkQptu00iSSdf5+6h6NP3L5tP251/4FRh9XDXMdpIoAAGsmamhVySkUSODDaALMHjXPSK5SJq/RYw==}
+ '@aws-sdk/middleware-endpoint-discovery@3.914.0':
+ resolution: {integrity: sha512-kXz1jS8/NL//RkMtbgJHdD9BQWQB3G4NRzChaQBTibApIBzfVzssR/uq9XWRgMCof6lMJJhKoM0BoOfvvP5zsQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/middleware-eventstream@3.910.0':
- resolution: {integrity: sha512-zeV4DVypzV+77AQ7sqVfKacVWFBM2HVBVORZ4PnCjToCg1BQgw39IDVtklF1/Fs+mmGp4dJdTlJ7TKBCqBNdhw==}
+ '@aws-sdk/middleware-eventstream@3.914.0':
+ resolution: {integrity: sha512-KsMYBpzCAs2QBjjaZXVj5mM9/QXoC0qBnxjeOZIkZGU68ZIq0ZOsEkCB5tCPfQkghIwd30HMRktPSGOvevl34g==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/middleware-host-header@3.910.0':
- resolution: {integrity: sha512-F9Lqeu80/aTM6S/izZ8RtwSmjfhWjIuxX61LX+/9mxJyEkgaECRxv0chsLQsLHJumkGnXRy/eIyMLBhcTPF5vg==}
+ '@aws-sdk/middleware-host-header@3.914.0':
+ resolution: {integrity: sha512-7r9ToySQ15+iIgXMF/h616PcQStByylVkCshmQqcdeynD/lCn2l667ynckxW4+ql0Q+Bo/URljuhJRxVJzydNA==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/middleware-logger@3.910.0':
- resolution: {integrity: sha512-3LJyyfs1USvRuRDla1pGlzGRtXJBXD1zC9F+eE9Iz/V5nkmhyv52A017CvKWmYoR0DM9dzjLyPOI0BSSppEaTw==}
+ '@aws-sdk/middleware-logger@3.914.0':
+ resolution: {integrity: sha512-/gaW2VENS5vKvJbcE1umV4Ag3NuiVzpsANxtrqISxT3ovyro29o1RezW/Avz/6oJqjnmgz8soe9J1t65jJdiNg==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/middleware-recursion-detection@3.910.0':
- resolution: {integrity: sha512-m/oLz0EoCy+WoIVBnXRXJ4AtGpdl0kPE7U+VH9TsuUzHgxY1Re/176Q1HWLBRVlz4gr++lNsgsMWEC+VnAwMpw==}
+ '@aws-sdk/middleware-recursion-detection@3.919.0':
+ resolution: {integrity: sha512-q3MAUxLQve4rTfAannUCx2q1kAHkBBsxt6hVUpzi63KC4lBLScc1ltr7TI+hDxlfGRWGo54jRegb2SsY9Jm+Mw==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/middleware-user-agent@3.910.0':
- resolution: {integrity: sha512-djpnECwDLI/4sck1wxK/cZJmZX5pAhRvjONyJqr0AaOfJyuIAG0PHLe7xwCrv2rCAvIBR9ofnNFzPIGTJPDUwg==}
+ '@aws-sdk/middleware-user-agent@3.916.0':
+ resolution: {integrity: sha512-mzF5AdrpQXc2SOmAoaQeHpDFsK2GE6EGcEACeNuoESluPI2uYMpuuNMYrUufdnIAIyqgKlis0NVxiahA5jG42w==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/middleware-websocket@3.910.0':
- resolution: {integrity: sha512-W0t8nHo6SY2g5+ZAofsnzxr3K8E1hRT2qq1BlYcNwX76m2Kw0wP+kaMhKlAdtY7rglu7HZhwErZHxQfenO9UZg==}
+ '@aws-sdk/middleware-websocket@3.914.0':
+ resolution: {integrity: sha512-l7ZA5pbEqR5ro1u6eRhUYfqfYTIFuQfhvaKGDvSetqjVacjK+kpbt1/BOy6eyRfkXTIHgQRfCPMQHmhCIUAjNA==}
engines: {node: '>= 14.0.0'}
- '@aws-sdk/nested-clients@3.910.0':
- resolution: {integrity: sha512-Jr/smgVrLZECQgMyP4nbGqgJwzFFbkjOVrU8wh/gbVIZy1+Gu6R7Shai7KHDkEjwkGcHpN1MCCO67jTAOoSlMw==}
+ '@aws-sdk/nested-clients@3.919.0':
+ resolution: {integrity: sha512-5D9OQsMPkbkp4KHM7JZv/RcGCpr3E1L7XX7U9sCxY+sFGeysltoviTmaIBXsJ2IjAJbBULtf0G/J+2cfH5OP+w==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/region-config-resolver@3.910.0':
- resolution: {integrity: sha512-gzQAkuHI3xyG6toYnH/pju+kc190XmvnB7X84vtN57GjgdQJICt9So/BD0U6h+eSfk9VBnafkVrAzBzWMEFZVw==}
+ '@aws-sdk/region-config-resolver@3.914.0':
+ resolution: {integrity: sha512-KlmHhRbn1qdwXUdsdrJ7S/MAkkC1jLpQ11n+XvxUUUCGAJd1gjC7AjxPZUM7ieQ2zcb8bfEzIU7al+Q3ZT0u7Q==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/token-providers@3.910.0':
- resolution: {integrity: sha512-dQr3pFpzemKyrB7SEJ2ipPtWrZiL5vaimg2PkXpwyzGrigYRc8F2R9DMUckU5zi32ozvQqq4PI3bOrw6xUfcbQ==}
+ '@aws-sdk/token-providers@3.919.0':
+ resolution: {integrity: sha512-6aFv4lzXbfbkl0Pv37Us8S/ZkqplOQZIEgQg7bfMru7P96Wv2jVnDGsEc5YyxMnnRyIB90naQ5JgslZ4rkpknw==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/types@3.910.0':
- resolution: {integrity: sha512-o67gL3vjf4nhfmuSUNNkit0d62QJEwwHLxucwVJkR/rw9mfUtAWsgBs8Tp16cdUbMgsyQtCQilL8RAJDoGtadQ==}
+ '@aws-sdk/types@3.914.0':
+ resolution: {integrity: sha512-kQWPsRDmom4yvAfyG6L1lMmlwnTzm1XwMHOU+G5IFlsP4YEaMtXidDzW/wiivY0QFrhfCz/4TVmu0a2aPU57ug==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/util-dynamodb@3.910.0':
- resolution: {integrity: sha512-DI9mg8bcmvxPMDUcPgNZEgWqaeaeOTgvZKnHP8Rmdneaw5h7Cdnm+aall0jcxu7aIMnMytRmgIcu0QAWm8x5bw==}
+ '@aws-sdk/util-dynamodb@3.919.0':
+ resolution: {integrity: sha512-OAa2z1NBmKrVrDpr1NBwDYFvJusDQGHK7ysA5gU0try4MtIA0npje9p+XgenQc7E5vA7h4/NMzwOa2ucJiYdMw==}
engines: {node: '>=18.0.0'}
peerDependencies:
- '@aws-sdk/client-dynamodb': ^3.910.0
+ '@aws-sdk/client-dynamodb': ^3.919.0
- '@aws-sdk/util-endpoints@3.910.0':
- resolution: {integrity: sha512-6XgdNe42ibP8zCQgNGDWoOF53RfEKzpU/S7Z29FTTJ7hcZv0SytC0ZNQQZSx4rfBl036YWYwJRoJMlT4AA7q9A==}
+ '@aws-sdk/util-endpoints@3.916.0':
+ resolution: {integrity: sha512-bAgUQwvixdsiGNcuZSDAOWbyHlnPtg8G8TyHD6DTfTmKTHUW6tAn+af/ZYJPXEzXhhpwgJqi58vWnsiDhmr7NQ==}
engines: {node: '>=18.0.0'}
- '@aws-sdk/util-format-url@3.910.0':
- resolution: {integrity: sha512-cYfgDGxZnrAq7wvntBjW6/ZewRcwywOE1Q9KKPO05ZHXpWCrqKNkx0JG8h2xlu+2qX6lkLZS+NyFAlwCQa0qfA==}
+ '@aws-sdk/util-format-url@3.914.0':
+ resolution: {integrity: sha512-QpdkoQjvPaYyzZwgk41vFyHQM5s0DsrsbQ8IoPUggQt4HaJUvmL1ShwMcSldbgdzwiRMqXUK8q7jrqUvkYkY6w==}
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-browser@3.914.0':
+ resolution: {integrity: sha512-rMQUrM1ECH4kmIwlGl9UB0BtbHy6ZuKdWFrIknu8yGTRI/saAucqNTh5EI1vWBxZ0ElhK5+g7zOnUuhSmVQYUA==}
- '@aws-sdk/util-user-agent-node@3.910.0':
- resolution: {integrity: sha512-qNV+rywWQDOOWmGpNlWLCU6zkJurocTBB2uLSdQ8b6Xg6U/i1VTJsoUQ5fbhSQpp/SuBGiIglyB1gSc0th7hPw==}
+ '@aws-sdk/util-user-agent-node@3.916.0':
+ resolution: {integrity: sha512-CwfWV2ch6UdjuSV75ZU99N03seEUb31FIUrXBnwa6oONqj/xqXwrxtlUMLx6WH3OJEE4zI3zt5PjlTdGcVwf4g==}
engines: {node: '>=18.0.0'}
peerDependencies:
aws-crt: '>=1.0.0'
@@ -1321,28 +1332,28 @@ packages:
aws-crt:
optional: true
- '@aws-sdk/xml-builder@3.910.0':
- resolution: {integrity: sha512-UK0NzRknzUITYlkDibDSgkWvhhC11OLhhhGajl6pYCACup+6QE4SsLvmAGMkyNtGVCJ6Q+BM6PwDCBZyBgwl9A==}
+ '@aws-sdk/xml-builder@3.914.0':
+ resolution: {integrity: sha512-k75evsBD5TcIjedycYS7QXQ98AmOtbnxRJOPtCo0IwYRmy7UvqgS/gBL5SmrIqeV6FDSYRQMgdBxSMp6MLmdew==}
engines: {node: '>=18.0.0'}
- '@aws/lambda-invoke-store@0.0.1':
- resolution: {integrity: sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==}
+ '@aws/lambda-invoke-store@0.1.1':
+ resolution: {integrity: sha512-RcLam17LdlbSOSp9VxmUu1eI6Mwxp+OwhD2QhiSNmNCzoDb0EeUXTD2n/WbcnrAYMGlmf05th6QYq23VqvJqpA==}
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==}
+ '@babel/compat-data@7.28.5':
+ resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.28.4':
- resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
+ '@babel/core@7.28.5':
+ resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.28.3':
- resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
+ '@babel/generator@7.28.5':
+ resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
engines: {node: '>=6.9.0'}
'@babel/helper-annotate-as-pure@7.27.3':
@@ -1353,8 +1364,8 @@ packages:
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==}
+ '@babel/helper-create-class-features-plugin@7.28.5':
+ resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
@@ -1363,8 +1374,8 @@ packages:
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==}
+ '@babel/helper-member-expression-to-functions@7.28.5':
+ resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==}
engines: {node: '>=6.9.0'}
'@babel/helper-module-imports@7.27.1':
@@ -1399,8 +1410,8 @@ packages:
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
engines: {node: '>=6.9.0'}
- '@babel/helper-validator-identifier@7.27.1':
- resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
+ '@babel/helper-validator-identifier@7.28.5':
+ resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.27.1':
@@ -1411,8 +1422,8 @@ packages:
resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
engines: {node: '>=6.9.0'}
- '@babel/parser@7.28.4':
- resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
+ '@babel/parser@7.28.5':
+ resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -1513,14 +1524,14 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-typescript@7.28.0':
- resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==}
+ '@babel/plugin-transform-typescript@7.28.5':
+ resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/preset-typescript@7.27.1':
- resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==}
+ '@babel/preset-typescript@7.28.5':
+ resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
@@ -1533,12 +1544,12 @@ packages:
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.28.4':
- resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
+ '@babel/traverse@7.28.5':
+ resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
engines: {node: '>=6.9.0'}
- '@babel/types@7.28.4':
- resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
+ '@babel/types@7.28.5':
+ resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
engines: {node: '>=6.9.0'}
'@bcoe/v8-coverage@0.2.3':
@@ -1559,8 +1570,8 @@ packages:
openai: ^4.62.1
zod: ^3.23.8
- '@bufbuild/protobuf@2.9.0':
- resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==}
+ '@bufbuild/protobuf@2.10.0':
+ resolution: {integrity: sha512-fdRs9PSrBF7QUntpZpq6BTw58fhgGJojgg39m9oFOJGZT+nip9b0so5cYY1oWl5pvemDLr0cPPsH46vwThEbpQ==}
'@cfworker/json-schema@4.1.1':
resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==}
@@ -1586,22 +1597,35 @@ packages:
'@clack/prompts@0.11.0':
resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==}
- '@copilotkit/react-core@1.10.6':
- resolution: {integrity: sha512-sdojpntwgOxP8lWRzaFEiWr0g2wDefjQHtve5GPPie+otseFonV88FZjSqIq5LN+q5BIwDOEhCmDjALsGjXvuQ==}
+ '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251107155707':
+ resolution: {integrity: sha512-1/ZyIgt6Ta5RWd/SwkwUqek3ldu+GzwzIwgK2zwuAl8sEoKn6XtqLY4h6OPJBYYZewLwaBmOxeHed6mjc0VbzQ==}
peerDependencies:
+ '@copilotkitnext/core': 0.0.21
+ '@copilotkitnext/react': 0.0.21
react: ^18 || ^19 || ^19.0.0-rc
react-dom: ^18 || ^19 || ^19.0.0-rc
+ zod: '>=3.0.0'
- '@copilotkit/react-ui@1.10.6':
- resolution: {integrity: sha512-eNIbZKMvBVZqlAR4fqkmZRIYIt8WhwZOxfVJVwMD9nfmWdtatmxrOLecyDiPk/hkq2o/8s2/rubaZSMK6m+GHQ==}
+ '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251107155707':
+ resolution: {integrity: sha512-EyL5x8FEkrLbEYDrtIYLZ+HEmStp/RS0Flpofh60efPJ2tpERjv6SGhWoJYrLvp3MOgYkLx1Tbt8kG0kT1HqGA==}
peerDependencies:
+ '@copilotkitnext/core': 0.0.20
react: ^18 || ^19 || ^19.0.0-rc
- '@copilotkit/runtime-client-gql@1.10.6':
- resolution: {integrity: sha512-oLX8mjppVvQCWfquW9A0500hYVNxM4X/mtt76SEvfGUb2KsNQ4j2HOCzpmtm85MeLproC+f9738wLwRueLliZg==}
+ '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251107155707':
+ resolution: {integrity: sha512-SxQWn8mrFTuKTf3Sahl8lRap2V75Xv47hYAX4Ak/RGIEuLhVRTkXHc2HlYJ3xxeUGi+jaP/N9Zcdx92BeUAl9A==}
peerDependencies:
react: ^18 || ^19 || ^19.0.0-rc
+ '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251107155707':
+ resolution: {integrity: sha512-7nUI3amfn7vJ8blPr8N7OWHRqwcOz4WxGBzSrKnCd1ApfqRCbh3MY8ykuB2l5yu/tlyfTjV+4Df3TKFZlRddAw==}
+ 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/runtime@1.10.6':
resolution: {integrity: sha512-35MdJ6nutC+spgHRJURbanLxBoQCNvVBYD0CBIk4Rv3/Ck8XgZA4lcc+5aGteuERXOPBsYEQjGD4xEPy3QXmGg==}
peerDependencies:
@@ -1611,43 +1635,46 @@ packages:
'@ag-ui/langgraph': '>=0.0.18'
'@ag-ui/proto': '>=0.0.39'
+ '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251107155707':
+ resolution: {integrity: sha512-O7iK4bhxPH8rU+1KSSAae8S8A5RYXCz1oeoJchafNhbnozXtOfHdlV2D0VHHYqadiiVVbCH2XHiIItZSpl5wIg==}
+
'@copilotkit/shared@1.10.6':
resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==}
- '@copilotkitnext/agent@0.0.19-alpha.0':
- resolution: {integrity: sha512-8S9Ds+9gHeNYyaGLA0luExqrqyEpJG4msQn5d5RM+Vw/mcQ4870b4JR5WG6QUi/pzvrsYhTKI//rWl8LrDAzLA==}
+ '@copilotkitnext/agent@0.0.21':
+ resolution: {integrity: sha512-xE/CUFJSS86YPf7DHNYQxQJv6v/+FitWjrnkUfqRB/Re19e55fMoUN08K4kHOZ+nbrZpBVVWsmQemRJOzRY04A==}
engines: {node: '>=18'}
- '@copilotkitnext/core@0.0.19-alpha.0':
- resolution: {integrity: sha512-pIv1mrAW2uNNpaWWgUtkZNhscQwu6dGAfL1BA9WYW0ipZPgrlSbR3OleKV0D5z+uV51XCknWTSNM49ioTcgZZQ==}
+ '@copilotkitnext/core@0.0.21':
+ resolution: {integrity: sha512-NsC67b5bRQMo74eGEcpKypz9F/pTDhmvYAujSDQTfxAZee9MNN46UE9Pb0UA/nuqB2tzx5Bj2NGz+7//d8Yemg==}
engines: {node: '>=18'}
- '@copilotkitnext/react@0.0.19-alpha.0':
- resolution: {integrity: sha512-ApVlwXDalzwYaVNki6srA4Ab9LDw5VcqECzoZK8wf+6aSYvdLIXLe1ZLxIFemzU/Cuks8rmhJ0Bwk0gbRSk9eA==}
+ '@copilotkitnext/react@0.0.21':
+ resolution: {integrity: sha512-4KWpyooyzB+P/QcSCfb3pBgB1xWwPYbYWRjgJoUIDzFRepkeNf3d2c6RJu29q/8wnkUT+VVWCdMqgJF6d26C7A==}
engines: {node: '>=18'}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
- '@copilotkitnext/runtime@0.0.19-alpha.0':
- resolution: {integrity: sha512-QVlHOg/hJyg3i5J2Sm+OEHACeYJYYtBBmwzQpqz2o0j4B20Z4PPgeffMEBta0LjbPen+mdsDykTVRvupVTd+5g==}
+ '@copilotkitnext/runtime@0.0.21':
+ resolution: {integrity: sha512-JYTX/vXrGcg9oZc+hH1wFDeZQ0bhnRhLt+9uP8ET+iWftGU7OSo8wFzeWKQgGvwneZVEBxP2D0CLF3zySsjHwQ==}
engines: {node: '>=18'}
peerDependencies:
openai: ^5.9.0
- '@copilotkitnext/shared@0.0.19-alpha.0':
- resolution: {integrity: sha512-dfQCod+NmD0ttfpLOZxeEj3IQprlgsj8Z5+XCRAkXtKRWf+BaW53BzPZMPPKN1oUSJSK8g7jb3aoD+3Ek5w1AA==}
+ '@copilotkitnext/shared@0.0.21':
+ resolution: {integrity: sha512-cqdHt7td+UASHMyU7tOwQ6njrFSL5I7EtF7G7O7A6I/8lRYhv6Qhb8maAVAZclzDlV9zT2OANRJkfafDx+pxhA==}
engines: {node: '>=18'}
- '@copilotkitnext/web-inspector@0.0.19-alpha.0':
- resolution: {integrity: sha512-em2OACHCarRXuZgpqpULshXGQpZhAeZVbwzkD5u60zy4ALmGDjFZ4Rb7FUhR+vwIpFQ/yZfOjvxoduVzu+wrBA==}
+ '@copilotkitnext/web-inspector@0.0.21':
+ resolution: {integrity: sha512-SOhWTDneRbzyZ/YLVd8w3it85DwPHBlT3iGkAt6/X5VDz4y6SaSiZDWefUnaE9SFRGcfYoaIVnDbnvpNaF0HJg==}
engines: {node: '>=18'}
- '@emnapi/core@1.5.0':
- resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
+ '@emnapi/core@1.6.0':
+ resolution: {integrity: sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==}
- '@emnapi/runtime@1.5.0':
- resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
+ '@emnapi/runtime@1.6.0':
+ resolution: {integrity: sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==}
'@emnapi/wasi-threads@1.1.0':
resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
@@ -1664,158 +1691,158 @@ packages:
resolution: {integrity: sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==}
engines: {node: '>=18.0.0'}
- '@esbuild/aix-ppc64@0.25.10':
- resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==}
+ '@esbuild/aix-ppc64@0.25.11':
+ resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [aix]
- '@esbuild/android-arm64@0.25.10':
- resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==}
+ '@esbuild/android-arm64@0.25.11':
+ resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [android]
- '@esbuild/android-arm@0.25.10':
- resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==}
+ '@esbuild/android-arm@0.25.11':
+ resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
engines: {node: '>=18'}
cpu: [arm]
os: [android]
- '@esbuild/android-x64@0.25.10':
- resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==}
+ '@esbuild/android-x64@0.25.11':
+ resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
engines: {node: '>=18'}
cpu: [x64]
os: [android]
- '@esbuild/darwin-arm64@0.25.10':
- resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==}
+ '@esbuild/darwin-arm64@0.25.11':
+ resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
engines: {node: '>=18'}
cpu: [arm64]
os: [darwin]
- '@esbuild/darwin-x64@0.25.10':
- resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==}
+ '@esbuild/darwin-x64@0.25.11':
+ resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [darwin]
- '@esbuild/freebsd-arm64@0.25.10':
- resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==}
+ '@esbuild/freebsd-arm64@0.25.11':
+ resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [freebsd]
- '@esbuild/freebsd-x64@0.25.10':
- resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==}
+ '@esbuild/freebsd-x64@0.25.11':
+ resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
engines: {node: '>=18'}
cpu: [x64]
os: [freebsd]
- '@esbuild/linux-arm64@0.25.10':
- resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==}
+ '@esbuild/linux-arm64@0.25.11':
+ resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
engines: {node: '>=18'}
cpu: [arm64]
os: [linux]
- '@esbuild/linux-arm@0.25.10':
- resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==}
+ '@esbuild/linux-arm@0.25.11':
+ resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
engines: {node: '>=18'}
cpu: [arm]
os: [linux]
- '@esbuild/linux-ia32@0.25.10':
- resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==}
+ '@esbuild/linux-ia32@0.25.11':
+ resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
engines: {node: '>=18'}
cpu: [ia32]
os: [linux]
- '@esbuild/linux-loong64@0.25.10':
- resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==}
+ '@esbuild/linux-loong64@0.25.11':
+ resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
engines: {node: '>=18'}
cpu: [loong64]
os: [linux]
- '@esbuild/linux-mips64el@0.25.10':
- resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==}
+ '@esbuild/linux-mips64el@0.25.11':
+ resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
engines: {node: '>=18'}
cpu: [mips64el]
os: [linux]
- '@esbuild/linux-ppc64@0.25.10':
- resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==}
+ '@esbuild/linux-ppc64@0.25.11':
+ resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
engines: {node: '>=18'}
cpu: [ppc64]
os: [linux]
- '@esbuild/linux-riscv64@0.25.10':
- resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==}
+ '@esbuild/linux-riscv64@0.25.11':
+ resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
engines: {node: '>=18'}
cpu: [riscv64]
os: [linux]
- '@esbuild/linux-s390x@0.25.10':
- resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==}
+ '@esbuild/linux-s390x@0.25.11':
+ resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
engines: {node: '>=18'}
cpu: [s390x]
os: [linux]
- '@esbuild/linux-x64@0.25.10':
- resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==}
+ '@esbuild/linux-x64@0.25.11':
+ resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
engines: {node: '>=18'}
cpu: [x64]
os: [linux]
- '@esbuild/netbsd-arm64@0.25.10':
- resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==}
+ '@esbuild/netbsd-arm64@0.25.11':
+ resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [netbsd]
- '@esbuild/netbsd-x64@0.25.10':
- resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==}
+ '@esbuild/netbsd-x64@0.25.11':
+ resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
engines: {node: '>=18'}
cpu: [x64]
os: [netbsd]
- '@esbuild/openbsd-arm64@0.25.10':
- resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==}
+ '@esbuild/openbsd-arm64@0.25.11':
+ resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openbsd]
- '@esbuild/openbsd-x64@0.25.10':
- resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==}
+ '@esbuild/openbsd-x64@0.25.11':
+ resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
engines: {node: '>=18'}
cpu: [x64]
os: [openbsd]
- '@esbuild/openharmony-arm64@0.25.10':
- resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==}
+ '@esbuild/openharmony-arm64@0.25.11':
+ resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
engines: {node: '>=18'}
cpu: [arm64]
os: [openharmony]
- '@esbuild/sunos-x64@0.25.10':
- resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==}
+ '@esbuild/sunos-x64@0.25.11':
+ resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
engines: {node: '>=18'}
cpu: [x64]
os: [sunos]
- '@esbuild/win32-arm64@0.25.10':
- resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==}
+ '@esbuild/win32-arm64@0.25.11':
+ resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
engines: {node: '>=18'}
cpu: [arm64]
os: [win32]
- '@esbuild/win32-ia32@0.25.10':
- resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==}
+ '@esbuild/win32-ia32@0.25.11':
+ resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
engines: {node: '>=18'}
cpu: [ia32]
os: [win32]
- '@esbuild/win32-x64@0.25.10':
- resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==}
+ '@esbuild/win32-x64@0.25.11':
+ resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
engines: {node: '>=18'}
cpu: [x64]
os: [win32]
@@ -1826,36 +1853,40 @@ packages:
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
- '@eslint-community/regexpp@4.12.1':
- resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/config-array@0.21.0':
- resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==}
+ '@eslint/config-array@0.21.1':
+ resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/config-helpers@0.4.0':
- resolution: {integrity: sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==}
+ '@eslint/config-helpers@0.4.2':
+ resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==}
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/core@0.17.0':
+ resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
+ 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==}
+ '@eslint/js@9.38.0':
+ resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/object-schema@2.1.6':
- resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
+ '@eslint/object-schema@2.1.7':
+ resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==}
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==}
+ '@eslint/plugin-kit@0.4.1':
+ resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@expo/devcert@1.2.0':
@@ -2221,10 +2252,6 @@ packages:
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'}
@@ -2711,8 +2738,8 @@ packages:
youtubei.js:
optional: true
- '@langchain/core@0.3.78':
- resolution: {integrity: sha512-Nn0x9erQlK3zgtRU1Z8NUjLuyW0gzdclMsvLQ6wwLeDqV91pE+YKl6uQb+L2NUDs4F0N7c2Zncgz46HxrvPzuA==}
+ '@langchain/core@0.3.79':
+ resolution: {integrity: sha512-ZLAs5YMM5N2UXN3kExMglltJrKKoW7hs3KMZFlXUnD7a5DFKBYxPFMeXA4rT+uvTxuJRZPCYX0JKI5BhyAWx4A==}
engines: {node: '>=18'}
'@langchain/google-common@0.1.8':
@@ -2758,12 +2785,6 @@ packages:
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'}
@@ -2869,6 +2890,11 @@ packages:
peerDependencies:
zod: ^3.25.0 || ^4.0.0
+ '@mastra/client-js@0.16.8':
+ resolution: {integrity: sha512-8YUiw+i0D52znwUI8CDeY7MkQum+nT5FxPcCorq8VP7u4xcF09do1aa5OFQZVEkok7SIhJzCJTiAI2B4NEczDQ==}
+ peerDependencies:
+ zod: ^3.25.0 || ^4.0.0
+
'@mastra/core@0.12.1':
resolution: {integrity: sha512-iWvkIBnhFXZH+XkpV7Yy0YJphVM7BBtnJmv0z9hHgcvo6poH8+YUpEAHsveuvt4rcvNkR34yfdEQxzhh5bcabA==}
engines: {node: '>=20'}
@@ -2881,41 +2907,52 @@ packages:
peerDependencies:
zod: ^3.25.0 || ^4.0.0
+ '@mastra/core@0.23.3':
+ resolution: {integrity: sha512-5AqzE19M03T7If9ea0xjj3wr/i9MGeazdK7wbFrrJz44GnYGoSy179KYsyciXzpgXCxuWFi0ytg1jFSry/UCIQ==}
+ 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==}
+ '@mastra/dynamodb@0.15.9':
+ resolution: {integrity: sha512-VUaDeniJa4s7h7uPYPQZVcDUqcUZfMDn25zWa7ar7cLrZ10MigXj1zYCUTmEM84kt1NTbikj5xFmJgz0HW3y7Q==}
peerDependencies:
- '@mastra/core': '>=0.18.1-0 <0.21.0-0'
+ '@mastra/core': '>=0.18.1-0 <0.24.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==}
+ '@mastra/libsql@0.15.2':
+ resolution: {integrity: sha512-WBOIXal7nj7qDxryIMBx4DnWGyiw3+iDoT/2cuoKIVFSGVrf5tE3but5u2Dv8gawjM3DGizVCmJhv5cpSheOHg==}
+ peerDependencies:
+ '@mastra/core': '>=0.19.0-alpha.1 <0.22.0-0'
+
+ '@mastra/libsql@0.16.1':
+ resolution: {integrity: sha512-jkYCsv00qzhjq4nyscChovW8cfeb8r8VkgzW+iPU9SBLu7pDX2HGgC/WSvSOeH1Ll0twqL2iql6gKXGAnDmRfw==}
peerDependencies:
- '@mastra/core': '>=0.19.0-alpha.1 <0.21.0-0'
+ '@mastra/core': '>=0.21.2-0 <0.24.0-0'
- '@mastra/loggers@0.10.15':
- resolution: {integrity: sha512-/s4RPYTuTyJ8/oRU1ThHQaOal7/Bml5ARJhQBXIX3qcG3MIprRyPmtK1XrdLuuBuh7XpaWUFZFqW0pJaE1FLtw==}
+ '@mastra/loggers@0.10.18':
+ resolution: {integrity: sha512-Ti711VpYqAwUbxEkYnJ11KeERROI7c6Nf9nNh/t85rCbLspLB/wpwX/FYH9/JUqC0fe5U2kKfergoTs9SKq9Qw==}
peerDependencies:
- '@mastra/core': '>=0.18.1-0 <0.21.0-0'
+ '@mastra/core': '>=0.18.1-0 <0.24.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==}
+ '@mastra/mcp@0.13.5':
+ resolution: {integrity: sha512-GFHOHTbUY8PuEwzObIVCaHF855M4S4xIOnNJE1WJeEsPvWOllyL+y1Wz3HGjusrAfZIDrZ8j8Z5Diqxf3KTW/A==}
peerDependencies:
- '@mastra/core': '>=0.20.1-0 <0.21.0-0'
+ '@mastra/core': '>=0.20.1-0 <0.22.0-0'
zod: ^3.25.0 || ^4.0.0
'@mastra/memory@0.12.0':
@@ -2923,22 +2960,28 @@ packages:
peerDependencies:
'@mastra/core': '>=0.12.0-0 <0.13.0-0'
- '@mastra/memory@0.15.6':
- resolution: {integrity: sha512-k6X4nZ+YFhlW46YPKgTAuPYma+uebLQ2xYeDdx0BQvQyO6lWp9s9cpgSjCwOMzctPZqrxauOfzgWyyUUrFfwBw==}
+ '@mastra/memory@0.15.10':
+ resolution: {integrity: sha512-ZSL3iQCgtBpXf/8i504eW2gX+mx0A93DAY4T+9lPx7tgVESZJ2e4C7U4L3mcn/laQtkcdhHC+fX54J1ahaphxQ==}
peerDependencies:
- '@mastra/core': '>=0.20.1-0 <0.21.0-0'
+ '@mastra/core': '>=0.20.1-0 <0.24.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
+ ai: 5.0.59
zod: ^3.0.0
'@mastra/schema-compat@0.11.4':
resolution: {integrity: sha512-oh3+enP3oYftZlmJAKQQj5VXR86KgTMwfMnwALZyLk04dPSWfVD2wGytoDg5Qbi3rX9qHj6g0rMNa0CUjR6aTg==}
peerDependencies:
- ai: ^4.0.0 || ^5.0.0
+ ai: 5.0.59
+ zod: ^3.25.0 || ^4.0.0
+
+ '@mastra/schema-compat@0.11.6':
+ resolution: {integrity: sha512-oPsnOj6CyWjCyXitDB3BLQjzf83Xo/TsyKZAMPoRaxRd673C1QzHf/1hwF2vTunpGeiwpBpVJE+WO7rYUX9ZvQ==}
+ peerDependencies:
+ ai: 5.0.59
zod: ^3.25.0 || ^4.0.0
'@mastra/server@0.20.2':
@@ -2967,8 +3010,8 @@ packages:
'@mermaid-js/parser@0.6.3':
resolution: {integrity: sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==}
- '@modelcontextprotocol/sdk@1.20.0':
- resolution: {integrity: sha512-kOQ4+fHuT4KbR2iq2IjeV32HiihueuOf1vJkq18z08CLZ1UQrTc8BXJpVfxZkq45+inLLD+D4xx4nBjUelJa4Q==}
+ '@modelcontextprotocol/sdk@1.20.2':
+ resolution: {integrity: sha512-6rqTdFt67AAAzln3NOKsXRmv5ZzPkgbfaebKBqUbts7vK1GZudqnrun5a8d3M/h955cam9RHZ6Jb4Y1XhnmFPg==}
engines: {node: '>=18'}
'@monaco-editor/loader@1.6.1':
@@ -2996,8 +3039,8 @@ packages:
'@next/eslint-plugin-next@15.2.1':
resolution: {integrity: sha512-6ppeToFd02z38SllzWxayLxjjNfzvc7Wm07gQOKSLjyASvKcXjNStZrLXMHuaWkhjqxe+cnhb2uzfWXm1VEj/Q==}
- '@next/mdx@15.5.5':
- resolution: {integrity: sha512-+niIZwo1ObCj8YJCR31FwF3gUXnyQZTnrrt5DnJGF/nj6yW7VE0hhmhT2yWW244MuBKqL3SbXjaFX+GqWOPXfA==}
+ '@next/mdx@15.5.6':
+ resolution: {integrity: sha512-lyzXcnZWPjYxbkz/5tv1bRlCOjKYX1lFg3LIuoIf9ERTOUBDzkCvUnWjtRsmFRxKv1/6uwpLVQvrJDd54gVDBw==}
peerDependencies:
'@mdx-js/loader': '>=0.15.0'
'@mdx-js/react': '>=0.15.0'
@@ -3075,7 +3118,7 @@ packages:
resolution: {integrity: sha512-stuIwq7Yb7DNmk3GuCtz+oS3nZOY4TXEV3V5KsknDGQN7Fpu3KRMQVWRc1J073xKdf0FC9EHOctSyzsACmp5Ag==}
engines: {node: '>=18'}
peerDependencies:
- ai: ^5.0.0
+ ai: 5.0.59
zod: ^3.24.1 || ^v4
'@opentelemetry/api-logs@0.203.0':
@@ -3099,8 +3142,8 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.10.0'
- '@opentelemetry/context-async-hooks@2.1.0':
- resolution: {integrity: sha512-zOyetmZppnwTyPrt4S7jMfXiSX9yyfF0hxlA8B5oo2TtKl+/RGCy7fi4DrBfIf3lCPrkKsRBWZZD7RFojK7FDg==}
+ '@opentelemetry/context-async-hooks@2.2.0':
+ resolution: {integrity: sha512-qRkLWiUEZNAmYapZ7KGS5C4OmBLcP/H2foXeOEaowYCR0wi89fHejrfYfbuLVCMLp/dWZXKvQusdbUEZjERfwQ==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.10.0'
@@ -3111,8 +3154,8 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.10.0'
- '@opentelemetry/core@2.1.0':
- resolution: {integrity: sha512-RMEtHsxJs/GiHHxYT58IY57UXAQTuUnZVco6ymDEqTNlJKTimM4qPUPVe8InNFyBjhHBEAx4k3Q8LtNayBsbUQ==}
+ '@opentelemetry/core@2.2.0':
+ resolution: {integrity: sha512-FuabnnUm8LflnieVxs6eP7Z383hgQU4W1e3KJS6aOG3RxWxcHyBxH8fDMHNgu/gFx/M2jvTOW/4/PHhLz6bjWw==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.10.0'
@@ -3463,14 +3506,14 @@ packages:
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==}
+ '@opentelemetry/resource-detector-alibaba-cloud@0.31.10':
+ resolution: {integrity: sha512-Q9+QVGqgNqngiVE8hsBzXsYXOe1uafCG4fcDtPMHTKoJ2jkMcJWMjsLW9p4UCDE3V0EZfKrt1LGZBO2MOzQ2rw==}
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==}
+ '@opentelemetry/resource-detector-aws@2.7.0':
+ resolution: {integrity: sha512-YSxku36M9AMPsbsjE6eQhHecpkDkhDeTENWjOcnhPYlN6EfZTsCk3aj5xWJuW5ccvDCwGqG1MS8aLHchl098Sw==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': ^1.0.0
@@ -3481,8 +3524,8 @@ packages:
peerDependencies:
'@opentelemetry/api': ^1.0.0
- '@opentelemetry/resource-detector-container@0.7.9':
- resolution: {integrity: sha512-BiS14kCylLzh/mayN/sjnOdhnpfgiekaEsIzaL29MErfQR0mFCZjAE2uu8jMjShva9bSDFs65ouuAFft+vBthg==}
+ '@opentelemetry/resource-detector-container@0.7.10':
+ resolution: {integrity: sha512-GROgWclnFV4CtdI5VQzuAacqRIuEVISaLwLU8zUu8jZT9DG8YKmJ8f3czQWTEmSa6NkSBNdEeNQzfDHPAE9wAQ==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': ^1.0.0
@@ -3499,8 +3542,8 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.3.0 <1.10.0'
- '@opentelemetry/resources@2.1.0':
- resolution: {integrity: sha512-1CJjf3LCvoefUOgegxi8h6r4B/wLSzInyhGP2UmIBYNlo4Qk5CZ73e1eEyWmfXvFtm1ybkmfb2DqWvspsYLrWw==}
+ '@opentelemetry/resources@2.2.0':
+ resolution: {integrity: sha512-1pNQf/JazQTMA0BiO5NINUzH0cbLbbl7mntLa4aJNmCCXSj0q03T5ZXXL0zw4G55TjdL9Tz32cznGClf+8zr5A==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': '>=1.3.0 <1.10.0'
@@ -3517,8 +3560,8 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.9.0 <1.10.0'
- '@opentelemetry/sdk-metrics@2.1.0':
- resolution: {integrity: sha512-J9QX459mzqHLL9Y6FZ4wQPRZG4TOpMCyPOh6mkr/humxE1W2S3Bvf4i75yiMW9uyed2Kf5rxmLhTm/UK8vNkAw==}
+ '@opentelemetry/sdk-metrics@2.2.0':
+ resolution: {integrity: sha512-G5KYP6+VJMZzpGipQw7Giif48h6SGQ2PFKEYCybeXJsOCB4fp8azqMAAzE5lnnHK3ZVwYQrgmFbsUJO/zOnwGw==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': '>=1.9.0 <1.10.0'
@@ -3535,8 +3578,8 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.3.0 <1.10.0'
- '@opentelemetry/sdk-trace-base@2.1.0':
- resolution: {integrity: sha512-uTX9FBlVQm4S2gVQO1sb5qyBLq/FPjbp+tmGoxu4tIgtYGmBYB44+KX/725RFDe30yBSaA9Ml9fqphe1hbUyLQ==}
+ '@opentelemetry/sdk-trace-base@2.2.0':
+ resolution: {integrity: sha512-xWQgL0Bmctsalg6PaXExmzdedSp3gyKV8mQBwK/j9VGdCDu2fmXIb2gAehBKbkXCpJ4HPkgv3QfoJWRT4dHWbw==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': '>=1.3.0 <1.10.0'
@@ -3547,8 +3590,8 @@ packages:
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.10.0'
- '@opentelemetry/sdk-trace-node@2.1.0':
- resolution: {integrity: sha512-SvVlBFc/jI96u/mmlKm86n9BbTCbQ35nsPoOohqJX6DXH92K0kTe73zGY5r8xoI1QkjR9PizszVJLzMC966y9Q==}
+ '@opentelemetry/sdk-trace-node@2.2.0':
+ resolution: {integrity: sha512-+OaRja3f0IqGG2kptVeYsrZQK9nKRSpfFrKtRBq4uh6nIB8bTBgaGvYQrQoRrQWQMA5dK5yLhDMDc0dvYvCOIQ==}
engines: {node: ^18.19.0 || >=20.6.0}
peerDependencies:
'@opentelemetry/api': '>=1.0.0 <1.10.0'
@@ -3580,6 +3623,9 @@ packages:
react: '>= 16.8'
react-dom: '>= 16.8'
+ '@pinojs/redact@0.4.0':
+ resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==}
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -3826,6 +3872,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-slot@1.2.4':
+ resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==}
+ 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:
@@ -3968,33 +4023,33 @@ packages:
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==}
+ '@redis/bloom@5.9.0':
+ resolution: {integrity: sha512-W9D8yfKTWl4tP8lkC3MRYkMz4OfbuzE/W8iObe0jFgoRmgMfkBV+Vj38gvIqZPImtY0WB34YZkX3amYuQebvRQ==}
engines: {node: '>= 18'}
peerDependencies:
- '@redis/client': ^5.8.3
+ '@redis/client': ^5.9.0
- '@redis/client@5.8.3':
- resolution: {integrity: sha512-MZVUE+l7LmMIYlIjubPosruJ9ltSLGFmJqsXApTqPLyHLjsJUSAbAJb/A3N34fEqean4ddiDkdWzNu4ZKPvRUg==}
+ '@redis/client@5.9.0':
+ resolution: {integrity: sha512-EI0Ti5pojD2p7TmcS7RRa+AJVahdQvP/urpcSbK/K9Rlk6+dwMJTQ354pCNGCwfke8x4yKr5+iH85wcERSkwLQ==}
engines: {node: '>= 18'}
- '@redis/json@5.8.3':
- resolution: {integrity: sha512-DRR09fy/u8gynHGJ4gzXYeM7D8nlS6EMv5o+h20ndTJiAc7RGR01fdk2FNjnn1Nz5PjgGGownF+s72bYG4nZKQ==}
+ '@redis/json@5.9.0':
+ resolution: {integrity: sha512-Bm2jjLYaXdUWPb9RaEywxnjmzw7dWKDZI4MS79mTWPV16R982jVWBj6lY2ZGelJbwxHtEVg4/FSVgYDkuO/MxA==}
engines: {node: '>= 18'}
peerDependencies:
- '@redis/client': ^5.8.3
+ '@redis/client': ^5.9.0
- '@redis/search@5.8.3':
- resolution: {integrity: sha512-EMIvEeGRR2I0BJEz4PV88DyCuPmMT1rDtznlsHY3cKSDcc9vj0Q411jUnX0iU2vVowUgWn/cpySKjpXdZ8m+5g==}
+ '@redis/search@5.9.0':
+ resolution: {integrity: sha512-jdk2csmJ29DlpvCIb2ySjix2co14/0iwIT3C0I+7ZaToXgPbgBMB+zfEilSuncI2F9JcVxHki0YtLA0xX3VdpA==}
engines: {node: '>= 18'}
peerDependencies:
- '@redis/client': ^5.8.3
+ '@redis/client': ^5.9.0
- '@redis/time-series@5.8.3':
- resolution: {integrity: sha512-5Jwy3ilsUYQjzpE7WZ1lEeG1RkqQ5kHtwV1p8yxXHSEmyUbC/T/AVgyjMcm52Olj/Ov/mhDKjx6ndYUi14bXsw==}
+ '@redis/time-series@5.9.0':
+ resolution: {integrity: sha512-W6ILxcyOqhnI7ELKjJXOktIg3w4+aBHugDbVpgVLPZ+YDjObis1M0v7ZzwlpXhlpwsfePfipeSK+KWNuymk52w==}
engines: {node: '>= 18'}
peerDependencies:
- '@redis/client': ^5.8.3
+ '@redis/client': ^5.9.0
'@remirror/core-constants@3.0.0':
resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==}
@@ -4011,8 +4066,8 @@ packages:
rollup:
optional: true
- '@rollup/plugin-commonjs@28.0.7':
- resolution: {integrity: sha512-6cE2Wr/MkpdtTS8gXlCn9Zdmf7e9Xm96yFqOwFEXuvYLAHtjRf57/n6GEVF4K8NSesT1eKdBtcDA/SQdpW/8nA==}
+ '@rollup/plugin-commonjs@28.0.9':
+ resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==}
engines: {node: '>=16.0.0 || 14 >= 14.17'}
peerDependencies:
rollup: ^2.68.0||^3.0.0||^4.0.0
@@ -4070,8 +4125,8 @@ packages:
cpu: [arm]
os: [android]
- '@rollup/rollup-android-arm-eabi@4.52.4':
- resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==}
+ '@rollup/rollup-android-arm-eabi@4.52.5':
+ resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
cpu: [arm]
os: [android]
@@ -4080,8 +4135,8 @@ packages:
cpu: [arm64]
os: [android]
- '@rollup/rollup-android-arm64@4.52.4':
- resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==}
+ '@rollup/rollup-android-arm64@4.52.5':
+ resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==}
cpu: [arm64]
os: [android]
@@ -4090,8 +4145,8 @@ packages:
cpu: [arm64]
os: [darwin]
- '@rollup/rollup-darwin-arm64@4.52.4':
- resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==}
+ '@rollup/rollup-darwin-arm64@4.52.5':
+ resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==}
cpu: [arm64]
os: [darwin]
@@ -4100,8 +4155,8 @@ packages:
cpu: [x64]
os: [darwin]
- '@rollup/rollup-darwin-x64@4.52.4':
- resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==}
+ '@rollup/rollup-darwin-x64@4.52.5':
+ resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==}
cpu: [x64]
os: [darwin]
@@ -4110,8 +4165,8 @@ packages:
cpu: [arm64]
os: [freebsd]
- '@rollup/rollup-freebsd-arm64@4.52.4':
- resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==}
+ '@rollup/rollup-freebsd-arm64@4.52.5':
+ resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==}
cpu: [arm64]
os: [freebsd]
@@ -4120,8 +4175,8 @@ packages:
cpu: [x64]
os: [freebsd]
- '@rollup/rollup-freebsd-x64@4.52.4':
- resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==}
+ '@rollup/rollup-freebsd-x64@4.52.5':
+ resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==}
cpu: [x64]
os: [freebsd]
@@ -4130,8 +4185,8 @@ packages:
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-gnueabihf@4.52.4':
- resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==}
+ '@rollup/rollup-linux-arm-gnueabihf@4.52.5':
+ resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==}
cpu: [arm]
os: [linux]
@@ -4140,8 +4195,8 @@ packages:
cpu: [arm]
os: [linux]
- '@rollup/rollup-linux-arm-musleabihf@4.52.4':
- resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==}
+ '@rollup/rollup-linux-arm-musleabihf@4.52.5':
+ resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==}
cpu: [arm]
os: [linux]
@@ -4150,8 +4205,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-gnu@4.52.4':
- resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==}
+ '@rollup/rollup-linux-arm64-gnu@4.52.5':
+ resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==}
cpu: [arm64]
os: [linux]
@@ -4160,8 +4215,8 @@ packages:
cpu: [arm64]
os: [linux]
- '@rollup/rollup-linux-arm64-musl@4.52.4':
- resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==}
+ '@rollup/rollup-linux-arm64-musl@4.52.5':
+ resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==}
cpu: [arm64]
os: [linux]
@@ -4170,8 +4225,8 @@ packages:
cpu: [loong64]
os: [linux]
- '@rollup/rollup-linux-loong64-gnu@4.52.4':
- resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==}
+ '@rollup/rollup-linux-loong64-gnu@4.52.5':
+ resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==}
cpu: [loong64]
os: [linux]
@@ -4180,8 +4235,8 @@ packages:
cpu: [ppc64]
os: [linux]
- '@rollup/rollup-linux-ppc64-gnu@4.52.4':
- resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==}
+ '@rollup/rollup-linux-ppc64-gnu@4.52.5':
+ resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==}
cpu: [ppc64]
os: [linux]
@@ -4190,8 +4245,8 @@ packages:
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-gnu@4.52.4':
- resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==}
+ '@rollup/rollup-linux-riscv64-gnu@4.52.5':
+ resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==}
cpu: [riscv64]
os: [linux]
@@ -4200,8 +4255,8 @@ packages:
cpu: [riscv64]
os: [linux]
- '@rollup/rollup-linux-riscv64-musl@4.52.4':
- resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==}
+ '@rollup/rollup-linux-riscv64-musl@4.52.5':
+ resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==}
cpu: [riscv64]
os: [linux]
@@ -4210,8 +4265,8 @@ packages:
cpu: [s390x]
os: [linux]
- '@rollup/rollup-linux-s390x-gnu@4.52.4':
- resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==}
+ '@rollup/rollup-linux-s390x-gnu@4.52.5':
+ resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==}
cpu: [s390x]
os: [linux]
@@ -4220,8 +4275,8 @@ packages:
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-gnu@4.52.4':
- resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==}
+ '@rollup/rollup-linux-x64-gnu@4.52.5':
+ resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==}
cpu: [x64]
os: [linux]
@@ -4230,8 +4285,8 @@ packages:
cpu: [x64]
os: [linux]
- '@rollup/rollup-linux-x64-musl@4.52.4':
- resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==}
+ '@rollup/rollup-linux-x64-musl@4.52.5':
+ resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==}
cpu: [x64]
os: [linux]
@@ -4240,8 +4295,8 @@ packages:
cpu: [arm64]
os: [openharmony]
- '@rollup/rollup-openharmony-arm64@4.52.4':
- resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==}
+ '@rollup/rollup-openharmony-arm64@4.52.5':
+ resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==}
cpu: [arm64]
os: [openharmony]
@@ -4250,8 +4305,8 @@ packages:
cpu: [arm64]
os: [win32]
- '@rollup/rollup-win32-arm64-msvc@4.52.4':
- resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==}
+ '@rollup/rollup-win32-arm64-msvc@4.52.5':
+ resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==}
cpu: [arm64]
os: [win32]
@@ -4260,13 +4315,13 @@ packages:
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-ia32-msvc@4.52.4':
- resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==}
+ '@rollup/rollup-win32-ia32-msvc@4.52.5':
+ resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==}
cpu: [ia32]
os: [win32]
- '@rollup/rollup-win32-x64-gnu@4.52.4':
- resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==}
+ '@rollup/rollup-win32-x64-gnu@4.52.5':
+ resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==}
cpu: [x64]
os: [win32]
@@ -4275,16 +4330,16 @@ packages:
cpu: [x64]
os: [win32]
- '@rollup/rollup-win32-x64-msvc@4.52.4':
- resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==}
+ '@rollup/rollup-win32-x64-msvc@4.52.5':
+ resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==}
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==}
+ '@rushstack/eslint-patch@1.14.1':
+ resolution: {integrity: sha512-jGTk8UD/RdjsNZW8qq10r0RBvxL8OWtoT+kImlzPDFilmozzM+9QmIJsmze9UiSBrFU45ZxhTYBypn9q9z/VfQ==}
'@scarf/scarf@1.4.0':
resolution: {integrity: sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==}
@@ -4348,52 +4403,52 @@ packages:
'@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==}
+ '@smithy/abort-controller@4.2.3':
+ resolution: {integrity: sha512-xWL9Mf8b7tIFuAlpjKtRPnHrR8XVrwTj5NPYO/QwZPtc0SDLsPxb56V5tzi5yspSMytISHybifez+4jlrx0vkQ==}
engines: {node: '>=18.0.0'}
- '@smithy/config-resolver@4.3.2':
- resolution: {integrity: sha512-F/G+VaulIebINyfvcoXmODgIc7JU/lxWK9/iI0Divxyvd2QWB7/ZcF7JKwMssWI6/zZzlMkq/Pt6ow2AOEebPw==}
+ '@smithy/config-resolver@4.4.0':
+ resolution: {integrity: sha512-Kkmz3Mup2PGp/HNJxhCWkLNdlajJORLSjwkcfrj0E7nu6STAEdcMR1ir5P9/xOmncx8xXfru0fbUYLlZog/cFg==}
engines: {node: '>=18.0.0'}
- '@smithy/core@3.16.1':
- resolution: {integrity: sha512-yRx5ag3xEQ/yGvyo80FVukS7ZkeUP49Vbzg0MjfHLkuCIgg5lFtaEJfZR178KJmjWPqLU4d0P4k7SKgF9UkOaQ==}
+ '@smithy/core@3.17.1':
+ resolution: {integrity: sha512-V4Qc2CIb5McABYfaGiIYLTmo/vwNIK7WXI5aGveBd9UcdhbOMwcvIMxIw/DJj1S9QgOMa/7FBkarMdIC0EOTEQ==}
engines: {node: '>=18.0.0'}
- '@smithy/credential-provider-imds@4.2.2':
- resolution: {integrity: sha512-hOjFTK+4mfehDnfjNkPqHUKBKR2qmlix5gy7YzruNbTdeoBE3QkfNCPvuCK2r05VUJ02QQ9bz2G41CxhSexsMw==}
+ '@smithy/credential-provider-imds@4.2.3':
+ resolution: {integrity: sha512-hA1MQ/WAHly4SYltJKitEsIDVsNmXcQfYBRv2e+q04fnqtAX5qXaybxy/fhUeAMCnQIdAjaGDb04fMHQefWRhw==}
engines: {node: '>=18.0.0'}
- '@smithy/eventstream-codec@4.2.2':
- resolution: {integrity: sha512-TDJFBixL6p/CZ6VyTfU+9YrPtcriAouv2IECk5jM4Y3zRJYXyei8lvsCSMMgYW9mLMbtp3mvJbeI8SLOF2BunA==}
+ '@smithy/eventstream-codec@4.2.3':
+ resolution: {integrity: sha512-rcr0VH0uNoMrtgKuY7sMfyKqbHc4GQaQ6Yp4vwgm+Z6psPuOgL+i/Eo/QWdXRmMinL3EgFM0Z1vkfyPyfzLmjw==}
engines: {node: '>=18.0.0'}
- '@smithy/eventstream-serde-browser@4.2.2':
- resolution: {integrity: sha512-WDNt+DpzqlXibmCW/b4290dNPMPLL0KrrsXDUQsMycj1NhR60s90pgmRSqaVzNMI5jhdyYVVNMmSh6bgQ9/eiQ==}
+ '@smithy/eventstream-serde-browser@4.2.3':
+ resolution: {integrity: sha512-EcS0kydOr2qJ3vV45y7nWnTlrPmVIMbUFOZbMG80+e2+xePQISX9DrcbRpVRFTS5Nqz3FiEbDcTCAV0or7bqdw==}
engines: {node: '>=18.0.0'}
- '@smithy/eventstream-serde-config-resolver@4.3.2':
- resolution: {integrity: sha512-vwc532Ji2FFaoXa+IaWXbO+OrG39t+atwlsLDwh2ayt5Ryn2Bd7gAnEZw6bHT/slreSn+4MKmO2fuRzA1wf1uA==}
+ '@smithy/eventstream-serde-config-resolver@4.3.3':
+ resolution: {integrity: sha512-GewKGZ6lIJ9APjHFqR2cUW+Efp98xLu1KmN0jOWxQ1TN/gx3HTUPVbLciFD8CfScBj2IiKifqh9vYFRRXrYqXA==}
engines: {node: '>=18.0.0'}
- '@smithy/eventstream-serde-node@4.2.2':
- resolution: {integrity: sha512-JJ+PhJ3jf+Xshx6fmz10evfu4k0Xk/uv+i43JnsvIonyugiY8fU4CNhTKScYOU6lL9mAEKxvEhy5DCnElKvkZw==}
+ '@smithy/eventstream-serde-node@4.2.3':
+ resolution: {integrity: sha512-uQobOTQq2FapuSOlmGLUeGTpvcBLE5Fc7XjERUSk4dxEi4AhTwuyHYZNAvL4EMUp7lzxxkKDFaJ1GY0ovrj0Kg==}
engines: {node: '>=18.0.0'}
- '@smithy/eventstream-serde-universal@4.2.2':
- resolution: {integrity: sha512-QrHhyQV0s2D1RaXPLIPCIy/dAQD3bBSW8nw5IkOmgOHAPDs54nwe6UXR2nsl25fW92BTGVQeOOcHad6rJ2m81A==}
+ '@smithy/eventstream-serde-universal@4.2.3':
+ resolution: {integrity: sha512-QIvH/CKOk1BZPz/iwfgbh1SQD5Y0lpaw2kLA8zpLRRtYMPXeYUEWh+moTaJyqDaKlbrB174kB7FSRFiZ735tWw==}
engines: {node: '>=18.0.0'}
- '@smithy/fetch-http-handler@5.3.3':
- resolution: {integrity: sha512-cipIcM3xQ5NdIVwcRb37LaQwIxZNMEZb/ZOPmLFS9uGo9TGx2dGCyMBj9oT7ypH4TUD/kOTc/qHmwQzthrSk+g==}
+ '@smithy/fetch-http-handler@5.3.4':
+ resolution: {integrity: sha512-bwigPylvivpRLCm+YK9I5wRIYjFESSVwl8JQ1vVx/XhCw0PtCi558NwTnT2DaVCl5pYlImGuQTSwMsZ+pIavRw==}
engines: {node: '>=18.0.0'}
- '@smithy/hash-node@4.2.2':
- resolution: {integrity: sha512-xuOPGrF2GUP+9og5NU02fplRVjJjMhAaY8ZconB3eLKjv/VSV9/s+sFf72MYO5Q2jcSRVk/ywZHpyGbE3FYnFQ==}
+ '@smithy/hash-node@4.2.3':
+ resolution: {integrity: sha512-6+NOdZDbfuU6s1ISp3UOk5Rg953RJ2aBLNLLBEcamLjHAg1Po9Ha7QIB5ZWhdRUVuOUrT8BVFR+O2KIPmw027g==}
engines: {node: '>=18.0.0'}
- '@smithy/invalid-dependency@4.2.2':
- resolution: {integrity: sha512-Z0844Zpoid5L1DmKX2+cn2Qu9i3XWjhzwYBRJEWrKJwjUuhEkzf37jKPj9dYFsZeKsAbS2qI0JyLsYafbXJvpA==}
+ '@smithy/invalid-dependency@4.2.3':
+ resolution: {integrity: sha512-Cc9W5DwDuebXEDMpOpl4iERo8I0KFjTnomK2RMdhhR87GwrSmUmwMxS4P5JdRf+LsjOdIqumcerwRgYMr/tZ9Q==}
engines: {node: '>=18.0.0'}
'@smithy/is-array-buffer@2.2.0':
@@ -4404,72 +4459,72 @@ packages:
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==}
+ '@smithy/middleware-content-length@4.2.3':
+ resolution: {integrity: sha512-/atXLsT88GwKtfp5Jr0Ks1CSa4+lB+IgRnkNrrYP0h1wL4swHNb0YONEvTceNKNdZGJsye+W2HH8W7olbcPUeA==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-endpoint@4.3.3':
- resolution: {integrity: sha512-CfxQ6X9L87/3C67Po6AGWXsx8iS4w2BO8vQEZJD6hwqg2vNRC/lMa2O5wXYCG9tKotdZ0R8KG33TS7kpUnYKiw==}
+ '@smithy/middleware-endpoint@4.3.5':
+ resolution: {integrity: sha512-SIzKVTvEudFWJbxAaq7f2GvP3jh2FHDpIFI6/VAf4FOWGFZy0vnYMPSRj8PGYI8Hjt29mvmwSRgKuO3bK4ixDw==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-retry@4.4.3':
- resolution: {integrity: sha512-EHnKGeFuzbmER4oSl/VJDxPLi+aiZUb3nk5KK8eNwHjMhI04jHlui2ZkaBzMfNmXOgymaS6zV//fyt6PSnI1ow==}
+ '@smithy/middleware-retry@4.4.5':
+ resolution: {integrity: sha512-DCaXbQqcZ4tONMvvdz+zccDE21sLcbwWoNqzPLFlZaxt1lDtOE2tlVpRSwcTOJrjJSUThdgEYn7HrX5oLGlK9A==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-serde@4.2.2':
- resolution: {integrity: sha512-tDMPMBCsA1GBxanShhPvQYwdiau3NmctUp+eELMhUTDua+EUrugXlaKCnTMMoEB5mbHFebdv81uJPkVP02oihA==}
+ '@smithy/middleware-serde@4.2.3':
+ resolution: {integrity: sha512-8g4NuUINpYccxiCXM5s1/V+uLtts8NcX4+sPEbvYQDZk4XoJfDpq5y2FQxfmUL89syoldpzNzA0R9nhzdtdKnQ==}
engines: {node: '>=18.0.0'}
- '@smithy/middleware-stack@4.2.2':
- resolution: {integrity: sha512-7rgzDyLOQouh1bC6gOXnCGSX2dqvbOclgClsFkj735xQM2CHV63Ams8odNZGJgcqnBsEz44V/pDGHU6ALEUD+w==}
+ '@smithy/middleware-stack@4.2.3':
+ resolution: {integrity: sha512-iGuOJkH71faPNgOj/gWuEGS6xvQashpLwWB1HjHq1lNNiVfbiJLpZVbhddPuDbx9l4Cgl0vPLq5ltRfSaHfspA==}
engines: {node: '>=18.0.0'}
- '@smithy/node-config-provider@4.3.2':
- resolution: {integrity: sha512-u38G0Audi2ORsL0QnzhopZ3yweMblQf8CZNbzUJ3wfTtZ7OiOwOzee0Nge/3dKeG/8lx0kt8K0kqDi6sYu0oKQ==}
+ '@smithy/node-config-provider@4.3.3':
+ resolution: {integrity: sha512-NzI1eBpBSViOav8NVy1fqOlSfkLgkUjUTlohUSgAEhHaFWA3XJiLditvavIP7OpvTjDp5u2LhtlBhkBlEisMwA==}
engines: {node: '>=18.0.0'}
- '@smithy/node-http-handler@4.4.1':
- resolution: {integrity: sha512-9gKJoL45MNyOCGTG082nmx0A6KrbLVQ+5QSSKyzRi0AzL0R81u3wC1+nPvKXgTaBdAKM73fFPdCBHpmtipQwdQ==}
+ '@smithy/node-http-handler@4.4.3':
+ resolution: {integrity: sha512-MAwltrDB0lZB/H6/2M5PIsISSwdI5yIh6DaBB9r0Flo9nx3y0dzl/qTMJPd7tJvPdsx6Ks/cwVzheGNYzXyNbQ==}
engines: {node: '>=18.0.0'}
- '@smithy/property-provider@4.2.2':
- resolution: {integrity: sha512-MW7MfI+qYe/Ue5RH0uEztEKB+vBlOMM+1Dz68qzTsY8fC9kanXMFPEVdiq35JTGKWt5wZAjU1R0uXYEjK2MM1g==}
+ '@smithy/property-provider@4.2.3':
+ resolution: {integrity: sha512-+1EZ+Y+njiefCohjlhyOcy1UNYjT+1PwGFHCxA/gYctjg3DQWAU19WigOXAco/Ql8hZokNehpzLd0/+3uCreqQ==}
engines: {node: '>=18.0.0'}
- '@smithy/protocol-http@5.3.2':
- resolution: {integrity: sha512-nkKOI8xEkBXUmdxsFExomOb+wkU+Xgn0Fq2LMC7YIX5r4YPUg7PLayV/s/u3AtbyjWYlrvN7nAiDTLlqSdUjHw==}
+ '@smithy/protocol-http@5.3.3':
+ resolution: {integrity: sha512-Mn7f/1aN2/jecywDcRDvWWWJF4uwg/A0XjFMJtj72DsgHTByfjRltSqcT9NyE9RTdBSN6X1RSXrhn/YWQl8xlw==}
engines: {node: '>=18.0.0'}
- '@smithy/querystring-builder@4.2.2':
- resolution: {integrity: sha512-YgXvq89o+R/8zIoeuXYv8Ysrbwgjx+iVYu9QbseqZjMDAhIg/FRt7jis0KASYFtd/Cnsnz4/nYTJXkJDWe8wHg==}
+ '@smithy/querystring-builder@4.2.3':
+ resolution: {integrity: sha512-LOVCGCmwMahYUM/P0YnU/AlDQFjcu+gWbFJooC417QRB/lDJlWSn8qmPSDp+s4YVAHOgtgbNG4sR+SxF/VOcJQ==}
engines: {node: '>=18.0.0'}
- '@smithy/querystring-parser@4.2.2':
- resolution: {integrity: sha512-DczOD2yJy3NXcv1JvhjFC7bIb/tay6nnIRD/qrzBaju5lrkVBOwCT3Ps37tra20wy8PicZpworStK7ZcI9pCRQ==}
+ '@smithy/querystring-parser@4.2.3':
+ resolution: {integrity: sha512-cYlSNHcTAX/wc1rpblli3aUlLMGgKZ/Oqn8hhjFASXMCXjIqeuQBei0cnq2JR8t4RtU9FpG6uyl6PxyArTiwKA==}
engines: {node: '>=18.0.0'}
- '@smithy/service-error-classification@4.2.2':
- resolution: {integrity: sha512-1X17cMLwe/vb4RpZbQVpJ1xQQ7fhQKggMdt3qjdV3+6QNllzvUXyS3WFnyaFWLyaGqfYHKkNONbO1fBCMQyZtQ==}
+ '@smithy/service-error-classification@4.2.3':
+ resolution: {integrity: sha512-NkxsAxFWwsPsQiwFG2MzJ/T7uIR6AQNh1SzcxSUnmmIqIQMlLRQDKhc17M7IYjiuBXhrQRjQTo3CxX+DobS93g==}
engines: {node: '>=18.0.0'}
- '@smithy/shared-ini-file-loader@4.3.2':
- resolution: {integrity: sha512-AWnLgSmOTdDXM8aZCN4Im0X07M3GGffeL9vGfea4mdKZD0cPT9yLF9SsRbEa00tHLI+KfubDrmjpaKT2pM4GdQ==}
+ '@smithy/shared-ini-file-loader@4.3.3':
+ resolution: {integrity: sha512-9f9Ixej0hFhroOK2TxZfUUDR13WVa8tQzhSzPDgXe5jGL3KmaM9s8XN7RQwqtEypI82q9KHnKS71CJ+q/1xLtQ==}
engines: {node: '>=18.0.0'}
- '@smithy/signature-v4@5.3.2':
- resolution: {integrity: sha512-BRnQGGyaRSSL0KtjjFF9YoSSg8qzSqHMub4H2iKkd+LZNzZ1b7H5amslZBzi+AnvuwPMyeiNv0oqay/VmIuoRA==}
+ '@smithy/signature-v4@5.3.3':
+ resolution: {integrity: sha512-CmSlUy+eEYbIEYN5N3vvQTRfqt0lJlQkaQUIf+oizu7BbDut0pozfDjBGecfcfWf7c62Yis4JIEgqQ/TCfodaA==}
engines: {node: '>=18.0.0'}
- '@smithy/smithy-client@4.8.1':
- resolution: {integrity: sha512-N5wK57pVThzLVK5NgmHxocTy5auqGDGQ+JsL5RjCTriPt8JLYgXT0Awa915zCpzc9hXHDOKqDX5g9BFdwkSfUA==}
+ '@smithy/smithy-client@4.9.1':
+ resolution: {integrity: sha512-Ngb95ryR5A9xqvQFT5mAmYkCwbXvoLavLFwmi7zVg/IowFPCfiqRfkOKnbc/ZRL8ZKJ4f+Tp6kSu6wjDQb8L/g==}
engines: {node: '>=18.0.0'}
- '@smithy/types@4.7.1':
- resolution: {integrity: sha512-WwP7vzoDyzvIFLzF5UhLQ6AsEx/PvSObzlNtJNW3lLy+BaSvTqCU628QKVvcJI/dydlAS1mSHQP7anKcxDcOxA==}
+ '@smithy/types@4.8.0':
+ resolution: {integrity: sha512-QpELEHLO8SsQVtqP+MkEgCYTFW0pleGozfs3cZ183ZBj9z3VC1CX1/wtFMK64p+5bhtZo41SeLK1rBRtd25nHQ==}
engines: {node: '>=18.0.0'}
- '@smithy/url-parser@4.2.2':
- resolution: {integrity: sha512-s2EYKukaswzjiHJCss6asB1F4zjRc0E/MFyceAKzb3+wqKA2Z/+Gfhb5FP8xVVRHBAvBkregaQAydifgbnUlCw==}
+ '@smithy/url-parser@4.2.3':
+ resolution: {integrity: sha512-I066AigYvY3d9VlU3zG9XzZg1yT10aNqvCaBTw9EPgu5GrsEl1aUkcMvhkIXascYH1A8W0LQo3B1Kr1cJNcQEw==}
engines: {node: '>=18.0.0'}
'@smithy/util-base64@4.3.0':
@@ -4496,32 +4551,32 @@ packages:
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==}
+ '@smithy/util-defaults-mode-browser@4.3.4':
+ resolution: {integrity: sha512-qI5PJSW52rnutos8Bln8nwQZRpyoSRN6k2ajyoUHNMUzmWqHnOJCnDELJuV6m5PML0VkHI+XcXzdB+6awiqYUw==}
engines: {node: '>=18.0.0'}
- '@smithy/util-defaults-mode-node@4.2.3':
- resolution: {integrity: sha512-bkTGuMmKvghfCh9NayADrQcjngoF8P+XTgID5r3rm+8LphFiuM6ERqpBS95YyVaLjDetnKus9zK/bGlkQOOtNQ==}
+ '@smithy/util-defaults-mode-node@4.2.6':
+ resolution: {integrity: sha512-c6M/ceBTm31YdcFpgfgQAJaw3KbaLuRKnAz91iMWFLSrgxRpYm03c3bu5cpYojNMfkV9arCUelelKA7XQT36SQ==}
engines: {node: '>=18.0.0'}
- '@smithy/util-endpoints@3.2.2':
- resolution: {integrity: sha512-ZQi6fFTMBkfwwSPAlcGzArmNILz33QH99CL8jDfVWrzwVVcZc56Mge10jGk0zdRgWPXyL1/OXKjfw4vT5VtRQg==}
+ '@smithy/util-endpoints@3.2.3':
+ resolution: {integrity: sha512-aCfxUOVv0CzBIkU10TubdgKSx5uRvzH064kaiPEWfNIvKOtNpu642P4FP1hgOFkjQIkDObrfIDnKMKkeyrejvQ==}
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==}
+ '@smithy/util-middleware@4.2.3':
+ resolution: {integrity: sha512-v5ObKlSe8PWUHCqEiX2fy1gNv6goiw6E5I/PN2aXg3Fb/hse0xeaAnSpXDiWl7x6LamVKq7senB+m5LOYHUAHw==}
engines: {node: '>=18.0.0'}
- '@smithy/util-retry@4.2.2':
- resolution: {integrity: sha512-TlbnWAOoCuG2PgY0Hi3BGU1w2IXs3xDsD4E8WDfKRZUn2qx3wRA9mbYnmpWHPswTJCz2L+ebh+9OvD42sV4mNw==}
+ '@smithy/util-retry@4.2.3':
+ resolution: {integrity: sha512-lLPWnakjC0q9z+OtiXk+9RPQiYPNAovt2IXD3CP4LkOnd9NpUsxOjMx1SnoUVB7Orb7fZp67cQMtTBKMFDvOGg==}
engines: {node: '>=18.0.0'}
- '@smithy/util-stream@4.5.2':
- resolution: {integrity: sha512-RWYVuQVKtNbr7E0IxV8XHDId714yHPTxU6dHScd6wSMWAXboErzTG7+xqcL+K3r0Xg0cZSlfuNhl1J0rzMLSSw==}
+ '@smithy/util-stream@4.5.4':
+ resolution: {integrity: sha512-+qDxSkiErejw1BAIXUFBSfM5xh3arbz1MmxlbMCKanDDZtVEQ7PSKW9FQS0Vud1eI/kYn0oCTVKyNzRlq+9MUw==}
engines: {node: '>=18.0.0'}
'@smithy/util-uri-escape@4.2.0':
@@ -4536,8 +4591,8 @@ packages:
resolution: {integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==}
engines: {node: '>=18.0.0'}
- '@smithy/util-waiter@4.2.2':
- resolution: {integrity: sha512-ZkanmAo9F47PIxuxaQ1E+VPn/jNIbOM7cpJyABfyI15jnr4l5toSDVXPRuvHIyC2f4fMYC7EKe5DIde7YP7c7A==}
+ '@smithy/util-waiter@4.2.3':
+ resolution: {integrity: sha512-5+nU///E5sAdD7t3hs4uwvCTWQtTR8JwKwOCSJtBRx0bY1isDo1QwH87vRK86vlFLBTISqoDA2V6xvP6nF1isQ==}
engines: {node: '>=18.0.0'}
'@smithy/uuid@1.1.0':
@@ -4556,65 +4611,65 @@ packages:
'@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/node@4.1.16':
+ resolution: {integrity: sha512-BX5iaSsloNuvKNHRN3k2RcCuTEgASTo77mofW0vmeHkfrDWaoFAFvNHpEgtu0eqyypcyiBkDWzSMxJhp3AUVcw==}
- '@tailwindcss/oxide-android-arm64@4.1.14':
- resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==}
+ '@tailwindcss/oxide-android-arm64@4.1.16':
+ resolution: {integrity: sha512-8+ctzkjHgwDJ5caq9IqRSgsP70xhdhJvm+oueS/yhD5ixLhqTw9fSL1OurzMUhBwE5zK26FXLCz2f/RtkISqHA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
- '@tailwindcss/oxide-darwin-arm64@4.1.14':
- resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==}
+ '@tailwindcss/oxide-darwin-arm64@4.1.16':
+ resolution: {integrity: sha512-C3oZy5042v2FOALBZtY0JTDnGNdS6w7DxL/odvSny17ORUnaRKhyTse8xYi3yKGyfnTUOdavRCdmc8QqJYwFKA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@tailwindcss/oxide-darwin-x64@4.1.14':
- resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==}
+ '@tailwindcss/oxide-darwin-x64@4.1.16':
+ resolution: {integrity: sha512-vjrl/1Ub9+JwU6BP0emgipGjowzYZMjbWCDqwA2Z4vCa+HBSpP4v6U2ddejcHsolsYxwL5r4bPNoamlV0xDdLg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@tailwindcss/oxide-freebsd-x64@4.1.14':
- resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==}
+ '@tailwindcss/oxide-freebsd-x64@4.1.16':
+ resolution: {integrity: sha512-TSMpPYpQLm+aR1wW5rKuUuEruc/oOX3C7H0BTnPDn7W/eMw8W+MRMpiypKMkXZfwH8wqPIRKppuZoedTtNj2tg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
- resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==}
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.16':
+ resolution: {integrity: sha512-p0GGfRg/w0sdsFKBjMYvvKIiKy/LNWLWgV/plR4lUgrsxFAoQBFrXkZ4C0w8IOXfslB9vHK/JGASWD2IefIpvw==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
- resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==}
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.16':
+ resolution: {integrity: sha512-DoixyMmTNO19rwRPdqviTrG1rYzpxgyYJl8RgQvdAQUzxC1ToLRqtNJpU/ATURSKgIg6uerPw2feW0aS8SNr/w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
- resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==}
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.16':
+ resolution: {integrity: sha512-H81UXMa9hJhWhaAUca6bU2wm5RRFpuHImrwXBUvPbYb+3jo32I9VIwpOX6hms0fPmA6f2pGVlybO6qU8pF4fzQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
- resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==}
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.16':
+ resolution: {integrity: sha512-ZGHQxDtFC2/ruo7t99Qo2TTIvOERULPl5l0K1g0oK6b5PGqjYMga+FcY1wIUnrUxY56h28FxybtDEla+ICOyew==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-linux-x64-musl@4.1.14':
- resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==}
+ '@tailwindcss/oxide-linux-x64-musl@4.1.16':
+ resolution: {integrity: sha512-Oi1tAaa0rcKf1Og9MzKeINZzMLPbhxvm7rno5/zuP1WYmpiG0bEHq4AcRUiG2165/WUzvxkW4XDYCscZWbTLZw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
- '@tailwindcss/oxide-wasm32-wasi@4.1.14':
- resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==}
+ '@tailwindcss/oxide-wasm32-wasi@4.1.16':
+ resolution: {integrity: sha512-B01u/b8LteGRwucIBmCQ07FVXLzImWESAIMcUU6nvFt/tYsQ6IHz8DmZ5KtvmwxD+iTYBtM1xwoGXswnlu9v0Q==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
bundledDependencies:
@@ -4625,24 +4680,24 @@ packages:
- '@emnapi/wasi-threads'
- tslib
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
- resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==}
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.16':
+ resolution: {integrity: sha512-zX+Q8sSkGj6HKRTMJXuPvOcP8XfYON24zJBRPlszcH1Np7xuHXhWn8qfFjIujVzvH3BHU+16jBXwgpl20i+v9A==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
- resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==}
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.16':
+ resolution: {integrity: sha512-m5dDFJUEejbFqP+UXVstd4W/wnxA4F61q8SoL+mqTypId2T2ZpuxosNSgowiCnLp2+Z+rivdU0AqpfgiD7yCBg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
- '@tailwindcss/oxide@4.1.14':
- resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==}
+ '@tailwindcss/oxide@4.1.16':
+ resolution: {integrity: sha512-2OSv52FRuhdlgyOQqgtQHuCgXnS8nFSYRp2tJ+4WZXKgTxqPy7SMSls8c3mPT5pkZ17SBToGM5LHEJBO7miEdg==}
engines: {node: '>= 10'}
- '@tailwindcss/postcss@4.1.14':
- resolution: {integrity: sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==}
+ '@tailwindcss/postcss@4.1.16':
+ resolution: {integrity: sha512-Qn3SFGPXYQMKR/UtqS+dqvPrzEeBZHrFA92maT4zijCVggdsXnDBMsPFJo1eArX3J+O+Gi+8pV4PkqjLCNBk3A==}
'@tailwindcss/typography@0.5.19':
resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==}
@@ -4658,148 +4713,148 @@ packages:
'@tanstack/virtual-core@3.13.12':
resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==}
- '@tiptap/core@2.26.3':
- resolution: {integrity: sha512-TaOJzu2v5ufsOx+yu94NqXE504zmupVdFCxH1g3hk5fzZ3gT57Lh9R/27OjwM4e6o+Z3DXDl8yfFMHIcR3zUkg==}
+ '@tiptap/core@2.27.0':
+ resolution: {integrity: sha512-8N9qB5lYbSIw5SvApY8hEiRWHpkcZQvJeOk0195gjca1iCXruPAZrpmL4ffMNn9D7p06kjBq+MKRjHv4WEyDPg==}
peerDependencies:
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-blockquote@2.26.3':
- resolution: {integrity: sha512-brz8+wh03TuMevNUztTSC9BzZEsLCNakPJCCicD8FRpBJoLj4benT6T3GYVdMhkk4BmhpruSFZB0FPY+rxCVlA==}
+ '@tiptap/extension-blockquote@2.27.0':
+ resolution: {integrity: sha512-Ck8/3Knj2GZu9DXqoSWj58P4Z1omJTaIoUGLKtEprUCGBPQdEQpadPzTsNjmuozvlqaSQypGKS2soNsW8VJ27g==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-bold@2.26.3':
- resolution: {integrity: sha512-ssXKQxSwQ+Webv65emK/A1d13iTvnfbw8I2wlzuxsrMChyb4wH2HyqI5N4g0FpLqCpkXFumforoY+0XKktve+w==}
+ '@tiptap/extension-bold@2.27.0':
+ resolution: {integrity: sha512-nPbBBmh51xhkwDvN4oRB7MAV4EgZsz6SvFD+xZoT9DOPHEXxeR4wkgt9YIxU5aP6iPoA8wHuMf10RHujGBJHEQ==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-bubble-menu@2.26.3':
- resolution: {integrity: sha512-vliC5bv/md4qkguqqL8w7LW8jnXBD1FLdSMDavHRVwdRaRnEfLRAIY7Oxtc1Voy3+762tfn912TuwDlCOPsNSQ==}
+ '@tiptap/extension-bubble-menu@2.27.0':
+ resolution: {integrity: sha512-6EU7AsW7M7yba0djveC7ISc27+FUdHdMxQlMkoBCtXwWfX6OMH0oTnpwRs3JriAsThVLaCf0Ox/MDh39cVi1wQ==}
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==}
+ '@tiptap/extension-bullet-list@2.27.0':
+ resolution: {integrity: sha512-TdfO/Hg4haabhD1G+g+ai3e6jU8v8SwhzVAyWd6Rt7bPNzSvSHJ6V1TKL9RBiJw9i9d8YnaZximfN5lC/lKC2w==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-code-block@2.26.3':
- resolution: {integrity: sha512-3DbzKRfMqw9EGS7mGkpyopbRWTO+qpV52Mby4Ll2+OfhvGnHzSN4Q7xOsp+VeZr14GMEmua5Oq2e/gRypqXatQ==}
+ '@tiptap/extension-code-block@2.27.0':
+ resolution: {integrity: sha512-9cdCyI8TMfdOIzInslLklg7mYCaqDMmPSbzHvLOQxFwW9zqC7RrzHNT78Y3ZNfuS+DKrOIzgM2NQTILEdKkh4A==}
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==}
+ '@tiptap/extension-code@2.27.0':
+ resolution: {integrity: sha512-Irscnj7Q7Bpn40avl6UGnau7sMKHNAUnGn0xZ7QCcckmpAfbCjt9K5i0FLXQW5/jc3a8MLYUsBdCRaKDq5Qm5g==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-color@2.26.3':
- resolution: {integrity: sha512-ijwfLpLWXDi797aKtQLPnMYrIQuC2g/Sqw+1k+tDNCfAgqK1LaALGiqf8j1vAcdE0tHdl37PIjud3Qv0hh6J5w==}
+ '@tiptap/extension-color@2.27.0':
+ resolution: {integrity: sha512-JlPgLPmjxdqT2XMK3z6fStUP6MwHs7f1fM9F1IfN4Ejgg5H/R/54rWOeh4t/VrGUbgoD5iOxH4h+Duyw8etyYg==}
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==}
+ '@tiptap/extension-document@2.27.0':
+ resolution: {integrity: sha512-NxkEJTrkKSavdu9/Sqi/R0O7Hb/jUQllLo9pk3kC6Q3nn3p5Q00afbe2HFet0/+1fEvU0n1kCRlTWM9QZA657w==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-dropcursor@2.26.3':
- resolution: {integrity: sha512-54rgDTmRStVmXZR7KdCvSOCAbumh5luXgticUkRM8OM8PBe1c0T9X8jfV7+XEFGugRVl8mtCZZpgUt5vhuxHog==}
+ '@tiptap/extension-dropcursor@2.27.0':
+ resolution: {integrity: sha512-x2EKCfREafGWTXbw0+Z5WLLd6LHoLIvrHwT30f1VojoEAD/ljQsmEek+tKmoY/nwkeyXG3Fej5yfby/+RdrsHA==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-floating-menu@2.26.3':
- resolution: {integrity: sha512-i2dsIMa0L6vjCPnTiXjPZXZqUu3sIIIAI+E1T4p0FsGYjjPTmN+AgkJqeO3bbe5XHmWcWKtgQevNCMF0kmU5rQ==}
+ '@tiptap/extension-floating-menu@2.27.0':
+ resolution: {integrity: sha512-r67GP/dkPZy/q61FFwWrY+izFoOC6t+wFsB8rR2BqxjF0+irY+sig26I48KszzHuJpajw9HBxlEYtPvYIgaJPA==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-gapcursor@2.26.3':
- resolution: {integrity: sha512-ZDNSkpz7ik2PJOjrys27rwko5Ufe6GtLjaAxjvkWmyzcgAOTadDeth9NaRdBVMDGgSLBKbXihYZZXLkiAP9RLA==}
+ '@tiptap/extension-gapcursor@2.27.0':
+ resolution: {integrity: sha512-fQmdYN9DIZc0N76ocA2BPFN9pJYKb/0k8ywwW2z4xlLJPN9S9bQx7FIS02lz+jEbTlNtrb60EM9jcq041oF1jg==}
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==}
+ '@tiptap/extension-hard-break@2.27.0':
+ resolution: {integrity: sha512-fWf0hM6Y2tvjALh7Si2p6FSfV4zfL8kyuvBCsM8I+OWV62oIo+dZ/Arg7FK9zZ7ofnjsrCOUNEeeHB/run0E3A==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-heading@2.26.3':
- resolution: {integrity: sha512-bp7YildFOustuGJGl8TInG26h7xbcpBKskm49TjwyBjUqRHPGH4V11554afStAr+bsTlPN4TDXt7extvq3UYLA==}
+ '@tiptap/extension-heading@2.27.0':
+ resolution: {integrity: sha512-lE9iqGBO2yXDSsEUBfzsFw/owPD/Dv6ukbzfqVm99pt75EqDmbMVRBwlwIkfN2WPTQr6j6N2CHso+rtAK9yaMg==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-history@2.26.3':
- resolution: {integrity: sha512-Qg4+WWf/hDgiBspxLbrhrIFUy7lzi2eBKPSoF/haEYFw/t/FeN60NXYYYtpLimUNpUzyJSOSIwsngFcVJO5X+g==}
+ '@tiptap/extension-history@2.27.0':
+ resolution: {integrity: sha512-j/dsXElyuTFrzWCwFysaPKVsfWE7/Ocw3LucUOK/GGqKeGm7FS0VUb5LKsRHxUrJg5jPI96txSUXJSItcC6G8w==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-horizontal-rule@2.26.3':
- resolution: {integrity: sha512-NhlJEDj0b/P1Rj4UOMgt4CjS4IXEhXQFsdiXmsYZxchfr4J72HrsOfZs4vAqIQbkrLgUlYEr/DGMNWzME78FrA==}
+ '@tiptap/extension-horizontal-rule@2.27.0':
+ resolution: {integrity: sha512-mNiYuLFoM6SqdR2HpPcVf1dvKKNEE7yKGpMJHv+szxQb2aZIprIQKnRBU7ChEKJLnVEugxvHkfDjBQGmU63aig==}
peerDependencies:
'@tiptap/core': ^2.7.0
'@tiptap/pm': ^2.7.0
- '@tiptap/extension-italic@2.26.3':
- resolution: {integrity: sha512-DJX31JQsyerqoNM+hAtbjHoJ42W/EpnMMCtQr/gRS8ssEdrVtcDDhSO2tkaP6dNjhG8zH2hKYsXpLCCFdDgvwg==}
+ '@tiptap/extension-italic@2.27.0':
+ resolution: {integrity: sha512-tU8DrUUn4YZAb1jldCWhcAi0UkuDNgxhJ+IeoA2Qs6jrxdEmliTGY4X8b9nJqzUwFfPXircPM3CkhBZP+M/sBQ==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-list-item@2.26.3':
- resolution: {integrity: sha512-9qU0SoC+tDSKYhfdWFS3dkioEk3ml1ycBeRmOxh7h+w0ezmTomiT5yvc9t3KM30ps8n1p78sIPo19GF65u1dFQ==}
+ '@tiptap/extension-list-item@2.27.0':
+ resolution: {integrity: sha512-1DFuNhbkLyJSgyqHZskKhwx2uYk6tKvSCHSJgxgK6pCRQ2GffKGCrWrO87+5LX5IAExOHFnBp5KVikK/Te2BHA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-ordered-list@2.26.3':
- resolution: {integrity: sha512-x6G0qA7dAvSq+kphA7P64m+ScoVEAW8s9pl7o3jIJzcIW/LrbL1xkyOjbgCvGEvwyQVsgyqtLQDQ2oeloosDBw==}
+ '@tiptap/extension-ordered-list@2.27.0':
+ resolution: {integrity: sha512-NRi8DS6YZJGzwhJs71T8Q3p00BmrGhIPPMw4LH6BWVJRJJeRRlVdyFN2sTpn/EG1pas2r8p+ylySwSM+4DaD1Q==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-paragraph@2.26.3':
- resolution: {integrity: sha512-eBC5UsaTJRUMhePtK1dcCAfes0CpqqFiewpIM0lWk4XMtpG2aoczVVVkImybbFKfqsvEEo3vgHJ2YiE5YZFCSg==}
+ '@tiptap/extension-paragraph@2.27.0':
+ resolution: {integrity: sha512-UpAW49LVCC/k3mcUjVopHZJBRcK+1kSQkCVUaQI2EEmui9Wvwr/1IAoYxzTO7z1XPQuBwAh96wRnaQtwDaU+IQ==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-placeholder@2.26.3':
- resolution: {integrity: sha512-HDF4FZj8CmQQvbSyXb/G+Ujqoue7TMQPMAe1h1OMJAXq856Y0AsVLXYKiBojUTfI11I7zVwYe08D8atIXHLZZw==}
+ '@tiptap/extension-placeholder@2.27.0':
+ resolution: {integrity: sha512-IyGgtj6vd2YrYJ264zzvD3Yg26L4akMOMnUboAbrn+GqqS4ESAtY84aHaYlgv7BypkZfFk5QUrwRqvhCMTmZQg==}
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==}
+ '@tiptap/extension-strike@2.27.0':
+ resolution: {integrity: sha512-777YQraLw355UXGFJB0/h+2lakQeUgosTbPB+87nKdgPzI6Suglq8bOq1MADzrbBWXw/RCB+5yix0Eou6JeRTA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-text-style@2.26.3':
- resolution: {integrity: sha512-B+t6k41xtmlIxyi0r+g8MAShGMCK6kmz8EdxoLAUVrlCxYWVk6qvzoojZbjQKlb2sE+idIo4X5yCcKpdkxFe0w==}
+ '@tiptap/extension-text-style@2.27.0':
+ resolution: {integrity: sha512-7EKxtJxvSVLXTR9KosvwRHxBj8Xa2M9/I1rV6yt89RGY40qcxhBNhlKJGYMr0RtZxAyec4sGvehlcuYrt6iCXA==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/extension-text@2.26.3':
- resolution: {integrity: sha512-sGRbX96ss4jQeKw9d0iphuAWja8Dv4w4ryTDKfxD7Lizx3UaIxQB/y+Wna89tM3kfbi/qJcrD3AF7NJgfc/tEA==}
+ '@tiptap/extension-text@2.27.0':
+ resolution: {integrity: sha512-bks93tyv7gta7Z/q2OuMk5m9r7rBeef/3Y/hoUolMezIKQ3BHWLOEGkLVej2noNIx5n9LRJzXec1nvp0XeCJ5g==}
peerDependencies:
'@tiptap/core': ^2.7.0
- '@tiptap/pm@2.26.3':
- resolution: {integrity: sha512-8gUmdxWlUevmgq2mNvGxvf2CpDW097tVKECMWKEn8sf846kXv3CoqaGRhI3db4kfR+09uWZeRM7rtrjRBmUThg==}
+ '@tiptap/pm@2.27.0':
+ resolution: {integrity: sha512-BPcAVqBNp2wT1diCt8DVVCwAK8L4qKjcMF39IRMvDCMSfv1Lcp/04csyC/VO8JQgFpPEHEf20Yk5KCviEz06Eg==}
- '@tiptap/react@2.26.3':
- resolution: {integrity: sha512-4g7pbdyawIO5YZXJQMwNv0dptblV4QUa7T/BYHe+PjAm4H+OeQbo7UmbxU427u8hPt1PhXZjbvT7D5i3r/MXCw==}
+ '@tiptap/react@2.27.0':
+ resolution: {integrity: sha512-0o/93Bf7zZlfrBibfBqjRD+9zTHPIL8Lojute/iIvT70mXQMLobgXZTlPbzywqxecHQVm3jU5IfSqNdKpqQS9g==}
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==}
+ '@tiptap/starter-kit@2.27.0':
+ resolution: {integrity: sha512-jPIK7xBDQcVN8Glv+i313BQkGtx2SXBB/HsKNZD3JbbnTyOeuUrN1buIm3CrpTdFwE8fPom7QSWLi7B73BibiQ==}
'@tokenizer/token@0.3.0':
resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
@@ -4930,9 +4985,6 @@ packages:
'@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==}
@@ -4945,8 +4997,8 @@ packages:
'@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/express@4.17.25':
+ resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==}
'@types/geojson@7946.0.16':
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
@@ -5023,11 +5075,14 @@ packages:
'@types/node@18.19.130':
resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
- '@types/node@20.19.21':
- resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==}
+ '@types/node@20.19.24':
+ resolution: {integrity: sha512-FE5u0ezmi6y9OZEzlJfg37mqqf6ZDSF2V/NLjUyGrR9uTZ7Sb9F7bLNZ03S4XVUNRWGA7Ck4c1kK+YnuWjl+DA==}
- '@types/node@22.18.10':
- resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==}
+ '@types/node@22.18.13':
+ resolution: {integrity: sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A==}
+
+ '@types/node@24.9.2':
+ resolution: {integrity: sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==}
'@types/oracledb@6.5.2':
resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==}
@@ -5067,14 +5122,14 @@ packages:
'@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@0.17.6':
+ resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==}
- '@types/send@1.2.0':
- resolution: {integrity: sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==}
+ '@types/send@1.2.1':
+ resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==}
- '@types/serve-static@1.15.9':
- resolution: {integrity: sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==}
+ '@types/serve-static@1.15.10':
+ resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==}
'@types/stack-utils@2.0.3':
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
@@ -5103,8 +5158,8 @@ packages:
'@types/uuid@10.0.0':
resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
- '@types/validator@13.15.3':
- resolution: {integrity: sha512-7bcUmDyS6PN3EuD9SlGGOxM77F8WLVsrwkxyWxKnxzmXoequ6c7741QBrANq6htVRGOITJ7z72mTP6Z4XyuG+Q==}
+ '@types/validator@13.15.4':
+ resolution: {integrity: sha512-LSFfpSnJJY9wbC0LQxgvfb+ynbHftFo0tMsFOl/J4wexLnYMmDSPaj2ZyDv3TkfL1UePxPrxOWJfbiRS8mQv7A==}
'@types/ws@8.18.1':
resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
@@ -5112,66 +5167,66 @@ packages:
'@types/yargs-parser@21.0.3':
resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
- '@types/yargs@17.0.33':
- resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
+ '@types/yargs@17.0.34':
+ resolution: {integrity: sha512-KExbHVa92aJpw9WDQvzBaGVE2/Pz+pLZQloT2hjL8IqsZnV62rlPOYvNnLmf/L2dyllfVUOVBj64M0z/46eR2A==}
- '@typescript-eslint/eslint-plugin@8.46.1':
- resolution: {integrity: sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==}
+ '@typescript-eslint/eslint-plugin@8.46.2':
+ resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.46.1
+ '@typescript-eslint/parser': ^8.46.2
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==}
+ '@typescript-eslint/parser@8.46.2':
+ resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==}
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==}
+ '@typescript-eslint/project-service@8.46.2':
+ resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==}
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==}
+ '@typescript-eslint/scope-manager@8.46.2':
+ resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==}
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==}
+ '@typescript-eslint/tsconfig-utils@8.46.2':
+ resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==}
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==}
+ '@typescript-eslint/type-utils@8.46.2':
+ resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==}
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==}
+ '@typescript-eslint/types@8.46.2':
+ resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.46.1':
- resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==}
+ '@typescript-eslint/typescript-estree@8.46.2':
+ resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==}
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==}
+ '@typescript-eslint/utils@8.46.2':
+ resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==}
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==}
+ '@typescript-eslint/visitor-keys@8.46.2':
+ resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@ungap/structured-clone@1.3.0':
@@ -5278,8 +5333,8 @@ packages:
'@urql/core@5.2.0':
resolution: {integrity: sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==}
- '@vercel/oidc@3.0.2':
- resolution: {integrity: sha512-JekxQ0RApo4gS4un/iMGsIL1/k4KUBe3HmnGcDvzHuFBdQdudEJgTqcsJC7y6Ul4Yw5CeykgvQbX2XeEJd0+DA==}
+ '@vercel/oidc@3.0.3':
+ resolution: {integrity: sha512-yNEQvPcVrK9sIe637+I0jD6leluPxzwJKx/Haw6F4H77CdDsszUn5V3o96LPziXkSNE2B83+Z3mjqGKBK/R6Gg==}
engines: {node: '>= 20'}
'@webcontainer/env@1.1.1':
@@ -5351,15 +5406,11 @@ packages:
resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
engines: {node: '>= 8.0.0'}
- ai@4.3.19:
- resolution: {integrity: sha512-dIE2bfNpqHN3r6IINp9znguYdhIOheKW2LDigAMrgt/upT3B8eBGPSCblENvaZGoq+hxaN9fSMzjWpbqloP+7Q==}
+ ai@5.0.59:
+ resolution: {integrity: sha512-SuAFxKXt2Ha9FiXB3gaOITkOg9ek/3QNVatGVExvTT4gNXc+hJpuNe1dmuwf6Z5Op4fzc8wdbsrYP27ZCXBzlw==}
engines: {node: '>=18'}
peerDependencies:
- react: ^18 || ^19 || ^19.0.0-rc
- zod: ^3.23.8
- peerDependenciesMeta:
- react:
- optional: true
+ zod: ^3.25.76 || ^4.1.8
ai@5.0.60:
resolution: {integrity: sha512-80U/3kmdBW6g+JkLXpz/P2EwkyEaWlPlYtuLUpx/JYK9F7WZh9NnkYoh1KvUi1Sbpo0NyurBTvX0a2AG9mmbDA==}
@@ -5367,6 +5418,12 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
+ ai@5.0.76:
+ resolution: {integrity: sha512-ZCxi1vrpyCUnDbtYrO/W8GLvyacV9689f00yshTIQ3mFFphbD7eIv40a2AOZBv3GGRA7SSRYIDnr56wcS/gyQg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4.1.8
+
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -5483,8 +5540,11 @@ packages:
resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==}
engines: {node: '>=4'}
- axios@1.12.2:
- resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==}
+ axios@1.13.1:
+ resolution: {integrity: sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==}
+
+ axios@1.13.2:
+ resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==}
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
@@ -5524,8 +5584,8 @@ packages:
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==}
+ baseline-browser-mapping@2.8.21:
+ resolution: {integrity: sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==}
hasBin: true
bignumber.js@9.3.1:
@@ -5559,8 +5619,8 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
- browserslist@4.26.3:
- resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==}
+ browserslist@4.27.0:
+ resolution: {integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -5629,8 +5689,8 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- caniuse-lite@1.0.30001750:
- resolution: {integrity: sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==}
+ caniuse-lite@1.0.30001751:
+ resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==}
case-anything@2.1.13:
resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==}
@@ -5647,10 +5707,6 @@ packages:
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'}
@@ -5691,10 +5747,6 @@ packages:
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'}
@@ -5756,8 +5808,8 @@ packages:
collapse-white-space@2.1.0:
resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
- collect-v8-coverage@1.0.2:
- resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
+ collect-v8-coverage@1.0.3:
+ resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==}
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
@@ -5813,9 +5865,6 @@ packages:
commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
- compare-versions@6.1.1:
- resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==}
-
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -5834,8 +5883,8 @@ packages:
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==}
+ console-table-printer@2.15.0:
+ resolution: {integrity: sha512-SrhBq4hYVjLCkBVOWaTzceJalvn5K1Zq5aQA6wXC/cYjI3frKWNPEMK3sZsJfNNQApvCQmgBcc13ZKmFj8qExw==}
content-disposition@0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
@@ -6088,8 +6137,8 @@ packages:
dateformat@4.6.3:
resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==}
- dayjs@1.11.18:
- resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==}
+ dayjs@1.11.19:
+ resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==}
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
@@ -6215,9 +6264,6 @@ packages:
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}
@@ -6264,11 +6310,11 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
- electrodb@3.4.7:
- resolution: {integrity: sha512-kO7JmeMPkVHKX1nBFENRWzKHhivYmK7Kjd2KThEZCwnEzTgscovyg/z9h7GNfRtXR6kKWHjCgUrrhDzecrxM0A==}
+ electrodb@3.5.0:
+ resolution: {integrity: sha512-msJyMTQmx6AC/otRKSre0rktE3E0RUw7ez9u2F25ZU4iXEqzxeu/OyRJcR53hh+jv4Fefi/3F9R+JopgIUZJHQ==}
- electron-to-chromium@1.5.235:
- resolution: {integrity: sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ==}
+ electron-to-chromium@1.5.243:
+ resolution: {integrity: sha512-ZCphxFW3Q1TVhcgS9blfut1PX8lusVi2SvXQgmEEnK4TCmE1JhH2JkjJN+DNt0pJJwfBri5AROBnz2b/C+YU9g==}
embla-carousel-react@8.6.0:
resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==}
@@ -6364,8 +6410,8 @@ packages:
esast-util-from-js@2.0.1:
resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
- esbuild@0.25.10:
- resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==}
+ esbuild@0.25.11:
+ resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==}
engines: {node: '>=18'}
hasBin: true
@@ -6474,8 +6520,8 @@ packages:
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==}
+ eslint@9.38.0:
+ resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -6845,8 +6891,8 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
- get-tsconfig@4.12.0:
- resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==}
+ get-tsconfig@4.13.0:
+ resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
giget@2.0.0:
resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==}
@@ -6914,8 +6960,8 @@ packages:
peerDependencies:
graphql: 14 - 16
- graphql-scalars@1.24.2:
- resolution: {integrity: sha512-FoZ11yxIauEnH0E5rCUkhDXHVn/A6BBfovJdimRZCQlFCl+h7aVvarKmI15zG4VtQunmCDdqdtNs6ixThy3uAg==}
+ graphql-scalars@1.25.0:
+ resolution: {integrity: sha512-b0xyXZeRFkne4Eq7NAnL400gStGqG/Sx9VqX0A05nHyEbv57UJnWKsjNnrpVqv5e/8N1MUxkt0wwcRXbiyKcFg==}
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
@@ -7081,10 +7127,6 @@ packages:
resolution: {integrity: sha512-2LOYWUbnhdxdL8MNbNg9XZig6k+cZXm5IjHn2Aviv7honhBMOHb+jxrKIeJRZJRmn+htUCKhaicxwXuUDlchRA==}
engines: {node: '>=16.9.0'}
- 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==}
@@ -7323,6 +7365,10 @@ packages:
resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
engines: {node: '>= 0.4'}
+ is-network-error@1.3.0:
+ resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==}
+ engines: {node: '>=16'}
+
is-number-object@1.1.1:
resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
engines: {node: '>= 0.4'}
@@ -7645,11 +7691,6 @@ packages:
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==}
@@ -7763,8 +7804,8 @@ packages:
resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==}
engines: {node: '>=16.0.0'}
- langsmith@0.3.74:
- resolution: {integrity: sha512-ZuW3Qawz8w88XcuCRH91yTp6lsdGuwzRqZ5J0Hf5q/AjMz7DwcSv0MkE6V5W+8hFMI850QZN2Wlxwm3R9lHlZg==}
+ langsmith@0.3.76:
+ resolution: {integrity: sha512-JIRyT+InuaaMxq3dhXVOAkedAsugY5TOEAJrI87UuIfJVgV2i7K/lPI4+jNtakaYL9gIKbIwpXHBMpb8rrRgOg==}
peerDependencies:
'@opentelemetry/api': '*'
'@opentelemetry/exporter-trace-otlp-proto': '*'
@@ -7801,76 +7842,82 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
- libphonenumber-js@1.12.24:
- resolution: {integrity: sha512-l5IlyL9AONj4voSd7q9xkuQOL4u8Ty44puTic7J88CmdXkxfGsRfoVLXHCxppwehgpb/Chdb80FFehHqjN3ItQ==}
+ libphonenumber-js@1.12.25:
+ resolution: {integrity: sha512-u90tUu/SEF8b+RaDKCoW7ZNFDakyBtFlX1ex3J+VH+ElWes/UaitJLt/w4jGu8uAE41lltV/s+kMVtywcMEg7g==}
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==}
+ lightningcss-android-arm64@1.30.2:
+ resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
+ lightningcss-darwin-arm64@1.30.2:
+ resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
- lightningcss-darwin-x64@1.30.1:
- resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==}
+ lightningcss-darwin-x64@1.30.2:
+ resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
- lightningcss-freebsd-x64@1.30.1:
- resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==}
+ lightningcss-freebsd-x64@1.30.2:
+ resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==}
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==}
+ lightningcss-linux-arm-gnueabihf@1.30.2:
+ resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
- lightningcss-linux-arm64-gnu@1.30.1:
- resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==}
+ lightningcss-linux-arm64-gnu@1.30.2:
+ resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
- lightningcss-linux-arm64-musl@1.30.1:
- resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==}
+ lightningcss-linux-arm64-musl@1.30.2:
+ resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
- lightningcss-linux-x64-gnu@1.30.1:
- resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==}
+ lightningcss-linux-x64-gnu@1.30.2:
+ resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
- lightningcss-linux-x64-musl@1.30.1:
- resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==}
+ lightningcss-linux-x64-musl@1.30.2:
+ resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
- lightningcss-win32-arm64-msvc@1.30.1:
- resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==}
+ lightningcss-win32-arm64-msvc@1.30.2:
+ resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
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==}
+ lightningcss-win32-x64-msvc@1.30.2:
+ resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
- lightningcss@1.30.1:
- resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==}
+ lightningcss@1.30.2:
+ resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==}
engines: {node: '>= 12.0.0'}
lilconfig@3.1.3:
@@ -7993,8 +8040,8 @@ packages:
lucide@0.525.0:
resolution: {integrity: sha512-sfehWlaE/7NVkcEQ4T9JD3eID8RNMIGJBBUq9wF3UFiJIrcMKRbU3g1KGfDk4svcW7yw8BtDLXaXo02scDtUYQ==}
- magic-string@0.30.19:
- resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
make-dir@4.0.0:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
@@ -8354,10 +8401,6 @@ packages:
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==}
@@ -8482,8 +8525,8 @@ packages:
node-int64@0.4.0:
resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
- node-releases@2.0.23:
- resolution: {integrity: sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==}
+ node-releases@2.0.26:
+ resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==}
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
@@ -8644,6 +8687,10 @@ packages:
resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
engines: {node: '>=8'}
+ p-retry@7.1.0:
+ resolution: {integrity: sha512-xL4PiFRQa/f9L9ZvR4/gUCRNus4N8YX80ku8kv9Jqz+ZokkiZLM0bcvX0gm1F3PDi9SPRsww1BDsTWgE6Y1GLQ==}
+ engines: {node: '>=20'}
+
p-timeout@3.2.0:
resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
engines: {node: '>=8'}
@@ -8784,8 +8831,8 @@ packages:
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==}
+ pino@9.14.0:
+ resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==}
hasBin: true
pirates@4.0.7:
@@ -8943,14 +8990,14 @@ packages:
prosemirror-dropcursor@1.8.2:
resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==}
- prosemirror-gapcursor@1.3.2:
- resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==}
+ prosemirror-gapcursor@1.4.0:
+ resolution: {integrity: sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==}
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-inputrules@1.5.1:
+ resolution: {integrity: sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==}
prosemirror-keymap@1.2.3:
resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==}
@@ -8961,8 +9008,8 @@ packages:
prosemirror-menu@1.2.5:
resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==}
- prosemirror-model@1.25.3:
- resolution: {integrity: sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==}
+ prosemirror-model@1.25.4:
+ resolution: {integrity: sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==}
prosemirror-schema-basic@1.2.4:
resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==}
@@ -8970,8 +9017,8 @@ packages:
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-state@1.4.4:
+ resolution: {integrity: sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==}
prosemirror-tables@1.8.1:
resolution: {integrity: sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==}
@@ -9149,8 +9196,8 @@ packages:
recma-stringify@1.0.0:
resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
- redis@5.8.3:
- resolution: {integrity: sha512-MfSrfV6+tEfTw8c4W0yFp6XWX8Il4laGU7Bx4kvW4uiYM1AuZ3KGqEGt1LdQHeD1nEyLpIWetZ/SpY3kkbgrYw==}
+ redis@5.9.0:
+ resolution: {integrity: sha512-E8dQVLSyH6UE/C9darFuwq4usOPrqfZ1864kI4RFbr5Oj9ioB9qPF0oJMwX7s8mf6sPYrz84x/Dx1PGF3/0EaQ==}
engines: {node: '>= 18'}
reflect-metadata@0.2.2:
@@ -9242,8 +9289,8 @@ packages:
resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==}
engines: {node: '>=10'}
- resolve@1.22.10:
- resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ resolve@1.22.11:
+ resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
engines: {node: '>= 0.4'}
hasBin: true
@@ -9290,8 +9337,8 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
- rollup@4.52.4:
- resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==}
+ rollup@4.52.5:
+ resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -9458,9 +9505,6 @@ packages:
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==}
@@ -9658,13 +9702,8 @@ packages:
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==}
+ tabbable@6.3.0:
+ resolution: {integrity: sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==}
tailwind-merge@3.3.1:
resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==}
@@ -9674,17 +9713,13 @@ packages:
peerDependencies:
tailwindcss: '>=3.0.0 || insiders'
- tailwindcss@4.1.14:
- resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==}
+ tailwindcss@4.1.16:
+ resolution: {integrity: sha512-pONL5awpaQX4LN5eiv7moSiSPd/DLDzKVRJz8Q9PgzmAdd1R4307GQS2ZpfiN7ZmekdQrfhZZiSE5jkLR4WNaA==}
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==}
@@ -9702,16 +9737,16 @@ packages:
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==}
+ tinyexec@1.0.2:
+ resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
+ engines: {node: '>=18'}
+
tinyglobby@0.2.15:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'}
@@ -9807,8 +9842,8 @@ packages:
ts-proto-descriptors@2.0.0:
resolution: {integrity: sha512-wHcTH3xIv11jxgkX5OyCSFfw27agpInAd6yh89hKG6zqIXnjW9SYqSER2CVQxdPj4czeOhGagNvZBEbJPy7qkw==}
- ts-proto@2.7.7:
- resolution: {integrity: sha512-/OfN9/Yriji2bbpOysZ/Jzc96isOKz+eBTJEcKaIZ0PR6x1TNgVm4Lz0zfbo+J0jwFO7fJjJyssefBPQ0o1V9A==}
+ ts-proto@2.8.2:
+ resolution: {integrity: sha512-OOgPvB+XQrFQUp0FQ/GYkXNQ5ngLO1lv0KcbPJy4siKlgMPpKbeApeJEy5fNtqwxQB/yMW5vecfrTV+reXLKng==}
hasBin: true
tsconfig-paths@3.15.0:
@@ -9968,6 +10003,9 @@ packages:
undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
unicorn-magic@0.3.0:
resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==}
engines: {node: '>=18'}
@@ -9987,8 +10025,8 @@ packages:
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-is@6.0.1:
+ resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
unist-util-position-from-estree@2.0.0:
resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
@@ -10011,8 +10049,8 @@ packages:
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-parents@6.0.2:
+ resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
unist-util-visit@4.1.2:
resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==}
@@ -10042,8 +10080,8 @@ packages:
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==}
+ update-browserslist-db@1.1.4:
+ resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -10121,8 +10159,8 @@ packages:
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==}
+ validator@13.15.20:
+ resolution: {integrity: sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==}
engines: {node: '>= 0.10'}
vary@1.1.2:
@@ -10291,10 +10329,6 @@ packages:
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'}
@@ -10327,8 +10361,8 @@ packages:
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-from-json-schema@0.5.1:
+ resolution: {integrity: sha512-HZH5mnA6oasGU2mYknkhfZ2LbP2UaRk5cXmgDyc5AZdKvwq/4RY5P/yexPq8vl9rw/3OYvpwMXcDwLag3Tb6DQ==}
zod-to-json-schema@3.24.6:
resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==}
@@ -10353,7 +10387,7 @@ snapshots:
'@a2a-js/sdk@0.2.5':
dependencies:
'@types/cors': 2.8.19
- '@types/express': 4.17.23
+ '@types/express': 4.17.25
body-parser: 2.2.0
cors: 2.8.5
express: 4.21.2
@@ -10373,11 +10407,11 @@ snapshots:
uuid: 11.1.0
zod: 3.25.76
- '@ag-ui/client@0.0.40-alpha.10':
+ '@ag-ui/client@0.0.40-alpha.11':
dependencies:
- '@ag-ui/core': 0.0.40-alpha.10
- '@ag-ui/encoder': 0.0.40-alpha.10
- '@ag-ui/proto': 0.0.40-alpha.10
+ '@ag-ui/core': 0.0.40-alpha.11
+ '@ag-ui/encoder': 0.0.40-alpha.11
+ '@ag-ui/proto': 0.0.40-alpha.11
'@types/uuid': 10.0.0
fast-json-patch: 3.1.1
rxjs: 7.8.1
@@ -10395,11 +10429,6 @@ snapshots:
rxjs: 7.8.1
zod: 3.25.76
- '@ag-ui/core@0.0.40-alpha.10':
- dependencies:
- rxjs: 7.8.1
- zod: 3.25.76
-
'@ag-ui/core@0.0.40-alpha.11':
dependencies:
rxjs: 7.8.1
@@ -10410,22 +10439,17 @@ snapshots:
'@ag-ui/core': 0.0.35
'@ag-ui/proto': 0.0.35
- '@ag-ui/encoder@0.0.40-alpha.10':
- dependencies:
- '@ag-ui/core': 0.0.40-alpha.10
- '@ag-ui/proto': 0.0.40-alpha.10
-
'@ag-ui/encoder@0.0.40-alpha.11':
dependencies:
'@ag-ui/core': 0.0.40-alpha.11
'@ag-ui/proto': 0.0.40-alpha.11
- '@ag-ui/langgraph@0.0.19-alpha.1(@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@4.104.0(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@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.2.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@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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:
@@ -10439,18 +10463,12 @@ snapshots:
'@ag-ui/proto@0.0.35':
dependencies:
'@ag-ui/core': 0.0.35
- '@bufbuild/protobuf': 2.9.0
-
- '@ag-ui/proto@0.0.40-alpha.10':
- dependencies:
- '@ag-ui/core': 0.0.40-alpha.10
- '@bufbuild/protobuf': 2.9.0
- '@protobuf-ts/protoc': 2.11.1
+ '@bufbuild/protobuf': 2.10.0
'@ag-ui/proto@0.0.40-alpha.11':
dependencies:
'@ag-ui/core': 0.0.40-alpha.11
- '@bufbuild/protobuf': 2.9.0
+ '@bufbuild/protobuf': 2.10.0
'@protobuf-ts/protoc': 2.11.1
'@ai-sdk/anthropic@2.0.23(zod@3.25.76)':
@@ -10459,11 +10477,36 @@ snapshots:
'@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
zod: 3.25.76
+ '@ai-sdk/anthropic@2.0.33(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/anthropic@2.0.39(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.14(zod@3.25.76)
+ zod: 3.25.76
+
+ '@ai-sdk/gateway@1.0.32(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
+ '@vercel/oidc': 3.0.3
+ zod: 3.25.76
+
+ '@ai-sdk/gateway@2.0.0(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.12(zod@3.25.76)
+ '@vercel/oidc': 3.0.3
zod: 3.25.76
'@ai-sdk/google@2.0.17(zod@3.25.76)':
@@ -10472,12 +10515,30 @@ snapshots:
'@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
zod: 3.25.76
+ '@ai-sdk/google@2.0.23(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/google@2.0.25(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.14(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-compatible@1.0.22(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/openai@1.3.22(zod@3.25.76)':
dependencies:
'@ai-sdk/provider': 1.1.3
@@ -10490,12 +10551,18 @@ snapshots:
'@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)':
+ '@ai-sdk/openai@2.0.53(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/openai@2.0.57(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.14(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
@@ -10517,6 +10584,13 @@ snapshots:
eventsource-parser: 3.0.6
zod: 3.25.76
+ '@ai-sdk/provider-utils@3.0.14(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
@@ -10525,16 +10599,6 @@ snapshots:
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
@@ -10549,12 +10613,19 @@ snapshots:
'@ai-sdk/provider-utils': 3.0.10(zod@3.25.76)
zod: 3.25.76
+ '@ai-sdk/xai@2.0.26(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/openai-compatible': 1.0.22(zod@3.25.76)
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.12(zod@3.25.76)
+ zod: 3.25.76
+
'@alloc/quick-lru@5.2.0': {}
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 1.5.0
- tinyexec: 1.0.1
+ tinyexec: 1.0.2
'@antfu/utils@9.3.0': {}
@@ -10586,7 +10657,7 @@ snapshots:
'@aws-crypto/crc32@5.2.0':
dependencies:
'@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.910.0
+ '@aws-sdk/types': 3.914.0
tslib: 2.8.1
'@aws-crypto/sha256-browser@5.2.0':
@@ -10594,7 +10665,7 @@ snapshots:
'@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/types': 3.914.0
'@aws-sdk/util-locate-window': 3.893.0
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
@@ -10602,7 +10673,7 @@ snapshots:
'@aws-crypto/sha256-js@5.2.0':
dependencies:
'@aws-crypto/util': 5.2.0
- '@aws-sdk/types': 3.910.0
+ '@aws-sdk/types': 3.914.0
tslib: 2.8.1
'@aws-crypto/supports-web-crypto@5.2.0':
@@ -10611,347 +10682,347 @@ snapshots:
'@aws-crypto/util@5.2.0':
dependencies:
- '@aws-sdk/types': 3.910.0
+ '@aws-sdk/types': 3.914.0
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
- '@aws-sdk/client-bedrock-agent-runtime@3.910.0':
+ '@aws-sdk/client-bedrock-agent-runtime@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/credential-provider-node': 3.919.0
+ '@aws-sdk/middleware-host-header': 3.914.0
+ '@aws-sdk/middleware-logger': 3.914.0
+ '@aws-sdk/middleware-recursion-detection': 3.919.0
+ '@aws-sdk/middleware-user-agent': 3.916.0
+ '@aws-sdk/region-config-resolver': 3.914.0
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-endpoints': 3.916.0
+ '@aws-sdk/util-user-agent-browser': 3.914.0
+ '@aws-sdk/util-user-agent-node': 3.916.0
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/core': 3.17.1
+ '@smithy/eventstream-serde-browser': 4.2.3
+ '@smithy/eventstream-serde-config-resolver': 4.3.3
+ '@smithy/eventstream-serde-node': 4.2.3
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/hash-node': 4.2.3
+ '@smithy/invalid-dependency': 4.2.3
+ '@smithy/middleware-content-length': 4.2.3
+ '@smithy/middleware-endpoint': 4.3.5
+ '@smithy/middleware-retry': 4.4.5
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/middleware-stack': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
'@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-defaults-mode-browser': 4.3.4
+ '@smithy/util-defaults-mode-node': 4.2.6
+ '@smithy/util-endpoints': 3.2.3
+ '@smithy/util-middleware': 4.2.3
+ '@smithy/util-retry': 4.2.3
'@smithy/util-utf8': 4.2.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-bedrock-runtime@3.910.0':
+ '@aws-sdk/client-bedrock-runtime@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/credential-provider-node': 3.919.0
+ '@aws-sdk/eventstream-handler-node': 3.914.0
+ '@aws-sdk/middleware-eventstream': 3.914.0
+ '@aws-sdk/middleware-host-header': 3.914.0
+ '@aws-sdk/middleware-logger': 3.914.0
+ '@aws-sdk/middleware-recursion-detection': 3.919.0
+ '@aws-sdk/middleware-user-agent': 3.916.0
+ '@aws-sdk/middleware-websocket': 3.914.0
+ '@aws-sdk/region-config-resolver': 3.914.0
+ '@aws-sdk/token-providers': 3.919.0
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-endpoints': 3.916.0
+ '@aws-sdk/util-user-agent-browser': 3.914.0
+ '@aws-sdk/util-user-agent-node': 3.916.0
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/core': 3.17.1
+ '@smithy/eventstream-serde-browser': 4.2.3
+ '@smithy/eventstream-serde-config-resolver': 4.3.3
+ '@smithy/eventstream-serde-node': 4.2.3
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/hash-node': 4.2.3
+ '@smithy/invalid-dependency': 4.2.3
+ '@smithy/middleware-content-length': 4.2.3
+ '@smithy/middleware-endpoint': 4.3.5
+ '@smithy/middleware-retry': 4.4.5
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/middleware-stack': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
'@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-defaults-mode-browser': 4.3.4
+ '@smithy/util-defaults-mode-node': 4.2.6
+ '@smithy/util-endpoints': 3.2.3
+ '@smithy/util-middleware': 4.2.3
+ '@smithy/util-retry': 4.2.3
+ '@smithy/util-stream': 4.5.4
'@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':
+ '@aws-sdk/client-dynamodb@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/credential-provider-node': 3.919.0
+ '@aws-sdk/middleware-endpoint-discovery': 3.914.0
+ '@aws-sdk/middleware-host-header': 3.914.0
+ '@aws-sdk/middleware-logger': 3.914.0
+ '@aws-sdk/middleware-recursion-detection': 3.919.0
+ '@aws-sdk/middleware-user-agent': 3.916.0
+ '@aws-sdk/region-config-resolver': 3.914.0
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-endpoints': 3.916.0
+ '@aws-sdk/util-user-agent-browser': 3.914.0
+ '@aws-sdk/util-user-agent-node': 3.916.0
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/core': 3.17.1
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/hash-node': 4.2.3
+ '@smithy/invalid-dependency': 4.2.3
+ '@smithy/middleware-content-length': 4.2.3
+ '@smithy/middleware-endpoint': 4.3.5
+ '@smithy/middleware-retry': 4.4.5
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/middleware-stack': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
'@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-defaults-mode-browser': 4.3.4
+ '@smithy/util-defaults-mode-node': 4.2.6
+ '@smithy/util-endpoints': 3.2.3
+ '@smithy/util-middleware': 4.2.3
+ '@smithy/util-retry': 4.2.3
'@smithy/util-utf8': 4.2.0
- '@smithy/util-waiter': 4.2.2
+ '@smithy/util-waiter': 4.2.3
'@smithy/uuid': 1.1.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/client-kendra@3.910.0':
+ '@aws-sdk/client-kendra@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/credential-provider-node': 3.919.0
+ '@aws-sdk/middleware-host-header': 3.914.0
+ '@aws-sdk/middleware-logger': 3.914.0
+ '@aws-sdk/middleware-recursion-detection': 3.919.0
+ '@aws-sdk/middleware-user-agent': 3.916.0
+ '@aws-sdk/region-config-resolver': 3.914.0
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-endpoints': 3.916.0
+ '@aws-sdk/util-user-agent-browser': 3.914.0
+ '@aws-sdk/util-user-agent-node': 3.916.0
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/core': 3.17.1
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/hash-node': 4.2.3
+ '@smithy/invalid-dependency': 4.2.3
+ '@smithy/middleware-content-length': 4.2.3
+ '@smithy/middleware-endpoint': 4.3.5
+ '@smithy/middleware-retry': 4.4.5
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/middleware-stack': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
'@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-defaults-mode-browser': 4.3.4
+ '@smithy/util-defaults-mode-node': 4.2.6
+ '@smithy/util-endpoints': 3.2.3
+ '@smithy/util-middleware': 4.2.3
+ '@smithy/util-retry': 4.2.3
'@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':
+ '@aws-sdk/client-sso@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/middleware-host-header': 3.914.0
+ '@aws-sdk/middleware-logger': 3.914.0
+ '@aws-sdk/middleware-recursion-detection': 3.919.0
+ '@aws-sdk/middleware-user-agent': 3.916.0
+ '@aws-sdk/region-config-resolver': 3.914.0
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-endpoints': 3.916.0
+ '@aws-sdk/util-user-agent-browser': 3.914.0
+ '@aws-sdk/util-user-agent-node': 3.916.0
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/core': 3.17.1
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/hash-node': 4.2.3
+ '@smithy/invalid-dependency': 4.2.3
+ '@smithy/middleware-content-length': 4.2.3
+ '@smithy/middleware-endpoint': 4.3.5
+ '@smithy/middleware-retry': 4.4.5
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/middleware-stack': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
'@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-defaults-mode-browser': 4.3.4
+ '@smithy/util-defaults-mode-node': 4.2.6
+ '@smithy/util-endpoints': 3.2.3
+ '@smithy/util-middleware': 4.2.3
+ '@smithy/util-retry': 4.2.3
'@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
+ '@aws-sdk/core@3.916.0':
+ dependencies:
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/xml-builder': 3.914.0
+ '@smithy/core': 3.17.1
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/property-provider': 4.2.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/signature-v4': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
'@smithy/util-base64': 4.3.0
- '@smithy/util-middleware': 4.2.2
+ '@smithy/util-middleware': 4.2.3
'@smithy/util-utf8': 4.2.0
tslib: 2.8.1
- '@aws-sdk/credential-provider-env@3.910.0':
+ '@aws-sdk/credential-provider-env@3.916.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/property-provider': 4.2.3
+ '@smithy/types': 4.8.0
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
+ '@aws-sdk/credential-provider-http@3.916.0':
+ dependencies:
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/property-provider': 4.2.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/util-stream': 4.5.4
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
+ '@aws-sdk/credential-provider-ini@3.919.0':
+ dependencies:
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/credential-provider-env': 3.916.0
+ '@aws-sdk/credential-provider-http': 3.916.0
+ '@aws-sdk/credential-provider-process': 3.916.0
+ '@aws-sdk/credential-provider-sso': 3.919.0
+ '@aws-sdk/credential-provider-web-identity': 3.919.0
+ '@aws-sdk/nested-clients': 3.919.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/credential-provider-imds': 4.2.3
+ '@smithy/property-provider': 4.2.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
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
+ '@aws-sdk/credential-provider-node@3.919.0':
+ dependencies:
+ '@aws-sdk/credential-provider-env': 3.916.0
+ '@aws-sdk/credential-provider-http': 3.916.0
+ '@aws-sdk/credential-provider-ini': 3.919.0
+ '@aws-sdk/credential-provider-process': 3.916.0
+ '@aws-sdk/credential-provider-sso': 3.919.0
+ '@aws-sdk/credential-provider-web-identity': 3.919.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/credential-provider-imds': 4.2.3
+ '@smithy/property-provider': 4.2.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/credential-provider-process@3.910.0':
+ '@aws-sdk/credential-provider-process@3.916.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/property-provider': 4.2.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/credential-provider-sso@3.910.0':
+ '@aws-sdk/credential-provider-sso@3.919.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
+ '@aws-sdk/client-sso': 3.919.0
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/token-providers': 3.919.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/property-provider': 4.2.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/credential-provider-web-identity@3.910.0':
+ '@aws-sdk/credential-provider-web-identity@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/nested-clients': 3.919.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/property-provider': 4.2.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
@@ -10961,218 +11032,216 @@ snapshots:
mnemonist: 0.38.3
tslib: 2.8.1
- '@aws-sdk/eventstream-handler-node@3.910.0':
+ '@aws-sdk/eventstream-handler-node@3.914.0':
dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/eventstream-codec': 4.2.2
- '@smithy/types': 4.7.1
+ '@aws-sdk/types': 3.914.0
+ '@smithy/eventstream-codec': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/lib-dynamodb@3.910.0(@aws-sdk/client-dynamodb@3.910.0)':
+ '@aws-sdk/lib-dynamodb@3.919.0(@aws-sdk/client-dynamodb@3.919.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
+ '@aws-sdk/client-dynamodb': 3.919.0
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/util-dynamodb': 3.919.0(@aws-sdk/client-dynamodb@3.919.0)
+ '@smithy/core': 3.17.1
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/middleware-endpoint-discovery@3.910.0':
+ '@aws-sdk/middleware-endpoint-discovery@3.914.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
+ '@aws-sdk/types': 3.914.0
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/middleware-eventstream@3.910.0':
+ '@aws-sdk/middleware-eventstream@3.914.0':
dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
+ '@aws-sdk/types': 3.914.0
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/middleware-host-header@3.910.0':
+ '@aws-sdk/middleware-host-header@3.914.0':
dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
+ '@aws-sdk/types': 3.914.0
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/middleware-logger@3.910.0':
+ '@aws-sdk/middleware-logger@3.914.0':
dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/types': 4.7.1
+ '@aws-sdk/types': 3.914.0
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/middleware-recursion-detection@3.910.0':
+ '@aws-sdk/middleware-recursion-detection@3.919.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
+ '@aws-sdk/types': 3.914.0
+ '@aws/lambda-invoke-store': 0.1.1
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/middleware-user-agent@3.910.0':
+ '@aws-sdk/middleware-user-agent@3.916.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-endpoints': 3.916.0
+ '@smithy/core': 3.17.1
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/middleware-websocket@3.910.0':
+ '@aws-sdk/middleware-websocket@3.914.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
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-format-url': 3.914.0
+ '@smithy/eventstream-codec': 4.2.3
+ '@smithy/eventstream-serde-browser': 4.2.3
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/signature-v4': 5.3.3
+ '@smithy/types': 4.8.0
'@smithy/util-hex-encoding': 4.2.0
tslib: 2.8.1
- '@aws-sdk/nested-clients@3.910.0':
+ '@aws-sdk/nested-clients@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/middleware-host-header': 3.914.0
+ '@aws-sdk/middleware-logger': 3.914.0
+ '@aws-sdk/middleware-recursion-detection': 3.919.0
+ '@aws-sdk/middleware-user-agent': 3.916.0
+ '@aws-sdk/region-config-resolver': 3.914.0
+ '@aws-sdk/types': 3.914.0
+ '@aws-sdk/util-endpoints': 3.916.0
+ '@aws-sdk/util-user-agent-browser': 3.914.0
+ '@aws-sdk/util-user-agent-node': 3.916.0
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/core': 3.17.1
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/hash-node': 4.2.3
+ '@smithy/invalid-dependency': 4.2.3
+ '@smithy/middleware-content-length': 4.2.3
+ '@smithy/middleware-endpoint': 4.3.5
+ '@smithy/middleware-retry': 4.4.5
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/middleware-stack': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
'@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-defaults-mode-browser': 4.3.4
+ '@smithy/util-defaults-mode-node': 4.2.6
+ '@smithy/util-endpoints': 3.2.3
+ '@smithy/util-middleware': 4.2.3
+ '@smithy/util-retry': 4.2.3
'@smithy/util-utf8': 4.2.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/region-config-resolver@3.910.0':
+ '@aws-sdk/region-config-resolver@3.914.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
+ '@aws-sdk/types': 3.914.0
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/token-providers@3.910.0':
+ '@aws-sdk/token-providers@3.919.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
+ '@aws-sdk/core': 3.916.0
+ '@aws-sdk/nested-clients': 3.919.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/property-provider': 4.2.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
transitivePeerDependencies:
- aws-crt
- '@aws-sdk/types@3.910.0':
+ '@aws-sdk/types@3.914.0':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/util-dynamodb@3.910.0(@aws-sdk/client-dynamodb@3.910.0)':
+ '@aws-sdk/util-dynamodb@3.919.0(@aws-sdk/client-dynamodb@3.919.0)':
dependencies:
- '@aws-sdk/client-dynamodb': 3.910.0
+ '@aws-sdk/client-dynamodb': 3.919.0
tslib: 2.8.1
- '@aws-sdk/util-endpoints@3.910.0':
+ '@aws-sdk/util-endpoints@3.916.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
+ '@aws-sdk/types': 3.914.0
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
+ '@smithy/util-endpoints': 3.2.3
tslib: 2.8.1
- '@aws-sdk/util-format-url@3.910.0':
+ '@aws-sdk/util-format-url@3.914.0':
dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/querystring-builder': 4.2.2
- '@smithy/types': 4.7.1
+ '@aws-sdk/types': 3.914.0
+ '@smithy/querystring-builder': 4.2.3
+ '@smithy/types': 4.8.0
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':
+ '@aws-sdk/util-user-agent-browser@3.914.0':
dependencies:
- '@aws-sdk/types': 3.910.0
- '@smithy/types': 4.7.1
+ '@aws-sdk/types': 3.914.0
+ '@smithy/types': 4.8.0
bowser: 2.12.1
tslib: 2.8.1
- '@aws-sdk/util-user-agent-node@3.910.0':
+ '@aws-sdk/util-user-agent-node@3.916.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
+ '@aws-sdk/middleware-user-agent': 3.916.0
+ '@aws-sdk/types': 3.914.0
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@aws-sdk/xml-builder@3.910.0':
+ '@aws-sdk/xml-builder@3.914.0':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
fast-xml-parser: 5.2.5
tslib: 2.8.1
- '@aws/lambda-invoke-store@0.0.1': {}
+ '@aws/lambda-invoke-store@0.1.1': {}
'@babel/code-frame@7.27.1':
dependencies:
- '@babel/helper-validator-identifier': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
js-tokens: 4.0.0
picocolors: 1.1.1
- '@babel/compat-data@7.28.4': {}
+ '@babel/compat-data@7.28.5': {}
- '@babel/core@7.28.4':
+ '@babel/core@7.28.5':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
+ '@babel/generator': 7.28.5
'@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
'@babel/helpers': 7.28.4
- '@babel/parser': 7.28.4
+ '@babel/parser': 7.28.5
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
'@jridgewell/remapping': 2.3.5
convert-source-map: 2.0.0
debug: 4.4.3
@@ -11182,213 +11251,213 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/generator@7.28.3':
+ '@babel/generator@7.28.5':
dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
'@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/types': 7.28.5
'@babel/helper-compilation-targets@7.27.2':
dependencies:
- '@babel/compat-data': 7.28.4
+ '@babel/compat-data': 7.28.5
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.26.3
+ browserslist: 4.27.0
lru-cache: 5.1.1
semver: 6.3.1
- '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)':
+ '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/helper-member-expression-to-functions': 7.28.5
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4)
+ '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
semver: 6.3.1
transitivePeerDependencies:
- supports-color
'@babel/helper-globals@7.28.0': {}
- '@babel/helper-member-expression-to-functions@7.27.1':
+ '@babel/helper-member-expression-to-functions@7.28.5':
dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-module-imports@7.27.1':
dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-module-imports': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/helper-validator-identifier': 7.28.5
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-optimise-call-expression@7.27.1':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
'@babel/helper-plugin-utils@7.27.1': {}
- '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)':
+ '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-member-expression-to-functions': 7.27.1
+ '@babel/core': 7.28.5
+ '@babel/helper-member-expression-to-functions': 7.28.5
'@babel/helper-optimise-call-expression': 7.27.1
- '@babel/traverse': 7.28.4
+ '@babel/traverse': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
dependencies:
- '@babel/traverse': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/traverse': 7.28.5
+ '@babel/types': 7.28.5
transitivePeerDependencies:
- supports-color
'@babel/helper-string-parser@7.27.1': {}
- '@babel/helper-validator-identifier@7.27.1': {}
+ '@babel/helper-validator-identifier@7.28.5': {}
'@babel/helper-validator-option@7.27.1': {}
'@babel/helpers@7.28.4':
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
- '@babel/parser@7.28.4':
+ '@babel/parser@7.28.5':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)':
+ '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
- '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/core': 7.28.5
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)':
+ '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@babel/helper-annotate-as-pure': 7.27.3
- '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4)
+ '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
'@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)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
transitivePeerDependencies:
- supports-color
- '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)':
+ '@babel/preset-typescript@7.28.5(@babel/core@7.28.5)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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)
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
transitivePeerDependencies:
- supports-color
@@ -11397,25 +11466,25 @@ snapshots:
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
- '@babel/traverse@7.28.4':
+ '@babel/traverse@7.28.5':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.3
+ '@babel/generator': 7.28.5
'@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.4
+ '@babel/parser': 7.28.5
'@babel/template': 7.27.2
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
debug: 4.4.3
transitivePeerDependencies:
- supports-color
- '@babel/types@7.28.4':
+ '@babel/types@7.28.5':
dependencies:
'@babel/helper-string-parser': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
+ '@babel/helper-validator-identifier': 7.28.5
'@bcoe/v8-coverage@0.2.3': {}
@@ -11433,14 +11502,14 @@ snapshots:
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)':
+ '@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: 4.104.0(ws@8.18.3)(zod@3.25.76)
+ 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)
@@ -11449,7 +11518,7 @@ snapshots:
- encoding
- utf-8-validate
- '@bufbuild/protobuf@2.9.0': {}
+ '@bufbuild/protobuf@2.10.0': {}
'@cfworker/json-schema@4.1.1': {}
@@ -11481,26 +11550,30 @@ snapshots:
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)':
+ '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251107155707(@copilotkitnext/core@0.0.21)(@copilotkitnext/react@0.0.21(@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))(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@3.25.76)':
dependencies:
- '@copilotkit/runtime-client-gql': 1.10.6(graphql@16.11.0)(react@19.2.0)
- '@copilotkit/shared': 1.10.6
+ '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251107155707(graphql@16.11.0)(react@19.2.0)
+ '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251107155707
+ '@copilotkitnext/core': 0.0.21
+ '@copilotkitnext/react': 0.0.21(@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)
'@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
+ zod: 3.25.76
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)':
+ '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251107155707(@copilotkitnext/core@0.0.21)(@copilotkitnext/react@0.0.21(@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))(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@3.25.76)':
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
+ '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251107155707(@copilotkitnext/core@0.0.21)(@copilotkitnext/react@0.0.21(@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))(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(zod@3.25.76)
+ '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251107155707(graphql@16.11.0)(react@19.2.0)
+ '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251107155707
+ '@copilotkitnext/core': 0.0.21
'@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)
@@ -11509,15 +11582,17 @@ snapshots:
remark-gfm: 4.0.1
remark-math: 6.0.0
transitivePeerDependencies:
+ - '@copilotkitnext/react'
- '@types/react'
- encoding
- graphql
- react-dom
- supports-color
+ - zod
- '@copilotkit/runtime-client-gql@1.10.6(graphql@16.11.0)(react@19.2.0)':
+ '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251107155707(graphql@16.11.0)(react@19.2.0)':
dependencies:
- '@copilotkit/shared': 1.10.6
+ '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251107155707
'@urql/core': 5.2.0(graphql@16.11.0)
react: 19.2.0
untruncate-json: 0.0.1
@@ -11526,7 +11601,7 @@ snapshots:
- encoding
- graphql
- '@copilotkit/runtime@1.10.6(iqshwn2xropb3vpfei3flnb2ay)':
+ '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251107155707(11e8d990ef61bbafaa75597e5e9ed522)':
dependencies:
'@ag-ui/client': link:sdks/typescript/packages/client
'@ag-ui/core': link:sdks/typescript/packages/core
@@ -11534,30 +11609,33 @@ snapshots:
'@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
+ '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251107155707
+ '@copilotkitnext/agent': 0.0.21
+ '@copilotkitnext/runtime': 0.0.21(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
'@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(37emb7xvj5c4vxjobtfi323cve)
- '@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)
+ '@langchain/aws': 0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))
+ '@langchain/community': 0.3.57(e5fa69614143c44752df480bbab79005)
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
+ '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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-scalars: 1.25.0(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)
+ hono: 4.10.3
+ langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.2)(handlebars@4.7.8)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(ws@8.18.3)
+ openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
partial-json: 0.1.7
- pino: 9.13.1
+ pino: 9.14.0
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)
+ type-graphql: 2.0.0-rc.1(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.11.0))(graphql@16.11.0)
zod: 3.25.76
transitivePeerDependencies:
- '@arcjet/redact'
@@ -11708,38 +11786,38 @@ snapshots:
- ws
- youtubei.js
- '@copilotkit/runtime@1.10.6(jkrvcwfv2zltibfgwihn5nuqn4)':
+ '@copilotkit/runtime@1.10.6(fd98da3164a8f33e40360d9abc7c5d40)':
dependencies:
'@ag-ui/client': link:sdks/typescript/packages/client
'@ag-ui/core': link:sdks/typescript/packages/core
'@ag-ui/encoder': 0.0.40-alpha.11
- '@ag-ui/langgraph': 0.0.19-alpha.1(@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@4.104.0(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@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.2.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.40-alpha.11
'@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(37emb7xvj5c4vxjobtfi323cve)
- '@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)
+ '@langchain/aws': 0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))
+ '@langchain/community': 0.3.57(e5fa69614143c44752df480bbab79005)
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
+ '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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-scalars: 1.25.0(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)
+ langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.2)(handlebars@4.7.8)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(ws@8.18.3)
+ openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
partial-json: 0.1.7
- pino: 9.13.1
+ pino: 9.14.0
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)
+ type-graphql: 2.0.0-rc.1(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.11.0))(graphql@16.11.0)
zod: 3.25.76
transitivePeerDependencies:
- '@arcjet/redact'
@@ -11890,6 +11968,18 @@ snapshots:
- ws
- youtubei.js
+ '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251107155707':
+ 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
+
'@copilotkit/shared@1.10.6':
dependencies:
'@ag-ui/core': 0.0.37
@@ -11902,37 +11992,37 @@ snapshots:
transitivePeerDependencies:
- encoding
- '@copilotkitnext/agent@0.0.19-alpha.0':
+ '@copilotkitnext/agent@0.0.21':
dependencies:
- '@ag-ui/client': 0.0.40-alpha.10
- '@ai-sdk/anthropic': 2.0.23(zod@3.25.76)
- '@ai-sdk/google': 2.0.17(zod@3.25.76)
- '@ai-sdk/openai': 2.0.52(zod@3.25.76)
- '@modelcontextprotocol/sdk': 1.20.0
- ai: 5.0.60(zod@3.25.76)
+ '@ag-ui/client': 0.0.40-alpha.11
+ '@ai-sdk/anthropic': 2.0.39(zod@3.25.76)
+ '@ai-sdk/google': 2.0.25(zod@3.25.76)
+ '@ai-sdk/openai': 2.0.57(zod@3.25.76)
+ '@modelcontextprotocol/sdk': 1.20.2
+ ai: 5.0.59(zod@3.25.76)
rxjs: 7.8.1
zod: 3.25.76
transitivePeerDependencies:
- supports-color
- '@copilotkitnext/core@0.0.19-alpha.0':
+ '@copilotkitnext/core@0.0.21':
dependencies:
- '@ag-ui/client': 0.0.40-alpha.10
- '@copilotkitnext/shared': 0.0.19-alpha.0
+ '@ag-ui/client': 0.0.40-alpha.11
+ '@copilotkitnext/shared': 0.0.21
rxjs: 7.8.1
zod: 3.25.76
zod-to-json-schema: 3.24.6(zod@3.25.76)
- '@copilotkitnext/react@0.0.19-alpha.0(@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)':
+ '@copilotkitnext/react@0.0.21(@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:
- '@ag-ui/client': 0.0.40-alpha.10
- '@ag-ui/core': 0.0.40-alpha.10
- '@copilotkitnext/core': 0.0.19-alpha.0
- '@copilotkitnext/shared': 0.0.19-alpha.0
- '@copilotkitnext/web-inspector': 0.0.19-alpha.0
+ '@ag-ui/client': 0.0.40-alpha.11
+ '@ag-ui/core': 0.0.40-alpha.11
+ '@copilotkitnext/core': 0.0.21
+ '@copilotkitnext/shared': 0.0.21
+ '@copilotkitnext/web-inspector': 0.0.21
'@lit-labs/react': 2.1.3(@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)
- '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0)
+ '@radix-ui/react-slot': 1.2.4(@types/react@19.2.2)(react@19.2.0)
'@radix-ui/react-tooltip': 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)
class-variance-authority: 0.7.1
clsx: 2.1.1
@@ -11951,36 +12041,40 @@ snapshots:
- '@types/react-dom'
- supports-color
- '@copilotkitnext/runtime@0.0.19-alpha.0(openai@4.104.0(ws@8.18.3)(zod@3.25.76))':
+ '@copilotkitnext/runtime@0.0.21(openai@5.12.2(ws@8.18.3)(zod@3.25.76))':
dependencies:
- '@ag-ui/client': 0.0.40-alpha.10
- '@ag-ui/core': 0.0.40-alpha.10
- '@ag-ui/encoder': 0.0.40-alpha.10
- '@copilotkitnext/shared': 0.0.19-alpha.0
+ '@ag-ui/client': 0.0.40-alpha.11
+ '@ag-ui/core': 0.0.40-alpha.11
+ '@ag-ui/encoder': 0.0.40-alpha.11
+ '@copilotkitnext/shared': 0.0.21
+ cors: 2.8.5
+ express: 4.21.2
hono: 4.10.3
- openai: 4.104.0(ws@8.18.3)(zod@3.25.76)
+ openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
rxjs: 7.8.1
+ transitivePeerDependencies:
+ - supports-color
- '@copilotkitnext/shared@0.0.19-alpha.0':
+ '@copilotkitnext/shared@0.0.21':
dependencies:
- '@ag-ui/client': 0.0.40-alpha.10
+ '@ag-ui/client': 0.0.40-alpha.11
partial-json: 0.1.7
uuid: 11.1.0
- '@copilotkitnext/web-inspector@0.0.19-alpha.0':
+ '@copilotkitnext/web-inspector@0.0.21':
dependencies:
- '@ag-ui/client': 0.0.40-alpha.10
- '@copilotkitnext/core': 0.0.19-alpha.0
+ '@ag-ui/client': 0.0.40-alpha.11
+ '@copilotkitnext/core': 0.0.21
lit: 3.3.1
lucide: 0.525.0
- '@emnapi/core@1.5.0':
+ '@emnapi/core@1.6.0':
dependencies:
'@emnapi/wasi-threads': 1.1.0
tslib: 2.8.1
optional: true
- '@emnapi/runtime@1.5.0':
+ '@emnapi/runtime@1.6.0':
dependencies:
tslib: 2.8.1
optional: true
@@ -12007,107 +12101,111 @@ snapshots:
'@whatwg-node/promise-helpers': 1.3.2
tslib: 2.8.1
- '@esbuild/aix-ppc64@0.25.10':
+ '@esbuild/aix-ppc64@0.25.11':
optional: true
- '@esbuild/android-arm64@0.25.10':
+ '@esbuild/android-arm64@0.25.11':
optional: true
- '@esbuild/android-arm@0.25.10':
+ '@esbuild/android-arm@0.25.11':
optional: true
- '@esbuild/android-x64@0.25.10':
+ '@esbuild/android-x64@0.25.11':
optional: true
- '@esbuild/darwin-arm64@0.25.10':
+ '@esbuild/darwin-arm64@0.25.11':
optional: true
- '@esbuild/darwin-x64@0.25.10':
+ '@esbuild/darwin-x64@0.25.11':
optional: true
- '@esbuild/freebsd-arm64@0.25.10':
+ '@esbuild/freebsd-arm64@0.25.11':
optional: true
- '@esbuild/freebsd-x64@0.25.10':
+ '@esbuild/freebsd-x64@0.25.11':
optional: true
- '@esbuild/linux-arm64@0.25.10':
+ '@esbuild/linux-arm64@0.25.11':
optional: true
- '@esbuild/linux-arm@0.25.10':
+ '@esbuild/linux-arm@0.25.11':
optional: true
- '@esbuild/linux-ia32@0.25.10':
+ '@esbuild/linux-ia32@0.25.11':
optional: true
- '@esbuild/linux-loong64@0.25.10':
+ '@esbuild/linux-loong64@0.25.11':
optional: true
- '@esbuild/linux-mips64el@0.25.10':
+ '@esbuild/linux-mips64el@0.25.11':
optional: true
- '@esbuild/linux-ppc64@0.25.10':
+ '@esbuild/linux-ppc64@0.25.11':
optional: true
- '@esbuild/linux-riscv64@0.25.10':
+ '@esbuild/linux-riscv64@0.25.11':
optional: true
- '@esbuild/linux-s390x@0.25.10':
+ '@esbuild/linux-s390x@0.25.11':
optional: true
- '@esbuild/linux-x64@0.25.10':
+ '@esbuild/linux-x64@0.25.11':
optional: true
- '@esbuild/netbsd-arm64@0.25.10':
+ '@esbuild/netbsd-arm64@0.25.11':
optional: true
- '@esbuild/netbsd-x64@0.25.10':
+ '@esbuild/netbsd-x64@0.25.11':
optional: true
- '@esbuild/openbsd-arm64@0.25.10':
+ '@esbuild/openbsd-arm64@0.25.11':
optional: true
- '@esbuild/openbsd-x64@0.25.10':
+ '@esbuild/openbsd-x64@0.25.11':
optional: true
- '@esbuild/openharmony-arm64@0.25.10':
+ '@esbuild/openharmony-arm64@0.25.11':
optional: true
- '@esbuild/sunos-x64@0.25.10':
+ '@esbuild/sunos-x64@0.25.11':
optional: true
- '@esbuild/win32-arm64@0.25.10':
+ '@esbuild/win32-arm64@0.25.11':
optional: true
- '@esbuild/win32-ia32@0.25.10':
+ '@esbuild/win32-ia32@0.25.11':
optional: true
- '@esbuild/win32-x64@0.25.10':
+ '@esbuild/win32-x64@0.25.11':
optional: true
- '@eslint-community/eslint-utils@4.9.0(eslint@9.37.0(jiti@2.6.1))':
+ '@eslint-community/eslint-utils@4.9.0(eslint@9.38.0(jiti@2.6.1))':
dependencies:
- eslint: 9.37.0(jiti@2.6.1)
+ eslint: 9.38.0(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
- '@eslint-community/regexpp@4.12.1': {}
+ '@eslint-community/regexpp@4.12.2': {}
- '@eslint/config-array@0.21.0':
+ '@eslint/config-array@0.21.1':
dependencies:
- '@eslint/object-schema': 2.1.6
+ '@eslint/object-schema': 2.1.7
debug: 4.4.3
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
- '@eslint/config-helpers@0.4.0':
+ '@eslint/config-helpers@0.4.2':
dependencies:
- '@eslint/core': 0.16.0
+ '@eslint/core': 0.17.0
'@eslint/core@0.16.0':
dependencies:
'@types/json-schema': 7.0.15
+ '@eslint/core@0.17.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
'@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
@@ -12122,13 +12220,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.37.0': {}
+ '@eslint/js@9.38.0': {}
- '@eslint/object-schema@2.1.6': {}
+ '@eslint/object-schema@2.1.7': {}
- '@eslint/plugin-kit@0.4.0':
+ '@eslint/plugin-kit@0.4.1':
dependencies:
- '@eslint/core': 0.16.0
+ '@eslint/core': 0.17.0
levn: 0.4.1
'@expo/devcert@1.2.0':
@@ -12164,7 +12262,7 @@ snapshots:
'@floating-ui/utils': 0.2.10
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- tabbable: 6.2.0
+ tabbable: 6.3.0
'@floating-ui/utils@0.2.10': {}
@@ -12349,7 +12447,7 @@ snapshots:
'@img/sharp-wasm32@0.33.5':
dependencies:
- '@emnapi/runtime': 1.5.0
+ '@emnapi/runtime': 1.6.0
optional: true
'@img/sharp-win32-ia32@0.33.5':
@@ -12360,128 +12458,128 @@ snapshots:
'@inquirer/ansi@1.0.1': {}
- '@inquirer/checkbox@4.3.0(@types/node@20.19.21)':
+ '@inquirer/checkbox@4.3.0(@types/node@20.19.24)':
dependencies:
'@inquirer/ansi': 1.0.1
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
'@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
yoctocolors-cjs: 2.1.3
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/confirm@5.1.19(@types/node@20.19.21)':
+ '@inquirer/confirm@5.1.19(@types/node@20.19.24)':
dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/core@10.3.0(@types/node@20.19.21)':
+ '@inquirer/core@10.3.0(@types/node@20.19.24)':
dependencies:
'@inquirer/ansi': 1.0.1
'@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
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
+ '@types/node': 20.19.24
- '@inquirer/editor@4.2.21(@types/node@20.19.21)':
+ '@inquirer/editor@4.2.21(@types/node@20.19.24)':
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)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/external-editor': 1.0.2(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/expand@4.0.21(@types/node@20.19.21)':
+ '@inquirer/expand@4.0.21(@types/node@20.19.24)':
dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
yoctocolors-cjs: 2.1.3
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/external-editor@1.0.2(@types/node@20.19.21)':
+ '@inquirer/external-editor@1.0.2(@types/node@20.19.24)':
dependencies:
chardet: 2.1.0
iconv-lite: 0.7.0
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@inquirer/figures@1.0.14': {}
- '@inquirer/input@4.2.5(@types/node@20.19.21)':
+ '@inquirer/input@4.2.5(@types/node@20.19.24)':
dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/number@3.0.21(@types/node@20.19.21)':
+ '@inquirer/number@3.0.21(@types/node@20.19.24)':
dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/password@4.0.21(@types/node@20.19.21)':
+ '@inquirer/password@4.0.21(@types/node@20.19.24)':
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)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
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)
+ '@types/node': 20.19.24
+
+ '@inquirer/prompts@7.9.0(@types/node@20.19.24)':
+ dependencies:
+ '@inquirer/checkbox': 4.3.0(@types/node@20.19.24)
+ '@inquirer/confirm': 5.1.19(@types/node@20.19.24)
+ '@inquirer/editor': 4.2.21(@types/node@20.19.24)
+ '@inquirer/expand': 4.0.21(@types/node@20.19.24)
+ '@inquirer/input': 4.2.5(@types/node@20.19.24)
+ '@inquirer/number': 3.0.21(@types/node@20.19.24)
+ '@inquirer/password': 4.0.21(@types/node@20.19.24)
+ '@inquirer/rawlist': 4.1.9(@types/node@20.19.24)
+ '@inquirer/search': 3.2.0(@types/node@20.19.24)
+ '@inquirer/select': 4.4.0(@types/node@20.19.24)
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/rawlist@4.1.9(@types/node@20.19.21)':
+ '@inquirer/rawlist@4.1.9(@types/node@20.19.24)':
dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
yoctocolors-cjs: 2.1.3
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/search@3.2.0(@types/node@20.19.21)':
+ '@inquirer/search@3.2.0(@types/node@20.19.24)':
dependencies:
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
'@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
yoctocolors-cjs: 2.1.3
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/select@4.4.0(@types/node@20.19.21)':
+ '@inquirer/select@4.4.0(@types/node@20.19.24)':
dependencies:
'@inquirer/ansi': 1.0.1
- '@inquirer/core': 10.3.0(@types/node@20.19.21)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
'@inquirer/figures': 1.0.14
- '@inquirer/type': 3.0.9(@types/node@20.19.21)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
yoctocolors-cjs: 2.1.3
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@inquirer/type@3.0.9(@types/node@20.19.21)':
+ '@inquirer/type@3.0.9(@types/node@20.19.24)':
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@isaacs/cliui@8.0.2':
dependencies:
@@ -12492,10 +12590,6 @@ snapshots:
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':
@@ -12511,7 +12605,7 @@ snapshots:
'@jest/console@29.7.0':
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
chalk: 4.1.2
jest-message-util: 29.7.0
jest-util: 29.7.0
@@ -12524,14 +12618,14 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
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-config: 29.7.0(@types/node@20.19.24)
jest-haste-map: 29.7.0
jest-message-util: 29.7.0
jest-regex-util: 29.6.3
@@ -12556,7 +12650,7 @@ snapshots:
dependencies:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 24.9.2
jest-mock: 29.7.0
'@jest/expect-utils@29.7.0':
@@ -12574,7 +12668,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@sinonjs/fake-timers': 10.3.0
- '@types/node': 20.19.21
+ '@types/node': 24.9.2
jest-message-util: 29.7.0
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -12596,9 +12690,9 @@ snapshots:
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.31
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
chalk: 4.1.2
- collect-v8-coverage: 1.0.2
+ collect-v8-coverage: 1.0.3
exit: 0.1.2
glob: 7.2.3
graceful-fs: 4.2.11
@@ -12632,7 +12726,7 @@ snapshots:
'@jest/console': 29.7.0
'@jest/types': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
- collect-v8-coverage: 1.0.2
+ collect-v8-coverage: 1.0.3
'@jest/test-sequencer@29.7.0':
dependencies:
@@ -12643,7 +12737,7 @@ snapshots:
'@jest/transform@29.7.0':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@jest/types': 29.6.3
'@jridgewell/trace-mapping': 0.3.31
babel-plugin-istanbul: 6.1.1
@@ -12666,8 +12760,8 @@ snapshots:
'@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
+ '@types/node': 20.19.24
+ '@types/yargs': 17.0.34
chalk: 4.1.2
'@jridgewell/gen-mapping@0.3.13':
@@ -12693,40 +12787,40 @@ snapshots:
'@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)))':
+ '@langchain/aws@0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@4.104.0(ws@8.18.3)(zod@3.25.76))
+ '@aws-sdk/client-bedrock-agent-runtime': 3.919.0
+ '@aws-sdk/client-bedrock-runtime': 3.919.0
+ '@aws-sdk/client-kendra': 3.919.0
+ '@aws-sdk/credential-provider-node': 3.919.0
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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(37emb7xvj5c4vxjobtfi323cve)':
+ '@langchain/community@0.3.57(e5fa69614143c44752df480bbab79005)':
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)
+ '@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@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)))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
+ '@langchain/openai': 0.4.9(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@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)
+ langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.2)(handlebars@4.7.8)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(ws@8.18.3)
+ langsmith: 0.3.76(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
+ openai: 5.12.2(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
+ '@aws-sdk/client-bedrock-agent-runtime': 3.919.0
+ '@aws-sdk/client-bedrock-runtime': 3.919.0
+ '@aws-sdk/client-dynamodb': 3.919.0
+ '@aws-sdk/client-kendra': 3.919.0
+ '@aws-sdk/credential-provider-node': 3.919.0
'@browserbasehq/sdk': 2.6.0
'@smithy/util-utf8': 2.3.0
'@upstash/redis': 1.35.6
@@ -12736,7 +12830,7 @@ snapshots:
jsonwebtoken: 9.0.2
pg: 8.16.3
playwright: 1.56.0
- redis: 5.8.3
+ redis: 5.9.0
weaviate-client: 3.9.0
ws: 8.18.3
transitivePeerDependencies:
@@ -12760,14 +12854,14 @@ snapshots:
- 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))':
+ '@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@4.104.0(ws@8.18.3)(zod@3.25.76))
+ langsmith: 0.3.76(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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
@@ -12780,79 +12874,48 @@ snapshots:
- '@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(zod@3.25.76))':
+ '@langchain/google-common@0.1.8(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(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(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))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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)':
+ '@langchain/google-gauth@0.1.8(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@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)
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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)':
+ '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@4.104.0(ws@8.18.3)(zod@3.25.76))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@4.104.0(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@langchain/langgraph-sdk@0.1.10(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@4.104.0(ws@8.18.3)(zod@3.25.76))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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/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(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@langchain/openai@0.4.9(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)':
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(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))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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
@@ -12861,23 +12924,14 @@ snapshots:
- 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/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)))':
+ '@langchain/textsplitters@0.1.0(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@4.104.0(ws@8.18.3)(zod@3.25.76))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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)))':
+ '@langchain/weaviate@0.2.3(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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@4.104.0(ws@8.18.3)(zod@3.25.76))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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:
@@ -12967,12 +13021,12 @@ snapshots:
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)':
+ '@mastra/client-js@0.10.18(openapi-types@12.1.3)(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)
+ '@mastra/core': 0.12.1(openapi-types@12.1.3)(zod@3.25.76)
json-schema: 0.4.0
rxjs: 7.8.1
zod: 3.25.76
@@ -12989,16 +13043,40 @@ snapshots:
- 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)':
+ '@mastra/client-js@0.15.2(openapi-types@12.1.3)(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)
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(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
+ - supports-color
+ - valibot
+ - zod-openapi
+
+ '@mastra/client-js@0.16.8(openapi-types@12.1.3)(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76)
+ '@lukeed/uuid': 2.0.1
+ '@mastra/core': 0.23.3(openapi-types@12.1.3)(zod@3.25.76)
json-schema: 0.4.0
rxjs: 7.8.1
zod: 3.25.76
@@ -13015,39 +13093,38 @@ snapshots:
- 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)':
+ '@mastra/core@0.12.1(openapi-types@12.1.3)(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)
+ '@mastra/schema-compat': 0.10.5(ai@5.0.59(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/auto-instrumentations-node': 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))
+ '@opentelemetry/core': 2.2.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/resources': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.2.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/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-node': 2.2.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: 5.0.59(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)
+ hono: 4.10.3
+ hono-openapi: 0.4.8(hono@4.10.3)(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: 9.14.0
pino-pretty: 13.1.2
radash: 12.1.1
sift: 17.1.3
@@ -13066,12 +13143,11 @@ snapshots:
- 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)':
+ '@mastra/core@0.20.2(openapi-types@12.1.3)(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)'
@@ -13085,23 +13161,23 @@ snapshots:
'@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)'
+ '@mastra/schema-compat': 0.11.4(ai@5.0.59(zod@3.25.76))(zod@3.25.76)
+ '@openrouter/ai-sdk-provider-v5': '@openrouter/ai-sdk-provider@1.2.0(ai@5.0.59(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/auto-instrumentations-node': 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))
+ '@opentelemetry/core': 2.2.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/resources': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.2.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/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-node': 2.2.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: 5.0.59(zod@3.25.76)
ai-v5: ai@5.0.60(zod@3.25.76)
date-fns: 3.6.0
dotenv: 16.6.1
@@ -13111,7 +13187,71 @@ snapshots:
json-schema: 0.4.0
json-schema-to-zod: 2.6.1
p-map: 7.0.3
- pino: 9.13.1
+ pino: 9.14.0
+ 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
+ - supports-color
+ - valibot
+ - zod-openapi
+
+ '@mastra/core@0.23.3(openapi-types@12.1.3)(zod@3.25.76)':
+ dependencies:
+ '@a2a-js/sdk': 0.2.5
+ '@ai-sdk/anthropic-v5': '@ai-sdk/anthropic@2.0.33(zod@3.25.76)'
+ '@ai-sdk/google-v5': '@ai-sdk/google@2.0.23(zod@3.25.76)'
+ '@ai-sdk/openai-compatible-v5': '@ai-sdk/openai-compatible@1.0.22(zod@3.25.76)'
+ '@ai-sdk/openai-v5': '@ai-sdk/openai@2.0.53(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.12(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.26(zod@3.25.76)'
+ '@isaacs/ttlcache': 1.4.1
+ '@mastra/schema-compat': 0.11.6(ai@5.0.59(zod@3.25.76))(zod@3.25.76)
+ '@openrouter/ai-sdk-provider-v5': '@openrouter/ai-sdk-provider@1.2.0(ai@5.0.59(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.2.0(@opentelemetry/api@1.9.0))
+ '@opentelemetry/core': 2.2.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.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-node': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.37.0
+ '@sindresorhus/slugify': 2.2.1
+ ai: 5.0.59(zod@3.25.76)
+ ai-v5: ai@5.0.76(zod@3.25.76)
+ date-fns: 3.6.0
+ dotenv: 16.6.1
+ hono: 4.10.3
+ hono-openapi: 0.4.8(hono@4.10.3)(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
+ p-retry: 7.1.0
+ pino: 9.14.0
pino-pretty: 13.1.2
radash: 12.1.1
sift: 17.1.3
@@ -13130,22 +13270,21 @@ snapshots:
- 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)':
+ '@mastra/deployer@0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(typescript@5.9.3)(zod@3.25.76)':
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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)
+ '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5)
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76)
+ '@mastra/server': 0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(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-commonjs': 28.0.9(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)
@@ -13155,15 +13294,15 @@ snapshots:
detect-libc: 2.1.2
dotenv: 16.6.1
empathic: 2.0.0
- esbuild: 0.25.10
+ esbuild: 0.25.11
find-workspaces: 0.3.1
fs-extra: 11.3.2
- hono: 4.9.12
+ hono: 4.10.3
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-esbuild: 6.2.1(esbuild@0.25.11)(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)
@@ -13172,84 +13311,97 @@ snapshots:
- 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))':
+ '@mastra/dynamodb@0.15.9(@mastra/core@0.23.3(openapi-types@12.1.3)(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)
+ '@aws-sdk/client-dynamodb': 3.919.0
+ '@aws-sdk/lib-dynamodb': 3.919.0(@aws-sdk/client-dynamodb@3.919.0)
+ '@mastra/core': 0.23.3(openapi-types@12.1.3)(zod@3.25.76)
+ electrodb: 3.5.0(@aws-sdk/client-dynamodb@3.919.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))':
+ '@mastra/libsql@0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(zod@3.25.76))':
+ dependencies:
+ '@libsql/client': 0.15.15
+ '@mastra/core': 0.12.1(openapi-types@12.1.3)(zod@3.25.76)
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ '@mastra/libsql@0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(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)
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(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))':
+ '@mastra/libsql@0.16.1(@mastra/core@0.23.3(openapi-types@12.1.3)(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)
+ '@mastra/core': 0.23.3(openapi-types@12.1.3)(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))':
+ '@mastra/loggers@0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(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
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76)
+ pino: 9.14.0
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))':
+ '@mastra/loggers@0.10.18(@mastra/core@0.23.3(openapi-types@12.1.3)(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
+ '@mastra/core': 0.23.3(openapi-types@12.1.3)(zod@3.25.76)
+ pino: 9.14.0
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)':
+ '@mastra/loggers@0.10.5(@mastra/core@0.12.1(openapi-types@12.1.3)(zod@3.25.76))':
+ dependencies:
+ '@mastra/core': 0.12.1(openapi-types@12.1.3)(zod@3.25.76)
+ pino: 9.14.0
+ pino-pretty: 13.1.2
+
+ '@mastra/mcp@0.13.5(@mastra/core@0.20.2(openapi-types@12.1.3)(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
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76)
+ '@modelcontextprotocol/sdk': 1.20.2
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: 0.5.1
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)':
+ '@mastra/memory@0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(zod@3.25.76))':
dependencies:
- '@mastra/core': 0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)
+ '@mastra/core': 0.12.1(openapi-types@12.1.3)(zod@3.25.76)
'@upstash/redis': 1.35.6
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
+ ai: 5.0.59(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
+ redis: 5.9.0
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)':
+ '@mastra/memory@0.15.10(@mastra/core@0.20.2(openapi-types@12.1.3)(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)
- '@mastra/schema-compat': 0.11.4(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76)
+ '@mastra/schema-compat': 0.11.6(ai@5.0.59(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: 5.0.59(zod@3.25.76)
ai-v5: ai@5.0.60(zod@3.25.76)
async-mutex: 0.5.0
js-tiktoken: 1.0.21
@@ -13257,34 +13409,62 @@ snapshots:
pg: 8.16.3
pg-pool: 3.10.1(pg@8.16.3)
postgres: 3.4.7
- redis: 5.8.3
+ redis: 5.9.0
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)':
+ '@mastra/memory@0.15.10(@mastra/core@0.23.3(openapi-types@12.1.3)(zod@3.25.76))(zod@3.25.76)':
dependencies:
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
+ '@mastra/core': 0.23.3(openapi-types@12.1.3)(zod@3.25.76)
+ '@mastra/schema-compat': 0.11.6(ai@5.0.59(zod@3.25.76))(zod@3.25.76)
+ '@upstash/redis': 1.35.6
+ ai: 5.0.59(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.9.0
+ xxhash-wasm: 1.1.0
+ zod: 3.25.76
+ zod-to-json-schema: 3.24.6(zod@3.25.76)
+ transitivePeerDependencies:
+ - pg-native
+
+ '@mastra/schema-compat@0.10.5(ai@5.0.59(zod@3.25.76))(zod@3.25.76)':
+ dependencies:
+ ai: 5.0.59(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)':
+ '@mastra/schema-compat@0.11.4(ai@5.0.59(zod@3.25.76))(zod@3.25.76)':
dependencies:
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
+ ai: 5.0.59(zod@3.25.76)
json-schema: 0.4.0
zod: 3.25.76
- zod-from-json-schema: 0.5.0
+ zod-from-json-schema: 0.5.1
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)':
+ '@mastra/schema-compat@0.11.6(ai@5.0.59(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)
+ ai: 5.0.59(zod@3.25.76)
+ json-schema: 0.4.0
+ zod: 3.25.76
+ zod-from-json-schema: 0.5.1
+ 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)(zod@3.25.76))(zod@3.25.76)':
+ dependencies:
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76)
zod: 3.25.76
'@mdx-js/loader@3.1.1':
@@ -13334,7 +13514,7 @@ snapshots:
dependencies:
langium: 3.3.1
- '@modelcontextprotocol/sdk@1.20.0':
+ '@modelcontextprotocol/sdk@1.20.2':
dependencies:
ajv: 6.12.6
content-type: 1.0.5
@@ -13364,8 +13544,8 @@ snapshots:
'@napi-rs/wasm-runtime@0.2.12':
dependencies:
- '@emnapi/core': 1.5.0
- '@emnapi/runtime': 1.5.0
+ '@emnapi/core': 1.6.0
+ '@emnapi/runtime': 1.6.0
'@tybys/wasm-util': 0.10.1
optional: true
@@ -13379,7 +13559,7 @@ snapshots:
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))':
+ '@next/mdx@15.5.6(@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:
@@ -13424,9 +13604,9 @@ snapshots:
'@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)':
+ '@openrouter/ai-sdk-provider@1.2.0(ai@5.0.59(zod@3.25.76))(zod@3.25.76)':
dependencies:
- ai: 4.3.19(react@19.2.0)(zod@3.25.76)
+ ai: 5.0.59(zod@3.25.76)
zod: 3.25.76
'@opentelemetry/api-logs@0.203.0':
@@ -13435,10 +13615,10 @@ snapshots:
'@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/auto-instrumentations-node@0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))':
dependencies:
'@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 2.2.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)
@@ -13480,12 +13660,12 @@ snapshots:
'@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-alibaba-cloud': 0.31.10(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resource-detector-aws': 2.7.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-container': 0.7.10(@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/resources': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- encoding
@@ -13495,7 +13675,7 @@ snapshots:
dependencies:
'@opentelemetry/api': 1.9.0
- '@opentelemetry/context-async-hooks@2.1.0(@opentelemetry/api@1.9.0)':
+ '@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0)':
dependencies:
'@opentelemetry/api': 1.9.0
@@ -13504,7 +13684,7 @@ snapshots:
'@opentelemetry/api': 1.9.0
'@opentelemetry/semantic-conventions': 1.37.0
- '@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)':
+ '@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0)':
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/semantic-conventions': 1.37.0
@@ -13617,7 +13797,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13635,7 +13815,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13661,7 +13841,7 @@ snapshots:
'@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/core': 2.2.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
@@ -13693,7 +13873,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13702,7 +13882,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13711,7 +13891,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
@@ -13741,7 +13921,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13785,7 +13965,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13818,7 +13998,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13870,7 +14050,7 @@ snapshots:
'@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/core': 2.2.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)
@@ -13883,7 +14063,7 @@ snapshots:
dependencies:
'@opentelemetry/api': 1.9.0
'@opentelemetry/api-logs': 0.203.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
@@ -13900,7 +14080,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
transitivePeerDependencies:
@@ -13941,7 +14121,7 @@ snapshots:
'@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/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)
transitivePeerDependencies:
- supports-color
@@ -14000,37 +14180,37 @@ snapshots:
'@opentelemetry/redis-common@0.38.2': {}
- '@opentelemetry/resource-detector-alibaba-cloud@0.31.9(@opentelemetry/api@1.9.0)':
+ '@opentelemetry/resource-detector-alibaba-cloud@0.31.10(@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/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0)
- '@opentelemetry/resource-detector-aws@2.6.0(@opentelemetry/api@1.9.0)':
+ '@opentelemetry/resource-detector-aws@2.7.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/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.2.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/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
- '@opentelemetry/resource-detector-container@0.7.9(@opentelemetry/api@1.9.0)':
+ '@opentelemetry/resource-detector-container@0.7.10(@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/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.2.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/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
gcp-metadata: 6.1.1
transitivePeerDependencies:
@@ -14043,10 +14223,10 @@ snapshots:
'@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)':
+ '@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0)':
dependencies:
'@opentelemetry/api': 1.9.0
- '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
'@opentelemetry/sdk-logs@0.203.0(@opentelemetry/api@1.9.0)':
@@ -14062,11 +14242,11 @@ snapshots:
'@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)':
+ '@opentelemetry/sdk-metrics@2.2.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/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/sdk-node@0.203.0(@opentelemetry/api@1.9.0)':
dependencies:
@@ -14103,11 +14283,11 @@ snapshots:
'@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)':
+ '@opentelemetry/sdk-trace-base@2.2.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/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
'@opentelemetry/sdk-trace-node@2.0.1(@opentelemetry/api@1.9.0)':
@@ -14117,19 +14297,19 @@ snapshots:
'@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)':
+ '@opentelemetry/sdk-trace-node@2.2.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/context-async-hooks': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.2.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)
+ '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0)
'@optimize-lodash/rollup-plugin@5.0.2(rollup@4.50.2)':
dependencies:
@@ -14140,13 +14320,15 @@ snapshots:
'@optimize-lodash/transform@3.0.6':
dependencies:
estree-walker: 2.0.2
- magic-string: 0.30.19
+ magic-string: 0.30.21
'@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)
+ '@pinojs/redact@0.4.0': {}
+
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -14371,6 +14553,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.2
+ '@radix-ui/react-slot@1.2.4(@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
@@ -14515,25 +14704,25 @@ snapshots:
dependencies:
react: 19.2.0
- '@redis/bloom@5.8.3(@redis/client@5.8.3)':
+ '@redis/bloom@5.9.0(@redis/client@5.9.0)':
dependencies:
- '@redis/client': 5.8.3
+ '@redis/client': 5.9.0
- '@redis/client@5.8.3':
+ '@redis/client@5.9.0':
dependencies:
cluster-key-slot: 1.1.2
- '@redis/json@5.8.3(@redis/client@5.8.3)':
+ '@redis/json@5.9.0(@redis/client@5.9.0)':
dependencies:
- '@redis/client': 5.8.3
+ '@redis/client': 5.9.0
- '@redis/search@5.8.3(@redis/client@5.8.3)':
+ '@redis/search@5.9.0(@redis/client@5.9.0)':
dependencies:
- '@redis/client': 5.8.3
+ '@redis/client': 5.9.0
- '@redis/time-series@5.8.3(@redis/client@5.8.3)':
+ '@redis/time-series@5.9.0(@redis/client@5.9.0)':
dependencies:
- '@redis/client': 5.8.3
+ '@redis/client': 5.9.0
'@remirror/core-constants@3.0.0': {}
@@ -14543,21 +14732,21 @@ snapshots:
optionalDependencies:
rollup: 4.50.2
- '@rollup/plugin-commonjs@28.0.7(rollup@4.50.2)':
+ '@rollup/plugin-commonjs@28.0.9(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
+ magic-string: 0.30.21
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
+ magic-string: 0.30.21
mlly: 1.8.0
optionalDependencies:
rollup: 4.50.2
@@ -14574,7 +14763,7 @@ snapshots:
'@types/resolve': 1.20.2
deepmerge: 4.3.1
is-module: 1.0.0
- resolve: 1.22.10
+ resolve: 1.22.11
optionalDependencies:
rollup: 4.50.2
@@ -14593,135 +14782,135 @@ snapshots:
'@rollup/rollup-android-arm-eabi@4.50.2':
optional: true
- '@rollup/rollup-android-arm-eabi@4.52.4':
+ '@rollup/rollup-android-arm-eabi@4.52.5':
optional: true
'@rollup/rollup-android-arm64@4.50.2':
optional: true
- '@rollup/rollup-android-arm64@4.52.4':
+ '@rollup/rollup-android-arm64@4.52.5':
optional: true
'@rollup/rollup-darwin-arm64@4.50.2':
optional: true
- '@rollup/rollup-darwin-arm64@4.52.4':
+ '@rollup/rollup-darwin-arm64@4.52.5':
optional: true
'@rollup/rollup-darwin-x64@4.50.2':
optional: true
- '@rollup/rollup-darwin-x64@4.52.4':
+ '@rollup/rollup-darwin-x64@4.52.5':
optional: true
'@rollup/rollup-freebsd-arm64@4.50.2':
optional: true
- '@rollup/rollup-freebsd-arm64@4.52.4':
+ '@rollup/rollup-freebsd-arm64@4.52.5':
optional: true
'@rollup/rollup-freebsd-x64@4.50.2':
optional: true
- '@rollup/rollup-freebsd-x64@4.52.4':
+ '@rollup/rollup-freebsd-x64@4.52.5':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.50.2':
optional: true
- '@rollup/rollup-linux-arm-gnueabihf@4.52.4':
+ '@rollup/rollup-linux-arm-gnueabihf@4.52.5':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.50.2':
optional: true
- '@rollup/rollup-linux-arm-musleabihf@4.52.4':
+ '@rollup/rollup-linux-arm-musleabihf@4.52.5':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.50.2':
optional: true
- '@rollup/rollup-linux-arm64-gnu@4.52.4':
+ '@rollup/rollup-linux-arm64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-arm64-musl@4.50.2':
optional: true
- '@rollup/rollup-linux-arm64-musl@4.52.4':
+ '@rollup/rollup-linux-arm64-musl@4.52.5':
optional: true
'@rollup/rollup-linux-loong64-gnu@4.50.2':
optional: true
- '@rollup/rollup-linux-loong64-gnu@4.52.4':
+ '@rollup/rollup-linux-loong64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-ppc64-gnu@4.50.2':
optional: true
- '@rollup/rollup-linux-ppc64-gnu@4.52.4':
+ '@rollup/rollup-linux-ppc64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.50.2':
optional: true
- '@rollup/rollup-linux-riscv64-gnu@4.52.4':
+ '@rollup/rollup-linux-riscv64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-riscv64-musl@4.50.2':
optional: true
- '@rollup/rollup-linux-riscv64-musl@4.52.4':
+ '@rollup/rollup-linux-riscv64-musl@4.52.5':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.50.2':
optional: true
- '@rollup/rollup-linux-s390x-gnu@4.52.4':
+ '@rollup/rollup-linux-s390x-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-x64-gnu@4.50.2':
optional: true
- '@rollup/rollup-linux-x64-gnu@4.52.4':
+ '@rollup/rollup-linux-x64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-x64-musl@4.50.2':
optional: true
- '@rollup/rollup-linux-x64-musl@4.52.4':
+ '@rollup/rollup-linux-x64-musl@4.52.5':
optional: true
'@rollup/rollup-openharmony-arm64@4.50.2':
optional: true
- '@rollup/rollup-openharmony-arm64@4.52.4':
+ '@rollup/rollup-openharmony-arm64@4.52.5':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.50.2':
optional: true
- '@rollup/rollup-win32-arm64-msvc@4.52.4':
+ '@rollup/rollup-win32-arm64-msvc@4.52.5':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.50.2':
optional: true
- '@rollup/rollup-win32-ia32-msvc@4.52.4':
+ '@rollup/rollup-win32-ia32-msvc@4.52.5':
optional: true
- '@rollup/rollup-win32-x64-gnu@4.52.4':
+ '@rollup/rollup-win32-x64-gnu@4.52.5':
optional: true
'@rollup/rollup-win32-x64-msvc@4.50.2':
optional: true
- '@rollup/rollup-win32-x64-msvc@4.52.4':
+ '@rollup/rollup-win32-x64-msvc@4.52.5':
optional: true
'@rtsao/scc@1.1.0': {}
- '@rushstack/eslint-patch@1.14.0': {}
+ '@rushstack/eslint-patch@1.14.1': {}
'@scarf/scarf@1.4.0': {}
@@ -14815,88 +15004,89 @@ snapshots:
dependencies:
'@sinonjs/commons': 3.0.1
- '@smithy/abort-controller@4.2.2':
+ '@smithy/abort-controller@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/config-resolver@4.3.2':
+ '@smithy/config-resolver@4.4.0':
dependencies:
- '@smithy/node-config-provider': 4.3.2
- '@smithy/types': 4.7.1
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/types': 4.8.0
'@smithy/util-config-provider': 4.2.0
- '@smithy/util-middleware': 4.2.2
+ '@smithy/util-endpoints': 3.2.3
+ '@smithy/util-middleware': 4.2.3
tslib: 2.8.1
- '@smithy/core@3.16.1':
+ '@smithy/core@3.17.1':
dependencies:
- '@smithy/middleware-serde': 4.2.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
'@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-middleware': 4.2.3
+ '@smithy/util-stream': 4.5.4
'@smithy/util-utf8': 4.2.0
'@smithy/uuid': 1.1.0
tslib: 2.8.1
- '@smithy/credential-provider-imds@4.2.2':
+ '@smithy/credential-provider-imds@4.2.3':
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
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/property-provider': 4.2.3
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
tslib: 2.8.1
- '@smithy/eventstream-codec@4.2.2':
+ '@smithy/eventstream-codec@4.2.3':
dependencies:
'@aws-crypto/crc32': 5.2.0
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
'@smithy/util-hex-encoding': 4.2.0
tslib: 2.8.1
- '@smithy/eventstream-serde-browser@4.2.2':
+ '@smithy/eventstream-serde-browser@4.2.3':
dependencies:
- '@smithy/eventstream-serde-universal': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/eventstream-serde-universal': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/eventstream-serde-config-resolver@4.3.2':
+ '@smithy/eventstream-serde-config-resolver@4.3.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/eventstream-serde-node@4.2.2':
+ '@smithy/eventstream-serde-node@4.2.3':
dependencies:
- '@smithy/eventstream-serde-universal': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/eventstream-serde-universal': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/eventstream-serde-universal@4.2.2':
+ '@smithy/eventstream-serde-universal@4.2.3':
dependencies:
- '@smithy/eventstream-codec': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/eventstream-codec': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/fetch-http-handler@5.3.3':
+ '@smithy/fetch-http-handler@5.3.4':
dependencies:
- '@smithy/protocol-http': 5.3.2
- '@smithy/querystring-builder': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/querystring-builder': 4.2.3
+ '@smithy/types': 4.8.0
'@smithy/util-base64': 4.3.0
tslib: 2.8.1
- '@smithy/hash-node@4.2.2':
+ '@smithy/hash-node@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
'@smithy/util-buffer-from': 4.2.0
'@smithy/util-utf8': 4.2.0
tslib: 2.8.1
- '@smithy/invalid-dependency@4.2.2':
+ '@smithy/invalid-dependency@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
'@smithy/is-array-buffer@2.2.0':
@@ -14907,120 +15097,120 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@smithy/middleware-content-length@4.2.2':
+ '@smithy/middleware-content-length@4.2.3':
dependencies:
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/middleware-endpoint@4.3.3':
+ '@smithy/middleware-endpoint@4.3.5':
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
+ '@smithy/core': 3.17.1
+ '@smithy/middleware-serde': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
+ '@smithy/url-parser': 4.2.3
+ '@smithy/util-middleware': 4.2.3
tslib: 2.8.1
- '@smithy/middleware-retry@4.4.3':
+ '@smithy/middleware-retry@4.4.5':
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/node-config-provider': 4.3.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/service-error-classification': 4.2.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
+ '@smithy/util-middleware': 4.2.3
+ '@smithy/util-retry': 4.2.3
'@smithy/uuid': 1.1.0
tslib: 2.8.1
- '@smithy/middleware-serde@4.2.2':
+ '@smithy/middleware-serde@4.2.3':
dependencies:
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/middleware-stack@4.2.2':
+ '@smithy/middleware-stack@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/node-config-provider@4.3.2':
+ '@smithy/node-config-provider@4.3.3':
dependencies:
- '@smithy/property-provider': 4.2.2
- '@smithy/shared-ini-file-loader': 4.3.2
- '@smithy/types': 4.7.1
+ '@smithy/property-provider': 4.2.3
+ '@smithy/shared-ini-file-loader': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/node-http-handler@4.4.1':
+ '@smithy/node-http-handler@4.4.3':
dependencies:
- '@smithy/abort-controller': 4.2.2
- '@smithy/protocol-http': 5.3.2
- '@smithy/querystring-builder': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/abort-controller': 4.2.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/querystring-builder': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/property-provider@4.2.2':
+ '@smithy/property-provider@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/protocol-http@5.3.2':
+ '@smithy/protocol-http@5.3.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/querystring-builder@4.2.2':
+ '@smithy/querystring-builder@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
'@smithy/util-uri-escape': 4.2.0
tslib: 2.8.1
- '@smithy/querystring-parser@4.2.2':
+ '@smithy/querystring-parser@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/service-error-classification@4.2.2':
+ '@smithy/service-error-classification@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
- '@smithy/shared-ini-file-loader@4.3.2':
+ '@smithy/shared-ini-file-loader@4.3.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/signature-v4@5.3.2':
+ '@smithy/signature-v4@5.3.3':
dependencies:
'@smithy/is-array-buffer': 4.2.0
- '@smithy/protocol-http': 5.3.2
- '@smithy/types': 4.7.1
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
'@smithy/util-hex-encoding': 4.2.0
- '@smithy/util-middleware': 4.2.2
+ '@smithy/util-middleware': 4.2.3
'@smithy/util-uri-escape': 4.2.0
'@smithy/util-utf8': 4.2.0
tslib: 2.8.1
- '@smithy/smithy-client@4.8.1':
+ '@smithy/smithy-client@4.9.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
+ '@smithy/core': 3.17.1
+ '@smithy/middleware-endpoint': 4.3.5
+ '@smithy/middleware-stack': 4.2.3
+ '@smithy/protocol-http': 5.3.3
+ '@smithy/types': 4.8.0
+ '@smithy/util-stream': 4.5.4
tslib: 2.8.1
- '@smithy/types@4.7.1':
+ '@smithy/types@4.8.0':
dependencies:
tslib: 2.8.1
- '@smithy/url-parser@4.2.2':
+ '@smithy/url-parser@4.2.3':
dependencies:
- '@smithy/querystring-parser': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/querystring-parser': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
'@smithy/util-base64@4.3.0':
@@ -15051,49 +15241,49 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@smithy/util-defaults-mode-browser@4.3.2':
+ '@smithy/util-defaults-mode-browser@4.3.4':
dependencies:
- '@smithy/property-provider': 4.2.2
- '@smithy/smithy-client': 4.8.1
- '@smithy/types': 4.7.1
+ '@smithy/property-provider': 4.2.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/util-defaults-mode-node@4.2.3':
+ '@smithy/util-defaults-mode-node@4.2.6':
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
+ '@smithy/config-resolver': 4.4.0
+ '@smithy/credential-provider-imds': 4.2.3
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/property-provider': 4.2.3
+ '@smithy/smithy-client': 4.9.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/util-endpoints@3.2.2':
+ '@smithy/util-endpoints@3.2.3':
dependencies:
- '@smithy/node-config-provider': 4.3.2
- '@smithy/types': 4.7.1
+ '@smithy/node-config-provider': 4.3.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
'@smithy/util-hex-encoding@4.2.0':
dependencies:
tslib: 2.8.1
- '@smithy/util-middleware@4.2.2':
+ '@smithy/util-middleware@4.2.3':
dependencies:
- '@smithy/types': 4.7.1
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/util-retry@4.2.2':
+ '@smithy/util-retry@4.2.3':
dependencies:
- '@smithy/service-error-classification': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/service-error-classification': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
- '@smithy/util-stream@4.5.2':
+ '@smithy/util-stream@4.5.4':
dependencies:
- '@smithy/fetch-http-handler': 5.3.3
- '@smithy/node-http-handler': 4.4.1
- '@smithy/types': 4.7.1
+ '@smithy/fetch-http-handler': 5.3.4
+ '@smithy/node-http-handler': 4.4.3
+ '@smithy/types': 4.8.0
'@smithy/util-base64': 4.3.0
'@smithy/util-buffer-from': 4.2.0
'@smithy/util-hex-encoding': 4.2.0
@@ -15114,10 +15304,10 @@ snapshots:
'@smithy/util-buffer-from': 4.2.0
tslib: 2.8.1
- '@smithy/util-waiter@4.2.2':
+ '@smithy/util-waiter@4.2.3':
dependencies:
- '@smithy/abort-controller': 4.2.2
- '@smithy/types': 4.7.1
+ '@smithy/abort-controller': 4.2.3
+ '@smithy/types': 4.8.0
tslib: 2.8.1
'@smithy/uuid@1.1.0':
@@ -15136,82 +15326,79 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@tailwindcss/node@4.1.14':
+ '@tailwindcss/node@4.1.16':
dependencies:
'@jridgewell/remapping': 2.3.5
enhanced-resolve: 5.18.3
jiti: 2.6.1
- lightningcss: 1.30.1
- magic-string: 0.30.19
+ lightningcss: 1.30.2
+ magic-string: 0.30.21
source-map-js: 1.2.1
- tailwindcss: 4.1.14
+ tailwindcss: 4.1.16
- '@tailwindcss/oxide-android-arm64@4.1.14':
+ '@tailwindcss/oxide-android-arm64@4.1.16':
optional: true
- '@tailwindcss/oxide-darwin-arm64@4.1.14':
+ '@tailwindcss/oxide-darwin-arm64@4.1.16':
optional: true
- '@tailwindcss/oxide-darwin-x64@4.1.14':
+ '@tailwindcss/oxide-darwin-x64@4.1.16':
optional: true
- '@tailwindcss/oxide-freebsd-x64@4.1.14':
+ '@tailwindcss/oxide-freebsd-x64@4.1.16':
optional: true
- '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14':
+ '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.16':
optional: true
- '@tailwindcss/oxide-linux-arm64-gnu@4.1.14':
+ '@tailwindcss/oxide-linux-arm64-gnu@4.1.16':
optional: true
- '@tailwindcss/oxide-linux-arm64-musl@4.1.14':
+ '@tailwindcss/oxide-linux-arm64-musl@4.1.16':
optional: true
- '@tailwindcss/oxide-linux-x64-gnu@4.1.14':
+ '@tailwindcss/oxide-linux-x64-gnu@4.1.16':
optional: true
- '@tailwindcss/oxide-linux-x64-musl@4.1.14':
+ '@tailwindcss/oxide-linux-x64-musl@4.1.16':
optional: true
- '@tailwindcss/oxide-wasm32-wasi@4.1.14':
+ '@tailwindcss/oxide-wasm32-wasi@4.1.16':
optional: true
- '@tailwindcss/oxide-win32-arm64-msvc@4.1.14':
+ '@tailwindcss/oxide-win32-arm64-msvc@4.1.16':
optional: true
- '@tailwindcss/oxide-win32-x64-msvc@4.1.14':
+ '@tailwindcss/oxide-win32-x64-msvc@4.1.16':
optional: true
- '@tailwindcss/oxide@4.1.14':
- dependencies:
- detect-libc: 2.1.2
- tar: 7.5.1
+ '@tailwindcss/oxide@4.1.16':
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':
+ '@tailwindcss/oxide-android-arm64': 4.1.16
+ '@tailwindcss/oxide-darwin-arm64': 4.1.16
+ '@tailwindcss/oxide-darwin-x64': 4.1.16
+ '@tailwindcss/oxide-freebsd-x64': 4.1.16
+ '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.16
+ '@tailwindcss/oxide-linux-arm64-gnu': 4.1.16
+ '@tailwindcss/oxide-linux-arm64-musl': 4.1.16
+ '@tailwindcss/oxide-linux-x64-gnu': 4.1.16
+ '@tailwindcss/oxide-linux-x64-musl': 4.1.16
+ '@tailwindcss/oxide-wasm32-wasi': 4.1.16
+ '@tailwindcss/oxide-win32-arm64-msvc': 4.1.16
+ '@tailwindcss/oxide-win32-x64-msvc': 4.1.16
+
+ '@tailwindcss/postcss@4.1.16':
dependencies:
'@alloc/quick-lru': 5.2.0
- '@tailwindcss/node': 4.1.14
- '@tailwindcss/oxide': 4.1.14
+ '@tailwindcss/node': 4.1.16
+ '@tailwindcss/oxide': 4.1.16
postcss: 8.5.6
- tailwindcss: 4.1.14
+ tailwindcss: 4.1.16
- '@tailwindcss/typography@0.5.19(tailwindcss@4.1.14)':
+ '@tailwindcss/typography@0.5.19(tailwindcss@4.1.16)':
dependencies:
postcss-selector-parser: 6.0.10
- tailwindcss: 4.1.14
+ tailwindcss: 4.1.16
'@tanstack/react-virtual@3.13.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
@@ -15221,169 +15408,169 @@ snapshots:
'@tanstack/virtual-core@3.13.12': {}
- '@tiptap/core@2.26.3(@tiptap/pm@2.26.3)':
+ '@tiptap/core@2.27.0(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/pm': 2.26.3
+ '@tiptap/pm': 2.27.0
- '@tiptap/extension-blockquote@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-blockquote@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-bold@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-bold@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-bubble-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
+ '@tiptap/extension-bubble-menu@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
tippy.js: 6.3.7
- '@tiptap/extension-bullet-list@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-bullet-list@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-code-block@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
+ '@tiptap/extension-code-block@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
- '@tiptap/extension-code@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-code@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@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)))':
+ '@tiptap/extension-color@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/extension-text-style@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0)))':
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/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/extension-text-style': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
- '@tiptap/extension-document@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-document@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-dropcursor@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
+ '@tiptap/extension-dropcursor@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
- '@tiptap/extension-floating-menu@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
+ '@tiptap/extension-floating-menu@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
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)':
+ '@tiptap/extension-gapcursor@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
- '@tiptap/extension-hard-break@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-hard-break@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-heading@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-heading@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-history@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
+ '@tiptap/extension-history@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
- '@tiptap/extension-horizontal-rule@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
+ '@tiptap/extension-horizontal-rule@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
- '@tiptap/extension-italic@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-italic@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-list-item@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-list-item@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-ordered-list@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-ordered-list@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-paragraph@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-paragraph@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-placeholder@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))(@tiptap/pm@2.26.3)':
+ '@tiptap/extension-placeholder@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
- '@tiptap/pm': 2.26.3
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
- '@tiptap/extension-strike@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-strike@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-text-style@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-text-style@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/extension-text@2.26.3(@tiptap/core@2.26.3(@tiptap/pm@2.26.3))':
+ '@tiptap/extension-text@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))':
dependencies:
- '@tiptap/core': 2.26.3(@tiptap/pm@2.26.3)
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
- '@tiptap/pm@2.26.3':
+ '@tiptap/pm@2.27.0':
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-gapcursor: 1.4.0
prosemirror-history: 1.4.1
- prosemirror-inputrules: 1.5.0
+ prosemirror-inputrules: 1.5.1
prosemirror-keymap: 1.2.3
prosemirror-markdown: 1.13.2
prosemirror-menu: 1.2.5
- prosemirror-model: 1.25.3
+ prosemirror-model: 1.25.4
prosemirror-schema-basic: 1.2.4
prosemirror-schema-list: 1.5.1
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
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-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(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)':
+ '@tiptap/react@2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)(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
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/extension-bubble-menu': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
+ '@tiptap/extension-floating-menu': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
+ '@tiptap/pm': 2.27.0
'@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
+ '@tiptap/starter-kit@2.27.0':
+ dependencies:
+ '@tiptap/core': 2.27.0(@tiptap/pm@2.27.0)
+ '@tiptap/extension-blockquote': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-bold': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-bullet-list': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-code': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-code-block': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
+ '@tiptap/extension-document': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-dropcursor': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
+ '@tiptap/extension-gapcursor': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
+ '@tiptap/extension-hard-break': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-heading': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-history': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
+ '@tiptap/extension-horizontal-rule': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))(@tiptap/pm@2.27.0)
+ '@tiptap/extension-italic': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-list-item': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-ordered-list': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-paragraph': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-strike': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-text': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/extension-text-style': 2.27.0(@tiptap/core@2.27.0(@tiptap/pm@2.27.0))
+ '@tiptap/pm': 2.27.0
'@tokenizer/token@0.3.0': {}
@@ -15396,41 +15583,41 @@ snapshots:
'@types/babel__core@7.20.5':
dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
'@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
+ '@babel/types': 7.28.5
'@types/babel__template@7.4.4':
dependencies:
- '@babel/parser': 7.28.4
- '@babel/types': 7.28.4
+ '@babel/parser': 7.28.5
+ '@babel/types': 7.28.5
'@types/babel__traverse@7.28.0':
dependencies:
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
'@types/body-parser@1.19.6':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/bunyan@1.8.11':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/connect@3.4.38':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/cors@2.8.19':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/d3-array@3.2.2': {}
@@ -15553,8 +15740,6 @@ snapshots:
dependencies:
'@types/ms': 2.1.0
- '@types/diff-match-patch@1.0.36': {}
-
'@types/diff@7.0.2': {}
'@types/estree-jsx@1.0.5':
@@ -15565,23 +15750,23 @@ snapshots:
'@types/express-serve-static-core@4.19.7':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/qs': 6.14.0
'@types/range-parser': 1.2.7
- '@types/send': 1.2.0
+ '@types/send': 1.2.1
- '@types/express@4.17.23':
+ '@types/express@4.17.25':
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/serve-static': 1.15.10
'@types/geojson@7946.0.16': {}
'@types/graceful-fs@4.1.9':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 22.18.13
'@types/hast@2.3.10':
dependencies:
@@ -15596,7 +15781,7 @@ snapshots:
'@types/inquirer@9.0.9':
dependencies:
'@types/through': 0.0.33
- rxjs: 7.8.1
+ rxjs: 7.8.2
'@types/istanbul-lib-coverage@2.0.6': {}
@@ -15640,7 +15825,7 @@ snapshots:
'@types/memcached@2.2.10':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/mime@1.3.5': {}
@@ -15648,28 +15833,32 @@ snapshots:
'@types/mysql@2.15.27':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/node-fetch@2.6.13':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 22.18.13
form-data: 4.0.4
'@types/node@18.19.130':
dependencies:
undici-types: 5.26.5
- '@types/node@20.19.21':
+ '@types/node@20.19.24':
dependencies:
undici-types: 6.21.0
- '@types/node@22.18.10':
+ '@types/node@22.18.13':
dependencies:
undici-types: 6.21.0
+ '@types/node@24.9.2':
+ dependencies:
+ undici-types: 7.16.0
+
'@types/oracledb@6.5.2':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/pg-pool@2.0.6':
dependencies:
@@ -15677,7 +15866,7 @@ snapshots:
'@types/pg@8.15.5':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
pg-protocol: 1.10.3
pg-types: 2.2.0
@@ -15705,30 +15894,30 @@ snapshots:
'@types/semver@7.7.1': {}
- '@types/send@0.17.5':
+ '@types/send@0.17.6':
dependencies:
'@types/mime': 1.3.5
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@types/send@1.2.0':
+ '@types/send@1.2.1':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
- '@types/serve-static@1.15.9':
+ '@types/serve-static@1.15.10':
dependencies:
'@types/http-errors': 2.0.5
- '@types/node': 20.19.21
- '@types/send': 0.17.5
+ '@types/node': 20.19.24
+ '@types/send': 0.17.6
'@types/stack-utils@2.0.3': {}
'@types/tedious@4.0.14':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/through@0.0.33':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/tough-cookie@4.0.5': {}
@@ -15742,27 +15931,27 @@ snapshots:
'@types/uuid@10.0.0': {}
- '@types/validator@13.15.3': {}
+ '@types/validator@13.15.4': {}
'@types/ws@8.18.1':
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
'@types/yargs-parser@21.0.3': {}
- '@types/yargs@17.0.33':
+ '@types/yargs@17.0.34':
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)':
+ '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.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)
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.46.2
+ '@typescript-eslint/type-utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.46.2
+ eslint: 9.38.0(jiti@2.6.1)
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
@@ -15771,56 +15960,56 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.46.2(eslint@9.38.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
+ '@typescript-eslint/scope-manager': 8.46.2
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.46.2
debug: 4.4.3
- eslint: 9.37.0(jiti@2.6.1)
+ eslint: 9.38.0(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)':
+ '@typescript-eslint/project-service@8.46.2(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/types': 8.46.1
+ '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.2
debug: 4.4.3
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.46.1':
+ '@typescript-eslint/scope-manager@8.46.2':
dependencies:
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/visitor-keys': 8.46.1
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/visitor-keys': 8.46.2
- '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)':
+ '@typescript-eslint/tsconfig-utils@8.46.2(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)':
+ '@typescript-eslint/type-utils@8.46.2(eslint@9.38.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)
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.3
- eslint: 9.37.0(jiti@2.6.1)
+ eslint: 9.38.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/types@8.46.2': {}
- '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)':
+ '@typescript-eslint/typescript-estree@8.46.2(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
+ '@typescript-eslint/project-service': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/visitor-keys': 8.46.2
debug: 4.4.3
fast-glob: 3.3.3
is-glob: 4.0.3
@@ -15831,20 +16020,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.46.2(eslint@9.38.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)
+ '@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.46.2
+ '@typescript-eslint/types': 8.46.2
+ '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
+ eslint: 9.38.0(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.46.1':
+ '@typescript-eslint/visitor-keys@8.46.2':
dependencies:
- '@typescript-eslint/types': 8.46.1
+ '@typescript-eslint/types': 8.46.2
eslint-visitor-keys: 4.2.1
'@ungap/structured-clone@1.3.0': {}
@@ -15919,7 +16108,7 @@ snapshots:
transitivePeerDependencies:
- graphql
- '@vercel/oidc@3.0.2': {}
+ '@vercel/oidc@3.0.3': {}
'@webcontainer/env@1.1.1': {}
@@ -15994,17 +16183,13 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- ai@4.3.19(react@19.2.0)(zod@3.25.76):
+ ai@5.0.59(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)
+ '@ai-sdk/gateway': 1.0.32(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
- jsondiffpatch: 0.6.0
zod: 3.25.76
- optionalDependencies:
- react: 19.2.0
ai@5.0.60(zod@3.25.76):
dependencies:
@@ -16014,6 +16199,14 @@ snapshots:
'@opentelemetry/api': 1.9.0
zod: 3.25.76
+ ai@5.0.76(zod@3.25.76):
+ dependencies:
+ '@ai-sdk/gateway': 2.0.0(zod@3.25.76)
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.12(zod@3.25.76)
+ '@opentelemetry/api': 1.9.0
+ zod: 3.25.76
+
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
@@ -16147,7 +16340,15 @@ snapshots:
axe-core@4.11.0: {}
- axios@1.12.2(debug@4.4.3):
+ axios@1.13.1:
+ dependencies:
+ follow-redirects: 1.15.11(debug@4.4.3)
+ form-data: 4.0.4
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ axios@1.13.2(debug@4.4.3):
dependencies:
follow-redirects: 1.15.11(debug@4.4.3)
form-data: 4.0.4
@@ -16157,13 +16358,13 @@ snapshots:
axobject-query@4.1.0: {}
- babel-jest@29.7.0(@babel/core@7.28.4):
+ babel-jest@29.7.0(@babel/core@7.28.5):
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@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)
+ babel-preset-jest: 29.6.3(@babel/core@7.28.5)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@@ -16183,34 +16384,34 @@ snapshots:
babel-plugin-jest-hoist@29.6.3:
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.4
+ '@babel/types': 7.28.5
'@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-preset-current-node-syntax@1.2.0(@babel/core@7.28.5):
+ dependencies:
+ '@babel/core': 7.28.5
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5)
+
+ babel-preset-jest@29.6.3(@babel/core@7.28.5):
+ dependencies:
+ '@babel/core': 7.28.5
babel-plugin-jest-hoist: 29.6.3
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5)
bail@2.0.2: {}
@@ -16218,7 +16419,7 @@ snapshots:
base64-js@1.5.1: {}
- baseline-browser-mapping@2.8.16: {}
+ baseline-browser-mapping@2.8.21: {}
bignumber.js@9.3.1: {}
@@ -16276,13 +16477,13 @@ snapshots:
dependencies:
fill-range: 7.1.1
- browserslist@4.26.3:
+ browserslist@4.27.0:
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)
+ baseline-browser-mapping: 2.8.21
+ caniuse-lite: 1.0.30001751
+ electron-to-chromium: 1.5.243
+ node-releases: 2.0.26
+ update-browserslist-db: 1.1.4(browserslist@4.27.0)
bs-logger@0.2.6:
dependencies:
@@ -16309,9 +16510,9 @@ snapshots:
dependencies:
run-applescript: 7.1.0
- bundle-require@5.1.0(esbuild@0.25.10):
+ bundle-require@5.1.0(esbuild@0.25.11):
dependencies:
- esbuild: 0.25.10
+ esbuild: 0.25.11
load-tsconfig: 0.2.5
busboy@1.6.0:
@@ -16345,7 +16546,7 @@ snapshots:
camelcase@6.3.0: {}
- caniuse-lite@1.0.30001750: {}
+ caniuse-lite@1.0.30001751: {}
case-anything@2.1.13: {}
@@ -16358,8 +16559,6 @@ snapshots:
chalk@5.2.0: {}
- chalk@5.6.2: {}
-
char-regex@1.0.2: {}
character-entities-html4@2.1.0: {}
@@ -16396,8 +16595,6 @@ snapshots:
dependencies:
readdirp: 4.1.2
- chownr@3.0.0: {}
-
ci-info@3.9.0: {}
citty@0.1.6:
@@ -16410,9 +16607,9 @@ snapshots:
class-validator@0.14.2:
dependencies:
- '@types/validator': 13.15.3
- libphonenumber-js: 1.12.24
- validator: 13.15.15
+ '@types/validator': 13.15.4
+ libphonenumber-js: 1.12.25
+ validator: 13.15.20
class-variance-authority@0.7.1:
dependencies:
@@ -16446,7 +16643,7 @@ snapshots:
collapse-white-space@2.1.0: {}
- collect-v8-coverage@1.0.2: {}
+ collect-v8-coverage@1.0.3: {}
color-convert@2.0.1:
dependencies:
@@ -16490,8 +16687,6 @@ snapshots:
commondir@1.0.1: {}
- compare-versions@6.1.1: {}
-
concat-map@0.0.1: {}
concurrently@9.2.1:
@@ -16509,7 +16704,7 @@ snapshots:
consola@3.4.2: {}
- console-table-printer@2.14.6:
+ console-table-printer@2.15.0:
dependencies:
simple-wcswidth: 1.1.2
@@ -16546,13 +16741,13 @@ snapshots:
dependencies:
layout-base: 2.0.1
- create-jest@29.7.0(@types/node@20.19.21):
+ create-jest@29.7.0(@types/node@20.19.24):
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-config: 29.7.0(@types/node@20.19.24)
jest-util: 29.7.0
prompts: 2.4.2
transitivePeerDependencies:
@@ -16795,7 +16990,7 @@ snapshots:
dateformat@4.6.3: {}
- dayjs@1.11.18: {}
+ dayjs@1.11.19: {}
debug@2.6.9:
dependencies:
@@ -16878,8 +17073,6 @@ snapshots:
dependencies:
dequal: 2.0.3
- diff-match-patch@1.0.5: {}
-
diff-sequences@29.6.3: {}
diff@5.2.0: {}
@@ -16918,15 +17111,15 @@ snapshots:
ee-first@1.1.1: {}
- electrodb@3.4.7(@aws-sdk/client-dynamodb@3.910.0):
+ electrodb@3.5.0(@aws-sdk/client-dynamodb@3.919.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)
+ '@aws-sdk/lib-dynamodb': 3.919.0(@aws-sdk/client-dynamodb@3.919.0)
+ '@aws-sdk/util-dynamodb': 3.919.0(@aws-sdk/client-dynamodb@3.919.0)
jsonschema: 1.2.7
transitivePeerDependencies:
- '@aws-sdk/client-dynamodb'
- electron-to-chromium@1.5.235: {}
+ electron-to-chromium@1.5.243: {}
embla-carousel-react@8.6.0(react@19.2.0):
dependencies:
@@ -17086,34 +17279,34 @@ snapshots:
esast-util-from-estree: 2.0.0
vfile-message: 4.0.3
- esbuild@0.25.10:
+ esbuild@0.25.11:
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
+ '@esbuild/aix-ppc64': 0.25.11
+ '@esbuild/android-arm': 0.25.11
+ '@esbuild/android-arm64': 0.25.11
+ '@esbuild/android-x64': 0.25.11
+ '@esbuild/darwin-arm64': 0.25.11
+ '@esbuild/darwin-x64': 0.25.11
+ '@esbuild/freebsd-arm64': 0.25.11
+ '@esbuild/freebsd-x64': 0.25.11
+ '@esbuild/linux-arm': 0.25.11
+ '@esbuild/linux-arm64': 0.25.11
+ '@esbuild/linux-ia32': 0.25.11
+ '@esbuild/linux-loong64': 0.25.11
+ '@esbuild/linux-mips64el': 0.25.11
+ '@esbuild/linux-ppc64': 0.25.11
+ '@esbuild/linux-riscv64': 0.25.11
+ '@esbuild/linux-s390x': 0.25.11
+ '@esbuild/linux-x64': 0.25.11
+ '@esbuild/netbsd-arm64': 0.25.11
+ '@esbuild/netbsd-x64': 0.25.11
+ '@esbuild/openbsd-arm64': 0.25.11
+ '@esbuild/openbsd-x64': 0.25.11
+ '@esbuild/openharmony-arm64': 0.25.11
+ '@esbuild/sunos-x64': 0.25.11
+ '@esbuild/win32-arm64': 0.25.11
+ '@esbuild/win32-ia32': 0.25.11
+ '@esbuild/win32-x64': 0.25.11
escalade@3.2.0: {}
@@ -17125,19 +17318,19 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-config-next@15.2.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3):
+ eslint-config-next@15.2.1(eslint@9.38.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)
+ '@rushstack/eslint-patch': 1.14.1
+ '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.38.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))
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.38.0(jiti@2.6.1))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1))
+ eslint-plugin-jsx-a11y: 6.10.2(eslint@9.38.0(jiti@2.6.1))
+ eslint-plugin-react: 7.37.5(eslint@9.38.0(jiti@2.6.1))
+ eslint-plugin-react-hooks: 5.2.0(eslint@9.38.0(jiti@2.6.1))
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
@@ -17149,37 +17342,37 @@ snapshots:
dependencies:
debug: 3.2.7
is-core-module: 2.16.1
- resolve: 1.22.10
+ resolve: 1.22.11
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1)):
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.38.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
+ eslint: 9.38.0(jiti@2.6.1)
+ get-tsconfig: 4.13.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))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.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-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1)))(eslint@9.37.0(jiti@2.6.1)):
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.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.38.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)
+ '@typescript-eslint/parser': 8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.38.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-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.38.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)):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.38.0(jiti@2.6.1)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -17188,9 +17381,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
- eslint: 9.37.0(jiti@2.6.1)
+ eslint: 9.38.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-plugin-import@2.32.0)(eslint@9.37.0(jiti@2.6.1)))(eslint@9.37.0(jiti@2.6.1))
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.38.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.38.0(jiti@2.6.1))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -17202,13 +17395,13 @@ snapshots:
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)
+ '@typescript-eslint/parser': 8.46.2(eslint@9.38.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)):
+ eslint-plugin-jsx-a11y@6.10.2(eslint@9.38.0(jiti@2.6.1)):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.9
@@ -17218,7 +17411,7 @@ snapshots:
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
- eslint: 9.37.0(jiti@2.6.1)
+ eslint: 9.38.0(jiti@2.6.1)
hasown: 2.0.2
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@@ -17227,11 +17420,11 @@ snapshots:
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)):
+ eslint-plugin-react-hooks@5.2.0(eslint@9.38.0(jiti@2.6.1)):
dependencies:
- eslint: 9.37.0(jiti@2.6.1)
+ eslint: 9.38.0(jiti@2.6.1)
- eslint-plugin-react@7.37.5(eslint@9.37.0(jiti@2.6.1)):
+ eslint-plugin-react@7.37.5(eslint@9.38.0(jiti@2.6.1)):
dependencies:
array-includes: 3.1.9
array.prototype.findlast: 1.2.5
@@ -17239,7 +17432,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
- eslint: 9.37.0(jiti@2.6.1)
+ eslint: 9.38.0(jiti@2.6.1)
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@@ -17262,21 +17455,20 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
- eslint@9.37.0(jiti@2.6.1):
+ eslint@9.38.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-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/config-array': 0.21.1
+ '@eslint/config-helpers': 0.4.2
'@eslint/core': 0.16.0
'@eslint/eslintrc': 3.3.1
- '@eslint/js': 9.37.0
- '@eslint/plugin-kit': 0.4.0
+ '@eslint/js': 9.38.0
+ '@eslint/plugin-kit': 0.4.1
'@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
@@ -17616,9 +17808,9 @@ snapshots:
fix-dts-default-cjs-exports@1.0.1:
dependencies:
- magic-string: 0.30.19
+ magic-string: 0.30.21
mlly: 1.8.0
- rollup: 4.52.4
+ rollup: 4.52.5
flat-cache@4.0.1:
dependencies:
@@ -17779,7 +17971,7 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
- get-tsconfig@4.12.0:
+ get-tsconfig@4.13.0:
dependencies:
resolve-pkg-maps: 1.0.0
@@ -17867,7 +18059,7 @@ snapshots:
transitivePeerDependencies:
- encoding
- graphql-scalars@1.24.2(graphql@16.11.0):
+ graphql-scalars@1.25.0(graphql@16.11.0):
dependencies:
graphql: 16.11.0
tslib: 2.8.1
@@ -18113,18 +18305,8 @@ snapshots:
hono: 4.10.3
zod: 3.25.76
- 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.10.3: {}
- hono@4.9.12: {}
-
html-escaper@2.0.2: {}
html-url-attributes@3.0.1: {}
@@ -18168,7 +18350,7 @@ snapshots:
'@types/debug': 4.1.12
'@types/node': 18.19.130
'@types/tough-cookie': 4.0.5
- axios: 1.12.2(debug@4.4.3)
+ axios: 1.13.2(debug@4.4.3)
camelcase: 6.3.0
debug: 4.4.3
dotenv: 16.6.1
@@ -18178,7 +18360,7 @@ snapshots:
isstream: 0.1.2
jsonwebtoken: 9.0.2
mime-types: 2.1.35
- retry-axios: 2.6.0(axios@1.12.2(debug@4.4.3))
+ retry-axios: 2.6.0(axios@1.13.2)
tough-cookie: 4.1.4
transitivePeerDependencies:
- supports-color
@@ -18231,17 +18413,17 @@ snapshots:
inline-style-parser@0.2.4: {}
- inquirer@12.10.0(@types/node@20.19.21):
+ inquirer@12.10.0(@types/node@20.19.24):
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)
+ '@inquirer/core': 10.3.0(@types/node@20.19.24)
+ '@inquirer/prompts': 7.9.0(@types/node@20.19.24)
+ '@inquirer/type': 3.0.9(@types/node@20.19.24)
mute-stream: 2.0.0
run-async: 4.0.6
rxjs: 7.8.2
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
internal-slot@1.1.0:
dependencies:
@@ -18366,6 +18548,8 @@ snapshots:
is-negative-zero@2.0.3: {}
+ is-network-error@1.3.0: {}
+
is-number-object@1.1.1:
dependencies:
call-bound: 1.0.4
@@ -18452,8 +18636,8 @@ snapshots:
istanbul-lib-instrument@5.2.1:
dependencies:
- '@babel/core': 7.28.4
- '@babel/parser': 7.28.4
+ '@babel/core': 7.28.5
+ '@babel/parser': 7.28.5
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 6.3.1
@@ -18462,8 +18646,8 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
- '@babel/core': 7.28.4
- '@babel/parser': 7.28.4
+ '@babel/core': 7.28.5
+ '@babel/parser': 7.28.5
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.7.3
@@ -18516,7 +18700,7 @@ snapshots:
'@jest/expect': 29.7.0
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
chalk: 4.1.2
co: 4.6.0
dedent: 1.7.0
@@ -18536,16 +18720,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.7.0(@types/node@20.19.21):
+ jest-cli@29.7.0(@types/node@20.19.24):
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)
+ create-jest: 29.7.0(@types/node@20.19.24)
exit: 0.1.2
import-local: 3.2.0
- jest-config: 29.7.0(@types/node@20.19.21)
+ jest-config: 29.7.0(@types/node@20.19.24)
jest-util: 29.7.0
jest-validate: 29.7.0
yargs: 17.7.2
@@ -18555,12 +18739,12 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.7.0(@types/node@20.19.21):
+ jest-config@29.7.0(@types/node@20.19.24):
dependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@jest/test-sequencer': 29.7.0
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.28.4)
+ babel-jest: 29.7.0(@babel/core@7.28.5)
chalk: 4.1.2
ci-info: 3.9.0
deepmerge: 4.3.1
@@ -18580,7 +18764,7 @@ snapshots:
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -18609,7 +18793,7 @@ snapshots:
'@jest/environment': 29.7.0
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
jest-mock: 29.7.0
jest-util: 29.7.0
@@ -18619,7 +18803,7 @@ snapshots:
dependencies:
'@jest/types': 29.6.3
'@types/graceful-fs': 4.1.9
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -18658,7 +18842,7 @@ snapshots:
jest-mock@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 24.9.2
jest-util: 29.7.0
jest-pnp-resolver@1.2.3(jest-resolve@29.7.0):
@@ -18682,7 +18866,7 @@ snapshots:
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: 1.22.11
resolve.exports: 2.0.3
slash: 3.0.0
@@ -18693,7 +18877,7 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -18721,10 +18905,10 @@ snapshots:
'@jest/test-result': 29.7.0
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
chalk: 4.1.2
cjs-module-lexer: 1.4.3
- collect-v8-coverage: 1.0.2
+ collect-v8-coverage: 1.0.3
glob: 7.2.3
graceful-fs: 4.2.11
jest-haste-map: 29.7.0
@@ -18741,15 +18925,15 @@ snapshots:
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
+ '@babel/core': 7.28.5
+ '@babel/generator': 7.28.5
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
+ '@babel/types': 7.28.5
'@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)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5)
chalk: 4.1.2
expect: 29.7.0
graceful-fs: 4.2.11
@@ -18767,7 +18951,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -18786,7 +18970,7 @@ snapshots:
dependencies:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -18795,17 +18979,17 @@ snapshots:
jest-worker@29.7.0:
dependencies:
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.7.0(@types/node@20.19.21):
+ jest@29.7.0(@types/node@20.19.24):
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)
+ jest-cli: 29.7.0(@types/node@20.19.24)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -18864,12 +19048,6 @@ snapshots:
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
@@ -18938,28 +19116,29 @@ snapshots:
kolorist@1.8.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):
+ langchain@0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.2)(handlebars@4.7.8)(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@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)))
+ '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))
+ '@langchain/openai': 0.4.9(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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))
+ langsmith: 0.3.76(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(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)
+ '@langchain/aws': 0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))
+ axios: 1.13.2(debug@4.4.3)
handlebars: 4.7.8
transitivePeerDependencies:
- '@opentelemetry/api'
- '@opentelemetry/exporter-trace-otlp-proto'
- '@opentelemetry/sdk-trace-base'
+ - encoding
- openai
- ws
@@ -18971,11 +19150,11 @@ snapshots:
vscode-languageserver-textdocument: 1.0.12
vscode-uri: 3.0.8
- 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)):
+ langsmith@0.3.76(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.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
+ console-table-printer: 2.15.0
p-queue: 6.6.2
p-retry: 4.6.2
semver: 7.7.3
@@ -18983,22 +19162,7 @@ snapshots:
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(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)
+ '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0)
openai: 5.12.2(ws@8.18.3)(zod@3.25.76)
language-subtag-registry@0.3.23: {}
@@ -19018,7 +19182,7 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- libphonenumber-js@1.12.24: {}
+ libphonenumber-js@1.12.25: {}
libsql@0.5.22:
dependencies:
@@ -19035,50 +19199,54 @@ snapshots:
'@libsql/linux-x64-musl': 0.5.22
'@libsql/win32-x64-msvc': 0.5.22
- lightningcss-darwin-arm64@1.30.1:
+ lightningcss-android-arm64@1.30.2:
+ optional: true
+
+ lightningcss-darwin-arm64@1.30.2:
optional: true
- lightningcss-darwin-x64@1.30.1:
+ lightningcss-darwin-x64@1.30.2:
optional: true
- lightningcss-freebsd-x64@1.30.1:
+ lightningcss-freebsd-x64@1.30.2:
optional: true
- lightningcss-linux-arm-gnueabihf@1.30.1:
+ lightningcss-linux-arm-gnueabihf@1.30.2:
optional: true
- lightningcss-linux-arm64-gnu@1.30.1:
+ lightningcss-linux-arm64-gnu@1.30.2:
optional: true
- lightningcss-linux-arm64-musl@1.30.1:
+ lightningcss-linux-arm64-musl@1.30.2:
optional: true
- lightningcss-linux-x64-gnu@1.30.1:
+ lightningcss-linux-x64-gnu@1.30.2:
optional: true
- lightningcss-linux-x64-musl@1.30.1:
+ lightningcss-linux-x64-musl@1.30.2:
optional: true
- lightningcss-win32-arm64-msvc@1.30.1:
+ lightningcss-win32-arm64-msvc@1.30.2:
optional: true
- lightningcss-win32-x64-msvc@1.30.1:
+ lightningcss-win32-x64-msvc@1.30.2:
optional: true
- lightningcss@1.30.1:
+ lightningcss@1.30.2:
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
+ lightningcss-android-arm64: 1.30.2
+ lightningcss-darwin-arm64: 1.30.2
+ lightningcss-darwin-x64: 1.30.2
+ lightningcss-freebsd-x64: 1.30.2
+ lightningcss-linux-arm-gnueabihf: 1.30.2
+ lightningcss-linux-arm64-gnu: 1.30.2
+ lightningcss-linux-arm64-musl: 1.30.2
+ lightningcss-linux-x64-gnu: 1.30.2
+ lightningcss-linux-x64-musl: 1.30.2
+ lightningcss-win32-arm64-msvc: 1.30.2
+ lightningcss-win32-x64-msvc: 1.30.2
lilconfig@3.1.3: {}
@@ -19188,7 +19356,7 @@ snapshots:
lucide@0.525.0: {}
- magic-string@0.30.19:
+ magic-string@0.30.21:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -19221,22 +19389,22 @@ snapshots:
marked@16.4.1: {}
- 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):
+ mastra@0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(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)
+ '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76)
+ '@mastra/deployer': 0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(typescript@5.9.3)(zod@3.25.76)
+ '@mastra/loggers': 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))
+ '@mastra/mcp': 0.13.5(@mastra/core@0.20.2(openapi-types@12.1.3)(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.2.0(@opentelemetry/api@1.9.0))
+ '@opentelemetry/core': 2.2.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/resources': 2.2.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-base': 2.2.0(@opentelemetry/api@1.9.0)
'@opentelemetry/semantic-conventions': 1.37.0
'@webcontainer/env': 1.1.1
commander: 12.1.0
@@ -19274,8 +19442,8 @@ snapshots:
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
+ unist-util-is: 6.0.1
+ unist-util-visit-parents: 6.0.2
mdast-util-from-markdown@1.3.1:
dependencies:
@@ -19432,7 +19600,7 @@ snapshots:
mdast-util-phrasing@4.1.0:
dependencies:
'@types/mdast': 4.0.4
- unist-util-is: 6.0.0
+ unist-util-is: 6.0.1
mdast-util-to-hast@12.3.0:
dependencies:
@@ -19503,7 +19671,7 @@ snapshots:
d3: 7.9.0
d3-sankey: 0.12.3
dagre-d3-es: 7.0.13
- dayjs: 1.11.18
+ dayjs: 1.11.19
dompurify: 3.3.0
katex: 0.16.25
khroma: 2.1.0
@@ -19960,10 +20128,6 @@ snapshots:
minipass@7.1.2: {}
- minizlib@3.1.0:
- dependencies:
- minipass: 7.1.2
-
mlly@1.8.0:
dependencies:
acorn: 8.15.0
@@ -20023,7 +20187,7 @@ snapshots:
'@swc/counter': 0.1.3
'@swc/helpers': 0.5.15
busboy: 1.6.0
- caniuse-lite: 1.0.30001750
+ caniuse-lite: 1.0.30001751
postcss: 8.4.31
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
@@ -20077,7 +20241,7 @@ snapshots:
node-int64@0.4.0: {}
- node-releases@2.0.23: {}
+ node-releases@2.0.26: {}
normalize-path@3.0.0: {}
@@ -20260,6 +20424,10 @@ snapshots:
'@types/retry': 0.12.0
retry: 0.13.1
+ p-retry@7.1.0:
+ dependencies:
+ is-network-error: 1.3.0
+
p-timeout@3.2.0:
dependencies:
p-finally: 1.0.0
@@ -20415,8 +20583,9 @@ snapshots:
pino-std-serializers@7.0.0: {}
- pino@9.13.1:
+ pino@9.14.0:
dependencies:
+ '@pinojs/redact': 0.4.0
atomic-sleep: 1.0.0
on-exit-leak-free: 2.1.2
pino-abstract-transport: 2.0.0
@@ -20425,7 +20594,6 @@ snapshots:
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
@@ -20506,7 +20674,7 @@ snapshots:
posthog-node@4.18.0:
dependencies:
- axios: 1.12.2(debug@4.4.3)
+ axios: 1.13.1
transitivePeerDependencies:
- debug
@@ -20559,101 +20727,101 @@ snapshots:
prosemirror-collab@1.3.1:
dependencies:
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
prosemirror-commands@1.7.1:
dependencies:
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
+ prosemirror-model: 1.25.4
+ prosemirror-state: 1.4.4
prosemirror-transform: 1.10.4
prosemirror-dropcursor@1.8.2:
dependencies:
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
prosemirror-transform: 1.10.4
prosemirror-view: 1.41.3
- prosemirror-gapcursor@1.3.2:
+ prosemirror-gapcursor@1.4.0:
dependencies:
prosemirror-keymap: 1.2.3
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
+ prosemirror-model: 1.25.4
+ prosemirror-state: 1.4.4
prosemirror-view: 1.41.3
prosemirror-history@1.4.1:
dependencies:
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
prosemirror-transform: 1.10.4
prosemirror-view: 1.41.3
rope-sequence: 1.3.4
- prosemirror-inputrules@1.5.0:
+ prosemirror-inputrules@1.5.1:
dependencies:
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
prosemirror-transform: 1.10.4
prosemirror-keymap@1.2.3:
dependencies:
- prosemirror-state: 1.4.3
+ prosemirror-state: 1.4.4
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-model: 1.25.4
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-state: 1.4.4
- prosemirror-model@1.25.3:
+ prosemirror-model@1.25.4:
dependencies:
orderedmap: 2.1.1
prosemirror-schema-basic@1.2.4:
dependencies:
- prosemirror-model: 1.25.3
+ prosemirror-model: 1.25.4
prosemirror-schema-list@1.5.1:
dependencies:
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
+ prosemirror-model: 1.25.4
+ prosemirror-state: 1.4.4
prosemirror-transform: 1.10.4
- prosemirror-state@1.4.3:
+ prosemirror-state@1.4.4:
dependencies:
- prosemirror-model: 1.25.3
+ prosemirror-model: 1.25.4
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-model: 1.25.4
+ prosemirror-state: 1.4.4
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):
+ prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(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-model: 1.25.4
+ prosemirror-state: 1.4.4
prosemirror-view: 1.41.3
prosemirror-transform@1.10.4:
dependencies:
- prosemirror-model: 1.25.3
+ prosemirror-model: 1.25.4
prosemirror-view@1.41.3:
dependencies:
- prosemirror-model: 1.25.3
- prosemirror-state: 1.4.3
+ prosemirror-model: 1.25.4
+ prosemirror-state: 1.4.4
prosemirror-transform: 1.10.4
protobufjs@7.5.4:
@@ -20668,7 +20836,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
- '@types/node': 20.19.21
+ '@types/node': 20.19.24
long: 5.3.2
proxy-addr@2.0.7:
@@ -20866,13 +21034,13 @@ snapshots:
unified: 11.0.5
vfile: 6.0.3
- redis@5.8.3:
+ redis@5.9.0:
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)
+ '@redis/bloom': 5.9.0(@redis/client@5.9.0)
+ '@redis/client': 5.9.0
+ '@redis/json': 5.9.0(@redis/client@5.9.0)
+ '@redis/search': 5.9.0(@redis/client@5.9.0)
+ '@redis/time-series': 5.9.0(@redis/client@5.9.0)
reflect-metadata@0.2.2: {}
@@ -20921,7 +21089,7 @@ snapshots:
hast-util-from-html-isomorphic: 2.0.0
hast-util-to-text: 4.0.2
katex: 0.16.25
- unist-util-visit-parents: 6.0.1
+ unist-util-visit-parents: 6.0.2
vfile: 6.0.3
rehype-raw@7.0.0:
@@ -21009,7 +21177,7 @@ snapshots:
dependencies:
debug: 4.4.3
module-details-from-path: 1.0.4
- resolve: 1.22.10
+ resolve: 1.22.11
transitivePeerDependencies:
- supports-color
@@ -21027,7 +21195,7 @@ snapshots:
resolve.exports@2.0.3: {}
- resolve@1.22.10:
+ resolve@1.22.11:
dependencies:
is-core-module: 2.16.1
path-parse: 1.0.7
@@ -21044,9 +21212,9 @@ snapshots:
onetime: 5.1.2
signal-exit: 3.0.7
- retry-axios@2.6.0(axios@1.12.2(debug@4.4.3)):
+ retry-axios@2.6.0(axios@1.13.2):
dependencies:
- axios: 1.12.2(debug@4.4.3)
+ axios: 1.13.2(debug@4.4.3)
retry@0.13.1: {}
@@ -21054,12 +21222,12 @@ snapshots:
robust-predicates@3.0.2: {}
- rollup-plugin-esbuild@6.2.1(esbuild@0.25.10)(rollup@4.50.2):
+ rollup-plugin-esbuild@6.2.1(esbuild@0.25.11)(rollup@4.50.2):
dependencies:
debug: 4.4.3
es-module-lexer: 1.7.0
- esbuild: 0.25.10
- get-tsconfig: 4.12.0
+ esbuild: 0.25.11
+ get-tsconfig: 4.13.0
rollup: 4.50.2
unplugin-utils: 0.2.5
transitivePeerDependencies:
@@ -21096,32 +21264,32 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.50.2
fsevents: 2.3.3
- rollup@4.52.4:
+ rollup@4.52.5:
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
+ '@rollup/rollup-android-arm-eabi': 4.52.5
+ '@rollup/rollup-android-arm64': 4.52.5
+ '@rollup/rollup-darwin-arm64': 4.52.5
+ '@rollup/rollup-darwin-x64': 4.52.5
+ '@rollup/rollup-freebsd-arm64': 4.52.5
+ '@rollup/rollup-freebsd-x64': 4.52.5
+ '@rollup/rollup-linux-arm-gnueabihf': 4.52.5
+ '@rollup/rollup-linux-arm-musleabihf': 4.52.5
+ '@rollup/rollup-linux-arm64-gnu': 4.52.5
+ '@rollup/rollup-linux-arm64-musl': 4.52.5
+ '@rollup/rollup-linux-loong64-gnu': 4.52.5
+ '@rollup/rollup-linux-ppc64-gnu': 4.52.5
+ '@rollup/rollup-linux-riscv64-gnu': 4.52.5
+ '@rollup/rollup-linux-riscv64-musl': 4.52.5
+ '@rollup/rollup-linux-s390x-gnu': 4.52.5
+ '@rollup/rollup-linux-x64-gnu': 4.52.5
+ '@rollup/rollup-linux-x64-musl': 4.52.5
+ '@rollup/rollup-openharmony-arm64': 4.52.5
+ '@rollup/rollup-win32-arm64-msvc': 4.52.5
+ '@rollup/rollup-win32-ia32-msvc': 4.52.5
+ '@rollup/rollup-win32-x64-gnu': 4.52.5
+ '@rollup/rollup-win32-x64-msvc': 4.52.5
fsevents: 2.3.3
rope-sequence@1.3.4: {}
@@ -21367,8 +21535,6 @@ snapshots:
slash@3.0.0: {}
- slow-redact@0.3.2: {}
-
sonic-boom@4.2.0:
dependencies:
atomic-sleep: 1.0.0
@@ -21583,32 +21749,18 @@ snapshots:
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: {}
+ tabbable@6.3.0: {}
tailwind-merge@3.3.1: {}
- tailwindcss-animate@1.0.7(tailwindcss@4.1.14):
+ tailwindcss-animate@1.0.7(tailwindcss@4.1.16):
dependencies:
- tailwindcss: 4.1.14
+ tailwindcss: 4.1.16
- tailwindcss@4.1.14: {}
+ tailwindcss@4.1.16: {}
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
@@ -21634,12 +21786,12 @@ snapshots:
dependencies:
real-require: 0.2.0
- throttleit@2.1.0: {}
-
tinyexec@0.3.2: {}
tinyexec@1.0.1: {}
+ tinyexec@1.0.2: {}
+
tinyglobby@0.2.15:
dependencies:
fdir: 6.5.0(picomatch@4.0.3)
@@ -21693,33 +21845,12 @@ snapshots:
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))(esbuild@0.25.10)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.21))(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)
- esbuild: 0.25.10
- jest-util: 29.7.0
-
- 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):
+ ts-jest@29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(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)
+ jest: 29.7.0(@types/node@20.19.24)
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
@@ -21728,10 +21859,10 @@ snapshots:
typescript: 5.9.3
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.28.4
+ '@babel/core': 7.28.5
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
- babel-jest: 29.7.0(@babel/core@7.28.4)
+ babel-jest: 29.7.0(@babel/core@7.28.5)
jest-util: 29.7.0
ts-poet@6.12.0:
@@ -21740,11 +21871,11 @@ snapshots:
ts-proto-descriptors@2.0.0:
dependencies:
- '@bufbuild/protobuf': 2.9.0
+ '@bufbuild/protobuf': 2.10.0
- ts-proto@2.7.7:
+ ts-proto@2.8.2:
dependencies:
- '@bufbuild/protobuf': 2.9.0
+ '@bufbuild/protobuf': 2.10.0
case-anything: 2.1.13
ts-poet: 6.12.0
ts-proto-descriptors: 2.0.0
@@ -21760,18 +21891,18 @@ snapshots:
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)
+ bundle-require: 5.1.0(esbuild@0.25.11)
cac: 6.7.14
chokidar: 4.0.3
consola: 3.4.2
debug: 4.4.3
- esbuild: 0.25.10
+ esbuild: 0.25.11
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
+ rollup: 4.52.5
source-map: 0.8.0-beta.0
sucrase: 3.35.0
tinyexec: 0.3.2
@@ -21788,8 +21919,8 @@ snapshots:
tsx@4.20.6:
dependencies:
- esbuild: 0.25.10
- get-tsconfig: 4.12.0
+ esbuild: 0.25.11
+ get-tsconfig: 4.13.0
optionalDependencies:
fsevents: 2.3.3
@@ -21832,14 +21963,14 @@ snapshots:
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):
+ type-graphql@2.0.0-rc.1(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.11.0))(graphql@16.11.0):
dependencies:
'@graphql-yoga/subscription': 5.0.5
- '@types/node': 20.19.21
+ '@types/node': 22.18.13
'@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)
+ graphql-scalars: 1.25.0(graphql@16.11.0)
semver: 7.7.3
tslib: 2.8.1
optionalDependencies:
@@ -21917,6 +22048,8 @@ snapshots:
undici-types@6.21.0: {}
+ undici-types@7.16.0: {}
+
unicorn-magic@0.3.0: {}
unified@10.1.2:
@@ -21942,7 +22075,7 @@ snapshots:
unist-util-find-after@5.0.0:
dependencies:
'@types/unist': 3.0.3
- unist-util-is: 6.0.0
+ unist-util-is: 6.0.1
unist-util-generated@2.0.1: {}
@@ -21950,7 +22083,7 @@ snapshots:
dependencies:
'@types/unist': 2.0.11
- unist-util-is@6.0.0:
+ unist-util-is@6.0.1:
dependencies:
'@types/unist': 3.0.3
@@ -21984,10 +22117,10 @@ snapshots:
'@types/unist': 2.0.11
unist-util-is: 5.2.1
- unist-util-visit-parents@6.0.1:
+ unist-util-visit-parents@6.0.2:
dependencies:
'@types/unist': 3.0.3
- unist-util-is: 6.0.0
+ unist-util-is: 6.0.1
unist-util-visit@4.1.2:
dependencies:
@@ -21998,8 +22131,8 @@ snapshots:
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
+ unist-util-is: 6.0.1
+ unist-util-visit-parents: 6.0.2
universalify@0.2.0: {}
@@ -22038,9 +22171,9 @@ snapshots:
untruncate-json@0.0.1: {}
- update-browserslist-db@1.1.3(browserslist@4.26.3):
+ update-browserslist-db@1.1.4(browserslist@4.27.0):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.27.0
escalade: 3.2.0
picocolors: 1.1.1
@@ -22107,7 +22240,7 @@ snapshots:
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
- validator@13.15.15: {}
+ validator@13.15.20: {}
vary@1.1.2: {}
@@ -22301,8 +22434,6 @@ snapshots:
yallist@4.0.0: {}
- yallist@5.0.0: {}
-
yaml@2.8.1: {}
yargs-parser@21.1.1: {}
@@ -22331,7 +22462,7 @@ snapshots:
dependencies:
zod: 3.25.76
- zod-from-json-schema@0.5.0:
+ zod-from-json-schema@0.5.1:
dependencies:
zod: 4.1.12
diff --git a/sdks/python/README.md b/sdks/python/README.md
index d9e48e26a..843d9d028 100644
--- a/sdks/python/README.md
+++ b/sdks/python/README.md
@@ -38,23 +38,6 @@ 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 248ff1005..7e909ad5b 100644
--- a/sdks/python/ag_ui/core/__init__.py
+++ b/sdks/python/ag_ui/core/__init__.py
@@ -22,8 +22,6 @@
StateSnapshotEvent,
StateDeltaEvent,
MessagesSnapshotEvent,
- ActivitySnapshotEvent,
- ActivityDeltaEvent,
RawEvent,
CustomEvent,
RunStartedEvent,
@@ -43,16 +41,12 @@
AssistantMessage,
UserMessage,
ToolMessage,
- ActivityMessage,
Message,
Role,
Context,
Tool,
RunAgentInput,
- State,
- TextInputContent,
- BinaryInputContent,
- InputContent,
+ State
)
__all__ = [
@@ -76,8 +70,6 @@
"StateSnapshotEvent",
"StateDeltaEvent",
"MessagesSnapshotEvent",
- "ActivitySnapshotEvent",
- "ActivityDeltaEvent",
"RawEvent",
"CustomEvent",
"RunStartedEvent",
@@ -95,14 +87,10 @@
"AssistantMessage",
"UserMessage",
"ToolMessage",
- "ActivityMessage",
"Message",
"Role",
"Context",
"Tool",
"RunAgentInput",
- "State",
- "TextInputContent",
- "BinaryInputContent",
- "InputContent",
+ "State"
]
diff --git a/sdks/python/ag_ui/core/events.py b/sdks/python/ag_ui/core/events.py
index 94fb63c75..2a54a9c8e 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, RunAgentInput
+from .types import ConfiguredBaseModel, Message, State, Role
# Text messages can have any role except "tool"
TextMessageRole = Literal["developer", "system", "assistant", "user"]
@@ -34,8 +34,6 @@ 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"
@@ -190,25 +188,6 @@ 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.
@@ -234,8 +213,6 @@ 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):
@@ -287,8 +264,6 @@ 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 e4e358caf..47b7ae182 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, Dict, List, Literal, Optional, Union
+from typing import Annotated, Any, List, Literal, Optional, Union
-from pydantic import BaseModel, ConfigDict, Field, model_validator
+from pydantic import BaseModel, ConfigDict, Field
from pydantic.alias_generators import to_camel
@@ -13,7 +13,7 @@ class ConfiguredBaseModel(BaseModel):
A configurable base model.
"""
model_config = ConfigDict(
- extra="allow",
+ extra="forbid",
alias_generator=to_camel,
populate_by_name=True,
)
@@ -70,44 +70,12 @@ 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 supporting text or multimodal content.
+ A user message.
"""
-
- role: Literal["user"] = "user" # pyright: ignore[reportIncompatibleVariableOverride]
- content: Union[str, List[InputContent]]
+ role: Literal["user"] = "user" # pyright: ignore[reportIncompatibleVariableOverride]
+ content: str
class ToolMessage(ConfiguredBaseModel):
@@ -121,30 +89,12 @@ 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,
- ActivityMessage,
- ],
+ Union[DeveloperMessage, SystemMessage, AssistantMessage, UserMessage, ToolMessage],
Field(discriminator="role")
]
-Role = Literal["developer", "system", "assistant", "user", "tool", "activity"]
+Role = Literal["developer", "system", "assistant", "user", "tool"]
class Context(ConfiguredBaseModel):
@@ -170,7 +120,6 @@ 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 84eadcfee..a8de00217 100644
--- a/sdks/python/pyproject.toml
+++ b/sdks/python/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "ag-ui-protocol"
-version = "0.1.10"
+version = "0.1.9"
description = ""
authors = ["Markus Ecker "]
readme = "README.md"
diff --git a/sdks/python/tests/test_events.py b/sdks/python/tests/test_events.py
index 7245d88aa..c73a2537c 100644
--- a/sdks/python/tests/test_events.py
+++ b/sdks/python/tests/test_events.py
@@ -16,8 +16,6 @@
StateSnapshotEvent,
StateDeltaEvent,
MessagesSnapshotEvent,
- ActivitySnapshotEvent,
- ActivityDeltaEvent,
RawEvent,
CustomEvent,
RunStartedEvent,
@@ -204,58 +202,6 @@ 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"}}
@@ -392,13 +338,6 @@ 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",
@@ -406,13 +345,12 @@ def test_event_union_deserialization(self):
"timestamp": 1648214400000
}
]
-
+
expected_types = [
TextMessageStartEvent,
TextMessageContentEvent,
ToolCallStartEvent,
StateSnapshotEvent,
- ActivitySnapshotEvent,
RunErrorEvent
]
@@ -454,16 +392,6 @@ 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 843a5a977..e534aa5ab 100644
--- a/sdks/python/tests/test_types.py
+++ b/sdks/python/tests/test_types.py
@@ -10,11 +10,8 @@
AssistantMessage,
UserMessage,
ToolMessage,
- ActivityMessage,
Message,
- RunAgentInput,
- TextInputContent,
- BinaryInputContent,
+ RunAgentInput
)
@@ -59,24 +56,6 @@ 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
@@ -164,31 +143,6 @@ 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
@@ -205,13 +159,7 @@ 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 = [
@@ -219,8 +167,7 @@ def test_message_union_deserialization(self):
SystemMessage,
AssistantMessage,
UserMessage,
- ToolMessage,
- ActivityMessage,
+ ToolMessage
]
for data, expected_type in zip(message_data, expected_types):
@@ -262,7 +209,6 @@ 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
@@ -310,14 +256,7 @@ def test_run_agent_input_deserialization(self):
{
"id": "user_002",
"role": "user",
- "content": [
- {"type": "text", "text": "Can you explain these results?"},
- {
- "type": "binary",
- "mimeType": "image/png",
- "url": "https://example.com/results-chart.png"
- }
- ]
+ "content": "Can you explain these results?"
}
],
"tools": [
@@ -368,7 +307,6 @@ 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
@@ -383,12 +321,6 @@ 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]
@@ -436,17 +368,15 @@ def test_validation_errors(self):
with self.assertRaises(ValidationError):
UserMessage.model_validate(missing_id_data)
- # Test extra fields are now allowed for backwards compatibility
+ # Test extra fields
extra_field_data = {
"id": "msg_456",
"role": "user",
"content": "Hello",
- "extra_field": "This is allowed for backwards compatibility" # Extra field
+ "extra_field": "This shouldn't be here" # Extra field
}
- # 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")
+ with self.assertRaises(ValidationError):
+ UserMessage.model_validate(extra_field_data)
# Test invalid tool_call_id in ToolMessage
invalid_tool_data = {
diff --git a/sdks/typescript/README.md b/sdks/typescript/README.md
index 1de4bd2f4..64b9a5f4a 100644
--- a/sdks/typescript/README.md
+++ b/sdks/typescript/README.md
@@ -3,21 +3,3 @@
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/cli/package.json b/sdks/typescript/packages/cli/package.json
index 08d7a16d6..dd32ee8e7 100644
--- a/sdks/typescript/packages/cli/package.json
+++ b/sdks/typescript/packages/cli/package.json
@@ -25,17 +25,17 @@
"unlink:global": "pnpm unlink --global"
},
"dependencies": {
- "@types/inquirer": "^9.0.8",
+ "@types/inquirer": "^9.0.9",
"commander": "^12.1.0",
- "inquirer": "^12.6.3",
- "giget": "2.0.0"
+ "giget": "2.0.0",
+ "inquirer": "^12.10.0"
},
"devDependencies": {
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/sdks/typescript/packages/client/README.md b/sdks/typescript/packages/client/README.md
index fbc9c41db..1be36135a 100644
--- a/sdks/typescript/packages/client/README.md
+++ b/sdks/typescript/packages/client/README.md
@@ -19,7 +19,6 @@ 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
@@ -38,32 +37,6 @@ 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 919fd78b9..0521f8d91 100644
--- a/sdks/typescript/packages/client/jest.config.js
+++ b/sdks/typescript/packages/client/jest.config.js
@@ -6,11 +6,5 @@ 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 908c96199..68577739a 100644
--- a/sdks/typescript/packages/client/package.json
+++ b/sdks/typescript/packages/client/package.json
@@ -28,19 +28,18 @@
"@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",
"uuid": "^11.1.0",
- "zod": "^3.22.4"
+ "zod": "^3.25.76"
},
"devDependencies": {
"@types/jest": "^29.5.14",
- "@types/node": "^20.11.19",
+ "@types/node": "^20.19.24",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.3.3"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
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
deleted file mode 100644
index 3fb00e8a0..000000000
--- a/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-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 009df2cb7..4f3633d6a 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 } from "../agent";
-import { BaseEvent, EventType, Message, RunAgentInput, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, RunStartedEvent, RunFinishedEvent, ActivitySnapshotEvent } from "@ag-ui/core";
+import { AbstractAgent, RunAgentResult } from "../agent";
+import { BaseEvent, EventType, Message, RunAgentInput, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, RunStartedEvent, RunFinishedEvent } from "@ag-ui/core";
import { Observable, of } from "rxjs";
describe("AbstractAgent multiple runs", () => {
@@ -273,65 +273,4 @@ describe("AbstractAgent multiple runs", () => {
expect(agent.messages[0].content).toBe("Initial message");
expect(agent.messages[1].content).toBe("Response message");
});
-
- 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);
- });
-});
+});
\ No newline at end of file
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 e6e7c0fbc..55d50ddd1 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,18 +17,14 @@ jest.mock("uuid", () => ({
}));
// Mock utils
-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);
- },
- };
-});
+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);
+ },
+}));
// 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 bf7b614ae..5df3a5cf1 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,12 +1,11 @@
import { AbstractAgent } from "../agent";
import { AgentSubscriber } from "../subscriber";
import {
- ActivityDeltaEvent,
- ActivitySnapshotEvent,
BaseEvent,
EventType,
Message,
RunAgentInput,
+ State,
MessagesSnapshotEvent,
RunFinishedEvent,
RunStartedEvent,
@@ -19,18 +18,14 @@ jest.mock("uuid", () => ({
}));
// Mock utils
-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);
- },
- };
-});
+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);
+ },
+}));
// Mock the verify and chunks modules
jest.mock("@/verify", () => ({
@@ -312,60 +307,6 @@ 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
deleted file mode 100644
index 382cc9733..000000000
--- a/sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-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 f6305a1a9..6dee07da1 100644
--- a/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts
+++ b/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts
@@ -28,18 +28,14 @@ jest.mock("uuid", () => ({
}));
// Mock utils with handling for undefined values
-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);
- },
- };
-});
+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);
+ },
+}));
// 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 4820ed5b2..8e2f95610 100644
--- a/sdks/typescript/packages/client/src/agent/agent.ts
+++ b/sdks/typescript/packages/client/src/agent/agent.ts
@@ -4,24 +4,15 @@ 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, EMPTY } from "rxjs";
+import { pipe, Observable, from, of } 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;
@@ -36,12 +27,6 @@ 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,
@@ -57,10 +42,6 @@ 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) {
@@ -74,131 +55,47 @@ 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 {
- 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(
- () => {
- // Build middleware chain using reduceRight so middlewares can intercept runs.
- 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, // Original agent is the final 'next'
- );
-
- return chainedAgent.run(input);
+ 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;
},
- 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);
- }),
- );
+ },
+ ...this.subscribers,
+ subscriber ?? {},
+ ];
- await lastValueFrom(pipeline(of(null)));
- const newMessages = structuredClone_(this.messages).filter(
- (message: Message) => !currentMessageIds.has(message.id),
- );
- return { result, newMessages };
- } finally {
- this.isRunning = false;
- }
- }
+ await this.onInitialize(input, subscribers);
- 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);
- }),
- );
+ 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);
+ }),
+ );
- await lastValueFrom(pipeline(of(null))); // wait for stream completion before toggling isRunning
+ return lastValueFrom(pipeline(of(null))).then(() => {
const newMessages = structuredClone_(this.messages).filter(
(message: Message) => !currentMessageIds.has(message.id),
);
return { result, newMessages };
- } finally {
- this.isRunning = false;
- }
+ });
}
public abortRun() {}
@@ -245,11 +142,6 @@ 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(),
@@ -257,7 +149,7 @@ export abstract class AbstractAgent {
context: structuredClone_(parameters?.context ?? []),
forwardedProps: structuredClone_(parameters?.forwardedProps ?? {}),
state: structuredClone_(this.state),
- messages: messagesWithoutActivity,
+ messages: structuredClone_(this.messages),
};
}
@@ -389,14 +281,12 @@ export abstract class AbstractAgent {
public clone() {
const cloned = Object.create(Object.getPrototypeOf(this));
- 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];
+ for (const key of Object.getOwnPropertyNames(this)) {
+ const value = (this as any)[key];
+ if (typeof value !== "function") {
+ cloned[key] = structuredClone_(value);
+ }
+ }
return cloned;
}
@@ -526,24 +416,7 @@ export abstract class AbstractAgent {
this.agentId = this.agentId ?? uuidv4();
const input = this.prepareRunAgentInput(config);
- // 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(
+ return this.run(input).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 f9d9c3002..49fae2173 100644
--- a/sdks/typescript/packages/client/src/agent/http.ts
+++ b/sdks/typescript/packages/client/src/agent/http.ts
@@ -58,19 +58,4 @@ 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 046bfa90b..e1a25b101 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";
+export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams} from "./subscriber";
\ No newline at end of file
diff --git a/sdks/typescript/packages/client/src/agent/subscriber.ts b/sdks/typescript/packages/client/src/agent/subscriber.ts
index 204038e62..ab7d09e9f 100644
--- a/sdks/typescript/packages/client/src/agent/subscriber.ts
+++ b/sdks/typescript/packages/client/src/agent/subscriber.ts
@@ -21,9 +21,6 @@ import {
RawEvent,
CustomEvent,
ToolCall,
- ActivitySnapshotEvent,
- ActivityDeltaEvent,
- ActivityMessage,
} from "@ag-ui/core";
import { AbstractAgent } from "./agent";
import { structuredClone_ } from "@/utils";
@@ -126,21 +123,6 @@ 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;
diff --git a/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts
deleted file mode 100644
index e6d0c8263..000000000
--- a/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts
+++ /dev/null
@@ -1,381 +0,0 @@
-import { Subject } from "rxjs";
-import { toArray } from "rxjs/operators";
-import { firstValueFrom } from "rxjs";
-import {
- ActivityDeltaEvent,
- ActivitySnapshotEvent,
- BaseEvent,
- EventType,
- Message,
- RunAgentInput,
-} from "@ag-ui/core";
-import { defaultApplyEvents } from "../default";
-import { AbstractAgent } from "@/agent";
-
-const createAgent = (messages: Message[] = []) =>
- ({
- messages: messages.map((message) => ({ ...message })),
- state: {},
- } as unknown as AbstractAgent);
-
-describe("defaultApplyEvents with activity events", () => {
- it("creates and updates activity messages via snapshot and delta", async () => {
- const events$ = new Subject();
- const initialState: RunAgentInput = {
- messages: [],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
- const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
-
- events$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["search"] },
- } as ActivitySnapshotEvent);
-
- events$.next({
- type: EventType.ACTIVITY_DELTA,
- messageId: "activity-1",
- activityType: "PLAN",
- patch: [{ op: "replace", path: "/tasks/0", value: "✓ search" }],
- } as ActivityDeltaEvent);
-
- events$.complete();
-
- const stateUpdates = await stateUpdatesPromise;
-
- expect(stateUpdates.length).toBe(2);
-
- const snapshotUpdate = stateUpdates[0];
- expect(snapshotUpdate?.messages?.[0]?.role).toBe("activity");
- expect(snapshotUpdate?.messages?.[0]?.activityType).toBe("PLAN");
- expect(snapshotUpdate?.messages?.[0]?.content).toEqual({ tasks: ["search"] });
-
- const deltaUpdate = stateUpdates[1];
- expect(deltaUpdate?.messages?.[0]?.content).toEqual({ tasks: ["✓ search"] });
- });
-
- it("appends operations via delta when snapshot starts with an empty array", async () => {
- const events$ = new Subject();
- const initialState: RunAgentInput = {
- messages: [],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
- const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
-
- const firstOperation = { id: "op-1", status: "PENDING" };
- const secondOperation = { id: "op-2", status: "COMPLETED" };
-
- events$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-ops",
- activityType: "PLAN",
- content: { operations: [] },
- } as ActivitySnapshotEvent);
-
- events$.next({
- type: EventType.ACTIVITY_DELTA,
- messageId: "activity-ops",
- activityType: "PLAN",
- patch: [
- { op: "add", path: "/operations/-", value: firstOperation },
- ],
- } as ActivityDeltaEvent);
-
- events$.next({
- type: EventType.ACTIVITY_DELTA,
- messageId: "activity-ops",
- activityType: "PLAN",
- patch: [
- { op: "add", path: "/operations/-", value: secondOperation },
- ],
- } as ActivityDeltaEvent);
-
- events$.complete();
-
- const stateUpdates = await stateUpdatesPromise;
-
- expect(stateUpdates.length).toBe(3);
-
- const snapshotUpdate = stateUpdates[0];
- expect(snapshotUpdate?.messages?.[0]?.content).toEqual({ operations: [] });
-
- const firstDeltaUpdate = stateUpdates[1];
- expect(firstDeltaUpdate?.messages?.[0]?.content?.operations).toEqual([
- firstOperation,
- ]);
-
- const secondDeltaUpdate = stateUpdates[2];
- expect(secondDeltaUpdate?.messages?.[0]?.content?.operations).toEqual([
- firstOperation,
- secondOperation,
- ]);
- });
-
- it("does not replace existing activity message when replace is false", async () => {
- const events$ = new Subject();
- const initialState: RunAgentInput = {
- messages: [
- {
- id: "activity-1",
- role: "activity",
- activityType: "PLAN",
- content: { tasks: ["initial"] },
- },
- ],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const agent = createAgent(initialState.messages as Message[]);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
- const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
-
- events$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["updated"] },
- replace: false,
- } as ActivitySnapshotEvent);
-
- events$.complete();
-
- const stateUpdates = await stateUpdatesPromise;
- expect(stateUpdates.length).toBe(1);
- const update = stateUpdates[0];
- expect(update?.messages?.[0]?.content).toEqual({ tasks: ["initial"] });
- });
-
- it("adds activity message when replace is false and none exists", async () => {
- const events$ = new Subject();
- const initialState: RunAgentInput = {
- messages: [],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const agent = createAgent(initialState.messages as Message[]);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
- const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
-
- events$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["first"] },
- replace: false,
- } as ActivitySnapshotEvent);
-
- events$.complete();
-
- const stateUpdates = await stateUpdatesPromise;
- expect(stateUpdates.length).toBe(1);
- const update = stateUpdates[0];
- expect(update?.messages?.[0]?.content).toEqual({ tasks: ["first"] });
- expect(update?.messages?.[0]?.role).toBe("activity");
- });
-
- it("replaces existing activity message when replace is true", async () => {
- const events$ = new Subject();
- const initialState: RunAgentInput = {
- messages: [
- {
- id: "activity-1",
- role: "activity" as const,
- activityType: "PLAN",
- content: { tasks: ["initial"] },
- },
- ],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const agent = createAgent(initialState.messages as Message[]);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
- const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
-
- events$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["updated"] },
- replace: true,
- } as ActivitySnapshotEvent);
-
- events$.complete();
-
- const stateUpdates = await stateUpdatesPromise;
- expect(stateUpdates.length).toBe(1);
- const update = stateUpdates[0];
- expect(update?.messages?.[0]?.content).toEqual({ tasks: ["updated"] });
- });
-
- it("replaces non-activity message when replace is true", async () => {
- const events$ = new Subject();
- const initialState: RunAgentInput = {
- messages: [
- {
- id: "activity-1",
- role: "user" as const,
- content: "placeholder",
- },
- ],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const agent = createAgent(initialState.messages as Message[]);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
- const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
-
- events$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["first"] },
- replace: true,
- } as ActivitySnapshotEvent);
-
- events$.complete();
-
- const stateUpdates = await stateUpdatesPromise;
- expect(stateUpdates.length).toBe(1);
- const update = stateUpdates[0];
- expect(update?.messages?.[0]?.role).toBe("activity");
- expect(update?.messages?.[0]?.content).toEqual({ tasks: ["first"] });
- });
-
- it("does not alter non-activity message when replace is false", async () => {
- const events$ = new Subject();
- const initialState: RunAgentInput = {
- messages: [
- {
- id: "activity-1",
- role: "user" as const,
- content: "placeholder",
- },
- ],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const agent = createAgent(initialState.messages as Message[]);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
- const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
-
- events$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["first"] },
- replace: false,
- } as ActivitySnapshotEvent);
-
- events$.complete();
-
- const stateUpdates = await stateUpdatesPromise;
- expect(stateUpdates.length).toBe(1);
- const update = stateUpdates[0];
- expect(update?.messages?.[0]?.role).toBe("user");
- expect(update?.messages?.[0]?.content).toBe("placeholder");
- });
-
- it("maintains replace semantics across runs", async () => {
- const firstRunEvents$ = new Subject();
- const baseInput: RunAgentInput = {
- messages: [],
- state: {},
- threadId: "thread-activity",
- runId: "run-activity",
- tools: [],
- context: [],
- };
-
- const baseAgent = createAgent(baseInput.messages);
- const firstResult$ = defaultApplyEvents(baseInput, firstRunEvents$, baseAgent, []);
- const firstUpdatesPromise = firstValueFrom(firstResult$.pipe(toArray()));
-
- firstRunEvents$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["initial"] },
- replace: true,
- } as ActivitySnapshotEvent);
- firstRunEvents$.complete();
-
- const firstUpdates = await firstUpdatesPromise;
- const nextMessages = firstUpdates[0]?.messages ?? [];
-
- const secondRunEvents$ = new Subject();
- const secondInput: RunAgentInput = {
- ...baseInput,
- messages: nextMessages,
- };
-
- const secondAgent = createAgent(secondInput.messages);
- const secondResult$ = defaultApplyEvents(
- secondInput,
- secondRunEvents$,
- secondAgent,
- [],
- );
- const secondUpdatesPromise = firstValueFrom(secondResult$.pipe(toArray()));
-
- secondRunEvents$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["updated"] },
- replace: false,
- } as ActivitySnapshotEvent);
-
- secondRunEvents$.next({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "activity-1",
- activityType: "PLAN",
- content: { tasks: ["final"] },
- replace: true,
- } as ActivitySnapshotEvent);
-
- secondRunEvents$.complete();
-
- const secondUpdates = await secondUpdatesPromise;
- expect(secondUpdates.length).toBe(2);
- const afterReplaceFalse = secondUpdates[0];
- expect(afterReplaceFalse?.messages?.[0]?.content).toEqual({ tasks: ["initial"] });
- const afterReplaceTrue = secondUpdates[1];
- expect(afterReplaceTrue?.messages?.[0]?.content).toEqual({ tasks: ["final"] });
- });
-});
diff --git a/sdks/typescript/packages/client/src/apply/__tests__/default.concurrent.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/default.concurrent.test.ts
index 322ada5e8..49cad4552 100644
--- a/sdks/typescript/packages/client/src/apply/__tests__/default.concurrent.test.ts
+++ b/sdks/typescript/packages/client/src/apply/__tests__/default.concurrent.test.ts
@@ -19,12 +19,12 @@ import {
} from "@ag-ui/core";
import { AbstractAgent } from "../../agent";
-const createAgent = (messages: Message[] = []) =>
- ({
- messages: messages.map((message) => ({ ...message })),
- state: {},
- agentId: "test-agent",
- } as unknown as AbstractAgent);
+// Mock agent for testing
+const FAKE_AGENT = {
+ messages: [],
+ state: {},
+ agentId: "test-agent",
+} as unknown as AbstractAgent;
describe("defaultApplyEvents concurrent operations", () => {
// Test: Concurrent text messages should create separate messages
@@ -41,8 +41,7 @@ describe("defaultApplyEvents concurrent operations", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -126,8 +125,7 @@ describe("defaultApplyEvents concurrent operations", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -220,8 +218,7 @@ describe("defaultApplyEvents concurrent operations", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -336,8 +333,7 @@ describe("defaultApplyEvents concurrent operations", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -448,8 +444,7 @@ describe("defaultApplyEvents concurrent operations", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -557,8 +552,7 @@ describe("defaultApplyEvents concurrent operations", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
diff --git a/sdks/typescript/packages/client/src/apply/__tests__/default.state.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/default.state.test.ts
index 41627ee2e..71e64efc1 100644
--- a/sdks/typescript/packages/client/src/apply/__tests__/default.state.test.ts
+++ b/sdks/typescript/packages/client/src/apply/__tests__/default.state.test.ts
@@ -1,14 +1,10 @@
import { AbstractAgent } from "@/agent";
import { defaultApplyEvents } from "../default";
-import { EventType, Message, StateDeltaEvent } from "@ag-ui/core";
+import { EventType, StateDeltaEvent } from "@ag-ui/core";
import { of } from "rxjs";
import { AgentStateMutation } from "@/agent/subscriber";
-const createAgent = (messages: Message[] = []) =>
- ({
- messages: messages.map((message) => ({ ...message })),
- state: {},
- } as unknown as AbstractAgent);
+const FAKE_AGENT = null as unknown as AbstractAgent;
describe("defaultApplyEvents - State Patching", () => {
it("should apply state delta patch correctly", (done) => {
@@ -34,8 +30,7 @@ describe("defaultApplyEvents - State Patching", () => {
const events$ = of(stateDelta);
- const agent = createAgent(initialState.messages as Message[]);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
result$.subscribe((update: AgentStateMutation) => {
expect(update.state).toEqual({
@@ -70,8 +65,7 @@ describe("defaultApplyEvents - State Patching", () => {
const events$ = of(stateDelta);
// Cast to any to bypass strict type checking
- const agent = createAgent((initialState as any).messages as Message[]);
- const result$ = defaultApplyEvents(initialState as any, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []);
result$.subscribe((update: AgentStateMutation) => {
expect(update.state).toEqual({
@@ -108,8 +102,7 @@ describe("defaultApplyEvents - State Patching", () => {
const events$ = of(stateDelta);
// Cast to any to bypass strict type checking
- const agent = createAgent((initialState as any).messages as Message[]);
- const result$ = defaultApplyEvents(initialState as any, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []);
result$.subscribe((update: AgentStateMutation) => {
expect(update.state).toEqual({
@@ -144,8 +137,7 @@ describe("defaultApplyEvents - State Patching", () => {
const events$ = of(...stateDeltas);
// Cast to any to bypass strict type checking
- const agent = createAgent((initialState as any).messages as Message[]);
- const result$ = defaultApplyEvents(initialState as any, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []);
let updateCount = 0;
result$.subscribe((update: AgentStateMutation) => {
@@ -184,8 +176,7 @@ describe("defaultApplyEvents - State Patching", () => {
const events$ = of(stateDelta);
// Cast to any to bypass strict type checking
- const agent = createAgent((initialState as any).messages as Message[]);
- const result$ = defaultApplyEvents(initialState as any, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []);
let updateCount = 0;
result$.subscribe({
diff --git a/sdks/typescript/packages/client/src/apply/__tests__/default.text-message.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/default.text-message.test.ts
index 031713f29..581f418df 100644
--- a/sdks/typescript/packages/client/src/apply/__tests__/default.text-message.test.ts
+++ b/sdks/typescript/packages/client/src/apply/__tests__/default.text-message.test.ts
@@ -4,7 +4,6 @@ import { firstValueFrom } from "rxjs";
import {
BaseEvent,
EventType,
- Message,
RunStartedEvent,
TextMessageStartEvent,
TextMessageContentEvent,
@@ -14,11 +13,7 @@ import {
import { defaultApplyEvents } from "../default";
import { AbstractAgent } from "@/agent";
-const createAgent = (messages: Message[] = []) =>
- ({
- messages: messages.map((message) => ({ ...message })),
- state: {},
- } as unknown as AbstractAgent);
+const FAKE_AGENT = null as unknown as AbstractAgent;
describe("defaultApplyEvents with text messages", () => {
it("should handle text message events correctly", async () => {
@@ -34,8 +29,7 @@ describe("defaultApplyEvents with text messages", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -108,8 +102,7 @@ describe("defaultApplyEvents with text messages", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
diff --git a/sdks/typescript/packages/client/src/apply/__tests__/default.tool-calls.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/default.tool-calls.test.ts
index 261057677..bcce0ab40 100644
--- a/sdks/typescript/packages/client/src/apply/__tests__/default.tool-calls.test.ts
+++ b/sdks/typescript/packages/client/src/apply/__tests__/default.tool-calls.test.ts
@@ -2,24 +2,19 @@ import { Subject } from "rxjs";
import { toArray } from "rxjs/operators";
import { firstValueFrom } from "rxjs";
import {
- AssistantMessage,
BaseEvent,
EventType,
- Message,
- RunAgentInput,
RunStartedEvent,
+ ToolCallStartEvent,
ToolCallArgsEvent,
ToolCallEndEvent,
- ToolCallStartEvent,
+ RunAgentInput,
+ AssistantMessage,
} from "@ag-ui/core";
import { defaultApplyEvents } from "../default";
import { AbstractAgent } from "@/agent";
-const createAgent = (messages: Message[] = []) =>
- ({
- messages: messages.map((message) => ({ ...message })),
- state: {},
- } as unknown as AbstractAgent);
+const FAKE_AGENT = null as unknown as AbstractAgent;
describe("defaultApplyEvents with tool calls", () => {
it("should handle a single tool call correctly", async () => {
@@ -38,8 +33,7 @@ describe("defaultApplyEvents with tool calls", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -126,8 +120,7 @@ describe("defaultApplyEvents with tool calls", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -231,8 +224,7 @@ describe("defaultApplyEvents with tool calls", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages as Message[]);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -295,8 +287,7 @@ describe("defaultApplyEvents with tool calls", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
@@ -355,8 +346,7 @@ describe("defaultApplyEvents with tool calls", () => {
};
// Create the observable stream
- const agent = createAgent(initialState.messages);
- const result$ = defaultApplyEvents(initialState, events$, agent, []);
+ const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []);
// Collect all emitted state updates in an array
const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray()));
diff --git a/sdks/typescript/packages/client/src/apply/__tests__/run-started-input.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/run-started-input.test.ts
deleted file mode 100644
index 9be1a0133..000000000
--- a/sdks/typescript/packages/client/src/apply/__tests__/run-started-input.test.ts
+++ /dev/null
@@ -1,416 +0,0 @@
-import { AbstractAgent } from "../../agent/agent";
-import {
- BaseEvent,
- EventType,
- Message,
- RunAgentInput,
- RunStartedEvent,
- RunFinishedEvent,
- TextMessageStartEvent,
- TextMessageContentEvent,
- TextMessageEndEvent,
-} from "@ag-ui/core";
-import { Observable, of } from "rxjs";
-import { AgentSubscriber } from "../../agent/subscriber";
-
-describe("RunStartedEvent with input.messages", () => {
- class TestAgent extends AbstractAgent {
- private events: BaseEvent[] = [];
-
- setEvents(events: BaseEvent[]) {
- this.events = events;
- }
-
- protected run(input: RunAgentInput): Observable {
- return of(...this.events);
- }
- }
-
- it("should add messages from RunStartedEvent.input that are not already present", async () => {
- const agent = new TestAgent({
- threadId: "test-thread",
- initialMessages: [],
- });
-
- const events: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-1",
- input: {
- threadId: "test-thread",
- runId: "run-1",
- messages: [
- {
- id: "msg-1",
- role: "user",
- content: "Hello",
- },
- {
- id: "msg-2",
- role: "user",
- content: "How are you?",
- },
- ],
- tools: [],
- context: [],
- state: {},
- forwardedProps: {},
- },
- } as RunStartedEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-1",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(events);
- const result = await agent.runAgent({ runId: "run-1" });
-
- // Verify both messages were added
- expect(agent.messages.length).toBe(2);
- expect(agent.messages[0].id).toBe("msg-1");
- expect(agent.messages[0].content).toBe("Hello");
- expect(agent.messages[1].id).toBe("msg-2");
- expect(agent.messages[1].content).toBe("How are you?");
-
- // Verify they appear in newMessages
- expect(result.newMessages.length).toBe(2);
- });
-
- it("should not duplicate messages that already exist (by ID)", async () => {
- const initialMessages: Message[] = [
- {
- id: "msg-1",
- role: "user",
- content: "Existing message",
- },
- ];
-
- const agent = new TestAgent({
- threadId: "test-thread",
- initialMessages,
- });
-
- const events: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-1",
- input: {
- threadId: "test-thread",
- runId: "run-1",
- messages: [
- {
- id: "msg-1",
- role: "user",
- content: "Duplicate message (should be ignored)",
- },
- {
- id: "msg-2",
- role: "user",
- content: "New message",
- },
- ],
- tools: [],
- context: [],
- state: {},
- forwardedProps: {},
- },
- } as RunStartedEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-1",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(events);
- const result = await agent.runAgent({ runId: "run-1" });
-
- // Verify only the new message was added
- expect(agent.messages.length).toBe(2);
- expect(agent.messages[0].id).toBe("msg-1");
- expect(agent.messages[0].content).toBe("Existing message"); // Original content preserved
- expect(agent.messages[1].id).toBe("msg-2");
- expect(agent.messages[1].content).toBe("New message");
-
- // Verify only the new message appears in newMessages
- expect(result.newMessages.length).toBe(1);
- expect(result.newMessages[0].id).toBe("msg-2");
- });
-
- it("should handle RunStartedEvent without input field", async () => {
- const agent = new TestAgent({
- threadId: "test-thread",
- initialMessages: [],
- });
-
- const events: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-1",
- // No input field
- } as RunStartedEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-1",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(events);
- const result = await agent.runAgent({ runId: "run-1" });
-
- // Verify no errors and messages remain empty
- expect(agent.messages.length).toBe(0);
- expect(result.newMessages.length).toBe(0);
- });
-
- it("should handle RunStartedEvent with input but no messages", async () => {
- const agent = new TestAgent({
- threadId: "test-thread",
- initialMessages: [],
- });
-
- const events: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-1",
- input: {
- threadId: "test-thread",
- runId: "run-1",
- messages: [], // Empty messages array
- tools: [],
- context: [],
- state: {},
- forwardedProps: {},
- },
- } as RunStartedEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-1",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(events);
- const result = await agent.runAgent({ runId: "run-1" });
-
- // Verify no errors and messages remain empty
- expect(agent.messages.length).toBe(0);
- expect(result.newMessages.length).toBe(0);
- });
-
- it("should respect stopPropagation from subscribers", async () => {
- const agent = new TestAgent({
- threadId: "test-thread",
- initialMessages: [],
- });
-
- // Create a subscriber that stops propagation
- const stopPropagationSubscriber: AgentSubscriber = {
- onRunStartedEvent: () => {
- return { stopPropagation: true };
- },
- };
-
- const events: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-1",
- input: {
- threadId: "test-thread",
- runId: "run-1",
- messages: [
- {
- id: "msg-1",
- role: "user",
- content: "Should not be added",
- },
- ],
- tools: [],
- context: [],
- state: {},
- forwardedProps: {},
- },
- } as RunStartedEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-1",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(events);
- const result = await agent.runAgent({ runId: "run-1" }, stopPropagationSubscriber);
-
- // Verify messages were NOT added due to stopPropagation
- expect(agent.messages.length).toBe(0);
- expect(result.newMessages.length).toBe(0);
- });
-
- it("should add messages before other events in the same run", async () => {
- const agent = new TestAgent({
- threadId: "test-thread",
- initialMessages: [],
- });
-
- const events: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-1",
- input: {
- threadId: "test-thread",
- runId: "run-1",
- messages: [
- {
- id: "msg-from-input",
- role: "user",
- content: "From input",
- },
- ],
- tools: [],
- context: [],
- state: {},
- forwardedProps: {},
- },
- } as RunStartedEvent,
- {
- type: EventType.TEXT_MESSAGE_START,
- messageId: "msg-streamed",
- role: "assistant",
- } as TextMessageStartEvent,
- {
- type: EventType.TEXT_MESSAGE_CONTENT,
- messageId: "msg-streamed",
- delta: "Streamed response",
- } as TextMessageContentEvent,
- {
- type: EventType.TEXT_MESSAGE_END,
- messageId: "msg-streamed",
- } as TextMessageEndEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-1",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(events);
- const result = await agent.runAgent({ runId: "run-1" });
-
- // Verify message order: input message first, then streamed message
- expect(agent.messages.length).toBe(2);
- expect(agent.messages[0].id).toBe("msg-from-input");
- expect(agent.messages[0].content).toBe("From input");
- expect(agent.messages[1].id).toBe("msg-streamed");
- expect(agent.messages[1].content).toBe("Streamed response");
-
- expect(result.newMessages.length).toBe(2);
- });
-
- it("should handle multiple runs with input.messages", async () => {
- const agent = new TestAgent({
- threadId: "test-thread",
- initialMessages: [],
- });
-
- // First run with one message
- const firstRunEvents: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-1",
- input: {
- threadId: "test-thread",
- runId: "run-1",
- messages: [
- {
- id: "msg-1",
- role: "user",
- content: "First message",
- },
- ],
- tools: [],
- context: [],
- state: {},
- forwardedProps: {},
- },
- } as RunStartedEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-1",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(firstRunEvents);
- const result1 = await agent.runAgent({ runId: "run-1" });
-
- expect(agent.messages.length).toBe(1);
- expect(agent.messages[0].id).toBe("msg-1");
- expect(result1.newMessages.length).toBe(1);
-
- // Second run with three messages (one duplicate, two new)
- const secondRunEvents: BaseEvent[] = [
- {
- type: EventType.RUN_STARTED,
- threadId: "test-thread",
- runId: "run-2",
- input: {
- threadId: "test-thread",
- runId: "run-2",
- messages: [
- {
- id: "msg-1",
- role: "user",
- content: "First message (duplicate)",
- },
- {
- id: "msg-2",
- role: "user",
- content: "Second message",
- },
- {
- id: "msg-3",
- role: "user",
- content: "Third message",
- },
- ],
- tools: [],
- context: [],
- state: {},
- forwardedProps: {},
- },
- } as RunStartedEvent,
- {
- type: EventType.RUN_FINISHED,
- threadId: "test-thread",
- runId: "run-2",
- } as RunFinishedEvent,
- ];
-
- agent.setEvents(secondRunEvents);
- const result2 = await agent.runAgent({ runId: "run-2" });
-
- // Verify only new messages were added
- expect(agent.messages.length).toBe(3);
- expect(agent.messages[0].id).toBe("msg-1");
- expect(agent.messages[0].content).toBe("First message"); // Original content preserved
- expect(agent.messages[1].id).toBe("msg-2");
- expect(agent.messages[1].content).toBe("Second message");
- expect(agent.messages[2].id).toBe("msg-3");
- expect(agent.messages[2].content).toBe("Third message");
-
- // Verify only the two new messages appear in newMessages for the second run
- expect(result2.newMessages.length).toBe(2);
- expect(result2.newMessages[0].id).toBe("msg-2");
- expect(result2.newMessages[1].id).toBe("msg-3");
- });
-});
diff --git a/sdks/typescript/packages/client/src/apply/default.ts b/sdks/typescript/packages/client/src/apply/default.ts
index 6cd3dcd8b..8f720c7a0 100644
--- a/sdks/typescript/packages/client/src/apply/default.ts
+++ b/sdks/typescript/packages/client/src/apply/default.ts
@@ -25,9 +25,6 @@ import {
RunErrorEvent,
StepStartedEvent,
StepFinishedEvent,
- ActivitySnapshotEvent,
- ActivityDeltaEvent,
- ActivityMessage,
} from "@ag-ui/core";
import { mergeMap, mergeAll, defaultIfEmpty, concatMap } from "rxjs/operators";
import { of, EMPTY } from "rxjs";
@@ -48,7 +45,7 @@ export const defaultApplyEvents = (
agent: AbstractAgent,
subscribers: AgentSubscriber[],
): Observable => {
- let messages = structuredClone_(agent.messages);
+ let messages = structuredClone_(input.messages);
let state = structuredClone_(input.state);
let currentMutation: AgentStateMutation = {};
@@ -143,17 +140,14 @@ export const defaultApplyEvents = (
state,
agent,
input,
- textMessageBuffer:
- typeof targetMessage.content === "string" ? targetMessage.content : "",
+ textMessageBuffer: targetMessage.content ?? "",
}),
);
applyMutation(mutation);
if (mutation.stopPropagation !== true) {
// Append content to the correct message by ID
- const existingContent =
- typeof targetMessage.content === "string" ? targetMessage.content : "";
- targetMessage.content = `${existingContent}${delta}`;
+ targetMessage.content = (targetMessage.content || "") + delta;
applyMutation({ messages });
}
@@ -181,8 +175,7 @@ export const defaultApplyEvents = (
state,
agent,
input,
- textMessageBuffer:
- typeof targetMessage.content === "string" ? targetMessage.content : "",
+ textMessageBuffer: targetMessage.content ?? "",
}),
);
applyMutation(mutation);
@@ -520,143 +513,6 @@ export const defaultApplyEvents = (
return emitUpdates();
}
- case EventType.ACTIVITY_SNAPSHOT: {
- const activityEvent = event as ActivitySnapshotEvent;
- const existingIndex = messages.findIndex((m) => m.id === activityEvent.messageId);
- const existingMessage = existingIndex >= 0 ? messages[existingIndex] : undefined;
- const existingActivityMessage =
- existingMessage?.role === "activity" ? (existingMessage as ActivityMessage) : undefined;
- const replace = activityEvent.replace ?? true;
-
- const mutation = await runSubscribersWithMutation(
- subscribers,
- messages,
- state,
- (subscriber, messages, state) =>
- subscriber.onActivitySnapshotEvent?.({
- event: activityEvent,
- messages,
- state,
- agent,
- input,
- activityMessage: existingActivityMessage,
- existingMessage,
- }),
- );
- applyMutation(mutation);
-
- if (mutation.stopPropagation !== true) {
- const activityMessage: ActivityMessage = {
- id: activityEvent.messageId,
- role: "activity",
- activityType: activityEvent.activityType,
- content: structuredClone_(activityEvent.content),
- };
-
- let createdMessage: ActivityMessage | undefined;
-
- if (existingIndex === -1) {
- messages.push(activityMessage);
- createdMessage = activityMessage;
- } else if (existingActivityMessage) {
- if (replace) {
- messages[existingIndex] = {
- ...existingActivityMessage,
- activityType: activityEvent.activityType,
- content: structuredClone_(activityEvent.content),
- };
- }
- } else if (replace) {
- messages[existingIndex] = activityMessage;
- createdMessage = activityMessage;
- }
-
- applyMutation({ messages });
-
- if (createdMessage) {
- await Promise.all(
- subscribers.map((subscriber) =>
- subscriber.onNewMessage?.({
- message: createdMessage,
- messages,
- state,
- agent,
- input,
- }),
- ),
- );
- }
- }
-
- return emitUpdates();
- }
-
- case EventType.ACTIVITY_DELTA: {
- const activityEvent = event as ActivityDeltaEvent;
- const existingIndex = messages.findIndex((m) => m.id === activityEvent.messageId);
- if (existingIndex === -1) {
- console.warn(
- `ACTIVITY_DELTA: No message found with ID '${activityEvent.messageId}' to apply patch`,
- );
- return emitUpdates();
- }
-
- const existingMessage = messages[existingIndex];
- if (existingMessage.role !== "activity") {
- console.warn(
- `ACTIVITY_DELTA: Message '${activityEvent.messageId}' is not an activity message`,
- );
- return emitUpdates();
- }
-
- const existingActivityMessage = existingMessage as ActivityMessage;
-
- const mutation = await runSubscribersWithMutation(
- subscribers,
- messages,
- state,
- (subscriber, messages, state) =>
- subscriber.onActivityDeltaEvent?.({
- event: activityEvent,
- messages,
- state,
- agent,
- input,
- activityMessage: existingActivityMessage,
- }),
- );
- applyMutation(mutation);
-
- if (mutation.stopPropagation !== true) {
- try {
- const baseContent = structuredClone_(existingActivityMessage.content ?? {});
-
- const result = applyPatch(
- baseContent,
- activityEvent.patch ?? [],
- true,
- false,
- );
- const updatedContent = result.newDocument as ActivityMessage["content"];
-
- messages[existingIndex] = {
- ...existingActivityMessage,
- content: structuredClone_(updatedContent),
- activityType: activityEvent.activityType,
- };
-
- applyMutation({ messages });
- } catch (error: unknown) {
- const errorMessage = error instanceof Error ? error.message : String(error);
- console.warn(
- `Failed to apply activity patch for '${activityEvent.messageId}': ${errorMessage}`,
- );
- }
- }
-
- return emitUpdates();
- }
-
case EventType.RAW: {
const mutation = await runSubscribersWithMutation(
subscribers,
@@ -711,25 +567,6 @@ export const defaultApplyEvents = (
);
applyMutation(mutation);
- // Handle input.messages if present and stopPropagation is not set
- if (mutation.stopPropagation !== true) {
- const runStartedEvent = event as RunStartedEvent;
-
- // Check if the event contains input with messages
- if (runStartedEvent.input?.messages) {
- // Add messages that aren't already present (checked by ID)
- for (const message of runStartedEvent.input.messages) {
- const existingMessage = messages.find((m) => m.id === message.id);
- if (!existingMessage) {
- messages.push(message);
- }
- }
-
- // Apply mutation to emit the updated messages
- applyMutation({ messages });
- }
- }
-
return emitUpdates();
}
diff --git a/sdks/typescript/packages/client/src/chunks/transform.ts b/sdks/typescript/packages/client/src/chunks/transform.ts
index 0f2f4e15c..bb0ec6ba4 100644
--- a/sdks/typescript/packages/client/src/chunks/transform.ts
+++ b/sdks/typescript/packages/client/src/chunks/transform.ts
@@ -101,8 +101,6 @@ export const transformChunks =
case EventType.THINKING_TEXT_MESSAGE_END:
return [...closePendingEvent(), event];
case EventType.RAW:
- case EventType.ACTIVITY_SNAPSHOT:
- case EventType.ACTIVITY_DELTA:
return [event];
case EventType.TEXT_MESSAGE_CHUNK:
const messageChunkEvent = event as TextMessageChunkEvent;
@@ -222,11 +220,10 @@ export const transformChunks =
return toolMessageResult;
}
const _exhaustiveCheck: never = event.type;
- return [];
}),
finalize(() => {
// This ensures that we close any pending events when the source observable completes
- closePendingEvent();
+ return closePendingEvent();
}),
);
};
diff --git a/sdks/typescript/packages/client/src/compact/__tests__/compact.test.ts b/sdks/typescript/packages/client/src/compact/__tests__/compact.test.ts
deleted file mode 100644
index 17ccb017c..000000000
--- a/sdks/typescript/packages/client/src/compact/__tests__/compact.test.ts
+++ /dev/null
@@ -1,294 +0,0 @@
-import { compactEvents } from "../compact";
-import {
- EventType,
- TextMessageStartEvent,
- TextMessageContentEvent,
- ToolCallStartEvent,
- ToolCallArgsEvent,
- CustomEvent,
-} from "@ag-ui/core";
-
-describe("Event Compaction", () => {
- describe("Text Message Compaction", () => {
- it("should compact multiple text message content events into one", () => {
- const events = [
- { type: EventType.TEXT_MESSAGE_START, messageId: "msg1", role: "user" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "Hello" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: " " },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "world" },
- { type: EventType.TEXT_MESSAGE_END, messageId: "msg1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(3);
- expect(compacted[0].type).toBe(EventType.TEXT_MESSAGE_START);
- expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
- expect((compacted[1] as TextMessageContentEvent).delta).toBe("Hello world");
- expect(compacted[2].type).toBe(EventType.TEXT_MESSAGE_END);
- });
-
- it("should move interleaved events to after text message events", () => {
- const events = [
- { type: EventType.TEXT_MESSAGE_START, messageId: "msg1", role: "assistant" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "Processing" },
- { type: EventType.CUSTOM, id: "custom1", name: "thinking" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "..." },
- { type: EventType.CUSTOM, id: "custom2", name: "done-thinking" },
- { type: EventType.TEXT_MESSAGE_END, messageId: "msg1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(5);
- // Text message events should come first
- expect(compacted[0].type).toBe(EventType.TEXT_MESSAGE_START);
- expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
- expect((compacted[1] as TextMessageContentEvent).delta).toBe("Processing...");
- expect(compacted[2].type).toBe(EventType.TEXT_MESSAGE_END);
- // Other events should come after
- expect(compacted[3].type).toBe(EventType.CUSTOM);
- expect((compacted[3] as CustomEvent & { id: string }).id).toBe("custom1");
- expect(compacted[4].type).toBe(EventType.CUSTOM);
- expect((compacted[4] as CustomEvent & { id: string }).id).toBe("custom2");
- });
-
- it("should handle multiple messages independently", () => {
- const events = [
- { type: EventType.TEXT_MESSAGE_START, messageId: "msg1", role: "user" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "Hi" },
- { type: EventType.TEXT_MESSAGE_END, messageId: "msg1" },
- { type: EventType.TEXT_MESSAGE_START, messageId: "msg2", role: "assistant" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg2", delta: "Hello" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg2", delta: " there" },
- { type: EventType.TEXT_MESSAGE_END, messageId: "msg2" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(6);
- // First message
- expect(compacted[0].type).toBe(EventType.TEXT_MESSAGE_START);
- expect((compacted[0] as TextMessageStartEvent).messageId).toBe("msg1");
- expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
- expect((compacted[1] as TextMessageContentEvent).delta).toBe("Hi");
- expect(compacted[2].type).toBe(EventType.TEXT_MESSAGE_END);
- // Second message
- expect(compacted[3].type).toBe(EventType.TEXT_MESSAGE_START);
- expect((compacted[3] as TextMessageStartEvent).messageId).toBe("msg2");
- expect(compacted[4].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
- expect((compacted[4] as TextMessageContentEvent).delta).toBe("Hello there");
- expect(compacted[5].type).toBe(EventType.TEXT_MESSAGE_END);
- });
-
- it("should handle incomplete messages", () => {
- const events = [
- { type: EventType.TEXT_MESSAGE_START, messageId: "msg1", role: "user" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "Incomplete" },
- // No END event
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(2);
- expect(compacted[0].type).toBe(EventType.TEXT_MESSAGE_START);
- expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
- expect((compacted[1] as TextMessageContentEvent).delta).toBe("Incomplete");
- });
-
- it("should pass through non-text-message events unchanged", () => {
- const events = [
- { type: EventType.CUSTOM, id: "custom1", name: "event1" },
- { type: EventType.TOOL_CALL_START, toolCallId: "tool1", toolCallName: "search" },
- { type: EventType.TOOL_CALL_END, toolCallId: "tool1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toEqual(events);
- });
-
- it("should handle empty content deltas", () => {
- const events = [
- { type: EventType.TEXT_MESSAGE_START, messageId: "msg1", role: "user" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "Hello" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "" },
- { type: EventType.TEXT_MESSAGE_END, messageId: "msg1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(3);
- expect((compacted[1] as TextMessageContentEvent).delta).toBe("Hello");
- });
- });
-
- describe("Tool Call Compaction", () => {
- it("should compact multiple tool call args events into one", () => {
- const events = [
- {
- type: EventType.TOOL_CALL_START,
- toolCallId: "tool1",
- toolCallName: "search",
- parentMessageId: "msg1",
- },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: '{"query": "' },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: "weather" },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: ' today"' },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: "}" },
- { type: EventType.TOOL_CALL_END, toolCallId: "tool1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(3);
- expect(compacted[0].type).toBe(EventType.TOOL_CALL_START);
- expect(compacted[1].type).toBe(EventType.TOOL_CALL_ARGS);
- expect((compacted[1] as ToolCallArgsEvent).delta).toBe('{"query": "weather today"}');
- expect(compacted[2].type).toBe(EventType.TOOL_CALL_END);
- });
-
- it("should move interleaved events to after tool call events", () => {
- const events = [
- {
- type: EventType.TOOL_CALL_START,
- toolCallId: "tool1",
- toolCallName: "calculate",
- parentMessageId: "msg1",
- },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: '{"a": ' },
- { type: EventType.CUSTOM, id: "custom1", name: "processing" },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: '10, "b": 20}' },
- { type: EventType.CUSTOM, id: "custom2", name: "calculating" },
- { type: EventType.TOOL_CALL_END, toolCallId: "tool1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(5);
- // Tool call events should come first
- expect(compacted[0].type).toBe(EventType.TOOL_CALL_START);
- expect(compacted[1].type).toBe(EventType.TOOL_CALL_ARGS);
- expect((compacted[1] as ToolCallArgsEvent).delta).toBe('{"a": 10, "b": 20}');
- expect(compacted[2].type).toBe(EventType.TOOL_CALL_END);
- // Other events should come after
- expect(compacted[3].type).toBe(EventType.CUSTOM);
- expect((compacted[3] as CustomEvent & { id: string }).id).toBe("custom1");
- expect(compacted[4].type).toBe(EventType.CUSTOM);
- expect((compacted[4] as CustomEvent & { id: string }).id).toBe("custom2");
- });
-
- it("should handle multiple tool calls independently", () => {
- const events = [
- {
- type: EventType.TOOL_CALL_START,
- toolCallId: "tool1",
- toolCallName: "search",
- parentMessageId: "msg1",
- },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: '{"query": "test"}' },
- { type: EventType.TOOL_CALL_END, toolCallId: "tool1" },
- {
- type: EventType.TOOL_CALL_START,
- toolCallId: "tool2",
- toolCallName: "calculate",
- parentMessageId: "msg1",
- },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool2", delta: '{"a": ' },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool2", delta: "5}" },
- { type: EventType.TOOL_CALL_END, toolCallId: "tool2" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(6);
- // First tool call
- expect(compacted[0].type).toBe(EventType.TOOL_CALL_START);
- expect((compacted[0] as ToolCallStartEvent).toolCallId).toBe("tool1");
- expect(compacted[1].type).toBe(EventType.TOOL_CALL_ARGS);
- expect((compacted[1] as ToolCallArgsEvent).delta).toBe('{"query": "test"}');
- expect(compacted[2].type).toBe(EventType.TOOL_CALL_END);
- // Second tool call
- expect(compacted[3].type).toBe(EventType.TOOL_CALL_START);
- expect((compacted[3] as ToolCallStartEvent).toolCallId).toBe("tool2");
- expect(compacted[4].type).toBe(EventType.TOOL_CALL_ARGS);
- expect((compacted[4] as ToolCallArgsEvent).delta).toBe('{"a": 5}');
- expect(compacted[5].type).toBe(EventType.TOOL_CALL_END);
- });
-
- it("should handle incomplete tool calls", () => {
- const events = [
- {
- type: EventType.TOOL_CALL_START,
- toolCallId: "tool1",
- toolCallName: "search",
- parentMessageId: "msg1",
- },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: '{"incomplete": ' },
- // No END event
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(2);
- expect(compacted[0].type).toBe(EventType.TOOL_CALL_START);
- expect(compacted[1].type).toBe(EventType.TOOL_CALL_ARGS);
- expect((compacted[1] as ToolCallArgsEvent).delta).toBe('{"incomplete": ');
- });
-
- it("should handle empty args deltas", () => {
- const events = [
- {
- type: EventType.TOOL_CALL_START,
- toolCallId: "tool1",
- toolCallName: "search",
- parentMessageId: "msg1",
- },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: "" },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: '{"test": true}' },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: "" },
- { type: EventType.TOOL_CALL_END, toolCallId: "tool1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(3);
- expect((compacted[1] as ToolCallArgsEvent).delta).toBe('{"test": true}');
- });
- });
-
- describe("Mixed Compaction", () => {
- it("should handle text messages and tool calls together", () => {
- const events = [
- { type: EventType.TEXT_MESSAGE_START, messageId: "msg1", role: "assistant" },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "Let me " },
- { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "search for that" },
- { type: EventType.TEXT_MESSAGE_END, messageId: "msg1" },
- {
- type: EventType.TOOL_CALL_START,
- toolCallId: "tool1",
- toolCallName: "search",
- parentMessageId: "msg1",
- },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: '{"q": "' },
- { type: EventType.TOOL_CALL_ARGS, toolCallId: "tool1", delta: 'test"}' },
- { type: EventType.TOOL_CALL_END, toolCallId: "tool1" },
- ];
-
- const compacted = compactEvents(events);
-
- expect(compacted).toHaveLength(6);
- // Text message
- expect(compacted[0].type).toBe(EventType.TEXT_MESSAGE_START);
- expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
- expect((compacted[1] as TextMessageContentEvent).delta).toBe("Let me search for that");
- expect(compacted[2].type).toBe(EventType.TEXT_MESSAGE_END);
- // Tool call
- expect(compacted[3].type).toBe(EventType.TOOL_CALL_START);
- expect(compacted[4].type).toBe(EventType.TOOL_CALL_ARGS);
- expect((compacted[4] as ToolCallArgsEvent).delta).toBe('{"q": "test"}');
- expect(compacted[5].type).toBe(EventType.TOOL_CALL_END);
- });
- });
-});
diff --git a/sdks/typescript/packages/client/src/compact/compact.ts b/sdks/typescript/packages/client/src/compact/compact.ts
deleted file mode 100644
index b34c08e6a..000000000
--- a/sdks/typescript/packages/client/src/compact/compact.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import {
- BaseEvent,
- EventType,
- TextMessageStartEvent,
- TextMessageContentEvent,
- TextMessageEndEvent,
- ToolCallStartEvent,
- ToolCallArgsEvent,
- ToolCallEndEvent,
-} from "@ag-ui/core";
-
-/**
- * Compacts streaming events by consolidating multiple deltas into single events.
- * For text messages: multiple content deltas become one concatenated delta.
- * For tool calls: multiple args deltas become one concatenated delta.
- * Events between related streaming events are reordered to keep streaming events together.
- *
- * @param events - Array of events to compact
- * @returns Compacted array of events
- */
-export function compactEvents(events: BaseEvent[]): BaseEvent[] {
- const compacted: BaseEvent[] = [];
- const pendingTextMessages = new Map<
- string,
- {
- start?: TextMessageStartEvent;
- contents: TextMessageContentEvent[];
- end?: TextMessageEndEvent;
- otherEvents: BaseEvent[];
- }
- >();
- const pendingToolCalls = new Map<
- string,
- {
- start?: ToolCallStartEvent;
- args: ToolCallArgsEvent[];
- end?: ToolCallEndEvent;
- otherEvents: BaseEvent[];
- }
- >();
-
- for (const event of events) {
- // Handle text message streaming events
- if (event.type === EventType.TEXT_MESSAGE_START) {
- const startEvent = event as TextMessageStartEvent;
- const messageId = startEvent.messageId;
-
- if (!pendingTextMessages.has(messageId)) {
- pendingTextMessages.set(messageId, {
- contents: [],
- otherEvents: [],
- });
- }
-
- const pending = pendingTextMessages.get(messageId)!;
- pending.start = startEvent;
- } else if (event.type === EventType.TEXT_MESSAGE_CONTENT) {
- const contentEvent = event as TextMessageContentEvent;
- const messageId = contentEvent.messageId;
-
- if (!pendingTextMessages.has(messageId)) {
- pendingTextMessages.set(messageId, {
- contents: [],
- otherEvents: [],
- });
- }
-
- const pending = pendingTextMessages.get(messageId)!;
- pending.contents.push(contentEvent);
- } else if (event.type === EventType.TEXT_MESSAGE_END) {
- const endEvent = event as TextMessageEndEvent;
- const messageId = endEvent.messageId;
-
- if (!pendingTextMessages.has(messageId)) {
- pendingTextMessages.set(messageId, {
- contents: [],
- otherEvents: [],
- });
- }
-
- const pending = pendingTextMessages.get(messageId)!;
- pending.end = endEvent;
-
- // Flush this message's events
- flushTextMessage(messageId, pending, compacted);
- pendingTextMessages.delete(messageId);
- } else if (event.type === EventType.TOOL_CALL_START) {
- const startEvent = event as ToolCallStartEvent;
- const toolCallId = startEvent.toolCallId;
-
- if (!pendingToolCalls.has(toolCallId)) {
- pendingToolCalls.set(toolCallId, {
- args: [],
- otherEvents: [],
- });
- }
-
- const pending = pendingToolCalls.get(toolCallId)!;
- pending.start = startEvent;
- } else if (event.type === EventType.TOOL_CALL_ARGS) {
- const argsEvent = event as ToolCallArgsEvent;
- const toolCallId = argsEvent.toolCallId;
-
- if (!pendingToolCalls.has(toolCallId)) {
- pendingToolCalls.set(toolCallId, {
- args: [],
- otherEvents: [],
- });
- }
-
- const pending = pendingToolCalls.get(toolCallId)!;
- pending.args.push(argsEvent);
- } else if (event.type === EventType.TOOL_CALL_END) {
- const endEvent = event as ToolCallEndEvent;
- const toolCallId = endEvent.toolCallId;
-
- if (!pendingToolCalls.has(toolCallId)) {
- pendingToolCalls.set(toolCallId, {
- args: [],
- otherEvents: [],
- });
- }
-
- const pending = pendingToolCalls.get(toolCallId)!;
- pending.end = endEvent;
-
- // Flush this tool call's events
- flushToolCall(toolCallId, pending, compacted);
- pendingToolCalls.delete(toolCallId);
- } else {
- // For non-streaming events, check if we're in the middle of any streaming sequences
- let addedToBuffer = false;
-
- // Check text messages
- for (const [messageId, pending] of pendingTextMessages) {
- // If we have a start but no end yet, this event is "in between"
- if (pending.start && !pending.end) {
- pending.otherEvents.push(event);
- addedToBuffer = true;
- break;
- }
- }
-
- // Check tool calls if not already buffered
- if (!addedToBuffer) {
- for (const [toolCallId, pending] of pendingToolCalls) {
- // If we have a start but no end yet, this event is "in between"
- if (pending.start && !pending.end) {
- pending.otherEvents.push(event);
- addedToBuffer = true;
- break;
- }
- }
- }
-
- // If not in the middle of any streaming sequence, add directly to compacted
- if (!addedToBuffer) {
- compacted.push(event);
- }
- }
- }
-
- // Flush any remaining incomplete messages
- for (const [messageId, pending] of pendingTextMessages) {
- flushTextMessage(messageId, pending, compacted);
- }
-
- // Flush any remaining incomplete tool calls
- for (const [toolCallId, pending] of pendingToolCalls) {
- flushToolCall(toolCallId, pending, compacted);
- }
-
- return compacted;
-}
-
-function flushTextMessage(
- messageId: string,
- pending: {
- start?: TextMessageStartEvent;
- contents: TextMessageContentEvent[];
- end?: TextMessageEndEvent;
- otherEvents: BaseEvent[];
- },
- compacted: BaseEvent[],
-): void {
- // Add start event if present
- if (pending.start) {
- compacted.push(pending.start);
- }
-
- // Compact all content events into one
- if (pending.contents.length > 0) {
- const concatenatedDelta = pending.contents.map((c) => c.delta).join("");
-
- const compactedContent: TextMessageContentEvent = {
- type: EventType.TEXT_MESSAGE_CONTENT,
- messageId: messageId,
- delta: concatenatedDelta,
- };
-
- compacted.push(compactedContent);
- }
-
- // Add end event if present
- if (pending.end) {
- compacted.push(pending.end);
- }
-
- // Add any events that were in between
- for (const otherEvent of pending.otherEvents) {
- compacted.push(otherEvent);
- }
-}
-
-function flushToolCall(
- toolCallId: string,
- pending: {
- start?: ToolCallStartEvent;
- args: ToolCallArgsEvent[];
- end?: ToolCallEndEvent;
- otherEvents: BaseEvent[];
- },
- compacted: BaseEvent[],
-): void {
- // Add start event if present
- if (pending.start) {
- compacted.push(pending.start);
- }
-
- // Compact all args events into one
- if (pending.args.length > 0) {
- const concatenatedArgs = pending.args.map((a) => a.delta).join("");
-
- const compactedArgs: ToolCallArgsEvent = {
- type: EventType.TOOL_CALL_ARGS,
- toolCallId: toolCallId,
- delta: concatenatedArgs,
- };
-
- compacted.push(compactedArgs);
- }
-
- // Add end event if present
- if (pending.end) {
- compacted.push(pending.end);
- }
-
- // Add any events that were in between
- for (const otherEvent of pending.otherEvents) {
- compacted.push(otherEvent);
- }
-}
diff --git a/sdks/typescript/packages/client/src/compact/index.ts b/sdks/typescript/packages/client/src/compact/index.ts
deleted file mode 100644
index bb036168b..000000000
--- a/sdks/typescript/packages/client/src/compact/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { compactEvents } from "./compact";
diff --git a/sdks/typescript/packages/client/src/index.ts b/sdks/typescript/packages/client/src/index.ts
index a6300de99..aa4a0a5ef 100644
--- a/sdks/typescript/packages/client/src/index.ts
+++ b/sdks/typescript/packages/client/src/index.ts
@@ -5,6 +5,5 @@ export * from "./run";
export * from "./legacy";
export * from "./agent";
export * from "./utils";
-export * from "./compact";
export * from "@ag-ui/core";
export * from "./chunks";
diff --git a/sdks/typescript/packages/client/src/legacy/convert.ts b/sdks/typescript/packages/client/src/legacy/convert.ts
index 2f4cd6761..aa3ac5e6f 100644
--- a/sdks/typescript/packages/client/src/legacy/convert.ts
+++ b/sdks/typescript/packages/client/src/legacy/convert.ts
@@ -41,27 +41,6 @@ import {
} from "./types";
import untruncateJson from "untruncate-json";
-const flattenMessageContentToText = (content: Message["content"]) => {
- if (typeof content === "string") {
- return content;
- }
-
- if (!Array.isArray(content)) {
- return undefined;
- }
-
- const textParts = content
- .filter((part): part is { type: "text"; text: string } => part.type === "text")
- .map((part) => part.text)
- .filter((text) => text.length > 0);
-
- if (textParts.length === 0) {
- return undefined;
- }
-
- return textParts.join("\n");
-};
-
interface PredictStateValue {
state_key: string;
tool: string;
@@ -413,12 +392,11 @@ export function convertMessagesToLegacyFormat(messages: Message[]): LegacyMessag
for (const message of messages) {
if (message.role === "assistant" || message.role === "user" || message.role === "system") {
- const textContent = flattenMessageContentToText(message.content);
- if (textContent) {
+ if (message.content) {
const textMessage: LegacyTextMessage = {
id: message.id,
role: message.role,
- content: textContent,
+ content: message.content,
};
result.push(textMessage);
}
diff --git a/sdks/typescript/packages/client/src/middleware/__tests__/backward-compatibility-0-0-39.test.ts b/sdks/typescript/packages/client/src/middleware/__tests__/backward-compatibility-0-0-39.test.ts
deleted file mode 100644
index 2f9a994b7..000000000
--- a/sdks/typescript/packages/client/src/middleware/__tests__/backward-compatibility-0-0-39.test.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import { BaseEvent, EventType, Message, RunAgentInput } from "@ag-ui/core";
-import { Observable, of } from "rxjs";
-
-class LegacyAgent extends AbstractAgent {
- public receivedInput?: RunAgentInput;
-
- constructor(initialMessages: Message[]) {
- super({ initialMessages });
- }
-
- override get maxVersion(): string {
- return "0.0.39";
- }
-
- override run(input: RunAgentInput): Observable {
- this.receivedInput = input;
- return of({
- type: EventType.RUN_STARTED,
- threadId: input.threadId,
- runId: input.runId,
- } as BaseEvent);
- }
-
- protected override prepareRunAgentInput(
- parameters?: Parameters[0],
- ): RunAgentInput {
- const prepared = super.prepareRunAgentInput(parameters);
- return { ...prepared, parentRunId: "legacy-parent" };
- }
-}
-
-describe("BackwardCompatibility_0_0_39 middleware (auto insertion)", () => {
- it("automatically strips parentRunId and flattens array message content when maxVersion <= 0.0.39", async () => {
- const initialMessages: Message[] = [
- {
- id: "msg-1",
- role: "user",
- content: [
- { type: "text", text: "Hello " },
- { type: "text", text: "world!" },
- { type: "binary", mimeType: "text/plain", data: "ignored" },
- ] as unknown as Message["content"],
- } as Message,
- {
- id: "msg-2",
- role: "assistant",
- content: undefined,
- } as Message,
- ];
-
- const agent = new LegacyAgent(initialMessages);
-
- await agent.runAgent({
- runId: "run-1",
- tools: [],
- context: [],
- forwardedProps: {},
- });
-
- expect(agent.receivedInput).toBeDefined();
- expect(agent.receivedInput?.parentRunId).toBeUndefined();
- expect(agent.receivedInput?.messages[0].content).toBe("Hello world!");
- expect(agent.receivedInput?.messages[1].content).toBe("");
- });
-});
diff --git a/sdks/typescript/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts b/sdks/typescript/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts
deleted file mode 100644
index 978bbc80c..000000000
--- a/sdks/typescript/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts
+++ /dev/null
@@ -1,184 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import { FilterToolCallsMiddleware } from "@/middleware/filter-tool-calls";
-import { Middleware } from "@/middleware";
-import {
- BaseEvent,
- EventType,
- RunAgentInput,
- ToolCallStartEvent,
- ToolCallArgsEvent,
- ToolCallEndEvent,
- ToolCallResultEvent,
-} from "@ag-ui/core";
-import { Observable } from "rxjs";
-
-describe("FilterToolCallsMiddleware", () => {
- class ToolCallingAgent extends AbstractAgent {
- run(input: RunAgentInput): Observable {
- return new Observable((subscriber) => {
- // Emit RUN_STARTED
- subscriber.next({
- type: EventType.RUN_STARTED,
- threadId: input.threadId,
- runId: input.runId,
- });
-
- // Emit first tool call (calculator)
- const toolCall1Id = "tool-call-1";
- subscriber.next({
- type: EventType.TOOL_CALL_START,
- toolCallId: toolCall1Id,
- toolCallName: "calculator",
- parentMessageId: "message-1",
- } as ToolCallStartEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_ARGS,
- toolCallId: toolCall1Id,
- delta: '{"operation": "add", "a": 5, "b": 3}',
- } as ToolCallArgsEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_END,
- toolCallId: toolCall1Id,
- } as ToolCallEndEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_RESULT,
- messageId: "tool-message-1",
- toolCallId: toolCall1Id,
- content: "8",
- } as ToolCallResultEvent);
-
- // Emit second tool call (weather)
- const toolCall2Id = "tool-call-2";
- subscriber.next({
- type: EventType.TOOL_CALL_START,
- toolCallId: toolCall2Id,
- toolCallName: "weather",
- parentMessageId: "message-2",
- } as ToolCallStartEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_ARGS,
- toolCallId: toolCall2Id,
- delta: '{"city": "New York"}',
- } as ToolCallArgsEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_END,
- toolCallId: toolCall2Id,
- } as ToolCallEndEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_RESULT,
- messageId: "tool-message-2",
- toolCallId: toolCall2Id,
- content: "Sunny, 72°F",
- } as ToolCallResultEvent);
-
- // Emit third tool call (search)
- const toolCall3Id = "tool-call-3";
- subscriber.next({
- type: EventType.TOOL_CALL_START,
- toolCallId: toolCall3Id,
- toolCallName: "search",
- parentMessageId: "message-3",
- } as ToolCallStartEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_ARGS,
- toolCallId: toolCall3Id,
- delta: '{"query": "TypeScript middleware"}',
- } as ToolCallArgsEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_END,
- toolCallId: toolCall3Id,
- } as ToolCallEndEvent);
-
- subscriber.next({
- type: EventType.TOOL_CALL_RESULT,
- messageId: "tool-message-3",
- toolCallId: toolCall3Id,
- content: "Results found...",
- } as ToolCallResultEvent);
-
- // Emit RUN_FINISHED
- subscriber.next({
- type: EventType.RUN_FINISHED,
- threadId: input.threadId,
- runId: input.runId,
- });
-
- subscriber.complete();
- });
- }
- }
-
- const input: RunAgentInput = {
- threadId: "test-thread",
- runId: "test-run",
- tools: [],
- context: [],
- forwardedProps: {},
- state: {},
- messages: [],
- };
-
- it("should filter out disallowed tool calls", async () => {
- const agent = new ToolCallingAgent();
- const middleware = new FilterToolCallsMiddleware({
- disallowedToolCalls: ["calculator", "search"],
- });
-
- const events: BaseEvent[] = [];
- await new Promise((resolve) => {
- middleware.run(input, agent).subscribe({
- next: (event) => events.push(event),
- complete: () => resolve(),
- });
- });
-
- // Should have RUN_STARTED, weather tool events (4), and RUN_FINISHED
- expect(events.length).toBe(6);
-
- // Check that we have RUN_STARTED
- expect(events[0].type).toBe(EventType.RUN_STARTED);
-
- // Check that only weather tool calls are present
- const toolCallStarts = events.filter((e) => e.type === EventType.TOOL_CALL_START) as ToolCallStartEvent[];
- expect(toolCallStarts.length).toBe(1);
- expect(toolCallStarts[0].toolCallName).toBe("weather");
-
- // Check that calculator and search are filtered out
- const allToolNames = toolCallStarts.map((e) => e.toolCallName);
- expect(allToolNames).not.toContain("calculator");
- expect(allToolNames).not.toContain("search");
-
- // Check that we have RUN_FINISHED
- expect(events[events.length - 1].type).toBe(EventType.RUN_FINISHED);
- });
-
- it("should allow only allowed tool calls when using allowlist", async () => {
- const agent = new ToolCallingAgent();
- const middleware = new FilterToolCallsMiddleware({
- allowedToolCalls: ["calculator"],
- });
-
- const events: BaseEvent[] = [];
- await new Promise((resolve) => {
- middleware.run(input, agent).subscribe({
- next: (event) => events.push(event),
- complete: () => resolve(),
- });
- });
-
- // Should have RUN_STARTED, calculator tool events (4), and RUN_FINISHED
- expect(events.length).toBe(6);
-
- const toolCallStarts = events.filter((e) => e.type === EventType.TOOL_CALL_START) as ToolCallStartEvent[];
- expect(toolCallStarts.length).toBe(1);
- expect(toolCallStarts[0].toolCallName).toBe("calculator");
- });
-});
diff --git a/sdks/typescript/packages/client/src/middleware/__tests__/function-middleware.test.ts b/sdks/typescript/packages/client/src/middleware/__tests__/function-middleware.test.ts
deleted file mode 100644
index 11f94035e..000000000
--- a/sdks/typescript/packages/client/src/middleware/__tests__/function-middleware.test.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import { FunctionMiddleware, MiddlewareFunction } from "@/middleware";
-import { BaseEvent, EventType, RunAgentInput } from "@ag-ui/core";
-import { Observable } from "rxjs";
-
-describe("FunctionMiddleware", () => {
- class TestAgent extends AbstractAgent {
- run(input: RunAgentInput): Observable {
- return new Observable((subscriber) => {
- subscriber.next({
- type: EventType.RUN_STARTED,
- threadId: input.threadId,
- runId: input.runId,
- });
-
- subscriber.next({
- type: EventType.RUN_FINISHED,
- threadId: input.threadId,
- runId: input.runId,
- });
-
- subscriber.complete();
- });
- }
- }
-
- const input: RunAgentInput = {
- threadId: "test-thread",
- runId: "test-run",
- tools: [],
- context: [],
- forwardedProps: {},
- state: {},
- messages: [],
- };
-
- it("should allow function-based middleware to intercept events", async () => {
- const agent = new TestAgent();
-
- const middlewareFn: MiddlewareFunction = (middlewareInput, next) => {
- return new Observable((subscriber) => {
- const subscription = next.run(middlewareInput).subscribe({
- next: (event) => {
- if (event.type === EventType.RUN_STARTED) {
- subscriber.next({
- ...event,
- metadata: { ...(event as any).metadata, fromMiddleware: true },
- });
- return;
- }
-
- if (event.type === EventType.RUN_FINISHED) {
- subscriber.next({
- ...event,
- result: { success: true },
- });
- return;
- }
-
- subscriber.next(event);
- },
- error: (error) => subscriber.error(error),
- complete: () => subscriber.complete(),
- });
-
- return () => subscription.unsubscribe();
- });
- };
-
- const middleware = new FunctionMiddleware(middlewareFn);
-
- const events: BaseEvent[] = [];
- await new Promise((resolve) => {
- middleware.run(input, agent).subscribe({
- next: (event) => events.push(event),
- complete: () => resolve(),
- });
- });
-
- expect(events.length).toBe(2);
- expect(events[0].type).toBe(EventType.RUN_STARTED);
- expect((events[0] as any).metadata).toEqual({ fromMiddleware: true });
- expect(events[1].type).toBe(EventType.RUN_FINISHED);
- expect((events[1] as any).result).toEqual({ success: true });
- });
-});
diff --git a/sdks/typescript/packages/client/src/middleware/__tests__/middleware-live-events.test.ts b/sdks/typescript/packages/client/src/middleware/__tests__/middleware-live-events.test.ts
deleted file mode 100644
index bedb8f8c3..000000000
--- a/sdks/typescript/packages/client/src/middleware/__tests__/middleware-live-events.test.ts
+++ /dev/null
@@ -1,98 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import { Middleware } from "@/middleware";
-import {
- BaseEvent,
- EventType,
- RunAgentInput,
- TextMessageChunkEvent,
- RunFinishedEvent,
- RunStartedEvent,
-} from "@ag-ui/core";
-import { Observable } from "rxjs";
-
-describe("Middleware live events", () => {
- class LiveEventAgent extends AbstractAgent {
- run(input: RunAgentInput): Observable {
- return new Observable((subscriber) => {
- subscriber.next({
- type: EventType.RUN_STARTED,
- threadId: input.threadId,
- runId: input.runId,
- } as RunStartedEvent);
-
- subscriber.next({
- type: EventType.TEXT_MESSAGE_CHUNK,
- messageId: "message-1",
- role: "assistant",
- delta: "Hello",
- } as TextMessageChunkEvent);
-
- subscriber.next({
- type: EventType.RUN_FINISHED,
- threadId: input.threadId,
- runId: input.runId,
- result: { success: true },
- } as RunFinishedEvent);
-
- subscriber.complete();
- });
- }
- }
-
- class CustomMiddleware extends Middleware {
- run(input: RunAgentInput, next: AbstractAgent): Observable {
- return new Observable((subscriber) => {
- const subscription = next.run(input).subscribe({
- next: (event) => {
- if (event.type === EventType.RUN_STARTED) {
- const started = event as RunStartedEvent;
- subscriber.next({
- ...started,
- metadata: {
- ...(started.metadata ?? {}),
- custom: true,
- },
- });
- return;
- }
-
- subscriber.next(event);
- },
- error: (error) => subscriber.error(error),
- complete: () => subscriber.complete(),
- });
-
- return () => subscription.unsubscribe();
- });
- }
- }
-
- const input: RunAgentInput = {
- threadId: "test-thread",
- runId: "test-run",
- tools: [],
- context: [],
- forwardedProps: {},
- state: {},
- messages: [],
- };
-
- it("should allow middleware to emit events before the agent", async () => {
- const agent = new LiveEventAgent();
- const middleware = new CustomMiddleware();
-
- const events: BaseEvent[] = [];
- await new Promise((resolve) => {
- middleware.run(input, agent).subscribe({
- next: (event) => events.push(event),
- complete: () => resolve(),
- });
- });
-
- expect(events.length).toBe(3);
- expect(events[0].type).toBe(EventType.RUN_STARTED);
- expect((events[0] as RunStartedEvent).metadata).toEqual({ custom: true });
- expect(events[1].type).toBe(EventType.TEXT_MESSAGE_CHUNK);
- expect(events[2].type).toBe(EventType.RUN_FINISHED);
- });
-});
diff --git a/sdks/typescript/packages/client/src/middleware/__tests__/middleware-usage-example.ts b/sdks/typescript/packages/client/src/middleware/__tests__/middleware-usage-example.ts
deleted file mode 100644
index 209c5dc12..000000000
--- a/sdks/typescript/packages/client/src/middleware/__tests__/middleware-usage-example.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import {
- Middleware,
- FunctionMiddleware,
- MiddlewareFunction,
- FilterToolCallsMiddleware,
-} from "@/middleware";
-import {
- BaseEvent,
- EventType,
- RunAgentInput,
- TextMessageChunkEvent,
- RunFinishedEvent,
- RunStartedEvent,
-} from "@ag-ui/core";
-import { Observable } from "rxjs";
-
-/**
- * Example agent that emits a simple conversation flow.
- */
-class ExampleAgent extends AbstractAgent {
- run(input: RunAgentInput): Observable {
- return new Observable((subscriber) => {
- subscriber.next({
- type: EventType.RUN_STARTED,
- threadId: input.threadId,
- runId: input.runId,
- } as RunStartedEvent);
-
- subscriber.next({
- type: EventType.TEXT_MESSAGE_CHUNK,
- messageId: "message-1",
- role: "assistant",
- delta: "Hello! Let me calculate that for you.",
- } as TextMessageChunkEvent);
-
- subscriber.next({
- type: EventType.RUN_FINISHED,
- threadId: input.threadId,
- runId: input.runId,
- result: { answer: 42 },
- } as RunFinishedEvent);
-
- subscriber.complete();
- });
- }
-}
-
-/**
- * Example middleware that logs events as they pass through.
- */
-class LoggingMiddleware extends Middleware {
- run(input: RunAgentInput, next: AbstractAgent): Observable {
- console.log("Middleware input:", input);
-
- return next.run(input);
- }
-}
-
-/**
- * Example function-based middleware that modifies the result.
- */
-const resultEnhancer: MiddlewareFunction = (input, next) => {
- return new Observable((subscriber) => {
- next.run(input).subscribe({
- next: (event) => {
- if (event.type === EventType.RUN_FINISHED) {
- subscriber.next({
- ...event,
- result: {
- ...(event as RunFinishedEvent).result,
- enhanced: true,
- },
- });
- } else {
- subscriber.next(event);
- }
- },
- error: (error) => subscriber.error(error),
- complete: () => subscriber.complete(),
- });
- });
-};
-
-const input: RunAgentInput = {
- threadId: "example-thread",
- runId: "example-run",
- tools: [],
- context: [],
- forwardedProps: {},
- state: {},
- messages: [],
-};
-
-/**
- * Example usage demonstrating middleware chaining.
- */
-async function runExample() {
- const agent = new ExampleAgent();
-
- // Function-based middleware
- agent.use(new FunctionMiddleware(resultEnhancer));
-
- // Class-based middleware
- agent.use(new LoggingMiddleware());
-
- // Built-in middleware to filter tool calls
- agent.use(new FilterToolCallsMiddleware({ disallowedToolCalls: ["calculator"] }));
-
- const events: BaseEvent[] = [];
- await new Promise((resolve, reject) => {
- agent.runAgent({}, {
- onRunFinalized: ({ messages }) => {
- console.log("Final messages:", messages);
- },
- onRunFinishedEvent: ({ result }) => {
- console.log("Run finished result:", result);
- },
- }).then(({ newMessages, result }) => {
- console.log("New messages:", newMessages);
- console.log("Final result:", result);
- resolve();
- }).catch(reject);
- });
-
- return events;
-}
-
-// eslint-disable-next-line @typescript-eslint/no-floating-promises
-runExample();
diff --git a/sdks/typescript/packages/client/src/middleware/__tests__/middleware-with-state.test.ts b/sdks/typescript/packages/client/src/middleware/__tests__/middleware-with-state.test.ts
deleted file mode 100644
index 6ac9573c8..000000000
--- a/sdks/typescript/packages/client/src/middleware/__tests__/middleware-with-state.test.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import { Middleware } from "@/middleware";
-import {
- BaseEvent,
- EventType,
- RunAgentInput,
- RunFinishedEvent,
- TextMessageChunkEvent,
-} from "@ag-ui/core";
-import { Observable } from "rxjs";
-
-describe("Middleware runNextWithState", () => {
- class StatefulAgent extends AbstractAgent {
- run(input: RunAgentInput): Observable {
- return new Observable((subscriber) => {
- subscriber.next({
- type: EventType.RUN_STARTED,
- threadId: input.threadId,
- runId: input.runId,
- });
-
- subscriber.next({
- type: EventType.TEXT_MESSAGE_CHUNK,
- messageId: "message-1",
- role: "assistant",
- delta: "Hello",
- } as TextMessageChunkEvent);
-
- subscriber.next({
- type: EventType.RUN_FINISHED,
- threadId: input.threadId,
- runId: input.runId,
- result: { success: true },
- } as RunFinishedEvent);
-
- subscriber.complete();
- });
- }
- }
-
- class StateTrackingMiddleware extends Middleware {
- run(input: RunAgentInput, next: AbstractAgent): Observable {
- return this.runNextWithState(input, next).pipe((source) => {
- return new Observable((subscriber) => {
- source.subscribe({
- next: ({ event }) => subscriber.next(event),
- complete: () => subscriber.complete(),
- });
- });
- });
- }
- }
-
- const input: RunAgentInput = {
- threadId: "test-thread",
- runId: "test-run",
- tools: [],
- context: [],
- forwardedProps: {},
- state: {},
- messages: [],
- };
-
- it("should capture state changes after each event", async () => {
- const agent = new StatefulAgent();
- const middleware = new StateTrackingMiddleware();
-
- const events: BaseEvent[] = [];
- await new Promise((resolve) => {
- middleware.run(input, agent).subscribe({
- next: (event) => events.push(event),
- complete: () => resolve(),
- });
- });
-
- expect(events.length).toBe(5);
- expect(events[0].type).toBe(EventType.RUN_STARTED);
- expect(events[1].type).toBe(EventType.TEXT_MESSAGE_START);
- expect(events[2].type).toBe(EventType.TEXT_MESSAGE_CONTENT);
- expect(events[3].type).toBe(EventType.TEXT_MESSAGE_END);
- expect(events[4].type).toBe(EventType.RUN_FINISHED);
- });
-});
diff --git a/sdks/typescript/packages/client/src/middleware/__tests__/middleware.test.ts b/sdks/typescript/packages/client/src/middleware/__tests__/middleware.test.ts
deleted file mode 100644
index a07cfb870..000000000
--- a/sdks/typescript/packages/client/src/middleware/__tests__/middleware.test.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import { Middleware } from "@/middleware";
-import { BaseEvent, EventType, RunAgentInput } from "@ag-ui/core";
-import { Observable } from "rxjs";
-
-describe("Middleware", () => {
- class TestAgent extends AbstractAgent {
- run(input: RunAgentInput): Observable {
- return new Observable((subscriber) => {
- subscriber.next({
- type: EventType.RUN_STARTED,
- threadId: input.threadId,
- runId: input.runId,
- });
-
- subscriber.next({
- type: EventType.RUN_FINISHED,
- threadId: input.threadId,
- runId: input.runId,
- result: { success: true },
- });
-
- subscriber.complete();
- });
- }
- }
-
- class TestMiddleware extends Middleware {
- run(input: RunAgentInput, next: AbstractAgent): Observable {
- return new Observable((subscriber) => {
- const subscription = next.run(input).subscribe({
- next: (event) => {
- if (event.type === EventType.RUN_STARTED) {
- subscriber.next({
- ...event,
- metadata: { ...(event as any).metadata, middleware: true },
- });
- return;
- }
-
- subscriber.next(event);
- },
- error: (error) => subscriber.error(error),
- complete: () => subscriber.complete(),
- });
-
- return () => subscription.unsubscribe();
- });
- }
- }
-
- const input: RunAgentInput = {
- threadId: "test-thread",
- runId: "test-run",
- tools: [],
- context: [],
- forwardedProps: {},
- state: {},
- messages: [],
- };
-
- it("should allow middleware to modify the event stream", async () => {
- const agent = new TestAgent();
- const middleware = new TestMiddleware();
-
- const events: BaseEvent[] = [];
- await new Promise((resolve) => {
- middleware.run(input, agent).subscribe({
- next: (event) => events.push(event),
- complete: () => resolve(),
- });
- });
-
- expect(events.length).toBe(2);
- expect(events[0].type).toBe(EventType.RUN_STARTED);
- expect((events[0] as any).metadata).toEqual({ middleware: true });
- expect(events[1].type).toBe(EventType.RUN_FINISHED);
- expect((events[1] as any).result).toEqual({ success: true });
- });
-});
diff --git a/sdks/typescript/packages/client/src/middleware/backward-compatibility-0-0-39.ts b/sdks/typescript/packages/client/src/middleware/backward-compatibility-0-0-39.ts
deleted file mode 100644
index 2a9e86a84..000000000
--- a/sdks/typescript/packages/client/src/middleware/backward-compatibility-0-0-39.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { Middleware } from "./middleware";
-import { AbstractAgent } from "@/agent";
-import type { RunAgentInput, BaseEvent } from "@ag-ui/core";
-import type { Observable } from "rxjs";
-
-type InputMessage = RunAgentInput["messages"][number];
-
-function sanitizeMessageContent(message: InputMessage): InputMessage {
- const rawContent = (message as { content?: unknown }).content;
-
- if (Array.isArray(rawContent)) {
- const concatenatedContent = rawContent
- .filter(
- (part): part is { type: "text"; text: string } =>
- typeof part === "object" &&
- part !== null &&
- "type" in part &&
- (part as { type: unknown }).type === "text" &&
- typeof (part as { text?: unknown }).text === "string",
- )
- .map((part) => part.text)
- .join("");
-
- return {
- ...message,
- content: concatenatedContent,
- } as InputMessage;
- }
-
- if (typeof rawContent === "string") {
- return message;
- }
-
- return {
- ...message,
- content: "",
- } as InputMessage;
-}
-
-/**
- * Middleware placeholder that maintains compatibility with AG-UI 0.0.39 flows.
- * Currently it simply forwards all events to the next middleware/agent.
- */
-export class BackwardCompatibility_0_0_39 extends Middleware {
- override run(input: RunAgentInput, next: AbstractAgent): Observable {
- const { parentRunId: _parentRunId, ...rest } = input;
- const sanitizedInput: RunAgentInput = {
- ...rest,
- messages: rest.messages.map(sanitizeMessageContent),
- } as RunAgentInput;
-
- return this.runNext(sanitizedInput, next);
- }
-}
diff --git a/sdks/typescript/packages/client/src/middleware/filter-tool-calls.ts b/sdks/typescript/packages/client/src/middleware/filter-tool-calls.ts
deleted file mode 100644
index 157ff6c3d..000000000
--- a/sdks/typescript/packages/client/src/middleware/filter-tool-calls.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-import { Middleware } from "./middleware";
-import { AbstractAgent } from "@/agent";
-import {
- RunAgentInput,
- BaseEvent,
- EventType,
- ToolCallStartEvent,
- ToolCallArgsEvent,
- ToolCallEndEvent,
- ToolCallResultEvent,
-} from "@ag-ui/core";
-import { Observable } from "rxjs";
-import { filter } from "rxjs/operators";
-
-type FilterToolCallsConfig =
- | { allowedToolCalls: string[]; disallowedToolCalls?: never }
- | { disallowedToolCalls: string[]; allowedToolCalls?: never };
-
-export class FilterToolCallsMiddleware extends Middleware {
- private blockedToolCallIds = new Set();
- private readonly allowedTools?: Set;
- private readonly disallowedTools?: Set;
-
- constructor(config: FilterToolCallsConfig) {
- super();
-
- // Runtime validation (belt and suspenders approach)
- if (config.allowedToolCalls && config.disallowedToolCalls) {
- throw new Error("Cannot specify both allowedToolCalls and disallowedToolCalls");
- }
-
- if (!config.allowedToolCalls && !config.disallowedToolCalls) {
- throw new Error("Must specify either allowedToolCalls or disallowedToolCalls");
- }
-
- if (config.allowedToolCalls) {
- this.allowedTools = new Set(config.allowedToolCalls);
- } else if (config.disallowedToolCalls) {
- this.disallowedTools = new Set(config.disallowedToolCalls);
- }
- }
-
- run(input: RunAgentInput, next: AbstractAgent): Observable {
- // Use runNext which already includes transformChunks
- return this.runNext(input, next).pipe(
- filter((event) => {
- // Handle TOOL_CALL_START events
- if (event.type === EventType.TOOL_CALL_START) {
- const toolCallStartEvent = event as ToolCallStartEvent;
- const shouldFilter = this.shouldFilterTool(toolCallStartEvent.toolCallName);
-
- if (shouldFilter) {
- // Track this tool call ID as blocked
- this.blockedToolCallIds.add(toolCallStartEvent.toolCallId);
- return false; // Filter out this event
- }
-
- return true; // Allow this event
- }
-
- // Handle TOOL_CALL_ARGS events
- if (event.type === EventType.TOOL_CALL_ARGS) {
- const toolCallArgsEvent = event as ToolCallArgsEvent;
- return !this.blockedToolCallIds.has(toolCallArgsEvent.toolCallId);
- }
-
- // Handle TOOL_CALL_END events
- if (event.type === EventType.TOOL_CALL_END) {
- const toolCallEndEvent = event as ToolCallEndEvent;
- return !this.blockedToolCallIds.has(toolCallEndEvent.toolCallId);
- }
-
- // Handle TOOL_CALL_RESULT events
- if (event.type === EventType.TOOL_CALL_RESULT) {
- const toolCallResultEvent = event as ToolCallResultEvent;
- const isBlocked = this.blockedToolCallIds.has(toolCallResultEvent.toolCallId);
-
- if (isBlocked) {
- // Clean up the blocked ID after the last event
- this.blockedToolCallIds.delete(toolCallResultEvent.toolCallId);
- return false;
- }
-
- return true;
- }
-
- // Allow all other events through
- return true;
- }),
- );
- }
-
- private shouldFilterTool(toolName: string): boolean {
- if (this.allowedTools) {
- // If using allowed list, filter out tools NOT in the list
- return !this.allowedTools.has(toolName);
- } else if (this.disallowedTools) {
- // If using disallowed list, filter out tools IN the list
- return this.disallowedTools.has(toolName);
- }
-
- return false;
- }
-}
diff --git a/sdks/typescript/packages/client/src/middleware/index.ts b/sdks/typescript/packages/client/src/middleware/index.ts
deleted file mode 100644
index 6b923491e..000000000
--- a/sdks/typescript/packages/client/src/middleware/index.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export { Middleware, FunctionMiddleware } from "./middleware";
-export type { MiddlewareFunction } from "./middleware";
-export { FilterToolCallsMiddleware } from "./filter-tool-calls";
-export { BackwardCompatibility_0_0_39 } from "./backward-compatibility-0-0-39";
diff --git a/sdks/typescript/packages/client/src/middleware/middleware.ts b/sdks/typescript/packages/client/src/middleware/middleware.ts
deleted file mode 100644
index 3d33c589a..000000000
--- a/sdks/typescript/packages/client/src/middleware/middleware.ts
+++ /dev/null
@@ -1,87 +0,0 @@
-import { AbstractAgent } from "@/agent";
-import { RunAgentInput, BaseEvent, Message } from "@ag-ui/core";
-import { Observable, ReplaySubject } from "rxjs";
-import { concatMap } from "rxjs/operators";
-import { transformChunks } from "@/chunks";
-import { defaultApplyEvents } from "@/apply";
-import { structuredClone_ } from "@/utils";
-
-export type MiddlewareFunction = (
- input: RunAgentInput,
- next: AbstractAgent,
-) => Observable;
-
-export interface EventWithState {
- event: BaseEvent;
- messages: Message[];
- state: any;
-}
-
-export abstract class Middleware {
- abstract run(input: RunAgentInput, next: AbstractAgent): Observable;
-
- /**
- * Runs the next agent in the chain with automatic chunk transformation.
- */
- protected runNext(input: RunAgentInput, next: AbstractAgent): Observable {
- return next.run(input).pipe(
- transformChunks(false), // Always transform chunks to full events
- );
- }
-
- /**
- * Runs the next agent and tracks state, providing current messages and state with each event.
- * The messages and state represent the state AFTER the event has been applied.
- */
- protected runNextWithState(
- input: RunAgentInput,
- next: AbstractAgent,
- ): Observable {
- let currentMessages = structuredClone_(input.messages || []);
- let currentState = structuredClone_(input.state || {});
-
- // Use a ReplaySubject to feed events one by one
- const eventSubject = new ReplaySubject();
-
- // Set up defaultApplyEvents to process events
- const mutations$ = defaultApplyEvents(input, eventSubject, next, []);
-
- // Subscribe to track state changes
- mutations$.subscribe((mutation) => {
- if (mutation.messages !== undefined) {
- currentMessages = mutation.messages;
- }
- if (mutation.state !== undefined) {
- currentState = mutation.state;
- }
- });
-
- return this.runNext(input, next).pipe(
- concatMap(async (event) => {
- // Feed the event to defaultApplyEvents and wait for it to process
- eventSubject.next(event);
-
- // Give defaultApplyEvents a chance to process
- await new Promise((resolve) => setTimeout(resolve, 0));
-
- // Return event with current state
- return {
- event,
- messages: structuredClone_(currentMessages),
- state: structuredClone_(currentState),
- };
- }),
- );
- }
-}
-
-// Wrapper class to convert a function into a Middleware instance
-export class FunctionMiddleware extends Middleware {
- constructor(private fn: MiddlewareFunction) {
- super();
- }
-
- run(input: RunAgentInput, next: AbstractAgent): Observable {
- return this.fn(input, next);
- }
-}
diff --git a/sdks/typescript/packages/client/src/utils.ts b/sdks/typescript/packages/client/src/utils.ts
index 0353a9842..7c03e8064 100644
--- a/sdks/typescript/packages/client/src/utils.ts
+++ b/sdks/typescript/packages/client/src/utils.ts
@@ -1,4 +1,4 @@
-import { v4 as uuidv4 } from "uuid";
+import { v4 as uuidv4 } from 'uuid';
export const structuredClone_ = (obj: T): T => {
if (typeof structuredClone === "function") {
@@ -19,15 +19,3 @@ export const structuredClone_ = (obj: T): T => {
export function randomUUID(): string {
return uuidv4();
}
-
-// Note: semver helpers were removed in favor of using
-// the external `compare-versions` library directly at call sites.
-
-
-/**
- * Parses a semantic version string into its numeric components.
- * Supports incomplete versions (e.g. "1", "1.2") by defaulting missing segments to zero.
- *
- * @throws If the version string is not a valid semantic version.
- */
-// (Intentionally left minimal.)
diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json
index 4f066b79e..79bd6ef77 100644
--- a/sdks/typescript/packages/core/package.json
+++ b/sdks/typescript/packages/core/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/core",
"author": "Markus Ecker ",
- "version": "0.0.40",
+ "version": "0.0.39",
"private": false,
"publishConfig": {
"access": "public"
@@ -20,13 +20,13 @@
},
"dependencies": {
"rxjs": "7.8.1",
- "zod": "^3.22.4"
+ "zod": "^3.25.76"
},
"devDependencies": {
- "@types/jest": "^29.5.12",
+ "@types/jest": "^29.5.14",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.8.2"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts b/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts
deleted file mode 100644
index 78b31d3a3..000000000
--- a/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-import { ActivitySnapshotEventSchema, ActivityDeltaEventSchema, EventType } from "../events";
-import { ActivityMessageSchema } from "../types";
-
-describe("Activity events", () => {
- it("parses ActivitySnapshotEvent", () => {
- const result = ActivitySnapshotEventSchema.parse({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "msg_activity",
- activityType: "PLAN",
- content: { tasks: ["search"] },
- });
-
- expect(result.type).toBe(EventType.ACTIVITY_SNAPSHOT);
- expect(result.messageId).toBe("msg_activity");
- expect(result.content.tasks).toEqual(["search"]);
- expect(result.replace).toBe(true);
- });
-
- it("respects replace flag in ActivitySnapshotEvent", () => {
- const result = ActivitySnapshotEventSchema.parse({
- type: EventType.ACTIVITY_SNAPSHOT,
- messageId: "msg_activity",
- activityType: "PLAN",
- content: { tasks: [] },
- replace: false,
- });
-
- expect(result.replace).toBe(false);
- });
-
- it("parses ActivityDeltaEvent", () => {
- const result = ActivityDeltaEventSchema.parse({
- type: EventType.ACTIVITY_DELTA,
- messageId: "msg_activity",
- activityType: "PLAN",
- patch: [{ op: "replace", path: "/tasks/0", value: "✓ search" }],
- });
-
- expect(result.type).toBe(EventType.ACTIVITY_DELTA);
- expect(result.patch).toHaveLength(1);
- });
-
- it("parses ActivityMessage", () => {
- const result = ActivityMessageSchema.parse({
- id: "activity_1",
- role: "activity" as const,
- activityType: "PLAN",
- content: { tasks: [] },
- });
-
- expect(result.activityType).toBe("PLAN");
- expect(result.content).toEqual({ tasks: [] });
- });
-});
diff --git a/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts b/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts
deleted file mode 100644
index 34c47961f..000000000
--- a/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import {
- UserMessageSchema,
- AssistantMessageSchema,
- RunAgentInputSchema,
- TextMessageStartEventSchema,
- RunStartedEventSchema,
- ToolSchema,
- ContextSchema,
- EventType,
-} from "../index";
-
-describe("Backwards Compatibility", () => {
- describe("Message Schemas", () => {
- it("should accept UserMessage with extra fields from future versions", () => {
- const messageWithExtraFields = {
- id: "msg_1",
- role: "user" as const,
- content: "Hello",
- futureField: "This is from a future version",
- anotherNewProp: { nested: "data" },
- };
-
- const result = UserMessageSchema.safeParse(messageWithExtraFields);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.id).toBe("msg_1");
- expect(result.data.role).toBe("user");
- expect(result.data.content).toBe("Hello");
- // Extra fields should be stripped (Zod default behavior)
- expect('futureField' in result.data).toBe(false);
- expect('anotherNewProp' in result.data).toBe(false);
- }
- });
-
- it("should accept AssistantMessage with extra fields", () => {
- const messageWithExtraFields = {
- id: "msg_2",
- role: "assistant" as const,
- content: "Response",
- newFeatureFlag: true,
- experimentalData: [1, 2, 3],
- };
-
- const result = AssistantMessageSchema.safeParse(messageWithExtraFields);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.id).toBe("msg_2");
- expect(result.data.content).toBe("Response");
- }
- });
- });
-
- describe("RunAgentInput Schema", () => {
- it("should accept RunAgentInput with extra fields at top level", () => {
- const inputWithExtraFields = {
- threadId: "thread_1",
- runId: "run_1",
- parentRunId: "parent_run_1",
- state: {},
- messages: [],
- tools: [],
- context: [],
- forwardedProps: {},
- // Extra fields from future version
- newFeatureFlag: true,
- experimentalTimeout: 5000,
- futureConfig: { option: "value" },
- };
-
- const result = RunAgentInputSchema.safeParse(inputWithExtraFields);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.threadId).toBe("thread_1");
- expect(result.data.runId).toBe("run_1");
- expect(result.data.parentRunId).toBe("parent_run_1");
- }
- });
-
- it("should accept RunAgentInput with messages containing extra fields", () => {
- const inputWithExtraFieldsInMessages = {
- threadId: "thread_2",
- runId: "run_2",
- state: {},
- messages: [
- {
- id: "m1",
- role: "user" as const,
- content: "Hi",
- extraProp: "value",
- metadata: { source: "web" },
- },
- ],
- tools: [],
- context: [],
- forwardedProps: {},
- };
-
- const result = RunAgentInputSchema.safeParse(inputWithExtraFieldsInMessages);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.messages.length).toBe(1);
- expect(result.data.messages[0].content).toBe("Hi");
- }
- });
- });
-
- describe("Event Schemas", () => {
- it("should accept TextMessageStartEvent with extra fields", () => {
- const eventWithExtraFields = {
- type: EventType.TEXT_MESSAGE_START,
- messageId: "msg_1",
- role: "assistant" as const,
- // Extra fields from future version
- metadata: { tokenCount: 10 },
- experimentalFeature: true,
- };
-
- const result = TextMessageStartEventSchema.safeParse(eventWithExtraFields);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.type).toBe(EventType.TEXT_MESSAGE_START);
- expect(result.data.messageId).toBe("msg_1");
- }
- });
-
- it("should accept RunStartedEvent with extra fields", () => {
- const eventWithExtraFields = {
- type: EventType.RUN_STARTED,
- threadId: "thread_1",
- runId: "run_1",
- // Extra fields from future version
- startTime: Date.now(),
- priority: "high",
- };
-
- const result = RunStartedEventSchema.safeParse(eventWithExtraFields);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.threadId).toBe("thread_1");
- expect(result.data.runId).toBe("run_1");
- }
- });
- });
-
- describe("Tool and Context Schemas", () => {
- it("should accept Tool with extra fields", () => {
- const toolWithExtraFields = {
- name: "calculator",
- description: "Performs calculations",
- parameters: { type: "object" },
- // Extra fields from future version
- version: "2.0",
- deprecationWarning: null,
- };
-
- const result = ToolSchema.safeParse(toolWithExtraFields);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.name).toBe("calculator");
- expect(result.data.description).toBe("Performs calculations");
- }
- });
-
- it("should accept Context with extra fields", () => {
- const contextWithExtraFields = {
- description: "User preferences",
- value: '{"theme":"dark"}',
- // Extra fields from future version
- priority: 1,
- expiresAt: Date.now() + 3600000,
- };
-
- const result = ContextSchema.safeParse(contextWithExtraFields);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.description).toBe("User preferences");
- expect(result.data.value).toBe('{"theme":"dark"}');
- }
- });
- });
-
- describe("Complex nested structures", () => {
- it("should handle deeply nested objects with extra fields at multiple levels", () => {
- const complexInput = {
- threadId: "thread_complex",
- runId: "run_complex",
- state: { currentStep: 1 },
- messages: [
- {
- id: "m1",
- role: "user" as const,
- content: "Hello",
- extraUserProp: "value1",
- },
- {
- id: "m2",
- role: "assistant" as const,
- content: "Hi there",
- toolCalls: [
- {
- id: "tc1",
- type: "function" as const,
- function: {
- name: "search",
- arguments: "{}",
- extraFunctionProp: "value2",
- },
- extraToolCallProp: "value3",
- },
- ],
- extraAssistantProp: "value4",
- },
- ],
- tools: [
- {
- name: "search",
- description: "Search tool",
- parameters: {},
- extraToolProp: "value5",
- },
- ],
- context: [
- {
- description: "ctx",
- value: "val",
- extraContextProp: "value6",
- },
- ],
- forwardedProps: { custom: true },
- extraTopLevelProp: "value7",
- };
-
- const result = RunAgentInputSchema.safeParse(complexInput);
-
- expect(result.success).toBe(true);
- if (result.success) {
- expect(result.data.messages.length).toBe(2);
- expect(result.data.messages[1].toolCalls?.length).toBe(1);
- expect(result.data.tools.length).toBe(1);
- expect(result.data.context.length).toBe(1);
- }
- });
- });
-});
diff --git a/sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts b/sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts
deleted file mode 100644
index 3bcca30e8..000000000
--- a/sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import {
- UserMessageSchema,
- BinaryInputContentSchema,
-} from "../types";
-
-describe("Multimodal messages", () => {
- it("parses user message with content array", () => {
- const result = UserMessageSchema.parse({
- id: "user_multimodal",
- role: "user" as const,
- content: [
- { type: "text" as const, text: "Check this out" },
- { type: "binary" as const, mimeType: "image/png", url: "https://example.com/image.png" },
- ],
- });
-
- expect(Array.isArray(result.content)).toBe(true);
- if (Array.isArray(result.content)) {
- expect(result.content[0].type).toBe("text");
- expect(result.content[0].text).toBe("Check this out");
- expect(result.content[1].type).toBe("binary");
- expect(result.content[1].mimeType).toBe("image/png");
- expect(result.content[1].url).toBe("https://example.com/image.png");
- }
- });
-
- it("rejects binary content without payload source", () => {
- const result = UserMessageSchema.safeParse({
- id: "user_invalid",
- role: "user" as const,
- content: [{ type: "binary" as const, mimeType: "image/png" }],
- });
-
- expect(result.success).toBe(false);
- });
-
- it("parses binary input with embedded data", () => {
- const binary = BinaryInputContentSchema.parse({
- type: "binary" as const,
- mimeType: "image/png",
- data: "base64",
- });
-
- expect(binary.data).toBe("base64");
- });
-
- it("requires binary payload source", () => {
- expect(() =>
- BinaryInputContentSchema.parse({ type: "binary" as const, mimeType: "image/png" }),
- ).toThrow(/id, url, or data/);
- });
-});
diff --git a/sdks/typescript/packages/core/src/events.ts b/sdks/typescript/packages/core/src/events.ts
index 36076896c..a95fc8e15 100644
--- a/sdks/typescript/packages/core/src/events.ts
+++ b/sdks/typescript/packages/core/src/events.ts
@@ -1,5 +1,5 @@
import { z } from "zod";
-import { MessageSchema, StateSchema, RunAgentInputSchema } from "./types";
+import { MessageSchema, StateSchema } from "./types";
// Text messages can have any role except "tool"
const TextMessageRoleSchema = z.union([
@@ -27,8 +27,6 @@ export 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",
@@ -141,21 +139,6 @@ export const MessagesSnapshotEventSchema = BaseEventSchema.extend({
messages: z.array(MessageSchema),
});
-export const ActivitySnapshotEventSchema = BaseEventSchema.extend({
- type: z.literal(EventType.ACTIVITY_SNAPSHOT),
- messageId: z.string(),
- activityType: z.string(),
- content: z.record(z.any()),
- replace: z.boolean().optional().default(true),
-});
-
-export const ActivityDeltaEventSchema = BaseEventSchema.extend({
- type: z.literal(EventType.ACTIVITY_DELTA),
- messageId: z.string(),
- activityType: z.string(),
- patch: z.array(z.any()),
-});
-
export const RawEventSchema = BaseEventSchema.extend({
type: z.literal(EventType.RAW),
event: z.any(),
@@ -172,8 +155,6 @@ export const RunStartedEventSchema = BaseEventSchema.extend({
type: z.literal(EventType.RUN_STARTED),
threadId: z.string(),
runId: z.string(),
- parentRunId: z.string().optional(),
- input: RunAgentInputSchema.optional(),
});
export const RunFinishedEventSchema = BaseEventSchema.extend({
@@ -217,8 +198,6 @@ export const EventSchemas = z.discriminatedUnion("type", [
StateSnapshotEventSchema,
StateDeltaEventSchema,
MessagesSnapshotEventSchema,
- ActivitySnapshotEventSchema,
- ActivityDeltaEventSchema,
RawEventSchema,
CustomEventSchema,
RunStartedEventSchema,
@@ -246,8 +225,6 @@ export type ThinkingEndEvent = z.infer;
export type StateSnapshotEvent = z.infer;
export type StateDeltaEvent = z.infer;
export type MessagesSnapshotEvent = z.infer;
-export type ActivitySnapshotEvent = z.infer;
-export type ActivityDeltaEvent = z.infer;
export type RawEvent = z.infer;
export type CustomEvent = z.infer;
export type RunStartedEvent = z.infer;
diff --git a/sdks/typescript/packages/core/src/types.ts b/sdks/typescript/packages/core/src/types.ts
index 6a8560293..1abb31a0b 100644
--- a/sdks/typescript/packages/core/src/types.ts
+++ b/sdks/typescript/packages/core/src/types.ts
@@ -18,48 +18,6 @@ export const BaseMessageSchema = z.object({
name: z.string().optional(),
});
-export const TextInputContentSchema = z.object({
- type: z.literal("text"),
- text: z.string(),
-});
-
-const BinaryInputContentObjectSchema = z.object({
- type: z.literal("binary"),
- mimeType: z.string(),
- id: z.string().optional(),
- url: z.string().optional(),
- data: z.string().optional(),
- filename: z.string().optional(),
-});
-
-const ensureBinaryPayload = (
- value: { id?: string; url?: string; data?: string },
- ctx: z.RefinementCtx,
-) => {
- if (!value.id && !value.url && !value.data) {
- ctx.addIssue({
- code: z.ZodIssueCode.custom,
- message: "BinaryInputContent requires at least one of id, url, or data.",
- path: ["id"],
- });
- }
-};
-
-export const BinaryInputContentSchema = BinaryInputContentObjectSchema.superRefine((value, ctx) => {
- ensureBinaryPayload(value, ctx);
-});
-
-const InputContentBaseSchema = z.discriminatedUnion("type", [
- TextInputContentSchema,
- BinaryInputContentObjectSchema,
-]);
-
-export const InputContentSchema = InputContentBaseSchema.superRefine((value, ctx) => {
- if (value.type === "binary") {
- ensureBinaryPayload(value, ctx);
- }
-});
-
export const DeveloperMessageSchema = BaseMessageSchema.extend({
role: z.literal("developer"),
content: z.string(),
@@ -78,7 +36,7 @@ export const AssistantMessageSchema = BaseMessageSchema.extend({
export const UserMessageSchema = BaseMessageSchema.extend({
role: z.literal("user"),
- content: z.union([z.string(), z.array(InputContentSchema)]),
+ content: z.string(),
});
export const ToolMessageSchema = z.object({
@@ -89,20 +47,12 @@ export const ToolMessageSchema = z.object({
error: z.string().optional(),
});
-export const ActivityMessageSchema = z.object({
- id: z.string(),
- role: z.literal("activity"),
- activityType: z.string(),
- content: z.record(z.any()),
-});
-
export const MessageSchema = z.discriminatedUnion("role", [
DeveloperMessageSchema,
SystemMessageSchema,
AssistantMessageSchema,
UserMessageSchema,
ToolMessageSchema,
- ActivityMessageSchema,
]);
export const RoleSchema = z.union([
@@ -111,7 +61,6 @@ export const RoleSchema = z.union([
z.literal("assistant"),
z.literal("user"),
z.literal("tool"),
- z.literal("activity"),
]);
export const ContextSchema = z.object({
@@ -128,7 +77,6 @@ export const ToolSchema = z.object({
export const RunAgentInputSchema = z.object({
threadId: z.string(),
runId: z.string(),
- parentRunId: z.string().optional(),
state: z.any(),
messages: z.array(MessageSchema),
tools: z.array(ToolSchema),
@@ -140,15 +88,11 @@ export const StateSchema = z.any();
export type ToolCall = z.infer;
export type FunctionCall = z.infer;
-export type TextInputContent = z.infer;
-export type BinaryInputContent = z.infer;
-export type InputContent = z.infer;
export type DeveloperMessage = z.infer;
export type SystemMessage = z.infer;
export type AssistantMessage = z.infer;
export type UserMessage = z.infer;
export type ToolMessage = z.infer;
-export type ActivityMessage = z.infer;
export type Message = z.infer;
export type Context = z.infer;
export type Tool = z.infer;
@@ -161,9 +105,3 @@ export class AGUIError extends Error {
super(message);
}
}
-
-export class AGUIConnectNotImplementedError extends AGUIError {
- constructor() {
- super("Connect not implemented. This method is not supported by the current agent.");
- }
-}
diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json
index efe085cfd..835e7c400 100644
--- a/sdks/typescript/packages/encoder/package.json
+++ b/sdks/typescript/packages/encoder/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/encoder",
"author": "Markus Ecker ",
- "version": "0.0.40",
+ "version": "0.0.39",
"private": false,
"publishConfig": {
"access": "public"
@@ -23,10 +23,10 @@
"@ag-ui/proto": "workspace:*"
},
"devDependencies": {
- "@types/jest": "^29.5.12",
+ "@types/jest": "^29.5.14",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "tsup": "^8.0.2",
- "typescript": "^5.8.2"
+ "ts-jest": "^29.4.5",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}
diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json
index 685b5fe8e..ec61c27a5 100644
--- a/sdks/typescript/packages/proto/package.json
+++ b/sdks/typescript/packages/proto/package.json
@@ -1,7 +1,7 @@
{
"name": "@ag-ui/proto",
"author": "Markus Ecker ",
- "version": "0.0.40",
+ "version": "0.0.39",
"private": false,
"publishConfig": {
"access": "public"
@@ -21,16 +21,16 @@
},
"dependencies": {
"@ag-ui/core": "workspace:*",
- "@bufbuild/protobuf": "^2.2.5",
+ "@bufbuild/protobuf": "^2.10.0",
"@protobuf-ts/protoc": "^2.11.1"
},
"devDependencies": {
"@jest/globals": "^29.7.0",
"@types/jest": "^29.5.14",
"jest": "^29.7.0",
- "ts-jest": "^29.1.2",
- "ts-proto": "^2.7.0",
- "tsup": "^8.0.2",
- "typescript": "^5.8.2"
+ "ts-jest": "^29.4.5",
+ "ts-proto": "^2.8.2",
+ "tsup": "^8.5.0",
+ "typescript": "^5.9.3"
}
}