From 23f3c07773a22f2a4376c0f8e7f3737016a0c23c Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 23 Sep 2025 23:32:07 +0200 Subject: [PATCH 001/113] Add middleware API --- .../integrations/mastra/src/mastra.ts | 2 +- .../middleware-starter/src/index.ts | 2 +- .../integrations/vercel-ai-sdk/src/index.ts | 2 +- .../packages/client/src/agent/agent.ts | 46 +- .../__tests__/filter-tool-calls.test.ts | 531 ++++++++++++++++++ .../__tests__/function-middleware.test.ts | 294 ++++++++++ .../__tests__/middleware-live-events.test.ts | 323 +++++++++++ .../__tests__/middleware-usage-example.ts | 78 +++ .../middleware/__tests__/middleware.test.ts | 306 ++++++++++ .../src/middleware/filter-tool-calls.ts | 98 ++++ .../packages/client/src/middleware/index.ts | 3 + .../client/src/middleware/middleware.ts | 20 + 12 files changed, 1699 insertions(+), 6 deletions(-) create mode 100644 typescript-sdk/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts create mode 100644 typescript-sdk/packages/client/src/middleware/__tests__/function-middleware.test.ts create mode 100644 typescript-sdk/packages/client/src/middleware/__tests__/middleware-live-events.test.ts create mode 100644 typescript-sdk/packages/client/src/middleware/__tests__/middleware-usage-example.ts create mode 100644 typescript-sdk/packages/client/src/middleware/__tests__/middleware.test.ts create mode 100644 typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts create mode 100644 typescript-sdk/packages/client/src/middleware/index.ts create mode 100644 typescript-sdk/packages/client/src/middleware/middleware.ts diff --git a/typescript-sdk/integrations/mastra/src/mastra.ts b/typescript-sdk/integrations/mastra/src/mastra.ts index f8310767b..675c618d7 100644 --- a/typescript-sdk/integrations/mastra/src/mastra.ts +++ b/typescript-sdk/integrations/mastra/src/mastra.ts @@ -59,7 +59,7 @@ export class MastraAgent extends AbstractAgent { this.runtimeContext = runtimeContext ?? new RuntimeContext(); } - protected run(input: RunAgentInput): Observable { + public run(input: RunAgentInput): Observable { let messageId = randomUUID(); return new Observable((subscriber) => { diff --git a/typescript-sdk/integrations/middleware-starter/src/index.ts b/typescript-sdk/integrations/middleware-starter/src/index.ts index b4e43e696..b0d66539a 100644 --- a/typescript-sdk/integrations/middleware-starter/src/index.ts +++ b/typescript-sdk/integrations/middleware-starter/src/index.ts @@ -2,7 +2,7 @@ import { AbstractAgent, BaseEvent, EventType, RunAgentInput } from "@ag-ui/clien import { Observable } from "rxjs"; export class MiddlewareStarterAgent extends AbstractAgent { - protected run(input: RunAgentInput): Observable { + public run(input: RunAgentInput): Observable { const messageId = Date.now().toString(); return new Observable((observer) => { observer.next({ diff --git a/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts b/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts index b06664f34..9dc76a936 100644 --- a/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts +++ b/typescript-sdk/integrations/vercel-ai-sdk/src/index.ts @@ -55,7 +55,7 @@ export class VercelAISDKAgent extends AbstractAgent { this.toolChoice = toolChoice ?? "auto"; } - protected run(input: RunAgentInput): Observable { + public run(input: RunAgentInput): Observable { const finalMessages: Message[] = input.messages; return new Observable((subscriber) => { diff --git a/typescript-sdk/packages/client/src/agent/agent.ts b/typescript-sdk/packages/client/src/agent/agent.ts index f596a625c..2a5cfbd75 100644 --- a/typescript-sdk/packages/client/src/agent/agent.ts +++ b/typescript-sdk/packages/client/src/agent/agent.ts @@ -13,6 +13,7 @@ import { LegacyRuntimeProtocolEvent } from "@/legacy/types"; import { lastValueFrom } from "rxjs"; import { transformChunks } from "@/chunks"; import { AgentStateMutation, AgentSubscriber, runSubscribersWithMutation } from "./subscriber"; +import { Middleware, MiddlewareFunction, FunctionMiddleware } from "@/middleware"; export interface RunAgentResult { result: any; @@ -27,6 +28,7 @@ export abstract class AbstractAgent { public state: State; public debug: boolean = false; public subscribers: AgentSubscriber[] = []; + private middlewares: Middleware[] = []; constructor({ agentId, @@ -53,7 +55,15 @@ export abstract class AbstractAgent { }; } - protected abstract run(input: RunAgentInput): Observable; + public use(...middlewares: (Middleware | MiddlewareFunction)[]): this { + const normalizedMiddlewares = middlewares.map(m => + typeof m === 'function' ? new FunctionMiddleware(m) : m + ); + this.middlewares.push(...normalizedMiddlewares); + return this; + } + + public abstract run(input: RunAgentInput): Observable; public async runAgent( parameters?: RunAgentParameters, @@ -77,7 +87,21 @@ export abstract class AbstractAgent { await this.onInitialize(input, subscribers); const pipeline = pipe( - () => this.run(input), + () => { + // Build middleware chain using reduceRight + 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); + }, transformChunks(this.debug), verifyEvents(this.debug), (source$) => this.apply(input, source$, subscribers), @@ -416,7 +440,23 @@ export abstract class AbstractAgent { this.agentId = this.agentId ?? uuidv4(); const input = this.prepareRunAgentInput(config); - return this.run(input).pipe( + // Build middleware chain for legacy bridge + const runObservable = (() => { + if (this.middlewares.length === 0) { + return this.run(input); + } + + const chainedAgent = this.middlewares.reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent) + } as AbstractAgent), + this + ); + + return chainedAgent.run(input); + })(); + + return runObservable.pipe( transformChunks(this.debug), verifyEvents(this.debug), convertToLegacyEvents(this.threadId, input.runId, this.agentId), diff --git a/typescript-sdk/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts b/typescript-sdk/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts new file mode 100644 index 000000000..45da1f806 --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts @@ -0,0 +1,531 @@ +import { AbstractAgent } from "@/agent"; +import { FilterToolCallsMiddleware } from "@/middleware/filter-tool-calls"; +import { Middleware } from "@/middleware"; +import { + BaseEvent, + EventType, + RunAgentInput, + ToolCallStartEvent, + ToolCallArgsEvent, + ToolCallEndEvent, + ToolCallResultEvent, + ToolCallChunkEvent +} from "@ag-ui/core"; +import { Observable } from "rxjs"; + +describe("FilterToolCallsMiddleware", () => { + class ToolCallingAgent extends AbstractAgent { + public 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 only allow specified tool calls", async () => { + const agent = new ToolCallingAgent(); + const middleware = new FilterToolCallsMiddleware({ + allowedToolCalls: ["weather"], + }); + + 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 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"); + + // Verify all weather-related events are present + const weatherToolCallId = toolCallStarts[0].toolCallId; + const weatherArgs = events.find(e => + e.type === EventType.TOOL_CALL_ARGS && + (e as ToolCallArgsEvent).toolCallId === weatherToolCallId + ); + expect(weatherArgs).toBeDefined(); + + const weatherEnd = events.find(e => + e.type === EventType.TOOL_CALL_END && + (e as ToolCallEndEvent).toolCallId === weatherToolCallId + ); + expect(weatherEnd).toBeDefined(); + + const weatherResult = events.find(e => + e.type === EventType.TOOL_CALL_RESULT && + (e as ToolCallResultEvent).toolCallId === weatherToolCallId + ); + expect(weatherResult).toBeDefined(); + }); + + it("should filter all events for a blocked tool call", async () => { + const agent = new ToolCallingAgent(); + const middleware = new FilterToolCallsMiddleware({ + disallowedToolCalls: ["calculator"], + }); + + const events: BaseEvent[] = []; + await new Promise((resolve) => { + middleware.run(input, agent).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // Should not have any calculator-related events + const calculatorEvents = events.filter(e => { + if (e.type === EventType.TOOL_CALL_START) { + return (e as ToolCallStartEvent).toolCallName === "calculator"; + } + if (e.type === EventType.TOOL_CALL_ARGS || + e.type === EventType.TOOL_CALL_END || + e.type === EventType.TOOL_CALL_RESULT) { + return (e as any).toolCallId === "tool-call-1"; + } + return false; + }); + + expect(calculatorEvents.length).toBe(0); + + // But should have weather and search events + const weatherStart = events.find(e => + e.type === EventType.TOOL_CALL_START && + (e as ToolCallStartEvent).toolCallName === "weather" + ); + expect(weatherStart).toBeDefined(); + + const searchStart = events.find(e => + e.type === EventType.TOOL_CALL_START && + (e as ToolCallStartEvent).toolCallName === "search" + ); + expect(searchStart).toBeDefined(); + }); + + it("should allow all tool calls when allowed list is empty", async () => { + const agent = new ToolCallingAgent(); + const middleware = new FilterToolCallsMiddleware({ + allowedToolCalls: [], + }); + + const events: BaseEvent[] = []; + await new Promise((resolve) => { + middleware.run(input, agent).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // No tool calls should pass through with empty allowed list + const toolCallStarts = events.filter(e => e.type === EventType.TOOL_CALL_START); + expect(toolCallStarts.length).toBe(0); + }); + + it("should allow all tool calls when disallowed list is empty", async () => { + const agent = new ToolCallingAgent(); + const middleware = new FilterToolCallsMiddleware({ + disallowedToolCalls: [], + }); + + const events: BaseEvent[] = []; + await new Promise((resolve) => { + middleware.run(input, agent).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // All tool calls should pass through with empty disallowed list + const toolCallStarts = events.filter(e => e.type === EventType.TOOL_CALL_START); + expect(toolCallStarts.length).toBe(3); + }); + + it("should throw error when both allowed and disallowed are specified", () => { + expect(() => { + new FilterToolCallsMiddleware({ + allowedToolCalls: ["calculator"], + disallowedToolCalls: ["weather"], + } as any); + }).toThrow("Cannot specify both allowedToolCalls and disallowedToolCalls"); + }); + + it("should throw error when neither allowed nor disallowed are specified", () => { + expect(() => { + new FilterToolCallsMiddleware({} as any); + }).toThrow("Must specify either allowedToolCalls or disallowedToolCalls"); + }); + + // Test removed - middleware now requires next parameter + + it("should work in a middleware chain", async () => { + const agent = new ToolCallingAgent(); + + // First middleware filters out calculator + const filterMiddleware = new FilterToolCallsMiddleware({ + disallowedToolCalls: ["calculator"], + }); + + // Second middleware could be any other middleware + class EventCounterMiddleware extends Middleware { + public eventCount = 0; + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return new Observable((subscriber) => { + const subscription = next.run(input).subscribe({ + next: (event) => { + this.eventCount++; + subscriber.next(event); + }, + error: (err) => subscriber.error(err), + complete: () => subscriber.complete(), + }); + + return () => subscription.unsubscribe(); + }); + } + } + + const counterMiddleware = new EventCounterMiddleware(); + + agent.use(counterMiddleware, filterMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + const events: BaseEvent[] = []; + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // Counter should have seen the filtered events + expect(counterMiddleware.eventCount).toBe(10); // 2 run events + 8 tool events (2 tools * 4 events) + + // Final output should not have calculator events + const toolCallStarts = events.filter(e => e.type === EventType.TOOL_CALL_START) as ToolCallStartEvent[]; + expect(toolCallStarts.map(e => e.toolCallName)).toEqual(["weather", "search"]); + }); + + it("should filter TOOL_CALL_CHUNK events that are disallowed", async () => { + class ChunkEmittingAgent extends AbstractAgent { + public run(input: RunAgentInput): Observable { + return new Observable((subscriber) => { + // Emit RUN_STARTED + subscriber.next({ + type: EventType.RUN_STARTED, + threadId: input.threadId, + runId: input.runId, + }); + + // Emit calculator tool as chunks (should be filtered) + subscriber.next({ + type: EventType.TOOL_CALL_CHUNK, + toolCallId: "tool-1", + toolCallName: "calculator", + parentMessageId: "msg-1", + delta: '{"operation": "add",', + } as ToolCallChunkEvent); + + subscriber.next({ + type: EventType.TOOL_CALL_CHUNK, + toolCallId: "tool-1", + delta: '"a": 5, "b": 3}', + } as ToolCallChunkEvent); + + // Emit weather tool as chunks (should pass through) + subscriber.next({ + type: EventType.TOOL_CALL_CHUNK, + toolCallId: "tool-2", + toolCallName: "weather", + parentMessageId: "msg-2", + delta: '{"city": "Paris"}', + } as ToolCallChunkEvent); + + // Emit a close event to trigger chunk transformation + subscriber.next({ + type: EventType.RUN_FINISHED, + threadId: input.threadId, + runId: input.runId, + }); + + subscriber.complete(); + }); + } + } + + const agent = new ChunkEmittingAgent(); + const middleware = new FilterToolCallsMiddleware({ + disallowedToolCalls: ["calculator"], + }); + + 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 (START, ARGS, END), and RUN_FINISHED + const toolCallStarts = events.filter(e => e.type === EventType.TOOL_CALL_START) as ToolCallStartEvent[]; + expect(toolCallStarts.length).toBe(1); + expect(toolCallStarts[0].toolCallName).toBe("weather"); + + // Calculator chunks should have been transformed and then filtered + const calculatorEvents = events.filter(e => { + if (e.type === EventType.TOOL_CALL_START) { + return (e as ToolCallStartEvent).toolCallName === "calculator"; + } + if (e.type === EventType.TOOL_CALL_ARGS || + e.type === EventType.TOOL_CALL_END) { + return (e as any).toolCallId === "tool-1"; + } + return false; + }); + expect(calculatorEvents.length).toBe(0); + + // No TOOL_CALL_CHUNK events should remain (all transformed) + const chunkEvents = events.filter(e => e.type === EventType.TOOL_CALL_CHUNK); + expect(chunkEvents.length).toBe(0); + }); + + it("should only allow specified tool calls from chunks", async () => { + class ChunkEmittingAgent extends AbstractAgent { + public run(input: RunAgentInput): Observable { + return new Observable((subscriber) => { + // Emit RUN_STARTED + subscriber.next({ + type: EventType.RUN_STARTED, + threadId: input.threadId, + runId: input.runId, + }); + + // Emit three different tools as chunks + subscriber.next({ + type: EventType.TOOL_CALL_CHUNK, + toolCallId: "tool-1", + toolCallName: "calculator", + parentMessageId: "msg-1", + delta: '{"test": "data"}', + } as ToolCallChunkEvent); + + subscriber.next({ + type: EventType.TOOL_CALL_CHUNK, + toolCallId: "tool-2", + toolCallName: "weather", + parentMessageId: "msg-2", + delta: '{"city": "London"}', + } as ToolCallChunkEvent); + + subscriber.next({ + type: EventType.TOOL_CALL_CHUNK, + toolCallId: "tool-3", + toolCallName: "search", + parentMessageId: "msg-3", + delta: '{"query": "test"}', + } as ToolCallChunkEvent); + + // Close event + subscriber.next({ + type: EventType.RUN_FINISHED, + threadId: input.threadId, + runId: input.runId, + }); + + subscriber.complete(); + }); + } + } + + const agent = new ChunkEmittingAgent(); + const middleware = new FilterToolCallsMiddleware({ + allowedToolCalls: ["weather"], + }); + + const events: BaseEvent[] = []; + await new Promise((resolve) => { + middleware.run(input, agent).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // Should only have weather tool events + const toolCallStarts = events.filter(e => e.type === EventType.TOOL_CALL_START) as ToolCallStartEvent[]; + expect(toolCallStarts.length).toBe(1); + expect(toolCallStarts[0].toolCallName).toBe("weather"); + + // Verify weather tool has all its events + const weatherEvents = events.filter(e => { + if (e.type === EventType.TOOL_CALL_START || + e.type === EventType.TOOL_CALL_ARGS || + e.type === EventType.TOOL_CALL_END) { + return (e as any).toolCallId === "tool-2"; + } + return false; + }); + expect(weatherEvents.length).toBe(3); // START, ARGS, END + }); +}); \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/__tests__/function-middleware.test.ts b/typescript-sdk/packages/client/src/middleware/__tests__/function-middleware.test.ts new file mode 100644 index 000000000..8be5f6298 --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/__tests__/function-middleware.test.ts @@ -0,0 +1,294 @@ +import { AbstractAgent } from "@/agent"; +import { MiddlewareFunction } from "@/middleware"; +import { BaseEvent, EventType, RunAgentInput, TextMessageChunkEvent } from "@ag-ui/core"; +import { Observable } from "rxjs"; +import { map, tap } from "rxjs/operators"; + +describe("Function-based Middleware", () => { + class SimpleAgent extends AbstractAgent { + public 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, + role: "assistant", + messageId: "msg-1", + delta: "Hello from agent", + } as TextMessageChunkEvent); + + subscriber.next({ + type: EventType.RUN_FINISHED, + threadId: input.threadId, + runId: input.runId, + }); + + subscriber.complete(); + }); + } + } + + it("should accept a function as middleware", async () => { + const agent = new SimpleAgent(); + + // Define a simple function middleware that adds a prefix to text chunks + const prefixMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + map((event) => { + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + const textEvent = event as TextMessageChunkEvent; + return { + ...textEvent, + delta: `[PREFIX] ${textEvent.delta}`, + } as TextMessageChunkEvent; + } + return event; + }) + ); + }; + + agent.use(prefixMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + expect(events.length).toBe(3); + expect(events[0].type).toBe(EventType.RUN_STARTED); + + const textEvent = events[1] as TextMessageChunkEvent; + expect(textEvent.type).toBe(EventType.TEXT_MESSAGE_CHUNK); + expect(textEvent.delta).toBe("[PREFIX] Hello from agent"); + + expect(events[2].type).toBe(EventType.RUN_FINISHED); + }); + + it("should chain multiple function middlewares", async () => { + const agent = new SimpleAgent(); + + // First middleware adds a prefix + const prefixMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + map((event) => { + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + const textEvent = event as TextMessageChunkEvent; + return { + ...textEvent, + delta: `[PREFIX] ${textEvent.delta}`, + } as TextMessageChunkEvent; + } + return event; + }) + ); + }; + + // Second middleware adds a suffix + const suffixMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + map((event) => { + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + const textEvent = event as TextMessageChunkEvent; + return { + ...textEvent, + delta: `${textEvent.delta} [SUFFIX]`, + } as TextMessageChunkEvent; + } + return event; + }) + ); + }; + + agent.use(prefixMiddleware, suffixMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + const textEvent = events[1] as TextMessageChunkEvent; + expect(textEvent.delta).toBe("[PREFIX] Hello from agent [SUFFIX]"); + }); + + it("should mix function and class middleware", async () => { + const agent = new SimpleAgent(); + + // Function middleware that adds a counter + let counter = 0; + const countingMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + tap(() => counter++) + ); + }; + + // Class middleware that adds a prefix + class PrefixMiddleware extends Middleware { + constructor(private prefix: string) { + super(); + } + + run(input: RunAgentInput, next: AbstractAgent): Observable { + return next.run(input).pipe( + map((event) => { + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + const textEvent = event as TextMessageChunkEvent; + return { + ...textEvent, + delta: `${this.prefix} ${textEvent.delta}`, + } as TextMessageChunkEvent; + } + return event; + }) + ); + } + } + + const prefixMiddleware = new PrefixMiddleware("[CLASS]"); + + // Mix both types + agent.use(countingMiddleware, prefixMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // Check that counting middleware ran + expect(counter).toBe(3); // 3 events total + + // Check that class middleware transformed the text + const textEvent = events[1] as TextMessageChunkEvent; + expect(textEvent.delta).toBe("[CLASS] Hello from agent"); + }); + + it("should handle event transformation in function middleware", async () => { + const agent = new SimpleAgent(); + + // Function middleware that counts events + let eventCount = 0; + const countingMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + tap(() => { + eventCount++; + }) + ); + }; + + // Function middleware that filters events + const filterMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + map((event) => { + // Add metadata to all events + return { + ...event, + metadata: { processed: true } + } as BaseEvent & { metadata: { processed: boolean } }; + }) + ); + }; + + agent.use(countingMiddleware, filterMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // Check that counting middleware counted all events + expect(eventCount).toBe(3); + + // Check that filter middleware added metadata + expect(events.length).toBe(3); + events.forEach(event => { + expect((event as any).metadata?.processed).toBe(true); + }); + }); +}); + +// Import Middleware here to avoid circular dependency issues +import { Middleware } from "@/middleware"; \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/__tests__/middleware-live-events.test.ts b/typescript-sdk/packages/client/src/middleware/__tests__/middleware-live-events.test.ts new file mode 100644 index 000000000..72c70a104 --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/__tests__/middleware-live-events.test.ts @@ -0,0 +1,323 @@ +import { AbstractAgent } from "@/agent"; +import { Middleware } from "@/middleware"; +import { BaseEvent, EventType, RunAgentInput, TextMessageChunkEvent } from "@ag-ui/core"; +import { Observable, interval } from "rxjs"; +import { map, take, concatMap } from "rxjs/operators"; + +describe("Middleware Live Event Streaming", () => { + class StreamingAgent extends AbstractAgent { + public run(input: RunAgentInput): Observable { + return new Observable((subscriber) => { + // Emit RUN_STARTED immediately + subscriber.next({ + type: EventType.RUN_STARTED, + threadId: input.threadId, + runId: input.runId, + }); + + // Simulate streaming text chunks over time + const streamingText = ["Hello", " ", "world", "!"]; + let index = 0; + + const intervalSub = interval(50).pipe(take(streamingText.length)).subscribe({ + next: () => { + const chunk: TextMessageChunkEvent = { + type: EventType.TEXT_MESSAGE_CHUNK, + role: "assistant", + messageId: "streaming-message", + delta: streamingText[index++], + }; + subscriber.next(chunk); + }, + complete: () => { + // Emit RUN_FINISHED after all chunks + subscriber.next({ + type: EventType.RUN_FINISHED, + threadId: input.threadId, + runId: input.runId, + }); + subscriber.complete(); + } + }); + + return () => intervalSub.unsubscribe(); + }); + } + } + + class TimestampMiddleware extends Middleware { + public timestamps: Map = new Map(); + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return next.run(input).pipe( + map((event) => { + const timestamp = Date.now(); + this.timestamps.set(event.type, timestamp); + return { + ...event, + timestamp, + } as BaseEvent & { timestamp: number }; + }) + ); + } + } + + class BufferingMiddleware extends Middleware { + private buffer: string = ""; + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return new Observable((subscriber) => { + const subscription = next.run(input).subscribe({ + next: (event) => { + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + const chunkEvent = event as TextMessageChunkEvent; + this.buffer += chunkEvent.delta; + + // Only emit when we have a complete word or punctuation + if (chunkEvent.delta === " " || chunkEvent.delta === "!") { + const bufferedEvent: TextMessageChunkEvent = { + ...chunkEvent, + delta: this.buffer, + }; + this.buffer = ""; + subscriber.next(bufferedEvent); + } + } else { + // Pass through non-text events immediately + subscriber.next(event); + } + }, + error: (err) => subscriber.error(err), + complete: () => subscriber.complete(), + }); + + return () => subscription.unsubscribe(); + }); + } + } + + class DelayMiddleware extends Middleware { + constructor(private delayMs: number) { + super(); + } + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return next.run(input).pipe( + concatMap((event) => + new Observable((subscriber) => { + setTimeout(() => { + subscriber.next(event); + subscriber.complete(); + }, this.delayMs); + }) + ) + ); + } + } + + it("should stream events live through middleware chain", async () => { + const agent = new StreamingAgent(); + const timestampMiddleware = new TimestampMiddleware(); + + agent.use(timestampMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + const eventTimes: number[] = []; + + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + const startTime = Date.now(); + + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => { + events.push(event); + eventTimes.push(Date.now() - startTime); + }, + complete: () => resolve(), + }); + }); + + // Should receive events over time, not all at once + expect(events.length).toBe(6); // RUN_STARTED, 4 chunks, RUN_FINISHED + expect(events[0].type).toBe(EventType.RUN_STARTED); + expect(events[5].type).toBe(EventType.RUN_FINISHED); + + // Check that chunks arrived over time (with ~50ms intervals) + expect(eventTimes[2] - eventTimes[1]).toBeGreaterThanOrEqual(40); + expect(eventTimes[3] - eventTimes[2]).toBeGreaterThanOrEqual(40); + }); + + it("should buffer and transform events in real-time", async () => { + const agent = new StreamingAgent(); + const bufferMiddleware = new BufferingMiddleware(); + + agent.use(bufferMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + + await new Promise((resolve) => { + bufferMiddleware.run(input, agent).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // BufferingMiddleware should have combined chunks + const textEvents = events.filter(e => e.type === EventType.TEXT_MESSAGE_CHUNK); + expect(textEvents.length).toBe(2); // "Hello " and "world!" + expect((textEvents[0] as TextMessageChunkEvent).delta).toBe("Hello "); + expect((textEvents[1] as TextMessageChunkEvent).delta).toBe("world!"); + }); + + it("should process events through multiple middleware in order", async () => { + const agent = new StreamingAgent(); + const timestampMiddleware = new TimestampMiddleware(); + const delayMiddleware = new DelayMiddleware(10); + + agent.use(timestampMiddleware, delayMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + const startTime = Date.now(); + + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => { + events.push(event); + }, + complete: () => resolve(), + }); + }); + + const totalTime = Date.now() - startTime; + + // Each event should have a timestamp from the first middleware + events.forEach(event => { + expect((event as any).timestamp).toBeDefined(); + }); + + // The delay middleware should have added delay to each event + expect(totalTime).toBeGreaterThanOrEqual(60); // 6 events * 10ms delay + }); + + it("should handle backpressure correctly", async () => { + class FastProducerAgent extends AbstractAgent { + public run(input: RunAgentInput): Observable { + return new Observable((subscriber) => { + subscriber.next({ + type: EventType.RUN_STARTED, + threadId: input.threadId, + runId: input.runId, + }); + + // Emit many events quickly + for (let i = 0; i < 100; i++) { + subscriber.next({ + type: EventType.TEXT_MESSAGE_CHUNK, + role: "assistant", + messageId: "fast-message", + delta: i.toString(), + } as TextMessageChunkEvent); + } + + subscriber.next({ + type: EventType.RUN_FINISHED, + threadId: input.threadId, + runId: input.runId, + }); + + subscriber.complete(); + }); + } + } + + class SlowConsumerMiddleware extends Middleware { + public processedCount = 0; + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return next.run(input).pipe( + concatMap((event) => + new Observable((subscriber) => { + // Simulate slow processing + setTimeout(() => { + this.processedCount++; + subscriber.next(event); + subscriber.complete(); + }, 1); + }) + ) + ); + } + } + + const agent = new FastProducerAgent(); + const slowMiddleware = new SlowConsumerMiddleware(); + + agent.use(slowMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + await new Promise((resolve) => { + slowMiddleware.run(input, agent).subscribe({ + complete: () => resolve(), + }); + }); + + // All events should be processed despite the speed difference + expect(slowMiddleware.processedCount).toBe(102); // RUN_STARTED + 100 chunks + RUN_FINISHED + }); +}); \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/__tests__/middleware-usage-example.ts b/typescript-sdk/packages/client/src/middleware/__tests__/middleware-usage-example.ts new file mode 100644 index 000000000..5b7b577ab --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/__tests__/middleware-usage-example.ts @@ -0,0 +1,78 @@ +/** + * Example usage of middleware with AbstractAgent + * This file demonstrates both class-based and function-based middleware + */ + +import { AbstractAgent } from "@/agent"; +import { Middleware, MiddlewareFunction } from "@/middleware"; +import { RunAgentInput, BaseEvent, EventType } from "@ag-ui/core"; +import { Observable } from "rxjs"; +import { map, tap } from "rxjs/operators"; + +// Example agent +class MyAgent extends AbstractAgent { + run(input: RunAgentInput): Observable { + return new Observable(subscriber => { + subscriber.next({ type: EventType.RUN_STARTED, threadId: input.threadId, runId: input.runId }); + // ... agent logic ... + subscriber.next({ type: EventType.RUN_FINISHED, threadId: input.threadId, runId: input.runId }); + subscriber.complete(); + }); + } +} + +// 1. Function-based middleware (simple and concise) +const loggingMiddleware: MiddlewareFunction = (input, next) => { + console.log('Request:', input); + return next.run(input).pipe( + tap(event => console.log('Event:', event)) + ); +}; + +// 2. Another function middleware +const timingMiddleware: MiddlewareFunction = (input, next) => { + const start = Date.now(); + return next.run(input).pipe( + tap({ + complete: () => console.log(`Execution took ${Date.now() - start}ms`) + }) + ); +}; + +// 3. Class-based middleware (when you need state or complex logic) +class AuthMiddleware extends Middleware { + constructor(private apiKey: string) { + super(); + } + + run(input: RunAgentInput, next: AbstractAgent): Observable { + // Add auth to context + const authenticatedInput = { + ...input, + context: [...input.context, { apiKey: this.apiKey }] + }; + return next.run(authenticatedInput); + } +} + +// Usage +async function example() { + const agent = new MyAgent(); + + // Can use function middleware directly + agent.use(loggingMiddleware); + + // Can chain multiple middleware (functions and classes) + agent.use( + timingMiddleware, + new AuthMiddleware('my-api-key'), + (input, next) => { + // Inline function middleware + console.log('Processing request...'); + return next.run(input); + } + ); + + // Run the agent - middleware will be applied automatically + await agent.runAgent(); +} \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/__tests__/middleware.test.ts b/typescript-sdk/packages/client/src/middleware/__tests__/middleware.test.ts new file mode 100644 index 000000000..b9422b416 --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/__tests__/middleware.test.ts @@ -0,0 +1,306 @@ +import { AbstractAgent } from "@/agent"; +import { Middleware } from "@/middleware"; +import { BaseEvent, EventType, RunAgentInput, TextMessageChunkEvent } from "@ag-ui/core"; +import { Observable, of } from "rxjs"; +import { map, tap } from "rxjs/operators"; + +describe("Middleware", () => { + class SimpleAgent extends AbstractAgent { + public 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(); + }); + } + } + + class TextInjectionMiddleware extends Middleware { + constructor(private text: string) { + super(); + } + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return new Observable((subscriber) => { + const subscription = next.run(input).subscribe({ + next: (event) => { + subscriber.next(event); + + // Inject text message chunk after RUN_STARTED + if (event.type === EventType.RUN_STARTED) { + const textEvent: TextMessageChunkEvent = { + type: EventType.TEXT_MESSAGE_CHUNK, + role: "assistant", + messageId: "test-message-id", + delta: this.text, + }; + subscriber.next(textEvent); + } + }, + error: (err) => subscriber.error(err), + complete: () => subscriber.complete(), + }); + + return () => subscription.unsubscribe(); + }); + } + } + + class EventCounterMiddleware extends Middleware { + public eventCount = 0; + public eventTypes: EventType[] = []; + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return next.run(input).pipe( + tap((event) => { + this.eventCount++; + this.eventTypes.push(event.type); + }) + ); + } + } + + class EventTransformMiddleware extends Middleware { + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return next.run(input).pipe( + map((event) => { + // Add metadata to all events + return { + ...event, + metadata: { transformed: true }, + } as BaseEvent; + }) + ); + } + } + + it("should inject text message chunk between RUN_STARTED and RUN_FINISHED", async () => { + const agent = new SimpleAgent(); + const middleware = new TextInjectionMiddleware("Hello from middleware!"); + + agent.use(middleware); + + const events: BaseEvent[] = []; + const result = await agent.runAgent({}, (params) => { + if (params.onEvent) { + params.onEvent({ event: params as any, messages: [], state: {}, agent, input: {} as any }); + } + }); + + // Collect events through the pipeline + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const subscription = agent["middlewares"][0].run(input, agent).subscribe({ + next: (event) => events.push(event), + }); + + await new Promise((resolve) => setTimeout(resolve, 100)); + + expect(events.length).toBe(3); + expect(events[0].type).toBe(EventType.RUN_STARTED); + expect(events[1].type).toBe(EventType.TEXT_MESSAGE_CHUNK); + expect((events[1] as TextMessageChunkEvent).delta).toBe("Hello from middleware!"); + expect(events[2].type).toBe(EventType.RUN_FINISHED); + }); + + it("should chain multiple middleware correctly", async () => { + const agent = new SimpleAgent(); + const textMiddleware1 = new TextInjectionMiddleware("First"); + const textMiddleware2 = new TextInjectionMiddleware("Second"); + + agent.use(textMiddleware1, textMiddleware2); + + const events: BaseEvent[] = []; + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + // Build the chain as the agent does + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + const subscription = chainedAgent.run(input).subscribe({ + next: (event) => events.push(event), + }); + + await new Promise((resolve) => setTimeout(resolve, 100)); + + expect(events.length).toBe(4); + expect(events[0].type).toBe(EventType.RUN_STARTED); + expect(events[1].type).toBe(EventType.TEXT_MESSAGE_CHUNK); + expect((events[1] as TextMessageChunkEvent).delta).toBe("First"); + expect(events[2].type).toBe(EventType.TEXT_MESSAGE_CHUNK); + expect((events[2] as TextMessageChunkEvent).delta).toBe("Second"); + expect(events[3].type).toBe(EventType.RUN_FINISHED); + }); + + it("should allow middleware to observe events", async () => { + const agent = new SimpleAgent(); + const counterMiddleware = new EventCounterMiddleware(); + + agent.use(counterMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + const subscription = counterMiddleware.run(input, agent).subscribe({ + next: (event) => events.push(event), + }); + + await new Promise((resolve) => setTimeout(resolve, 100)); + + expect(counterMiddleware.eventCount).toBe(2); + expect(counterMiddleware.eventTypes).toEqual([ + EventType.RUN_STARTED, + EventType.RUN_FINISHED, + ]); + }); + + it("should allow middleware to transform events", async () => { + const agent = new SimpleAgent(); + const transformMiddleware = new EventTransformMiddleware(); + + agent.use(transformMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + const events: BaseEvent[] = []; + const subscription = transformMiddleware.run(input, agent).subscribe({ + next: (event) => events.push(event), + }); + + await new Promise((resolve) => setTimeout(resolve, 100)); + + expect(events.length).toBe(2); + expect((events[0] as any).metadata?.transformed).toBe(true); + expect((events[1] as any).metadata?.transformed).toBe(true); + }); + + + it("should work with 2 middleware and 1 actual agent in a chain", async () => { + // The actual agent that sends RUN_STARTED and RUN_FINISHED + const agent = new SimpleAgent(); + + // First middleware: modifies any text message chunks to have fixed text + class TextModifierMiddleware extends Middleware { + constructor(private replacementText: string) { + super(); + } + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + + return next.run(input).pipe( + map((event) => { + // If it's a text message chunk, replace the delta + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + const textEvent = event as TextMessageChunkEvent; + return { + ...textEvent, + delta: this.replacementText, + } as TextMessageChunkEvent; + } + // Pass through other events unchanged + return event; + }) + ); + } + } + + // Second middleware: injects a text message chunk after RUN_STARTED + const textInjectionMiddleware = new TextInjectionMiddleware("Original text from middleware"); + + const textModifierMiddleware = new TextModifierMiddleware("Modified text!"); + + // Add middleware in order: modifier first (outermost), then injection (innermost) + // This way: modifier -> injection -> agent + // And events flow back: agent -> injection (adds text) -> modifier (modifies text) + agent.use(textModifierMiddleware, textInjectionMiddleware); + + const input: RunAgentInput = { + threadId: "test-thread", + runId: "test-run", + tools: [], + context: [], + forwardedProps: {}, + state: {}, + messages: [], + }; + + // Build the chain as the agent does internally + const chainedAgent = agent["middlewares"].reduceRight( + (nextAgent: AbstractAgent, middleware) => ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + } as AbstractAgent), + agent + ); + + const events: BaseEvent[] = []; + await new Promise((resolve) => { + chainedAgent.run(input).subscribe({ + next: (event) => events.push(event), + complete: () => resolve(), + }); + }); + + // Verify the event sequence + expect(events.length).toBe(3); + + // First event: RUN_STARTED from the agent + expect(events[0].type).toBe(EventType.RUN_STARTED); + + // Second event: TEXT_MESSAGE_CHUNK injected by first middleware, + // but with text modified by second middleware + expect(events[1].type).toBe(EventType.TEXT_MESSAGE_CHUNK); + expect((events[1] as TextMessageChunkEvent).delta).toBe("Modified text!"); + + // Third event: RUN_FINISHED from the agent + expect(events[2].type).toBe(EventType.RUN_FINISHED); + }); +}); \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts b/typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts new file mode 100644 index 000000000..86ade3bfd --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts @@ -0,0 +1,98 @@ +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"; +import { transformChunks } from "@/chunks"; + +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); + } + } + + public run(input: RunAgentInput, next: AbstractAgent): Observable { + // Apply transformChunks first to convert TOOL_CALL_CHUNK events + return next.run(input).pipe( + transformChunks(false), + 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; + } +} \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/index.ts b/typescript-sdk/packages/client/src/middleware/index.ts new file mode 100644 index 000000000..e24b580f7 --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/index.ts @@ -0,0 +1,3 @@ +export { Middleware, FunctionMiddleware } from "./middleware"; +export type { MiddlewareFunction } from "./middleware"; +export { FilterToolCallsMiddleware } from "./filter-tool-calls"; \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/middleware.ts b/typescript-sdk/packages/client/src/middleware/middleware.ts new file mode 100644 index 000000000..0fa7f789f --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/middleware.ts @@ -0,0 +1,20 @@ +import { AbstractAgent } from "@/agent"; +import { RunAgentInput, BaseEvent } from "@ag-ui/core"; +import { Observable } from "rxjs"; + +export type MiddlewareFunction = (input: RunAgentInput, next: AbstractAgent) => Observable; + +export abstract class Middleware { + abstract run(input: RunAgentInput, next: AbstractAgent): Observable; +} + +// 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); + } +} From ce29ad85f284e11494aec0dc17f1b201e23bedda Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 23 Sep 2025 23:42:41 +0200 Subject: [PATCH 002/113] Middleware docs --- docs/concepts/middleware.mdx | 307 +++++++++++++++++ docs/docs.json | 2 + docs/sdk/js/client/abstract-agent.mdx | 30 ++ docs/sdk/js/client/middleware.mdx | 408 +++++++++++++++++++++++ docs/sdk/js/client/overview.mdx | 24 ++ typescript-sdk/packages/client/README.md | 27 ++ 6 files changed, 798 insertions(+) create mode 100644 docs/concepts/middleware.mdx create mode 100644 docs/sdk/js/client/middleware.mdx diff --git a/docs/concepts/middleware.mdx b/docs/concepts/middleware.mdx new file mode 100644 index 000000000..835d10566 --- /dev/null +++ b/docs/concepts/middleware.mdx @@ -0,0 +1,307 @@ +--- +title: "Middleware" +description: "Transform and intercept events in AG-UI agents" +--- + +# Middleware + +Middleware in AG-UI provides a powerful way to transform, filter, and augment the event streams that flow through agents. It enables you to add cross-cutting concerns like logging, authentication, rate limiting, and event filtering without modifying the core agent logic. + +## What is Middleware? + +Middleware sits between the agent execution and the event consumer, allowing you to: + +1. **Transform events** – Modify or enhance events as they flow through the pipeline +2. **Filter events** – Selectively allow or block certain events +3. **Add metadata** – Inject additional context or tracking information +4. **Handle errors** – Implement custom error recovery strategies +5. **Monitor execution** – Add logging, metrics, or debugging capabilities + +## How Middleware Works + +Middleware forms a chain where each middleware wraps the next, creating layers of functionality. When an agent runs, the event stream flows through each middleware in sequence. + +```typescript +import { AbstractAgent } from "@ag-ui/client" + +const agent = new MyAgent() + +// Middleware chain: logging -> auth -> filter -> agent +agent.use(loggingMiddleware, authMiddleware, filterMiddleware) + +// When agent runs, events flow through all middleware +await agent.runAgent() +``` + +## Function-Based Middleware + +For simple transformations, you can use function-based middleware. This is the most concise way to add middleware: + +```typescript +import { MiddlewareFunction } from "@ag-ui/client" +import { EventType } from "@ag-ui/core" + +const prefixMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + map(event => { + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + return { + ...event, + delta: `[AI]: ${event.delta}` + } + } + return event + }) + ) +} + +agent.use(prefixMiddleware) +``` + +## Class-Based Middleware + +For more complex scenarios requiring state or configuration, use class-based middleware: + +```typescript +import { Middleware } from "@ag-ui/client" +import { Observable } from "rxjs" +import { tap } from "rxjs/operators" + +class MetricsMiddleware extends Middleware { + private eventCount = 0 + + constructor(private metricsService: MetricsService) { + super() + } + + run(input: RunAgentInput, next: AbstractAgent): Observable { + const startTime = Date.now() + + return next.run(input).pipe( + tap(event => { + this.eventCount++ + this.metricsService.recordEvent(event.type) + }), + finalize(() => { + const duration = Date.now() - startTime + this.metricsService.recordDuration(duration) + this.metricsService.recordEventCount(this.eventCount) + }) + ) + } +} + +agent.use(new MetricsMiddleware(metricsService)) +``` + +## Built-in Middleware + +AG-UI provides several built-in middleware components for common use cases: + +### FilterToolCallsMiddleware + +Filter tool calls based on allowed or disallowed lists: + +```typescript +import { FilterToolCallsMiddleware } from "@ag-ui/client" + +// Only allow specific tools +const allowedFilter = new FilterToolCallsMiddleware({ + allowedToolCalls: ["search", "calculate"] +}) + +// Or block specific tools +const blockedFilter = new FilterToolCallsMiddleware({ + disallowedToolCalls: ["delete", "modify"] +}) + +agent.use(allowedFilter) +``` + +## Middleware Patterns + +### Logging Middleware + +```typescript +const loggingMiddleware: MiddlewareFunction = (input, next) => { + console.log("Request:", input.messages) + + return next.run(input).pipe( + tap(event => console.log("Event:", event.type)), + catchError(error => { + console.error("Error:", error) + throw error + }) + ) +} +``` + +### Authentication Middleware + +```typescript +class AuthMiddleware extends Middleware { + constructor(private apiKey: string) { + super() + } + + run(input: RunAgentInput, next: AbstractAgent): Observable { + // Add authentication to the context + const authenticatedInput = { + ...input, + context: [ + ...input.context, + { type: "auth", apiKey: this.apiKey } + ] + } + + return next.run(authenticatedInput) + } +} +``` + +### Rate Limiting Middleware + +```typescript +class RateLimitMiddleware extends Middleware { + private lastCall = 0 + + constructor(private minInterval: number) { + super() + } + + run(input: RunAgentInput, next: AbstractAgent): Observable { + const now = Date.now() + const timeSinceLastCall = now - this.lastCall + + if (timeSinceLastCall < this.minInterval) { + const delay = this.minInterval - timeSinceLastCall + return timer(delay).pipe( + switchMap(() => { + this.lastCall = Date.now() + return next.run(input) + }) + ) + } + + this.lastCall = now + return next.run(input) + } +} +``` + +## Combining Middleware + +You can combine multiple middleware to create sophisticated processing pipelines: + +```typescript +// Function middleware for simple logging +const logMiddleware: MiddlewareFunction = (input, next) => { + console.log(`Starting run ${input.runId}`) + return next.run(input) +} + +// Class middleware for authentication +const authMiddleware = new AuthMiddleware(apiKey) + +// Built-in middleware for filtering +const filterMiddleware = new FilterToolCallsMiddleware({ + allowedToolCalls: ["search", "summarize"] +}) + +// Apply all middleware in order +agent.use( + logMiddleware, // First: log the request + authMiddleware, // Second: add authentication + filterMiddleware // Third: filter tool calls +) +``` + +## Execution Order + +Middleware executes in the order it's added, with each middleware wrapping the next: + +1. First middleware receives the original input +2. It can modify the input before passing to the next middleware +3. Each middleware processes events from the next in the chain +4. The final middleware calls the actual agent + +```typescript +agent.use(middleware1, middleware2, middleware3) + +// Execution flow: +// → middleware1 +// → middleware2 +// → middleware3 +// → agent.run() +// ← events flow back through middleware3 +// ← events flow back through middleware2 +// ← events flow back through middleware1 +``` + +## Best Practices + +1. **Keep middleware focused** – Each middleware should have a single responsibility +2. **Handle errors gracefully** – Use RxJS error handling operators +3. **Avoid blocking operations** – Use async patterns for I/O operations +4. **Document side effects** – Clearly indicate if middleware modifies state +5. **Test middleware independently** – Write unit tests for each middleware +6. **Consider performance** – Be mindful of processing overhead in the event stream + +## Advanced Use Cases + +### Conditional Middleware + +Apply middleware based on runtime conditions: + +```typescript +const conditionalMiddleware: MiddlewareFunction = (input, next) => { + if (input.context.some(c => c.type === "debug")) { + // Apply debug logging + return next.run(input).pipe( + tap(event => console.debug(event)) + ) + } + return next.run(input) +} +``` + +### Event Transformation + +Transform specific event types: + +```typescript +const transformMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + map(event => { + if (event.type === EventType.TOOL_CALL_START) { + // Add timestamp to tool calls + return { + ...event, + metadata: { + ...event.metadata, + timestamp: Date.now() + } + } + } + return event + }) + ) +} +``` + +### Stream Control + +Control the flow of events: + +```typescript +const throttleMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + // Throttle text message chunks to prevent overwhelming the UI + throttleTime(50, undefined, { leading: true, trailing: true }) + ) +} +``` + +## Conclusion + +Middleware provides a flexible and powerful way to extend AG-UI agents without modifying their core logic. Whether you need simple event transformation or complex stateful processing, the middleware system offers the tools to build robust, maintainable agent applications. \ No newline at end of file diff --git a/docs/docs.json b/docs/docs.json index e6c6a9c4d..fd721bb53 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -40,6 +40,7 @@ "concepts/architecture", "concepts/events", "concepts/agents", + "concepts/middleware", "concepts/messages", "concepts/state", "concepts/tools" @@ -85,6 +86,7 @@ "sdk/js/client/overview", "sdk/js/client/abstract-agent", "sdk/js/client/http-agent", + "sdk/js/client/middleware", "sdk/js/client/subscriber" ] }, diff --git a/docs/sdk/js/client/abstract-agent.mdx b/docs/sdk/js/client/abstract-agent.mdx index 3738b0aae..7c6acafb5 100644 --- a/docs/sdk/js/client/abstract-agent.mdx +++ b/docs/sdk/js/client/abstract-agent.mdx @@ -95,6 +95,36 @@ subscribe(subscriber: AgentSubscriber): { unsubscribe: () => void } Returns an object with an `unsubscribe()` method to remove the subscriber when no longer needed. +### use() + +Adds middleware to the agent's event processing pipeline. + +```typescript +use(...middlewares: (Middleware | MiddlewareFunction)[]): this +``` + +Middleware can be either: +- **Function middleware**: Simple functions that transform the event stream +- **Class middleware**: Instances of the `Middleware` class for stateful operations + +```typescript +// Function middleware +agent.use((input, next) => { + console.log("Processing:", input.runId); + return next.run(input); +}); + +// Class middleware +agent.use(new FilterToolCallsMiddleware({ + allowedToolCalls: ["search"] +})); + +// Chain multiple middleware +agent.use(loggingMiddleware, authMiddleware, filterMiddleware); +``` + +Middleware executes in the order added, with each wrapping the next. See the [Middleware documentation](/sdk/js/client/middleware) for more details. + ### abortRun() Cancels the current agent execution. diff --git a/docs/sdk/js/client/middleware.mdx b/docs/sdk/js/client/middleware.mdx new file mode 100644 index 000000000..31462257b --- /dev/null +++ b/docs/sdk/js/client/middleware.mdx @@ -0,0 +1,408 @@ +--- +title: "Middleware" +description: "Event stream transformation and filtering for AG-UI agents" +--- + +# Middleware + +The middleware system in `@ag-ui/client` provides a powerful way to transform, filter, and augment event streams flowing through agents. Middleware can intercept and modify events, add logging, implement authentication, filter tool calls, and more. + +```typescript +import { Middleware, MiddlewareFunction, FilterToolCallsMiddleware } from "@ag-ui/client" +``` + +## Types + +### MiddlewareFunction + +A function that transforms the event stream. + +```typescript +type MiddlewareFunction = ( + input: RunAgentInput, + next: AbstractAgent +) => Observable +``` + +### Middleware + +Abstract base class for creating middleware. + +```typescript +abstract class Middleware { + abstract run( + input: RunAgentInput, + next: AbstractAgent + ): Observable +} +``` + +## Function-Based Middleware + +The simplest way to create middleware is with a function. Function middleware is ideal for stateless transformations. + +### Basic Example + +```typescript +const loggingMiddleware: MiddlewareFunction = (input, next) => { + console.log(`[${new Date().toISOString()}] Starting run ${input.runId}`) + + return next.run(input).pipe( + tap(event => console.log(`Event: ${event.type}`)), + finalize(() => console.log(`Run ${input.runId} completed`)) + ) +} + +agent.use(loggingMiddleware) +``` + +### Transforming Events + +```typescript +const prefixMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + map(event => { + if (event.type === EventType.TEXT_MESSAGE_CHUNK) { + return { + ...event, + delta: `[Assistant]: ${event.delta}` + } + } + return event + }) + ) +} +``` + +### Error Handling + +```typescript +const errorMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + catchError(error => { + console.error("Agent error:", error) + + // Return error event + return of({ + type: EventType.RUN_ERROR, + message: error.message + } as BaseEvent) + }) + ) +} +``` + +## Class-Based Middleware + +For stateful operations or complex logic, extend the `Middleware` class. + +### Basic Implementation + +```typescript +class CounterMiddleware extends Middleware { + private totalEvents = 0 + + run(input: RunAgentInput, next: AbstractAgent): Observable { + let runEvents = 0 + + return next.run(input).pipe( + tap(() => { + runEvents++ + this.totalEvents++ + }), + finalize(() => { + console.log(`Run events: ${runEvents}, Total: ${this.totalEvents}`) + }) + ) + } +} + +agent.use(new CounterMiddleware()) +``` + +### Configuration-Based Middleware + +```typescript +class AuthMiddleware extends Middleware { + constructor( + private apiKey: string, + private headerName: string = "Authorization" + ) { + super() + } + + run(input: RunAgentInput, next: AbstractAgent): Observable { + // Add authentication to context + const authenticatedInput = { + ...input, + context: [ + ...input.context, + { + type: "auth", + [this.headerName]: `Bearer ${this.apiKey}` + } + ] + } + + return next.run(authenticatedInput) + } +} + +agent.use(new AuthMiddleware(process.env.API_KEY)) +``` + +## Built-in Middleware + +### FilterToolCallsMiddleware + +Filters tool calls based on allowed or disallowed lists. + +```typescript +import { FilterToolCallsMiddleware } from "@ag-ui/client" +``` + +#### Configuration + +```typescript +type FilterToolCallsConfig = + | { allowedToolCalls: string[]; disallowedToolCalls?: never } + | { disallowedToolCalls: string[]; allowedToolCalls?: never } +``` + +#### Allow Specific Tools + +```typescript +const allowFilter = new FilterToolCallsMiddleware({ + allowedToolCalls: ["search", "calculate", "summarize"] +}) + +agent.use(allowFilter) +``` + +#### Block Specific Tools + +```typescript +const blockFilter = new FilterToolCallsMiddleware({ + disallowedToolCalls: ["delete", "modify", "execute"] +}) + +agent.use(blockFilter) +``` + +## Middleware Patterns + +### Timing Middleware + +```typescript +const timingMiddleware: MiddlewareFunction = (input, next) => { + const startTime = performance.now() + + return next.run(input).pipe( + finalize(() => { + const duration = performance.now() - startTime + console.log(`Execution time: ${duration.toFixed(2)}ms`) + }) + ) +} +``` + +### Rate Limiting + +```typescript +class RateLimitMiddleware extends Middleware { + private lastCall = 0 + + constructor(private minInterval: number) { + super() + } + + run(input: RunAgentInput, next: AbstractAgent): Observable { + const now = Date.now() + const elapsed = now - this.lastCall + + if (elapsed < this.minInterval) { + // Delay the execution + return timer(this.minInterval - elapsed).pipe( + switchMap(() => { + this.lastCall = Date.now() + return next.run(input) + }) + ) + } + + this.lastCall = now + return next.run(input) + } +} + +// Limit to one request per second +agent.use(new RateLimitMiddleware(1000)) +``` + +### Retry Logic + +```typescript +const retryMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + retry({ + count: 3, + delay: (error, retryCount) => { + console.log(`Retry attempt ${retryCount}`) + return timer(1000 * retryCount) // Exponential backoff + } + }) + ) +} +``` + +### Caching + +```typescript +class CacheMiddleware extends Middleware { + private cache = new Map() + + run(input: RunAgentInput, next: AbstractAgent): Observable { + const cacheKey = this.getCacheKey(input) + + if (this.cache.has(cacheKey)) { + console.log("Cache hit") + return from(this.cache.get(cacheKey)!) + } + + const events: BaseEvent[] = [] + + return next.run(input).pipe( + tap(event => events.push(event)), + finalize(() => { + this.cache.set(cacheKey, events) + }) + ) + } + + private getCacheKey(input: RunAgentInput): string { + // Create a cache key from the input + return JSON.stringify({ + messages: input.messages, + tools: input.tools.map(t => t.name) + }) + } +} +``` + +## Chaining Middleware + +Multiple middleware can be combined to create sophisticated processing pipelines. + +```typescript +// Create middleware instances +const logger = loggingMiddleware +const auth = new AuthMiddleware(apiKey) +const filter = new FilterToolCallsMiddleware({ + allowedToolCalls: ["search"] +}) +const rateLimit = new RateLimitMiddleware(1000) + +// Apply middleware in order +agent.use( + logger, // First: Log all events + auth, // Second: Add authentication + rateLimit, // Third: Apply rate limiting + filter // Fourth: Filter tool calls +) + +// Execution flow: +// logger → auth → rateLimit → filter → agent → filter → rateLimit → auth → logger +``` + +## Advanced Usage + +### Conditional Middleware + +```typescript +const debugMiddleware: MiddlewareFunction = (input, next) => { + const isDebug = input.context.some(c => c.type === "debug") + + if (!isDebug) { + return next.run(input) + } + + return next.run(input).pipe( + tap(event => { + console.debug("[DEBUG]", JSON.stringify(event, null, 2)) + }) + ) +} +``` + +### Event Filtering + +```typescript +const filterEventsMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + filter(event => { + // Only allow specific event types + return [ + EventType.RUN_STARTED, + EventType.TEXT_MESSAGE_CHUNK, + EventType.RUN_FINISHED + ].includes(event.type) + }) + ) +} +``` + +### Stream Manipulation + +```typescript +const bufferMiddleware: MiddlewareFunction = (input, next) => { + return next.run(input).pipe( + // Buffer text chunks and emit them in batches + bufferWhen(() => + interval(100).pipe( + filter(() => true) + ) + ), + map(events => events.flat()) + ) +} +``` + +## Best Practices + +1. **Single Responsibility**: Each middleware should focus on one concern +2. **Error Handling**: Always handle errors gracefully and consider recovery strategies +3. **Performance**: Be mindful of processing overhead in high-throughput scenarios +4. **State Management**: Use class-based middleware when state is required +5. **Testing**: Write unit tests for each middleware independently +6. **Documentation**: Document middleware behavior and side effects + +## TypeScript Support + +The middleware system is fully typed for excellent IDE support: + +```typescript +import { + Middleware, + MiddlewareFunction, + FilterToolCallsMiddleware +} from "@ag-ui/client" +import { RunAgentInput, BaseEvent, EventType } from "@ag-ui/core" + +// Type-safe middleware function +const typedMiddleware: MiddlewareFunction = ( + input: RunAgentInput, + next: AbstractAgent +): Observable => { + return next.run(input) +} + +// Type-safe middleware class +class TypedMiddleware extends Middleware { + run( + input: RunAgentInput, + next: AbstractAgent + ): Observable { + return next.run(input) + } +} +``` \ No newline at end of file diff --git a/docs/sdk/js/client/overview.mdx b/docs/sdk/js/client/overview.mdx index 0bfcf085f..3902715c5 100644 --- a/docs/sdk/js/client/overview.mdx +++ b/docs/sdk/js/client/overview.mdx @@ -61,6 +61,30 @@ Concrete implementation for HTTP-based agent connectivity: efficient event encoding format +## Middleware + +Transform and intercept event streams flowing through agents with a flexible +middleware system: + +- [Function Middleware](/sdk/js/client/middleware#function-based-middleware) - Simple + transformations with plain functions +- [Class Middleware](/sdk/js/client/middleware#class-based-middleware) - Stateful + middleware with configuration +- [Built-in Middleware](/sdk/js/client/middleware#built-in-middleware) - + FilterToolCallsMiddleware and more +- [Middleware Patterns](/sdk/js/client/middleware#middleware-patterns) - Common + use cases and examples + + + Powerful event stream transformation and filtering for AG-UI agents + + ## AgentSubscriber Event-driven subscriber system for handling agent lifecycle events and state diff --git a/typescript-sdk/packages/client/README.md b/typescript-sdk/packages/client/README.md index 1be36135a..fbc9c41db 100644 --- a/typescript-sdk/packages/client/README.md +++ b/typescript-sdk/packages/client/README.md @@ -19,6 +19,7 @@ yarn add @ag-ui/client - 📡 **Event streaming** – Full AG-UI event processing with validation and transformation - 🔄 **State management** – Automatic message/state tracking with reactive updates - 🪝 **Subscriber system** – Middleware-style hooks for logging, persistence, and custom logic +- 🎯 **Middleware support** – Transform and filter events with function or class-based middleware ## Quick example @@ -37,6 +38,32 @@ const result = await agent.runAgent({ console.log(result.newMessages); ``` +## Using Middleware + +```ts +import { HttpAgent, FilterToolCallsMiddleware } from "@ag-ui/client"; + +const agent = new HttpAgent({ + url: "https://api.example.com/agent", +}); + +// Add middleware to transform or filter events +agent.use( + // Function middleware for logging + (input, next) => { + console.log("Starting run:", input.runId); + return next.run(input); + }, + + // Class middleware for filtering tool calls + new FilterToolCallsMiddleware({ + allowedToolCalls: ["search", "calculate"] + }) +); + +await agent.runAgent(); +``` + ## Documentation - Concepts & architecture: [`docs/concepts`](https://docs.ag-ui.com/concepts/architecture) From edb3a1f9e1947db552491a5c674e85a3b0e0462a Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 25 Sep 2025 23:54:05 +0200 Subject: [PATCH 003/113] wip --- .../__tests__/middleware-with-state.test.ts | 302 ++++++++++++++++++ .../client/src/middleware/middleware.ts | 68 +++- 2 files changed, 368 insertions(+), 2 deletions(-) create mode 100644 typescript-sdk/packages/client/src/middleware/__tests__/middleware-with-state.test.ts diff --git a/typescript-sdk/packages/client/src/middleware/__tests__/middleware-with-state.test.ts b/typescript-sdk/packages/client/src/middleware/__tests__/middleware-with-state.test.ts new file mode 100644 index 000000000..4aebc5da2 --- /dev/null +++ b/typescript-sdk/packages/client/src/middleware/__tests__/middleware-with-state.test.ts @@ -0,0 +1,302 @@ +import { Middleware, EventWithState } from "../middleware"; +import { AbstractAgent } from "@/agent"; +import { + RunAgentInput, + BaseEvent, + EventType, + TextMessageStartEvent, + TextMessageContentEvent, + StateSnapshotEvent, + StateDeltaEvent, + MessagesSnapshotEvent, + ToolCallStartEvent, + ToolCallArgsEvent, + ToolCallEndEvent, +} from "@ag-ui/core"; +import { Observable, from } from "rxjs"; +import { map, toArray } from "rxjs/operators"; + +// Mock agent for testing +class MockAgent extends AbstractAgent { + constructor(private events: BaseEvent[]) { + super(); + } + + run(input: RunAgentInput): Observable { + return from(this.events); + } +} + +// Test middleware that uses runNextWithState +class TestMiddleware extends Middleware { + run(input: RunAgentInput, next: AbstractAgent): Observable { + return this.runNextWithState(input, next).pipe( + map(({ event }) => event) + ); + } + + // Expose for testing + testRunNextWithState( + input: RunAgentInput, + next: AbstractAgent + ): Observable { + return this.runNextWithState(input, next); + } +} + +describe("Middleware.runNextWithState", () => { + it("should track messages as they are built", async () => { + const events: BaseEvent[] = [ + { + type: EventType.TEXT_MESSAGE_START, + messageId: "msg1", + role: "assistant", + } as TextMessageStartEvent, + { + type: EventType.TEXT_MESSAGE_CONTENT, + messageId: "msg1", + delta: "Hello", + } as TextMessageContentEvent, + { + type: EventType.TEXT_MESSAGE_CONTENT, + messageId: "msg1", + delta: " world", + } as TextMessageContentEvent, + ]; + + const agent = new MockAgent(events); + const middleware = new TestMiddleware(); + const input: RunAgentInput = { messages: [], state: {} }; + + const results = await middleware + .testRunNextWithState(input, agent) + .pipe(toArray()) + .toPromise(); + + expect(results).toHaveLength(3); + + // After TEXT_MESSAGE_START, should have one empty message + expect(results![0].messages).toHaveLength(1); + expect(results![0].messages[0].id).toBe("msg1"); + expect(results![0].messages[0].role).toBe("assistant"); + expect(results![0].messages[0].content).toBe(""); + + // After first content chunk + expect(results![1].messages).toHaveLength(1); + expect(results![1].messages[0].content).toBe("Hello"); + + // After second content chunk + expect(results![2].messages).toHaveLength(1); + expect(results![2].messages[0].content).toBe("Hello world"); + }); + + it("should track state changes", async () => { + const events: BaseEvent[] = [ + { + type: EventType.STATE_SNAPSHOT, + snapshot: { counter: 0, name: "test" }, + } as StateSnapshotEvent, + { + type: EventType.STATE_DELTA, + delta: [{ op: "replace", path: "/counter", value: 1 }], + } as StateDeltaEvent, + { + type: EventType.STATE_DELTA, + delta: [{ op: "add", path: "/newField", value: "added" }], + } as StateDeltaEvent, + ]; + + const agent = new MockAgent(events); + const middleware = new TestMiddleware(); + const input: RunAgentInput = { messages: [], state: {} }; + + const results = await middleware + .testRunNextWithState(input, agent) + .pipe(toArray()) + .toPromise(); + + expect(results).toHaveLength(3); + + // After STATE_SNAPSHOT + expect(results![0].state).toEqual({ counter: 0, name: "test" }); + + // After first STATE_DELTA + expect(results![1].state).toEqual({ counter: 1, name: "test" }); + + // After second STATE_DELTA + expect(results![2].state).toEqual({ + counter: 1, + name: "test", + newField: "added", + }); + }); + + it("should handle MESSAGES_SNAPSHOT", async () => { + const events: BaseEvent[] = [ + { + type: EventType.TEXT_MESSAGE_START, + messageId: "msg1", + role: "user", + } as TextMessageStartEvent, + { + type: EventType.TEXT_MESSAGE_CONTENT, + messageId: "msg1", + delta: "First", + } as TextMessageContentEvent, + { + type: EventType.MESSAGES_SNAPSHOT, + messages: [ + { id: "old1", role: "assistant", content: "Previous message" }, + { id: "old2", role: "user", content: "Another message" }, + ], + } as MessagesSnapshotEvent, + ]; + + const agent = new MockAgent(events); + const middleware = new TestMiddleware(); + const input: RunAgentInput = { messages: [], state: {} }; + + const results = await middleware + .testRunNextWithState(input, agent) + .pipe(toArray()) + .toPromise(); + + expect(results).toHaveLength(3); + + // After building a message + expect(results![1].messages).toHaveLength(1); + expect(results![1].messages[0].content).toBe("First"); + + // After MESSAGES_SNAPSHOT - replaces all messages + expect(results![2].messages).toHaveLength(2); + expect(results![2].messages[0].id).toBe("old1"); + expect(results![2].messages[1].id).toBe("old2"); + }); + + it("should track tool calls", async () => { + const events: BaseEvent[] = [ + { + type: EventType.TOOL_CALL_START, + toolCallId: "tool1", + toolCallName: "calculator", + parentMessageId: "msg1", + } as ToolCallStartEvent, + { + type: EventType.TOOL_CALL_ARGS, + toolCallId: "tool1", + delta: '{"operation": "add"', + } as ToolCallArgsEvent, + { + type: EventType.TOOL_CALL_ARGS, + toolCallId: "tool1", + delta: ', "values": [1, 2]}', + } as ToolCallArgsEvent, + { + type: EventType.TOOL_CALL_END, + toolCallId: "tool1", + } as ToolCallEndEvent, + ]; + + const agent = new MockAgent(events); + const middleware = new TestMiddleware(); + const input: RunAgentInput = { messages: [], state: {} }; + + const results = await middleware + .testRunNextWithState(input, agent) + .pipe(toArray()) + .toPromise(); + + expect(results).toHaveLength(4); + + // After TOOL_CALL_START + expect(results![0].messages).toHaveLength(1); + expect(results![0].messages[0].role).toBe("assistant"); + const msg1 = results![0].messages[0] as any; + expect(msg1.toolCalls).toHaveLength(1); + expect(msg1.toolCalls[0].id).toBe("tool1"); + expect(msg1.toolCalls[0].type).toBe("function"); + expect(msg1.toolCalls[0].function.name).toBe("calculator"); + + // After args accumulation + const msg3 = results![2].messages[0] as any; + expect(msg3.toolCalls[0].function.arguments).toBe('{"operation": "add", "values": [1, 2]}'); + + // After TOOL_CALL_END - args remain as string (defaultApplyEvents doesn't parse them) + const msg4 = results![3].messages[0] as any; + expect(msg4.toolCalls[0].function.arguments).toBe('{"operation": "add", "values": [1, 2]}'); + }); + + it("should preserve initial state and messages", async () => { + const events: BaseEvent[] = [ + { + type: EventType.TEXT_MESSAGE_START, + messageId: "new1", + role: "assistant", + } as TextMessageStartEvent, + { + type: EventType.STATE_DELTA, + delta: [{ op: "add", path: "/newField", value: 42 }], + } as StateDeltaEvent, + ]; + + const agent = new MockAgent(events); + const middleware = new TestMiddleware(); + + const input: RunAgentInput = { + messages: [ + { id: "existing1", role: "user", content: "Existing message" }, + ], + state: { existingField: "hello" }, + }; + + const results = await middleware + .testRunNextWithState(input, agent) + .pipe(toArray()) + .toPromise(); + + expect(results).toHaveLength(2); + + // Should preserve existing message and add new one + expect(results![0].messages).toHaveLength(2); + expect(results![0].messages[0].id).toBe("existing1"); + expect(results![0].messages[1].id).toBe("new1"); + + // Should preserve existing state and add new field + expect(results![1].state).toEqual({ + existingField: "hello", + newField: 42, + }); + }); + + it("should provide immutable snapshots", async () => { + const events: BaseEvent[] = [ + { + type: EventType.TEXT_MESSAGE_START, + messageId: "msg1", + role: "assistant", + } as TextMessageStartEvent, + { + type: EventType.STATE_SNAPSHOT, + snapshot: { value: 1 }, + } as StateSnapshotEvent, + ]; + + const agent = new MockAgent(events); + const middleware = new TestMiddleware(); + const input: RunAgentInput = { messages: [], state: {} }; + + const results = await middleware + .testRunNextWithState(input, agent) + .pipe(toArray()) + .toPromise(); + + // Modify returned state/messages - should not affect next results + results![0].messages[0].content = "MODIFIED"; + results![0].state.hacked = true; + + // Second result should not be affected + expect(results![1].messages[0].content).toBe(""); + expect(results![1].state).toEqual({ value: 1 }); + expect(results![1].state.hacked).toBeUndefined(); + }); +}); \ No newline at end of file diff --git a/typescript-sdk/packages/client/src/middleware/middleware.ts b/typescript-sdk/packages/client/src/middleware/middleware.ts index 0fa7f789f..bc713c54e 100644 --- a/typescript-sdk/packages/client/src/middleware/middleware.ts +++ b/typescript-sdk/packages/client/src/middleware/middleware.ts @@ -1,11 +1,75 @@ import { AbstractAgent } from "@/agent"; -import { RunAgentInput, BaseEvent } from "@ag-ui/core"; -import { Observable } from "rxjs"; +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 From e765961a468f7c8bb2f11e3be73f0ed545dbde97 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 25 Sep 2025 23:56:58 +0200 Subject: [PATCH 004/113] update tests --- .../packages/client/src/middleware/filter-tool-calls.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts b/typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts index 86ade3bfd..cbb32786d 100644 --- a/typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts +++ b/typescript-sdk/packages/client/src/middleware/filter-tool-calls.ts @@ -3,7 +3,6 @@ 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"; -import { transformChunks } from "@/chunks"; type FilterToolCallsConfig = | { allowedToolCalls: string[]; disallowedToolCalls?: never } @@ -34,9 +33,8 @@ export class FilterToolCallsMiddleware extends Middleware { } public run(input: RunAgentInput, next: AbstractAgent): Observable { - // Apply transformChunks first to convert TOOL_CALL_CHUNK events - return next.run(input).pipe( - transformChunks(false), + // 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) { From 14a81462440739f8e5d5762365162302d0747f22 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 16 Sep 2025 14:38:21 +0200 Subject: [PATCH 005/113] ensure each agent is cloneable --- integrations/mastra/typescript/src/mastra.ts | 9 ++- .../vercel-ai-sdk/typescript/src/index.ts | 9 ++- .../packages/client/src/agent/agent.ts | 80 ++++++++++--------- 3 files changed, 58 insertions(+), 40 deletions(-) diff --git a/integrations/mastra/typescript/src/mastra.ts b/integrations/mastra/typescript/src/mastra.ts index 63aab3f86..e6b9f95a8 100644 --- a/integrations/mastra/typescript/src/mastra.ts +++ b/integrations/mastra/typescript/src/mastra.ts @@ -51,14 +51,19 @@ export class MastraAgent extends AbstractAgent { resourceId?: string; runtimeContext?: RuntimeContext; - constructor({ agent, resourceId, runtimeContext, ...rest }: MastraAgentConfig) { + constructor(private config: MastraAgentConfig) { + const { agent, resourceId, runtimeContext, ...rest } = config; super(rest); this.agent = agent; this.resourceId = resourceId; this.runtimeContext = runtimeContext ?? new RuntimeContext(); } - run(input: RunAgentInput): Observable { + public clone() { + return new MastraAgent(this.config); + } + + protected run(input: RunAgentInput): Observable { let messageId = randomUUID(); return new Observable((subscriber) => { diff --git a/integrations/vercel-ai-sdk/typescript/src/index.ts b/integrations/vercel-ai-sdk/typescript/src/index.ts index e2d3436c4..6720b0d2a 100644 --- a/integrations/vercel-ai-sdk/typescript/src/index.ts +++ b/integrations/vercel-ai-sdk/typescript/src/index.ts @@ -48,14 +48,19 @@ export class VercelAISDKAgent extends AbstractAgent { model: LanguageModelV1; maxSteps: number; toolChoice: ToolChoice>; - constructor({ model, maxSteps, toolChoice, ...rest }: VercelAISDKAgentConfig) { + constructor(private config: VercelAISDKAgentConfig) { + const { model, maxSteps, toolChoice, ...rest } = config; super({ ...rest }); this.model = model; this.maxSteps = maxSteps ?? 1; this.toolChoice = toolChoice ?? "auto"; } - run(input: RunAgentInput): Observable { + public clone() { + return new VercelAISDKAgent(this.config); + } + + protected run(input: RunAgentInput): Observable { const finalMessages: Message[] = input.messages; return new Observable((subscriber) => { diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 8e2f95610..6fbbf989c 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -27,6 +27,7 @@ export abstract class AbstractAgent { public state: State; public debug: boolean = false; public subscribers: AgentSubscriber[] = []; + public isRunning: boolean = false; constructor({ agentId, @@ -53,49 +54,56 @@ export abstract class AbstractAgent { }; } - abstract run(input: RunAgentInput): Observable; + protected abstract run(input: RunAgentInput): Observable; public async runAgent( parameters?: RunAgentParameters, subscriber?: AgentSubscriber, ): Promise { - this.agentId = this.agentId ?? uuidv4(); - const input = this.prepareRunAgentInput(parameters); - let result: any = undefined; - const currentMessageIds = new Set(this.messages.map((message) => message.id)); - - const subscribers: AgentSubscriber[] = [ - { - onRunFinishedEvent: (params) => { - result = params.result; + try { + this.isRunning = true; + this.agentId = this.agentId ?? uuidv4(); + const input = this.prepareRunAgentInput(parameters); + let result: any = undefined; + const currentMessageIds = new Set(this.messages.map((message) => message.id)); + + const subscribers: AgentSubscriber[] = [ + { + onRunFinishedEvent: (params) => { + result = params.result; + }, }, - }, - ...this.subscribers, - subscriber ?? {}, - ]; - - await this.onInitialize(input, subscribers); - - const pipeline = pipe( - () => this.run(input), - transformChunks(this.debug), - verifyEvents(this.debug), - (source$) => this.apply(input, source$, subscribers), - (source$) => this.processApplyEvents(input, source$, subscribers), - catchError((error) => { - return this.onError(input, error, subscribers); - }), - finalize(() => { - void this.onFinalize(input, subscribers); - }), - ); - - return lastValueFrom(pipeline(of(null))).then(() => { - const newMessages = structuredClone_(this.messages).filter( - (message: Message) => !currentMessageIds.has(message.id), + ...this.subscribers, + subscriber ?? {}, + ]; + + await this.onInitialize(input, subscribers); + + const pipeline = pipe( + () => this.run(input), + transformChunks(this.debug), + verifyEvents(this.debug), + (source$) => this.apply(input, source$, subscribers), + (source$) => this.processApplyEvents(input, source$, subscribers), + catchError((error) => { + this.isRunning = false; + return this.onError(input, error, subscribers); + }), + finalize(() => { + this.isRunning = false; + void this.onFinalize(input, subscribers); + }), ); - return { result, newMessages }; - }); + + 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() {} From baa914b93d3814aea832c79ef8273391a5a983f1 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 16 Sep 2025 15:17:18 +0200 Subject: [PATCH 006/113] add observable events$ property --- .../src/agent/__tests__/agent-result.test.ts | 71 +++++++++++++++++++ .../packages/client/src/agent/agent.ts | 10 ++- 2 files changed, 80 insertions(+), 1 deletion(-) diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts index 5df3a5cf1..75c115921 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 @@ -309,6 +309,77 @@ describe("Agent Result", () => { }); }); + describe("events$ stream", () => { + it("collects events from multiple runs", async () => { + const receivedEvents: BaseEvent[] = []; + const subscription = agent.events$.subscribe((event) => { + receivedEvents.push(event); + }); + + const firstRunEvents: BaseEvent[] = [ + { + type: EventType.RUN_STARTED, + threadId: "test-thread", + runId: "run-1", + } as RunStartedEvent, + { + type: EventType.RUN_FINISHED, + threadId: "test-thread", + runId: "run-1", + } as RunFinishedEvent, + ]; + + agent.setEventsToEmit(firstRunEvents); + await agent.runAgent(); + + const secondRunEvents: BaseEvent[] = [ + { + type: EventType.RUN_STARTED, + threadId: "test-thread", + runId: "run-2", + } as RunStartedEvent, + { + type: EventType.RUN_FINISHED, + threadId: "test-thread", + runId: "run-2", + } as RunFinishedEvent, + ]; + + agent.setEventsToEmit(secondRunEvents); + await agent.runAgent(); + + expect(receivedEvents).toEqual([...firstRunEvents, ...secondRunEvents]); + + subscription.unsubscribe(); + }); + + it("replays historical events to late subscribers", async () => { + const eventsToEmit: BaseEvent[] = [ + { + type: EventType.RUN_STARTED, + threadId: "test-thread", + runId: "run-1", + } as RunStartedEvent, + { + type: EventType.RUN_FINISHED, + threadId: "test-thread", + runId: "run-1", + } as RunFinishedEvent, + ]; + + agent.setEventsToEmit(eventsToEmit); + await agent.runAgent(); + + const lateSubscriberEvents: BaseEvent[] = []; + const subscription = agent.events$.subscribe((event) => { + lateSubscriberEvents.push(event); + }); + subscription.unsubscribe(); + + expect(lateSubscriberEvents).toEqual(eventsToEmit); + }); + }); + describe("combined result and newMessages", () => { it("should return both result and newMessages correctly", async () => { const newMessages: Message[] = [ diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 6fbbf989c..86e58107c 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -6,7 +6,7 @@ import { v4 as uuidv4 } from "uuid"; import { structuredClone_ } from "@/utils"; import { catchError, map, tap } from "rxjs/operators"; import { finalize } from "rxjs/operators"; -import { pipe, Observable, from, of } from "rxjs"; +import { pipe, Observable, ReplaySubject, from, of } from "rxjs"; import { verifyEvents } from "@/verify"; import { convertToLegacyEvents } from "@/legacy/convert"; import { LegacyRuntimeProtocolEvent } from "@/legacy/types"; @@ -28,6 +28,8 @@ export abstract class AbstractAgent { public debug: boolean = false; public subscribers: AgentSubscriber[] = []; public isRunning: boolean = false; + private readonly eventsSubject = new ReplaySubject(); + public readonly events$ = this.eventsSubject.asObservable(); constructor({ agentId, @@ -83,6 +85,9 @@ export abstract class AbstractAgent { () => this.run(input), transformChunks(this.debug), verifyEvents(this.debug), + tap((event) => { + this.eventsSubject.next(event); + }), (source$) => this.apply(input, source$, subscribers), (source$) => this.processApplyEvents(input, source$, subscribers), catchError((error) => { @@ -427,6 +432,9 @@ export abstract class AbstractAgent { return this.run(input).pipe( transformChunks(this.debug), verifyEvents(this.debug), + tap((event) => { + this.eventsSubject.next(event); + }), convertToLegacyEvents(this.threadId, input.runId, this.agentId), (events$: Observable) => { return events$.pipe( From 25d6b58b39255f9c3406d8fbd57fa570c9f3bcbb Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 16 Sep 2025 16:20:20 +0200 Subject: [PATCH 007/113] v0.0.38-alpha.0 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 08d7a16d6..546356ed7 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40", + "version": "0.0.40-alpha.0", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index c963ffe1a..2ef5560c2 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40", + "version": "0.0.38-alpha.0", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index d3626f998..6ad585b1c 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.39", + "version": "0.0.38-alpha.0", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index b95c5ee70..7108ca48a 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.39", + "version": "0.0.38-alpha.0", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 7c1fed72b..c069f26b6 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.39", + "version": "0.0.38-alpha.0", "private": false, "publishConfig": { "access": "public" From 9982cae3853a66f384cffc5a5f4c4f12f13e2491 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 17 Sep 2025 11:18:38 +0200 Subject: [PATCH 008/113] Implement connect --- .../packages/client/src/agent/agent.ts | 62 ++++++++++++++++++- sdks/typescript/packages/core/src/types.ts | 6 ++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 86e58107c..8eac12b68 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -6,13 +6,14 @@ import { v4 as uuidv4 } from "uuid"; import { structuredClone_ } from "@/utils"; import { catchError, map, tap } from "rxjs/operators"; import { finalize } from "rxjs/operators"; -import { pipe, Observable, ReplaySubject, from, of } from "rxjs"; +import { pipe, Observable, ReplaySubject, from, of, EMPTY } from "rxjs"; import { verifyEvents } from "@/verify"; import { convertToLegacyEvents } from "@/legacy/convert"; import { LegacyRuntimeProtocolEvent } from "@/legacy/types"; import { lastValueFrom } from "rxjs"; import { transformChunks } from "@/chunks"; import { AgentStateMutation, AgentSubscriber, runSubscribersWithMutation } from "./subscriber"; +import { AGUIConnectNotImplementedError } from "@ag-ui/core"; export interface RunAgentResult { result: any; @@ -111,6 +112,65 @@ export abstract class AbstractAgent { } } + 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), + tap((event) => { + this.eventsSubject.next(event); + }), + (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); + }), + ); + + 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() {} protected apply( diff --git a/sdks/typescript/packages/core/src/types.ts b/sdks/typescript/packages/core/src/types.ts index 1abb31a0b..0b5b17224 100644 --- a/sdks/typescript/packages/core/src/types.ts +++ b/sdks/typescript/packages/core/src/types.ts @@ -105,3 +105,9 @@ 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."); + } +} From 1c1b4849ead7f104f23e6dbde03ccb65d9fa6c19 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 17 Sep 2025 11:18:52 +0200 Subject: [PATCH 009/113] v0.0.40-alpha.1 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 546356ed7..86a5d9a80 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.0", + "version": "0.0.40-alpha.1", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index 2ef5560c2..e1835b796 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.38-alpha.0", + "version": "0.0.38-alpha.1", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 6ad585b1c..5f1cd241c 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.38-alpha.0", + "version": "0.0.38-alpha.1", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 7108ca48a..4ab8e3e7c 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.38-alpha.0", + "version": "0.0.38-alpha.1", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index c069f26b6..ccb76de6c 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.38-alpha.0", + "version": "0.0.38-alpha.1", "private": false, "publishConfig": { "access": "public" From b51fbda6b4c2d7b8c4de503b37b54a722faaacdf Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 18 Sep 2025 16:05:24 +0200 Subject: [PATCH 010/113] v0.0.38-alpha.2 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/client/src/agent/index.ts | 6 +++++- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 6 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 86a5d9a80..629b098c4 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.1", + "version": "0.0.40-alpha.2", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index e1835b796..0ce92a719 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.38-alpha.1", + "version": "0.0.38-alpha.2", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/src/agent/index.ts b/sdks/typescript/packages/client/src/agent/index.ts index e1a25b101..cc34d7df9 100644 --- a/sdks/typescript/packages/client/src/agent/index.ts +++ b/sdks/typescript/packages/client/src/agent/index.ts @@ -2,4 +2,8 @@ export { AbstractAgent } from "./agent"; export type { RunAgentResult } from "./agent"; export { HttpAgent } from "./http"; export type { AgentConfig, HttpAgentConfig, RunAgentParameters } from "./types"; -export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams} from "./subscriber"; \ No newline at end of file +<<<<<<< HEAD:sdks/typescript/packages/client/src/agent/index.ts +export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams } from "./subscriber"; +======= +export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams } from "./subscriber"; +>>>>>>> 954cfdc (v0.0.38-alpha.2):typescript-sdk/packages/client/src/agent/index.ts diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 5f1cd241c..be3cfeee0 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.38-alpha.1", + "version": "0.0.38-alpha.2", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 4ab8e3e7c..15ce98b57 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.38-alpha.1", + "version": "0.0.38-alpha.2", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index ccb76de6c..8e980061b 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.38-alpha.1", + "version": "0.0.38-alpha.2", "private": false, "publishConfig": { "access": "public" From 35f48121768498031558505aaabda19d2cf11a69 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 24 Sep 2025 21:56:14 +0200 Subject: [PATCH 011/113] Add docs --- docs/sdk/js/client/abstract-agent.mdx | 40 +++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/docs/sdk/js/client/abstract-agent.mdx b/docs/sdk/js/client/abstract-agent.mdx index 3738b0aae..cf322d214 100644 --- a/docs/sdk/js/client/abstract-agent.mdx +++ b/docs/sdk/js/client/abstract-agent.mdx @@ -111,6 +111,33 @@ Creates a deep copy of the agent instance. clone(): AbstractAgent ``` +### connectAgent() + +Establishes a persistent connection with an agent that implements the +`connect()` method. + +```typescript +connectAgent(parameters?: RunAgentParameters, subscriber?: AgentSubscriber): Promise +``` + +Similar to `runAgent()` but uses the `connect()` method internally. The agent +must implement `connect()` or this functionality must be provided by a framework +like [CopilotKit](https://copilotkit.ai). + +## Observable Properties + +### events$ + +An observable stream of all events emitted during agent execution. + +```typescript +events$: Observable +``` + +This property provides direct access to the agent's event stream. Events are +stored using a `ReplaySubject`, allowing late subscribers will receive all +historical events. + ## Properties - `agentId`: Unique identifier for the agent instance @@ -118,6 +145,8 @@ clone(): AbstractAgent - `threadId`: Conversation thread identifier - `messages`: Array of conversation messages - `state`: Current agent state object +- `events$`: Observable stream of all `BaseEvent` objects emitted during agent + execution (replayed for late subscribers) ## Protected Methods @@ -131,6 +160,17 @@ Executes the agent and returns an observable event stream. protected abstract run(input: RunAgentInput): RunAgent ``` +### connect() + +Establishes a persistent connection and returns an observable event stream. + +```typescript +protected connect(input: RunAgentInput): RunAgent +``` + +Override this method to implement persistent connections. Default implementation +throws `ConnectNotImplementedError`. + ### apply() Processes events from the run and updates the agent state. From cb098ea10e1f8f023194591a5a3ec44146e694bd Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 1 Oct 2025 13:15:15 +0200 Subject: [PATCH 012/113] remove events$ --- .../src/agent/__tests__/agent-result.test.ts | 71 ------------------- .../packages/client/src/agent/agent.ts | 13 +--- 2 files changed, 1 insertion(+), 83 deletions(-) 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 75c115921..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 @@ -309,77 +309,6 @@ describe("Agent Result", () => { }); }); - describe("events$ stream", () => { - it("collects events from multiple runs", async () => { - const receivedEvents: BaseEvent[] = []; - const subscription = agent.events$.subscribe((event) => { - receivedEvents.push(event); - }); - - const firstRunEvents: BaseEvent[] = [ - { - type: EventType.RUN_STARTED, - threadId: "test-thread", - runId: "run-1", - } as RunStartedEvent, - { - type: EventType.RUN_FINISHED, - threadId: "test-thread", - runId: "run-1", - } as RunFinishedEvent, - ]; - - agent.setEventsToEmit(firstRunEvents); - await agent.runAgent(); - - const secondRunEvents: BaseEvent[] = [ - { - type: EventType.RUN_STARTED, - threadId: "test-thread", - runId: "run-2", - } as RunStartedEvent, - { - type: EventType.RUN_FINISHED, - threadId: "test-thread", - runId: "run-2", - } as RunFinishedEvent, - ]; - - agent.setEventsToEmit(secondRunEvents); - await agent.runAgent(); - - expect(receivedEvents).toEqual([...firstRunEvents, ...secondRunEvents]); - - subscription.unsubscribe(); - }); - - it("replays historical events to late subscribers", async () => { - const eventsToEmit: BaseEvent[] = [ - { - type: EventType.RUN_STARTED, - threadId: "test-thread", - runId: "run-1", - } as RunStartedEvent, - { - type: EventType.RUN_FINISHED, - threadId: "test-thread", - runId: "run-1", - } as RunFinishedEvent, - ]; - - agent.setEventsToEmit(eventsToEmit); - await agent.runAgent(); - - const lateSubscriberEvents: BaseEvent[] = []; - const subscription = agent.events$.subscribe((event) => { - lateSubscriberEvents.push(event); - }); - subscription.unsubscribe(); - - expect(lateSubscriberEvents).toEqual(eventsToEmit); - }); - }); - describe("combined result and newMessages", () => { it("should return both result and newMessages correctly", async () => { const newMessages: Message[] = [ diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 8eac12b68..b81c3a140 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -6,7 +6,7 @@ import { v4 as uuidv4 } from "uuid"; import { structuredClone_ } from "@/utils"; import { catchError, map, tap } from "rxjs/operators"; import { finalize } from "rxjs/operators"; -import { pipe, Observable, ReplaySubject, from, of, EMPTY } from "rxjs"; +import { pipe, Observable, from, of, EMPTY } from "rxjs"; import { verifyEvents } from "@/verify"; import { convertToLegacyEvents } from "@/legacy/convert"; import { LegacyRuntimeProtocolEvent } from "@/legacy/types"; @@ -29,8 +29,6 @@ export abstract class AbstractAgent { public debug: boolean = false; public subscribers: AgentSubscriber[] = []; public isRunning: boolean = false; - private readonly eventsSubject = new ReplaySubject(); - public readonly events$ = this.eventsSubject.asObservable(); constructor({ agentId, @@ -86,9 +84,6 @@ export abstract class AbstractAgent { () => this.run(input), transformChunks(this.debug), verifyEvents(this.debug), - tap((event) => { - this.eventsSubject.next(event); - }), (source$) => this.apply(input, source$, subscribers), (source$) => this.processApplyEvents(input, source$, subscribers), catchError((error) => { @@ -142,9 +137,6 @@ export abstract class AbstractAgent { () => this.connect(input), transformChunks(this.debug), verifyEvents(this.debug), - tap((event) => { - this.eventsSubject.next(event); - }), (source$) => this.apply(input, source$, subscribers), (source$) => this.processApplyEvents(input, source$, subscribers), catchError((error) => { @@ -492,9 +484,6 @@ export abstract class AbstractAgent { return this.run(input).pipe( transformChunks(this.debug), verifyEvents(this.debug), - tap((event) => { - this.eventsSubject.next(event); - }), convertToLegacyEvents(this.threadId, input.runId, this.agentId), (events$: Observable) => { return events$.pipe( From 17228370ce59d3659f4f29996c2aa782a5d047dd Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 1 Oct 2025 13:19:35 +0200 Subject: [PATCH 013/113] 0.0.40-alpha.2 --- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/client/src/agent/index.ts | 4 ---- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 4 insertions(+), 8 deletions(-) diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index 0ce92a719..a80cf385f 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.38-alpha.2", + "version": "0.0.40-alpha.2", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/src/agent/index.ts b/sdks/typescript/packages/client/src/agent/index.ts index cc34d7df9..046bfa90b 100644 --- a/sdks/typescript/packages/client/src/agent/index.ts +++ b/sdks/typescript/packages/client/src/agent/index.ts @@ -2,8 +2,4 @@ export { AbstractAgent } from "./agent"; export type { RunAgentResult } from "./agent"; export { HttpAgent } from "./http"; export type { AgentConfig, HttpAgentConfig, RunAgentParameters } from "./types"; -<<<<<<< HEAD:sdks/typescript/packages/client/src/agent/index.ts export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams } from "./subscriber"; -======= -export type { AgentSubscriber, AgentStateMutation, AgentSubscriberParams } from "./subscriber"; ->>>>>>> 954cfdc (v0.0.38-alpha.2):typescript-sdk/packages/client/src/agent/index.ts diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index be3cfeee0..9662886fc 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.38-alpha.2", + "version": "0.0.40-alpha.2", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 15ce98b57..d5b9e20d0 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.38-alpha.2", + "version": "0.0.40-alpha.2", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 8e980061b..8e8afbef0 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.38-alpha.2", + "version": "0.0.40-alpha.2", "private": false, "publishConfig": { "access": "public" From 8b0e4fa3fab079cfccb5628bcbfb1b3e654de4f4 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 1 Oct 2025 13:54:22 +0200 Subject: [PATCH 014/113] adapt cloning logic --- .../src/agent/__tests__/agent-clone.test.ts | 81 +++++++++++++++++++ .../packages/client/src/agent/agent.ts | 14 ++-- .../packages/client/src/agent/http.ts | 15 ++++ 3 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts new file mode 100644 index 000000000..3fb00e8a0 --- /dev/null +++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts @@ -0,0 +1,81 @@ +import { AbstractAgent } from "../agent"; +import { HttpAgent } from "../http"; +import { BaseEvent, Message, RunAgentInput } from "@ag-ui/core"; +import { EMPTY, Observable } from "rxjs"; + +class CloneableTestAgent extends AbstractAgent { + constructor() { + super({ + agentId: "test-agent", + description: "Cloneable test agent", + threadId: "thread-test", + initialMessages: [ + { + id: "msg-1", + role: "user", + content: "Hello world", + toolCalls: [], + } as Message, + ], + initialState: { stage: "initial" }, + }); + } + + protected run(_: RunAgentInput): Observable { + return EMPTY as Observable; + } +} + +describe("AbstractAgent cloning", () => { + it("clones subclass instances with independent state", () => { + const agent = new CloneableTestAgent(); + + const cloned = agent.clone() as CloneableTestAgent; + + expect(cloned).toBeInstanceOf(CloneableTestAgent); + expect(cloned).not.toBe(agent); + expect(cloned.agentId).toBe(agent.agentId); + expect(cloned.threadId).toBe(agent.threadId); + expect(cloned.messages).toEqual(agent.messages); + expect(cloned.messages).not.toBe(agent.messages); + expect(cloned.state).toEqual(agent.state); + expect(cloned.state).not.toBe(agent.state); + }); +}); + +describe("HttpAgent cloning", () => { + it("produces a new HttpAgent with cloned configuration and abort controller", () => { + const httpAgent = new HttpAgent({ + url: "https://example.com/agent", + headers: { Authorization: "Bearer token" }, + threadId: "thread-http", + initialMessages: [ + { + id: "msg-http", + role: "assistant", + content: "response", + toolCalls: [], + } as Message, + ], + initialState: { status: "ready" }, + }); + + httpAgent.abortController.abort("cancelled"); + + const cloned = httpAgent.clone() as HttpAgent; + + expect(cloned).toBeInstanceOf(HttpAgent); + expect(cloned).not.toBe(httpAgent); + expect(cloned.url).toBe(httpAgent.url); + expect(cloned.headers).toEqual(httpAgent.headers); + expect(cloned.headers).not.toBe(httpAgent.headers); + expect(cloned.messages).toEqual(httpAgent.messages); + expect(cloned.messages).not.toBe(httpAgent.messages); + expect(cloned.state).toEqual(httpAgent.state); + expect(cloned.state).not.toBe(httpAgent.state); + expect(cloned.abortController).not.toBe(httpAgent.abortController); + expect(cloned.abortController).toBeInstanceOf(AbortController); + expect(cloned.abortController.signal.aborted).toBe(true); + expect(cloned.abortController.signal.reason).toBe("cancelled"); + }); +}); diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index b81c3a140..081cd1934 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -346,12 +346,14 @@ export abstract class AbstractAgent { public clone() { const cloned = Object.create(Object.getPrototypeOf(this)); - for (const key of Object.getOwnPropertyNames(this)) { - const value = (this as any)[key]; - if (typeof value !== "function") { - cloned[key] = structuredClone_(value); - } - } + cloned.agentId = this.agentId; + cloned.description = this.description; + cloned.threadId = this.threadId; + cloned.messages = structuredClone_(this.messages); + cloned.state = structuredClone_(this.state); + cloned.debug = this.debug; + cloned.isRunning = this.isRunning; + cloned.subscribers = [...this.subscribers]; return cloned; } diff --git a/sdks/typescript/packages/client/src/agent/http.ts b/sdks/typescript/packages/client/src/agent/http.ts index 49fae2173..f9d9c3002 100644 --- a/sdks/typescript/packages/client/src/agent/http.ts +++ b/sdks/typescript/packages/client/src/agent/http.ts @@ -58,4 +58,19 @@ export class HttpAgent extends AbstractAgent { const httpEvents = runHttpRequest(this.url, this.requestInit(input)); return transformHttpEventStream(httpEvents); } + + public clone(): HttpAgent { + const cloned = super.clone() as HttpAgent; + cloned.url = this.url; + cloned.headers = structuredClone_(this.headers ?? {}); + + const newController = new AbortController(); + const originalSignal = this.abortController.signal as AbortSignal & { reason?: unknown }; + if (originalSignal.aborted) { + newController.abort(originalSignal.reason); + } + cloned.abortController = newController; + + return cloned; + } } From e8b4036c0780f7caeb569b5d920e014b55840c57 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 1 Oct 2025 13:54:41 +0200 Subject: [PATCH 015/113] v0.0.40-alpha.3 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 629b098c4..f0b0a012c 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.2", + "version": "0.0.40-alpha.3", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index a80cf385f..acf9e509c 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.2", + "version": "0.0.40-alpha.3", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 9662886fc..77c8c5154 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-alpha.2", + "version": "0.0.40-alpha.3", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index d5b9e20d0..e2d93960e 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-alpha.2", + "version": "0.0.40-alpha.3", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 8e8afbef0..feffba233 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-alpha.2", + "version": "0.0.40-alpha.3", "private": false, "publishConfig": { "access": "public" From 56830d6e905148ea3df7211885083dbf310b503b Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 13 Oct 2025 14:35:54 +0200 Subject: [PATCH 016/113] move compact logic to AG-UI package --- .../src/compact/__tests__/compact.test.ts | 287 ++++++++++++++++++ .../packages/client/src/compact/compact.ts | 252 +++++++++++++++ .../packages/client/src/compact/index.ts | 0 3 files changed, 539 insertions(+) create mode 100644 typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts create mode 100644 typescript-sdk/packages/client/src/compact/compact.ts create mode 100644 typescript-sdk/packages/client/src/compact/index.ts diff --git a/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts b/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts new file mode 100644 index 000000000..9ece346e9 --- /dev/null +++ b/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts @@ -0,0 +1,287 @@ +import { compactEvents } from "../compact"; +import { BaseEvent, EventType } from "@ag-ui/core"; + +describe("Event Compaction", () => { + describe("Text Message Compaction", () => { + it("should compact multiple text message content events into one", () => { + const events: BaseEvent[] = [ + { 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 any).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: BaseEvent[] = [ + { 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 any).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 any).id).toBe("custom1"); + expect(compacted[4].type).toBe(EventType.CUSTOM); + expect((compacted[4] as any).id).toBe("custom2"); + }); + + it("should handle multiple messages independently", () => { + const events: BaseEvent[] = [ + { 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 any).messageId).toBe("msg1"); + expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT); + expect((compacted[1] as any).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 any).messageId).toBe("msg2"); + expect(compacted[4].type).toBe(EventType.TEXT_MESSAGE_CONTENT); + expect((compacted[4] as any).delta).toBe("Hello there"); + expect(compacted[5].type).toBe(EventType.TEXT_MESSAGE_END); + }); + + it("should handle incomplete messages", () => { + const events: BaseEvent[] = [ + { 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 any).delta).toBe("Incomplete"); + }); + + it("should pass through non-text-message events unchanged", () => { + const events: BaseEvent[] = [ + { 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: BaseEvent[] = [ + { 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 any).delta).toBe("Hello"); + }); + }); + + describe("Tool Call Compaction", () => { + it("should compact multiple tool call args events into one", () => { + const events: BaseEvent[] = [ + { + 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 any).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: BaseEvent[] = [ + { + 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 any).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 any).id).toBe("custom1"); + expect(compacted[4].type).toBe(EventType.CUSTOM); + expect((compacted[4] as any).id).toBe("custom2"); + }); + + it("should handle multiple tool calls independently", () => { + const events: BaseEvent[] = [ + { + 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 any).toolCallId).toBe("tool1"); + expect(compacted[1].type).toBe(EventType.TOOL_CALL_ARGS); + expect((compacted[1] as any).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 any).toolCallId).toBe("tool2"); + expect(compacted[4].type).toBe(EventType.TOOL_CALL_ARGS); + expect((compacted[4] as any).delta).toBe('{"a": 5}'); + expect(compacted[5].type).toBe(EventType.TOOL_CALL_END); + }); + + it("should handle incomplete tool calls", () => { + const events: BaseEvent[] = [ + { + 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 any).delta).toBe('{"incomplete": '); + }); + + it("should handle empty args deltas", () => { + const events: BaseEvent[] = [ + { + 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 any).delta).toBe('{"test": true}'); + }); + }); + + describe("Mixed Compaction", () => { + it("should handle text messages and tool calls together", () => { + const events: BaseEvent[] = [ + { 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 any).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 any).delta).toBe('{"q": "test"}'); + expect(compacted[5].type).toBe(EventType.TOOL_CALL_END); + }); + }); +}); diff --git a/typescript-sdk/packages/client/src/compact/compact.ts b/typescript-sdk/packages/client/src/compact/compact.ts new file mode 100644 index 000000000..b34c08e6a --- /dev/null +++ b/typescript-sdk/packages/client/src/compact/compact.ts @@ -0,0 +1,252 @@ +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/typescript-sdk/packages/client/src/compact/index.ts b/typescript-sdk/packages/client/src/compact/index.ts new file mode 100644 index 000000000..e69de29bb From 9252c6f1f56894448823934428766ad2f1395db1 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 13 Oct 2025 14:40:46 +0200 Subject: [PATCH 017/113] fix linter errors --- .../src/compact/__tests__/compact.test.ts | 77 ++++++++++--------- 1 file changed, 42 insertions(+), 35 deletions(-) diff --git a/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts b/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts index 9ece346e9..17ccb017c 100644 --- a/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts +++ b/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts @@ -1,10 +1,17 @@ import { compactEvents } from "../compact"; -import { BaseEvent, EventType } from "@ag-ui/core"; +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: BaseEvent[] = [ + 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: " " }, @@ -17,12 +24,12 @@ describe("Event Compaction", () => { 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 any).delta).toBe("Hello world"); + 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: BaseEvent[] = [ + 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" }, @@ -37,17 +44,17 @@ describe("Event Compaction", () => { // 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 any).delta).toBe("Processing..."); + 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 any).id).toBe("custom1"); + expect((compacted[3] as CustomEvent & { id: string }).id).toBe("custom1"); expect(compacted[4].type).toBe(EventType.CUSTOM); - expect((compacted[4] as any).id).toBe("custom2"); + expect((compacted[4] as CustomEvent & { id: string }).id).toBe("custom2"); }); it("should handle multiple messages independently", () => { - const events: BaseEvent[] = [ + 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" }, @@ -62,20 +69,20 @@ describe("Event Compaction", () => { expect(compacted).toHaveLength(6); // First message expect(compacted[0].type).toBe(EventType.TEXT_MESSAGE_START); - expect((compacted[0] as any).messageId).toBe("msg1"); + expect((compacted[0] as TextMessageStartEvent).messageId).toBe("msg1"); expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT); - expect((compacted[1] as any).delta).toBe("Hi"); + 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 any).messageId).toBe("msg2"); + expect((compacted[3] as TextMessageStartEvent).messageId).toBe("msg2"); expect(compacted[4].type).toBe(EventType.TEXT_MESSAGE_CONTENT); - expect((compacted[4] as any).delta).toBe("Hello there"); + 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: BaseEvent[] = [ + const events = [ { type: EventType.TEXT_MESSAGE_START, messageId: "msg1", role: "user" }, { type: EventType.TEXT_MESSAGE_CONTENT, messageId: "msg1", delta: "Incomplete" }, // No END event @@ -86,11 +93,11 @@ describe("Event Compaction", () => { 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 any).delta).toBe("Incomplete"); + expect((compacted[1] as TextMessageContentEvent).delta).toBe("Incomplete"); }); it("should pass through non-text-message events unchanged", () => { - const events: BaseEvent[] = [ + 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" }, @@ -102,7 +109,7 @@ describe("Event Compaction", () => { }); it("should handle empty content deltas", () => { - const events: BaseEvent[] = [ + 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" }, @@ -113,13 +120,13 @@ describe("Event Compaction", () => { const compacted = compactEvents(events); expect(compacted).toHaveLength(3); - expect((compacted[1] as any).delta).toBe("Hello"); + expect((compacted[1] as TextMessageContentEvent).delta).toBe("Hello"); }); }); describe("Tool Call Compaction", () => { it("should compact multiple tool call args events into one", () => { - const events: BaseEvent[] = [ + const events = [ { type: EventType.TOOL_CALL_START, toolCallId: "tool1", @@ -138,12 +145,12 @@ describe("Event Compaction", () => { 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 any).delta).toBe('{"query": "weather today"}'); + 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: BaseEvent[] = [ + const events = [ { type: EventType.TOOL_CALL_START, toolCallId: "tool1", @@ -163,17 +170,17 @@ describe("Event Compaction", () => { // 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 any).delta).toBe('{"a": 10, "b": 20}'); + 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 any).id).toBe("custom1"); + expect((compacted[3] as CustomEvent & { id: string }).id).toBe("custom1"); expect(compacted[4].type).toBe(EventType.CUSTOM); - expect((compacted[4] as any).id).toBe("custom2"); + expect((compacted[4] as CustomEvent & { id: string }).id).toBe("custom2"); }); it("should handle multiple tool calls independently", () => { - const events: BaseEvent[] = [ + const events = [ { type: EventType.TOOL_CALL_START, toolCallId: "tool1", @@ -198,20 +205,20 @@ describe("Event Compaction", () => { expect(compacted).toHaveLength(6); // First tool call expect(compacted[0].type).toBe(EventType.TOOL_CALL_START); - expect((compacted[0] as any).toolCallId).toBe("tool1"); + expect((compacted[0] as ToolCallStartEvent).toolCallId).toBe("tool1"); expect(compacted[1].type).toBe(EventType.TOOL_CALL_ARGS); - expect((compacted[1] as any).delta).toBe('{"query": "test"}'); + 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 any).toolCallId).toBe("tool2"); + expect((compacted[3] as ToolCallStartEvent).toolCallId).toBe("tool2"); expect(compacted[4].type).toBe(EventType.TOOL_CALL_ARGS); - expect((compacted[4] as any).delta).toBe('{"a": 5}'); + 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: BaseEvent[] = [ + const events = [ { type: EventType.TOOL_CALL_START, toolCallId: "tool1", @@ -227,11 +234,11 @@ describe("Event Compaction", () => { 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 any).delta).toBe('{"incomplete": '); + expect((compacted[1] as ToolCallArgsEvent).delta).toBe('{"incomplete": '); }); it("should handle empty args deltas", () => { - const events: BaseEvent[] = [ + const events = [ { type: EventType.TOOL_CALL_START, toolCallId: "tool1", @@ -247,13 +254,13 @@ describe("Event Compaction", () => { const compacted = compactEvents(events); expect(compacted).toHaveLength(3); - expect((compacted[1] as any).delta).toBe('{"test": true}'); + expect((compacted[1] as ToolCallArgsEvent).delta).toBe('{"test": true}'); }); }); describe("Mixed Compaction", () => { it("should handle text messages and tool calls together", () => { - const events: BaseEvent[] = [ + 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" }, @@ -275,12 +282,12 @@ describe("Event Compaction", () => { // Text message expect(compacted[0].type).toBe(EventType.TEXT_MESSAGE_START); expect(compacted[1].type).toBe(EventType.TEXT_MESSAGE_CONTENT); - expect((compacted[1] as any).delta).toBe("Let me search for that"); + 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 any).delta).toBe('{"q": "test"}'); + expect((compacted[4] as ToolCallArgsEvent).delta).toBe('{"q": "test"}'); expect(compacted[5].type).toBe(EventType.TOOL_CALL_END); }); }); From 534c291be7484f106c6c1abc10ccf5b4b9c4a175 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 13 Oct 2025 14:43:29 +0200 Subject: [PATCH 018/113] export compactEvents --- .../packages/client/src/compact/__tests__/compact.test.ts | 0 .../typescript}/packages/client/src/compact/compact.ts | 0 sdks/typescript/packages/client/src/compact/index.ts | 1 + sdks/typescript/packages/client/src/index.ts | 1 + typescript-sdk/packages/client/src/compact/index.ts | 0 5 files changed, 2 insertions(+) rename {typescript-sdk => sdks/typescript}/packages/client/src/compact/__tests__/compact.test.ts (100%) rename {typescript-sdk => sdks/typescript}/packages/client/src/compact/compact.ts (100%) create mode 100644 sdks/typescript/packages/client/src/compact/index.ts delete mode 100644 typescript-sdk/packages/client/src/compact/index.ts diff --git a/typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts b/sdks/typescript/packages/client/src/compact/__tests__/compact.test.ts similarity index 100% rename from typescript-sdk/packages/client/src/compact/__tests__/compact.test.ts rename to sdks/typescript/packages/client/src/compact/__tests__/compact.test.ts diff --git a/typescript-sdk/packages/client/src/compact/compact.ts b/sdks/typescript/packages/client/src/compact/compact.ts similarity index 100% rename from typescript-sdk/packages/client/src/compact/compact.ts rename to sdks/typescript/packages/client/src/compact/compact.ts diff --git a/sdks/typescript/packages/client/src/compact/index.ts b/sdks/typescript/packages/client/src/compact/index.ts new file mode 100644 index 000000000..bb036168b --- /dev/null +++ b/sdks/typescript/packages/client/src/compact/index.ts @@ -0,0 +1 @@ +export { compactEvents } from "./compact"; diff --git a/sdks/typescript/packages/client/src/index.ts b/sdks/typescript/packages/client/src/index.ts index aa4a0a5ef..a6300de99 100644 --- a/sdks/typescript/packages/client/src/index.ts +++ b/sdks/typescript/packages/client/src/index.ts @@ -5,5 +5,6 @@ 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/typescript-sdk/packages/client/src/compact/index.ts b/typescript-sdk/packages/client/src/compact/index.ts deleted file mode 100644 index e69de29bb..000000000 From 4f0288d97168ed11576f191726410dbad86717ef Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 13 Oct 2025 15:35:58 +0200 Subject: [PATCH 019/113] ensure allowing extra fields for backwards compatibility --- sdks/python/ag_ui/core/types.py | 2 +- sdks/python/tests/test_types.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sdks/python/ag_ui/core/types.py b/sdks/python/ag_ui/core/types.py index 47b7ae182..d22d4eab7 100644 --- a/sdks/python/ag_ui/core/types.py +++ b/sdks/python/ag_ui/core/types.py @@ -13,7 +13,7 @@ class ConfiguredBaseModel(BaseModel): A configurable base model. """ model_config = ConfigDict( - extra="forbid", + extra="allow", alias_generator=to_camel, populate_by_name=True, ) diff --git a/sdks/python/tests/test_types.py b/sdks/python/tests/test_types.py index e534aa5ab..27eedff0a 100644 --- a/sdks/python/tests/test_types.py +++ b/sdks/python/tests/test_types.py @@ -368,15 +368,17 @@ def test_validation_errors(self): with self.assertRaises(ValidationError): UserMessage.model_validate(missing_id_data) - # Test extra fields + # Test extra fields are now allowed for backwards compatibility extra_field_data = { "id": "msg_456", "role": "user", "content": "Hello", - "extra_field": "This shouldn't be here" # Extra field + "extra_field": "This is allowed for backwards compatibility" # Extra field } - with self.assertRaises(ValidationError): - UserMessage.model_validate(extra_field_data) + # Should not raise an error - extra fields are allowed + msg = UserMessage.model_validate(extra_field_data) + self.assertEqual(msg.id, "msg_456") + self.assertEqual(msg.content, "Hello") # Test invalid tool_call_id in ToolMessage invalid_tool_data = { From 7963835879041e325caa1c823f95c7b00b1b364b Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 13 Oct 2025 15:36:15 +0200 Subject: [PATCH 020/113] Add test for typescript backwards compat --- .../__tests__/backwards-compatibility.test.ts | 250 ++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts diff --git a/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts b/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts new file mode 100644 index 000000000..2cdeb48be --- /dev/null +++ b/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts @@ -0,0 +1,250 @@ +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", + 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"); + } + }); + + 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); + } + }); + }); +}); From 172166a64bb2b6fab4a2bc4979211e1796c0137d Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 14 Oct 2025 10:25:16 +0200 Subject: [PATCH 021/113] add docs --- docs/concepts/events.mdx | 10 ++++++---- docs/sdk/js/core/events.mdx | 12 ++++++++---- docs/sdk/python/core/events.mdx | 12 ++++++++---- sdks/python/ag_ui/core/events.py | 4 +++- sdks/typescript/packages/core/src/events.ts | 4 +++- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/docs/concepts/events.mdx b/docs/concepts/events.mdx index 920b203b9..0f1c2b7ac 100644 --- a/docs/concepts/events.mdx +++ b/docs/concepts/events.mdx @@ -83,10 +83,12 @@ elements such as progress indicators or loading states. It also provides crucial identifiers that can be used to associate subsequent events with this specific run. -| Property | Description | -| ---------- | ----------------------------- | -| `threadId` | ID of the conversation thread | -| `runId` | ID of the agent run | +| Property | Description | +| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `threadId` | ID of the conversation thread | +| `runId` | ID of the agent run | +| `parentRunId` | (Optional) Lineage pointer for branching/time travel. If present, refers to a prior run within the same thread, creating a git-like append-only log | +| `input` | (Optional) The exact agent input payload that was sent to the agent for this run. May omit messages already present in history; compactEvents() will normalize | ### RunFinished diff --git a/docs/sdk/js/core/events.mdx b/docs/sdk/js/core/events.mdx index ea119090c..4e586f179 100644 --- a/docs/sdk/js/core/events.mdx +++ b/docs/sdk/js/core/events.mdx @@ -68,13 +68,17 @@ type RunStartedEvent = BaseEvent & { type: EventType.RUN_STARTED threadId: string runId: string + parentRunId?: string + input?: RunAgentInput } ``` -| Property | Type | Description | -| ---------- | -------- | ----------------------------- | -| `threadId` | `string` | ID of the conversation thread | -| `runId` | `string` | ID of the agent run | +| Property | Type | Description | +| -------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `threadId` | `string` | ID of the conversation thread | +| `runId` | `string` | ID of the agent run | +| `parentRunId` | `string` (optional) | (Optional) Lineage pointer for branching/time travel. If present, refers to a prior run within the same thread | +| `input` | `RunAgentInput` (optional) | (Optional) The exact agent input payload sent to the agent for this run. May omit messages already in history | ### RunFinishedEvent diff --git a/docs/sdk/python/core/events.mdx b/docs/sdk/python/core/events.mdx index 6d5cdc934..1a9fe9c76 100644 --- a/docs/sdk/python/core/events.mdx +++ b/docs/sdk/python/core/events.mdx @@ -73,12 +73,16 @@ class RunStartedEvent(BaseEvent): type: Literal[EventType.RUN_STARTED] thread_id: str run_id: str + parent_run_id: Optional[str] = None + input: Optional[RunAgentInput] = None ``` -| Property | Type | Description | -| ----------- | ----- | ----------------------------- | -| `thread_id` | `str` | ID of the conversation thread | -| `run_id` | `str` | ID of the agent run | +| Property | Type | Description | +| ---------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `thread_id` | `str` | ID of the conversation thread | +| `run_id` | `str` | ID of the agent run | +| `parent_run_id` | `Optional[str]` | (Optional) Lineage pointer for branching/time travel. If present, refers to a prior run within the same thread | +| `input` | `Optional[RunAgentInput]` | (Optional) The exact agent input payload sent to the agent for this run. May omit messages already in history | ### RunFinishedEvent diff --git a/sdks/python/ag_ui/core/events.py b/sdks/python/ag_ui/core/events.py index 2a54a9c8e..411767e2b 100644 --- a/sdks/python/ag_ui/core/events.py +++ b/sdks/python/ag_ui/core/events.py @@ -7,7 +7,7 @@ from pydantic import Field -from .types import ConfiguredBaseModel, Message, State, Role +from .types import ConfiguredBaseModel, Message, State, Role, RunAgentInput # Text messages can have any role except "tool" TextMessageRole = Literal["developer", "system", "assistant", "user"] @@ -213,6 +213,8 @@ class RunStartedEvent(BaseEvent): type: Literal[EventType.RUN_STARTED] = EventType.RUN_STARTED # pyright: ignore[reportIncompatibleVariableOverride] thread_id: str run_id: str + parent_run_id: Optional[str] = None + input: Optional[RunAgentInput] = None class RunFinishedEvent(BaseEvent): diff --git a/sdks/typescript/packages/core/src/events.ts b/sdks/typescript/packages/core/src/events.ts index a95fc8e15..115182bea 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 } from "./types"; +import { MessageSchema, StateSchema, RunAgentInputSchema } from "./types"; // Text messages can have any role except "tool" const TextMessageRoleSchema = z.union([ @@ -155,6 +155,8 @@ 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({ From b30f8b9dbac06078aef076925e0ad88b7f8669a8 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 14 Oct 2025 11:29:08 +0200 Subject: [PATCH 022/113] Add new run started input messages --- .../apply/__tests__/run-started-input.test.ts | 416 ++++++++++++++++++ .../packages/client/src/apply/default.ts | 19 + 2 files changed, 435 insertions(+) create mode 100644 sdks/typescript/packages/client/src/apply/__tests__/run-started-input.test.ts 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 new file mode 100644 index 000000000..9be1a0133 --- /dev/null +++ b/sdks/typescript/packages/client/src/apply/__tests__/run-started-input.test.ts @@ -0,0 +1,416 @@ +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 8f720c7a0..a19ee3c6b 100644 --- a/sdks/typescript/packages/client/src/apply/default.ts +++ b/sdks/typescript/packages/client/src/apply/default.ts @@ -567,6 +567,25 @@ 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(); } From cde9ef2070fc7e56e59e4274c249fabd26564a3b Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 14 Oct 2025 11:29:57 +0200 Subject: [PATCH 023/113] v0.0.40-alpha.4 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index f0b0a012c..c3eeabd0c 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.3", + "version": "0.0.40-alpha.4", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index acf9e509c..1fdf948af 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.3", + "version": "0.0.40-alpha.4", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 77c8c5154..93c1fbf25 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-alpha.3", + "version": "0.0.40-alpha.4", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index e2d93960e..2b99fd694 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-alpha.3", + "version": "0.0.40-alpha.4", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index feffba233..456225162 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-alpha.3", + "version": "0.0.40-alpha.4", "private": false, "publishConfig": { "access": "public" From 2119e90c32fdf9efc3311e2bdd2af465ea346695 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 14 Oct 2025 12:49:32 +0200 Subject: [PATCH 024/113] add parentRunId --- docs/sdk/js/core/types.mdx | 2 ++ docs/sdk/python/core/types.mdx | 2 ++ sdks/python/ag_ui/core/types.py | 1 + sdks/python/tests/test_types.py | 2 ++ .../packages/core/src/__tests__/backwards-compatibility.test.ts | 2 ++ sdks/typescript/packages/core/src/types.ts | 1 + 6 files changed, 10 insertions(+) diff --git a/docs/sdk/js/core/types.mdx b/docs/sdk/js/core/types.mdx index afc011609..6e24c1952 100644 --- a/docs/sdk/js/core/types.mdx +++ b/docs/sdk/js/core/types.mdx @@ -20,6 +20,7 @@ Input parameters for running an agent. In the HTTP API, this is the body of the type RunAgentInput = { threadId: string runId: string + parentRunId?: string state: any messages: Message[] tools: Tool[] @@ -32,6 +33,7 @@ type RunAgentInput = { | ---------------- | ----------- | ---------------------------------------------- | | `threadId` | `string` | ID of the conversation thread | | `runId` | `string` | ID of the current run | +| `parentRunId` | `string (optional)` | ID of the run that spawned this run | | `state` | `any` | Current state of the agent | | `messages` | `Message[]` | Array of messages in the conversation | | `tools` | `Tool[]` | Array of tools available to the agent | diff --git a/docs/sdk/python/core/types.mdx b/docs/sdk/python/core/types.mdx index 4f9180455..1cca4073d 100644 --- a/docs/sdk/python/core/types.mdx +++ b/docs/sdk/python/core/types.mdx @@ -22,6 +22,7 @@ Input parameters for running an agent. In the HTTP API, this is the body of the class RunAgentInput(ConfiguredBaseModel): thread_id: str run_id: str + parent_run_id: Optional[str] = None state: Any messages: List[Message] tools: List[Tool] @@ -33,6 +34,7 @@ class RunAgentInput(ConfiguredBaseModel): | ----------------- | --------------- | --------------------------------------------- | | `thread_id` | `str` | ID of the conversation thread | | `run_id` | `str` | ID of the current run | +| `parent_run_id` | `Optional[str]` | (Optional) ID of the run that spawned this run| | `state` | `Any` | Current state of the agent | | `messages` | `List[Message]` | List of messages in the conversation | | `tools` | `List[Tool]` | List of tools available to the agent | diff --git a/sdks/python/ag_ui/core/types.py b/sdks/python/ag_ui/core/types.py index d22d4eab7..b7cb1520c 100644 --- a/sdks/python/ag_ui/core/types.py +++ b/sdks/python/ag_ui/core/types.py @@ -120,6 +120,7 @@ class RunAgentInput(ConfiguredBaseModel): """ thread_id: str run_id: str + parent_run_id: Optional[str] = None state: Any messages: List[Message] tools: List[Tool] diff --git a/sdks/python/tests/test_types.py b/sdks/python/tests/test_types.py index 27eedff0a..60182f231 100644 --- a/sdks/python/tests/test_types.py +++ b/sdks/python/tests/test_types.py @@ -209,6 +209,7 @@ def test_run_agent_input_deserialization(self): run_agent_input_data = { "threadId": "thread_12345", "runId": "run_67890", + "parentRunId": "run_parent_123", "state": {"conversation_state": "active", "custom_data": {"key": "value"}}, "messages": [ # System message @@ -307,6 +308,7 @@ def test_run_agent_input_deserialization(self): # Verify basic fields self.assertEqual(run_agent_input.thread_id, "thread_12345") self.assertEqual(run_agent_input.run_id, "run_67890") + self.assertEqual(run_agent_input.parent_run_id, "run_parent_123") self.assertEqual(run_agent_input.state["conversation_state"], "active") # Verify messages count and types diff --git a/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts b/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts index 2cdeb48be..34c47961f 100644 --- a/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts +++ b/sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts @@ -57,6 +57,7 @@ describe("Backwards Compatibility", () => { const inputWithExtraFields = { threadId: "thread_1", runId: "run_1", + parentRunId: "parent_run_1", state: {}, messages: [], tools: [], @@ -74,6 +75,7 @@ describe("Backwards Compatibility", () => { 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"); } }); diff --git a/sdks/typescript/packages/core/src/types.ts b/sdks/typescript/packages/core/src/types.ts index 0b5b17224..8b2352a13 100644 --- a/sdks/typescript/packages/core/src/types.ts +++ b/sdks/typescript/packages/core/src/types.ts @@ -77,6 +77,7 @@ 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), From 7666fd0240a16f7c7c257c80ff259951e81f1740 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 14 Oct 2025 12:50:54 +0200 Subject: [PATCH 025/113] v0.0.40-alpha.5 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index c3eeabd0c..a5db98afa 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.4", + "version": "0.0.40-alpha.5", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index 1fdf948af..f5e783401 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.4", + "version": "0.0.40-alpha.5", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 93c1fbf25..905ca4961 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-alpha.4", + "version": "0.0.40-alpha.5", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 2b99fd694..7e8e0d805 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-alpha.4", + "version": "0.0.40-alpha.5", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 456225162..528e18034 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-alpha.4", + "version": "0.0.40-alpha.5", "private": false, "publishConfig": { "access": "public" From b962bb5f598df23c64b2b2dd44dee26d67879c5f Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 14 Oct 2025 15:29:28 +0200 Subject: [PATCH 026/113] Fix for early isRunning=false --- .../packages/client/src/agent/agent.ts | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 081cd1934..0560d049e 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -96,12 +96,11 @@ export abstract class AbstractAgent { }), ); - return lastValueFrom(pipeline(of(null))).then(() => { - const newMessages = structuredClone_(this.messages).filter( - (message: Message) => !currentMessageIds.has(message.id), - ); - return { result, newMessages }; - }); + await lastValueFrom(pipeline(of(null))); + const newMessages = structuredClone_(this.messages).filter( + (message: Message) => !currentMessageIds.has(message.id), + ); + return { result, newMessages }; } finally { this.isRunning = false; } @@ -152,12 +151,11 @@ export abstract class AbstractAgent { }), ); - return lastValueFrom(pipeline(of(null))).then(() => { - const newMessages = structuredClone_(this.messages).filter( - (message: Message) => !currentMessageIds.has(message.id), - ); - return { result, newMessages }; - }); + await lastValueFrom(pipeline(of(null))); // wait for stream completion before toggling isRunning + const newMessages = structuredClone_(this.messages).filter( + (message: Message) => !currentMessageIds.has(message.id), + ); + return { result, newMessages }; } finally { this.isRunning = false; } From 9dceff639a80cd49fafaed2b65bdd32ba4ffa3eb Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 14 Oct 2025 15:30:08 +0200 Subject: [PATCH 027/113] v0.0.40-alpha.6 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index a5db98afa..0a22e0736 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.5", + "version": "0.0.40-alpha.6", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index f5e783401..b87185d1d 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.5", + "version": "0.0.40-alpha.6", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 905ca4961..6aad73e41 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-alpha.5", + "version": "0.0.40-alpha.6", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 7e8e0d805..e3145b022 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-alpha.5", + "version": "0.0.40-alpha.6", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 528e18034..6d172cbe7 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-alpha.5", + "version": "0.0.40-alpha.6", "private": false, "publishConfig": { "access": "public" From 71c57eb4c18c45d73a7a939036de150d1e420d34 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 16 Oct 2025 18:44:10 +0200 Subject: [PATCH 028/113] Multi-modal Messages --- docs/concepts/messages.mdx | 22 ++++++++- docs/drafts/multimodal-messages.mdx | 2 +- docs/sdk/js/core/types.mdx | 46 +++++++++++++++--- docs/sdk/python/core/types.mdx | 54 +++++++++++++++++++--- sdks/python/README.md | 17 +++++++ sdks/python/ag_ui/core/__init__.py | 10 +++- sdks/python/ag_ui/core/types.py | 40 ++++++++++++++-- sdks/python/tests/test_types.py | 44 +++++++++++++++++- sdks/typescript/README.md | 18 ++++++++ sdks/typescript/packages/core/src/types.ts | 47 ++++++++++++++++++- 10 files changed, 275 insertions(+), 25 deletions(-) diff --git a/docs/concepts/messages.mdx b/docs/concepts/messages.mdx index 4777cbfe1..499e22730 100644 --- a/docs/concepts/messages.mdx +++ b/docs/concepts/messages.mdx @@ -41,11 +41,31 @@ Messages from the end user to the agent: interface UserMessage { id: string role: "user" - content: string // Text input from the user + content: string | InputContent[] // Text or multimodal input from the user name?: string // Optional user identifier } + +type InputContent = TextInputContent | BinaryInputContent + +interface TextInputContent { + type: "text" + text: string +} + +interface BinaryInputContent { + type: "binary" + mimeType: string + id?: string + url?: string + data?: string + filename?: string +} ``` +> For `BinaryInputContent`, provide at least one of `id`, `url`, or `data` to reference the payload. + +This structure keeps traditional plain-text inputs working while enabling richer payloads such as images, audio clips, or uploaded files in the same message. + ### Assistant Messages Messages from the AI assistant to the user: diff --git a/docs/drafts/multimodal-messages.mdx b/docs/drafts/multimodal-messages.mdx index 969032fc9..6b375ff89 100644 --- a/docs/drafts/multimodal-messages.mdx +++ b/docs/drafts/multimodal-messages.mdx @@ -21,7 +21,7 @@ apps. Inputs may include text, images, audio, and files. ## Status -- **Status**: Draft +- **Status**: Implemented — October 16, 2025 - **Author(s)**: Markus Ecker (mail@mme.xyz) ## Detailed Specification diff --git a/docs/sdk/js/core/types.mdx b/docs/sdk/js/core/types.mdx index 6e24c1952..528f46ee9 100644 --- a/docs/sdk/js/core/types.mdx +++ b/docs/sdk/js/core/types.mdx @@ -123,17 +123,49 @@ Represents a message from a user. type UserMessage = { id: string role: "user" - content: string + content: string | InputContent[] name?: string } ``` -| Property | Type | Description | -| --------- | -------- | ------------------------------------------- | -| `id` | `string` | Unique identifier for the message | -| `role` | `"user"` | Role of the message sender, fixed as "user" | -| `content` | `string` | Text content of the message (required) | -| `name` | `string` | Optional name of the sender | +| Property | Type | Description | +| --------- | --------------------------- | --------------------------------------------------------------------- | +| `id` | `string` | Unique identifier for the message | +| `role` | `"user"` | Role of the message sender, fixed as "user" | +| `content` | `string \| InputContent[]` | Either plain text or an ordered array of multimodal content fragments | +| `name` | `string` | Optional name of the sender | + +### InputContent + +Union of supported multimodal fragments. + +```typescript +type InputContent = TextInputContent | BinaryInputContent +``` + +### TextInputContent + +```typescript +type TextInputContent = { + type: "text" + text: string +} +``` + +### BinaryInputContent + +```typescript +type BinaryInputContent = { + type: "binary" + mimeType: string + id?: string + url?: string + data?: string + filename?: string +} +``` + +> At least one of `id`, `url`, or `data` must be provided. ### ToolMessage diff --git a/docs/sdk/python/core/types.mdx b/docs/sdk/python/core/types.mdx index 1cca4073d..5d864631a 100644 --- a/docs/sdk/python/core/types.mdx +++ b/docs/sdk/python/core/types.mdx @@ -124,15 +124,55 @@ Represents a message from a user. ```python class UserMessage(BaseMessage): role: Literal["user"] - content: str + content: Union[str, List["InputContent"]] +``` + +| Property | Type | Description | +| --------- | ---------------------------------- | --------------------------------------------------------------------- | +| `id` | `str` | Unique identifier for the message | +| `role` | `Literal["user"]` | Role of the message sender, fixed as "user" | +| `content` | `Union[str, List["InputContent"]]` | Either a plain text string or an ordered list of multimodal fragments | +| `name` | `Optional[str]` | Optional name of the sender | + +### TextInputContent + +Represents a text fragment inside a multimodal user message. + +```python +class TextInputContent(ConfiguredBaseModel): + type: Literal["text"] + text: str ``` -| Property | Type | Description | -| --------- | ----------------- | ------------------------------------------- | -| `id` | `str` | Unique identifier for the message | -| `role` | `Literal["user"]` | Role of the message sender, fixed as "user" | -| `content` | `str` | Text content of the message (required) | -| `name` | `Optional[str]` | Optional name of the sender | +| Property | Type | Description | +| -------- | --------------- | ---------------------------- | +| `type` | `Literal["text"]` | Identifies the fragment type | +| `text` | `str` | Text content | + +### BinaryInputContent + +Represents binary data such as images, audio, or files. + +```python +class BinaryInputContent(ConfiguredBaseModel): + type: Literal["binary"] + mime_type: str + id: Optional[str] = None + url: Optional[str] = None + data: Optional[str] = None + filename: Optional[str] = None +``` + +| Property | Type | Description | +| ---------- | ----------------- | ------------------------------------------------------------- | +| `type` | `Literal["binary"]` | Identifies the fragment type | +| `mime_type`| `str` | MIME type, for example `"image/png"` | +| `id` | `Optional[str]` | Reference to previously uploaded content | +| `url` | `Optional[str]` | Remote URL where the content can be retrieved | +| `data` | `Optional[str]` | Base64 encoded content | +| `filename` | `Optional[str]` | Optional filename hint | + +> **Validation:** At least one of `id`, `url`, or `data` must be provided. ### ToolMessage diff --git a/sdks/python/README.md b/sdks/python/README.md index 843d9d028..d9e48e26a 100644 --- a/sdks/python/README.md +++ b/sdks/python/README.md @@ -38,6 +38,23 @@ sse_data = encoder.encode(event) # Output: data: {"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_123","delta":"Hello from Python!"}\n\n ``` +### Multimodal user message + +```python +from ag_ui.core import UserMessage, TextInputContent, BinaryInputContent + +message = UserMessage( + id="user-123", + content=[ + TextInputContent(text="Please describe this image"), + BinaryInputContent(mime_type="image/png", url="https://example.com/cat.png"), + ], +) + +payload = message.model_dump(by_alias=True) +# {"id": "user-123", "role": "user", "content": [...]} +``` + ## Packages - **`ag_ui.core`** – Types, events, and data models for AG-UI protocol diff --git a/sdks/python/ag_ui/core/__init__.py b/sdks/python/ag_ui/core/__init__.py index 7e909ad5b..67ae5ac6c 100644 --- a/sdks/python/ag_ui/core/__init__.py +++ b/sdks/python/ag_ui/core/__init__.py @@ -46,7 +46,10 @@ Context, Tool, RunAgentInput, - State + State, + TextInputContent, + BinaryInputContent, + InputContent, ) __all__ = [ @@ -92,5 +95,8 @@ "Context", "Tool", "RunAgentInput", - "State" + "State", + "TextInputContent", + "BinaryInputContent", + "InputContent", ] diff --git a/sdks/python/ag_ui/core/types.py b/sdks/python/ag_ui/core/types.py index b7cb1520c..06b253fe7 100644 --- a/sdks/python/ag_ui/core/types.py +++ b/sdks/python/ag_ui/core/types.py @@ -4,7 +4,7 @@ from typing import Annotated, Any, List, Literal, Optional, Union -from pydantic import BaseModel, ConfigDict, Field +from pydantic import BaseModel, ConfigDict, Field, model_validator from pydantic.alias_generators import to_camel @@ -70,12 +70,44 @@ class AssistantMessage(BaseMessage): tool_calls: Optional[List[ToolCall]] = None +class TextInputContent(ConfiguredBaseModel): + """A text fragment in a multimodal user message.""" + + type: Literal["text"] = "text" + text: str + + +class BinaryInputContent(ConfiguredBaseModel): + """A binary payload reference in a multimodal user message.""" + + type: Literal["binary"] = "binary" # pyright: ignore[reportIncompatibleVariableOverride] + mime_type: str + id: Optional[str] = None + url: Optional[str] = None + data: Optional[str] = None + filename: Optional[str] = None + + @model_validator(mode="after") + def validate_source(self) -> "BinaryInputContent": + """Ensure at least one binary payload source is provided.""" + if not any([self.id, self.url, self.data]): + raise ValueError("BinaryInputContent requires id, url, or data to be provided.") + return self + + +InputContent = Annotated[ + Union[TextInputContent, BinaryInputContent], + Field(discriminator="type"), +] + + class UserMessage(BaseMessage): """ - A user message. + A user message supporting text or multimodal content. """ - role: Literal["user"] = "user" # pyright: ignore[reportIncompatibleVariableOverride] - content: str + + role: Literal["user"] = "user" # pyright: ignore[reportIncompatibleVariableOverride] + content: Union[str, List[InputContent]] class ToolMessage(ConfiguredBaseModel): diff --git a/sdks/python/tests/test_types.py b/sdks/python/tests/test_types.py index 60182f231..94a5bdbc3 100644 --- a/sdks/python/tests/test_types.py +++ b/sdks/python/tests/test_types.py @@ -11,7 +11,9 @@ UserMessage, ToolMessage, Message, - RunAgentInput + RunAgentInput, + TextInputContent, + BinaryInputContent, ) @@ -143,6 +145,31 @@ def test_user_message(self): self.assertEqual(serialized["role"], "user") self.assertEqual(serialized["content"], "User query") + def test_user_message_multimodal_content(self): + """Test creating and serializing a multimodal user message""" + contents = [ + TextInputContent(text="Check this out"), + BinaryInputContent(mime_type="image/png", url="https://example.com/image.png"), + ] + msg = UserMessage( + id="user_multi", + content=contents, + ) + self.assertIsInstance(msg.content, list) + self.assertEqual(len(msg.content), 2) + serialized = msg.model_dump(by_alias=True) + self.assertIsInstance(serialized["content"], list) + self.assertEqual(serialized["content"][0]["type"], "text") + self.assertEqual(serialized["content"][0]["text"], "Check this out") + self.assertEqual(serialized["content"][1]["mimeType"], "image/png") + self.assertEqual(serialized["content"][1]["url"], "https://example.com/image.png") + + def test_binary_input_requires_payload_source(self): + """Binary content must specify at least one delivery channel""" + with self.assertRaises(ValidationError): + BinaryInputContent(mime_type="image/png") + + def test_message_union_deserialization(self): """Test that the Message union correctly deserializes to the appropriate type""" # Create type adapter for the union @@ -257,7 +284,14 @@ def test_run_agent_input_deserialization(self): { "id": "user_002", "role": "user", - "content": "Can you explain these results?" + "content": [ + {"type": "text", "text": "Can you explain these results?"}, + { + "type": "binary", + "mimeType": "image/png", + "url": "https://example.com/results-chart.png" + } + ] } ], "tools": [ @@ -323,6 +357,12 @@ def test_run_agent_input_deserialization(self): # Verify specific message content self.assertEqual(run_agent_input.messages[0].content, "You are a helpful assistant.") self.assertEqual(run_agent_input.messages[1].content, "Can you help me analyze this data?") + multimodal_content = run_agent_input.messages[5].content + self.assertIsInstance(multimodal_content, list) + self.assertEqual(multimodal_content[0].type, "text") + self.assertEqual(multimodal_content[0].text, "Can you explain these results?") + self.assertEqual(multimodal_content[1].mime_type, "image/png") + self.assertEqual(multimodal_content[1].url, "https://example.com/results-chart.png") # Verify assistant message with tool call assistant_msg = run_agent_input.messages[3] diff --git a/sdks/typescript/README.md b/sdks/typescript/README.md index 64b9a5f4a..1de4bd2f4 100644 --- a/sdks/typescript/README.md +++ b/sdks/typescript/README.md @@ -3,3 +3,21 @@ The TypeScript SDK for the [Agent User Interaction Protocol](https://ag-ui.com). For more information visit the [official documentation](https://docs.ag-ui.com/). + +## Multimodal user messages + +```ts +import { UserMessageSchema } from "@ag-ui/core"; + +const message = UserMessageSchema.parse({ + id: "user-123", + role: "user" as const, + content: [ + { type: "text", text: "Please describe this image" }, + { type: "binary", mimeType: "image/png", url: "https://example.com/cat.png" }, + ], +}); + +console.log(message); +// { id: "user-123", role: "user", content: [...] } +``` diff --git a/sdks/typescript/packages/core/src/types.ts b/sdks/typescript/packages/core/src/types.ts index 8b2352a13..3a73d4e0e 100644 --- a/sdks/typescript/packages/core/src/types.ts +++ b/sdks/typescript/packages/core/src/types.ts @@ -18,6 +18,48 @@ 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(), @@ -36,7 +78,7 @@ export const AssistantMessageSchema = BaseMessageSchema.extend({ export const UserMessageSchema = BaseMessageSchema.extend({ role: z.literal("user"), - content: z.string(), + content: z.union([z.string(), z.array(InputContentSchema)]), }); export const ToolMessageSchema = z.object({ @@ -89,6 +131,9 @@ 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; From 57fffcd74f6af124897357e64e7d067f2a23d8ac Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 16 Oct 2025 18:44:22 +0200 Subject: [PATCH 029/113] Multi-modal Messages --- .../src/__tests__/multimodal-messages.test.ts | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts diff --git a/sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts b/sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts new file mode 100644 index 000000000..3bcca30e8 --- /dev/null +++ b/sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts @@ -0,0 +1,52 @@ +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/); + }); +}); From e30be51ed46173db2aaad699af73f6bfe23fcd08 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Fri, 17 Oct 2025 16:32:36 +0200 Subject: [PATCH 030/113] update code to handle the new message structure --- .../python/src/ag_ui_adk/utils/converters.py | 42 ++++++++++------- .../langgraph/python/ag_ui_langgraph/utils.py | 21 ++++++++- .../langgraph/typescript/src/utils.ts | 20 +++++++- integrations/mastra/typescript/src/utils.ts | 28 +++++++++-- .../vercel-ai-sdk/typescript/src/index.ts | 46 ++++++++++++++++++- .../packages/client/src/apply/default.ts | 10 ++-- .../packages/client/src/legacy/convert.ts | 26 ++++++++++- 7 files changed, 164 insertions(+), 29 deletions(-) diff --git a/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py b/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py index dd33b7b46..2cef5241d 100644 --- a/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py +++ b/integrations/adk-middleware/python/src/ag_ui_adk/utils/converters.py @@ -8,7 +8,7 @@ from ag_ui.core import ( Message, UserMessage, AssistantMessage, SystemMessage, ToolMessage, - ToolCall, FunctionCall + ToolCall, FunctionCall, TextInputContent, BinaryInputContent ) from google.adk.events import Event as ADKEvent from google.genai import types @@ -38,18 +38,19 @@ def convert_ag_ui_messages_to_adk(messages: List[Message]) -> List[ADKEvent]: # Convert content based on message type if isinstance(message, (UserMessage, SystemMessage)): - if message.content: + flattened_content = flatten_message_content(message.content) + if flattened_content: event.content = types.Content( role=message.role, - parts=[types.Part(text=message.content)] + parts=[types.Part(text=flattened_content)] ) - + elif isinstance(message, AssistantMessage): parts = [] - + # Add text content if present if message.content: - parts.append(types.Part(text=message.content)) + parts.append(types.Part(text=flatten_message_content(message.content))) # Add tool calls if present if message.tool_calls: @@ -205,25 +206,32 @@ def convert_json_patch_to_state(patches: List[Dict[str, Any]]) -> Dict[str, Any] def extract_text_from_content(content: types.Content) -> str: - """Extract all text from ADK Content object. - - Args: - content: ADK Content object - - Returns: - Combined text from all text parts - """ + """Extract all text from ADK Content object.""" if not content or not content.parts: return "" - + text_parts = [] for part in content.parts: if part.text: text_parts.append(part.text) - + return "\n".join(text_parts) +def flatten_message_content(content: Any) -> str: + if content is None: + return "" + + if isinstance(content, str): + return content + + if isinstance(content, list): + text_parts = [part.text for part in content if isinstance(part, TextInputContent) and part.text] + return "\n".join(text_parts) + + return str(content) + + def create_error_message(error: Exception, context: str = "") -> str: """Create a user-friendly error message. @@ -240,4 +248,4 @@ def create_error_message(error: Exception, context: str = "") -> str: if context: return f"{context}: {error_type} - {error_msg}" else: - return f"{error_type}: {error_msg}" \ No newline at end of file + return f"{error_type}: {error_msg}" diff --git a/integrations/langgraph/python/ag_ui_langgraph/utils.py b/integrations/langgraph/python/ag_ui_langgraph/utils.py index ed5060887..35e0d57fd 100644 --- a/integrations/langgraph/python/ag_ui_langgraph/utils.py +++ b/integrations/langgraph/python/ag_ui_langgraph/utils.py @@ -13,6 +13,8 @@ ToolMessage as AGUIToolMessage, ToolCall as AGUIToolCall, FunctionCall as AGUIFunctionCall, + TextInputContent, + BinaryInputContent, ) from .types import State, SchemaKeys, LangGraphReasoning @@ -96,9 +98,10 @@ def agui_messages_to_langchain(messages: List[AGUIMessage]) -> List[BaseMessage] for message in messages: role = message.role if role == "user": + flattened_content = flatten_user_content(message.content) langchain_messages.append(HumanMessage( id=message.id, - content=message.content, + content=flattened_content, name=message.name, )) elif role == "assistant": @@ -177,6 +180,20 @@ def resolve_message_content(content: Any) -> str | None: return None + +def flatten_user_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 camel_to_snake(name): return re.sub(r'(? Any: **make_json_safe(value.__dict__), } - return repr(value) \ No newline at end of file + return repr(value) diff --git a/integrations/langgraph/typescript/src/utils.ts b/integrations/langgraph/typescript/src/utils.ts index d69ac6778..7d253c12f 100644 --- a/integrations/langgraph/typescript/src/utils.ts +++ b/integrations/langgraph/typescript/src/utils.ts @@ -73,10 +73,11 @@ export function aguiMessagesToLangChain(messages: Message[]): LangGraphMessage[] return messages.map((message, index) => { switch (message.role) { case "user": + const userContent = flattenUserContent(message.content); return { id: message.id, role: message.role, - content: message.content, + content: userContent, type: "human", }; case "assistant": @@ -119,6 +120,23 @@ function stringifyIfNeeded(item: any) { return JSON.stringify(item); } +function flattenUserContent(content: Message["content"]) { + if (typeof content === "string") { + return content; + } + + if (!Array.isArray(content)) { + return ""; + } + + const textParts = content + .filter((part): part is { type: "text"; text: string } => part.type === "text") + .map((part) => part.text) + .filter((text) => text.length > 0); + + return textParts.join("\n"); +} + export function resolveReasoningContent(eventData: any): LangGraphReasoning | null { const content = eventData.chunk?.content diff --git a/integrations/mastra/typescript/src/utils.ts b/integrations/mastra/typescript/src/utils.ts index 665e846fa..873ec9072 100644 --- a/integrations/mastra/typescript/src/utils.ts +++ b/integrations/mastra/typescript/src/utils.ts @@ -1,4 +1,4 @@ -import type { Message } from "@ag-ui/client"; +import type { InputContent, Message } from "@ag-ui/client"; import { AbstractAgent } from "@ag-ui/client"; import { MastraClient } from "@mastra/client-js"; import type { CoreMessage, Mastra } from "@mastra/core"; @@ -6,12 +6,33 @@ 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; + } + + const textParts = content + .filter((part): part is Extract => part.type === "text") + .map((part) => part.text.trim()) + .filter(Boolean); + + return textParts.join("\n"); +}; + export function convertAGUIMessagesToMastra(messages: Message[]): CoreMessage[] { const result: CoreMessage[] = []; for (const message of messages) { if (message.role === "assistant") { - const parts: any[] = message.content ? [{ type: "text", text: message.content }] : []; + const assistantContent = toMastraTextContent(message.content); + const parts: any[] = []; + if (assistantContent) { + parts.push({ type: "text", text: assistantContent }); + } for (const toolCall of message.toolCalls ?? []) { parts.push({ type: "tool-call", @@ -25,9 +46,10 @@ export function convertAGUIMessagesToMastra(messages: Message[]): CoreMessage[] content: parts, }); } else if (message.role === "user") { + const userContent = toMastraTextContent(message.content); result.push({ role: "user", - content: message.content || "", + content: userContent, }); } else if (message.role === "tool") { let toolName = "unknown"; diff --git a/integrations/vercel-ai-sdk/typescript/src/index.ts b/integrations/vercel-ai-sdk/typescript/src/index.ts index 6720b0d2a..80498d7c7 100644 --- a/integrations/vercel-ai-sdk/typescript/src/index.ts +++ b/integrations/vercel-ai-sdk/typescript/src/index.ts @@ -25,10 +25,54 @@ import { tool as createVercelAISDKTool, ToolChoice, ToolSet, + FilePart, + ImagePart, + TextPart, } from "ai"; import { randomUUID } from "@ag-ui/client"; import { z } from "zod"; +type VercelUserContent = Extract["content"]; +type VercelUserArrayContent = Extract; +type VercelUserPart = VercelUserArrayContent extends Array ? Part : never; + +const toVercelUserParts = (inputContent: Message["content"]): VercelUserPart[] => { + if (!Array.isArray(inputContent)) { + return []; + } + + const parts: VercelUserPart[] = []; + + for (const part of inputContent) { + if (part.type === "text") { + parts.push({ type: "text", text: part.text } as VercelUserPart); + } + } + + return parts; +}; + +const toVercelUserContent = (content: Message["content"]): VercelUserContent => { + if (!content) { + return ""; + } + + if (typeof content === "string") { + return content; + } + + const parts = toVercelUserParts(content); + if (parts.length === 0) { + return ""; + } + + if (parts.length === 1 && parts[0].type === "text") { + return parts[0].text; + } + + return parts; +}; + type ProcessedEvent = | MessagesSnapshotEvent | RunFinishedEvent @@ -193,7 +237,7 @@ export function convertMessagesToVercelAISDKMessages(messages: Message[]): CoreM } else if (message.role === "user") { result.push({ role: "user", - content: message.content || "", + content: toVercelUserContent(message.content), }); } else if (message.role === "tool") { let toolName = "unknown"; diff --git a/sdks/typescript/packages/client/src/apply/default.ts b/sdks/typescript/packages/client/src/apply/default.ts index a19ee3c6b..87a8f462b 100644 --- a/sdks/typescript/packages/client/src/apply/default.ts +++ b/sdks/typescript/packages/client/src/apply/default.ts @@ -140,14 +140,17 @@ export const defaultApplyEvents = ( state, agent, input, - textMessageBuffer: targetMessage.content ?? "", + textMessageBuffer: + typeof targetMessage.content === "string" ? targetMessage.content : "", }), ); applyMutation(mutation); if (mutation.stopPropagation !== true) { // Append content to the correct message by ID - targetMessage.content = (targetMessage.content || "") + delta; + const existingContent = + typeof targetMessage.content === "string" ? targetMessage.content : ""; + targetMessage.content = `${existingContent}${delta}`; applyMutation({ messages }); } @@ -175,7 +178,8 @@ export const defaultApplyEvents = ( state, agent, input, - textMessageBuffer: targetMessage.content ?? "", + textMessageBuffer: + typeof targetMessage.content === "string" ? targetMessage.content : "", }), ); applyMutation(mutation); diff --git a/sdks/typescript/packages/client/src/legacy/convert.ts b/sdks/typescript/packages/client/src/legacy/convert.ts index aa3ac5e6f..2f4cd6761 100644 --- a/sdks/typescript/packages/client/src/legacy/convert.ts +++ b/sdks/typescript/packages/client/src/legacy/convert.ts @@ -41,6 +41,27 @@ 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; @@ -392,11 +413,12 @@ export function convertMessagesToLegacyFormat(messages: Message[]): LegacyMessag for (const message of messages) { if (message.role === "assistant" || message.role === "user" || message.role === "system") { - if (message.content) { + const textContent = flattenMessageContentToText(message.content); + if (textContent) { const textMessage: LegacyTextMessage = { id: message.id, role: message.role, - content: message.content, + content: textContent, }; result.push(textMessage); } From 461623f971842f77e59d9699e5a6e68c8ec35aa4 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Fri, 17 Oct 2025 18:30:12 +0200 Subject: [PATCH 031/113] fix A2A compile error --- middlewares/a2a-middleware/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/middlewares/a2a-middleware/src/index.ts b/middlewares/a2a-middleware/src/index.ts index 7e5b90e16..3a18dab43 100644 --- a/middlewares/a2a-middleware/src/index.ts +++ b/middlewares/a2a-middleware/src/index.ts @@ -304,6 +304,7 @@ export class A2AMiddlewareAgent extends AbstractAgent { pendingA2ACalls: Set, pendingTextMessages: Set, ): void { + // @ts-expect-error orchestrationAgent.run remains protected; middleware intentionally bypasses until public API exists. const newRunStream = this.orchestrationAgent.run(input); this.wrapStream(newRunStream, pendingA2ACalls, pendingTextMessages, observer, input); } From 65e02da3b74304ad1421ce71b38a2cf8d985b014 Mon Sep 17 00:00:00 2001 From: Max Korp Date: Fri, 17 Oct 2025 16:49:01 -0700 Subject: [PATCH 032/113] add multimodal to langgraph python --- .../langgraph/python/ag_ui_langgraph/utils.py | 102 +++++++- .../agents/multimodal_messages/__init__.py | 51 ++++ .../agents/multimodal_messages/agent.py | 90 +++++++ integrations/langgraph/python/poetry.lock | 20 +- integrations/langgraph/python/pyproject.toml | 2 +- .../langgraph/python/tests/test_multimodal.py | 227 ++++++++++++++++++ 6 files changed, 477 insertions(+), 15 deletions(-) create mode 100644 integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py create mode 100644 integrations/langgraph/python/examples/agents/multimodal_messages/agent.py create mode 100644 integrations/langgraph/python/tests/test_multimodal.py diff --git a/integrations/langgraph/python/ag_ui_langgraph/utils.py b/integrations/langgraph/python/ag_ui_langgraph/utils.py index 35e0d57fd..4e0067512 100644 --- a/integrations/langgraph/python/ag_ui_langgraph/utils.py +++ b/integrations/langgraph/python/ag_ui_langgraph/utils.py @@ -43,14 +43,56 @@ def stringify_if_needed(item: Any) -> str: return item return json.dumps(item) +def convert_langchain_multimodal_to_agui(content: List[Dict[str, Any]]) -> List[Union[TextInputContent, BinaryInputContent]]: + """Convert LangChain's multimodal content to AG-UI format.""" + agui_content = [] + for item in content: + if isinstance(item, dict): + if item.get("type") == "text": + agui_content.append(TextInputContent( + type="text", + text=item.get("text", "") + )) + elif item.get("type") == "image_url": + image_url_data = item.get("image_url", {}) + url = image_url_data.get("url", "") if isinstance(image_url_data, dict) else image_url_data + + # Parse data URLs to extract base64 data + if url.startswith("data:"): + # Format: data:mime_type;base64,data + parts = url.split(",", 1) + header = parts[0] + data = parts[1] if len(parts) > 1 else "" + mime_type = header.split(":")[1].split(";")[0] if ":" in header else "image/png" + + agui_content.append(BinaryInputContent( + type="binary", + mime_type=mime_type, + data=data + )) + else: + # Regular URL or ID + agui_content.append(BinaryInputContent( + type="binary", + mime_type="image/png", # Default MIME type + url=url + )) + return agui_content + def langchain_messages_to_agui(messages: List[BaseMessage]) -> List[AGUIMessage]: agui_messages: List[AGUIMessage] = [] for message in messages: if isinstance(message, HumanMessage): + # Handle multimodal content + if isinstance(message.content, list): + content = convert_langchain_multimodal_to_agui(message.content) + else: + content = stringify_if_needed(resolve_message_content(message.content)) + agui_messages.append(AGUIUserMessage( id=str(message.id), role="user", - content=stringify_if_needed(resolve_message_content(message.content)), + content=content, name=message.name, )) elif isinstance(message, AIMessage): @@ -93,15 +135,49 @@ def langchain_messages_to_agui(messages: List[BaseMessage]) -> List[AGUIMessage] raise TypeError(f"Unsupported message type: {type(message)}") return agui_messages +def convert_agui_multimodal_to_langchain(content: List[Union[TextInputContent, BinaryInputContent]]) -> List[Dict[str, Any]]: + """Convert AG-UI multimodal content to LangChain's multimodal format.""" + langchain_content = [] + for item in content: + if isinstance(item, TextInputContent): + langchain_content.append({ + "type": "text", + "text": item.text + }) + elif isinstance(item, BinaryInputContent): + # LangChain uses image_url format (OpenAI-style) + content_dict = {"type": "image_url"} + + # Prioritize url, then data, then id + if item.url: + content_dict["image_url"] = {"url": item.url} + elif item.data: + # Construct data URL from base64 data + content_dict["image_url"] = {"url": f"data:{item.mime_type};base64,{item.data}"} + elif item.id: + # Use id as a reference (some providers may support this) + content_dict["image_url"] = {"url": item.id} + + langchain_content.append(content_dict) + + return langchain_content + def agui_messages_to_langchain(messages: List[AGUIMessage]) -> List[BaseMessage]: langchain_messages = [] for message in messages: role = message.role if role == "user": - flattened_content = flatten_user_content(message.content) + # 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=flattened_content, + content=content, name=message.name, )) elif role == "assistant": @@ -182,6 +258,10 @@ def resolve_message_content(content: Any) -> str | 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 "" @@ -189,8 +269,20 @@ def flatten_user_content(content: Any) -> 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) + 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) diff --git a/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py b/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py new file mode 100644 index 000000000..989a9b717 --- /dev/null +++ b/integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py @@ -0,0 +1,51 @@ +""" +Multimodal Messages Example + +This example demonstrates how to use AG-UI's multimodal message support +to send and receive messages containing both text and images. + +Key features: +- User messages can contain text and binary content (images, audio, files) +- Automatic conversion between AG-UI and LangChain multimodal formats +- Support for vision models like GPT-4o and Claude 3 + +Example usage: + +```python +from ag_ui.core import UserMessage, TextInputContent, BinaryInputContent + +# Create a multimodal user message +message = UserMessage( + id="user-123", + content=[ + TextInputContent(text="What's in this image?"), + BinaryInputContent( + mime_type="image/jpeg", + url="https://example.com/photo.jpg" + ), + ], +) + +# Or with base64 encoded data +message_with_data = UserMessage( + id="user-124", + content=[ + TextInputContent(text="Describe this picture"), + BinaryInputContent( + mime_type="image/png", + data="iVBORw0KGgoAAAANSUhEUgAAAAUA...", # base64 encoded + filename="screenshot.png" + ), + ], +) +``` + +The LangGraph integration automatically handles: +1. Converting AG-UI multimodal format to LangChain's format +2. Passing multimodal messages to vision models +3. Converting responses back to AG-UI format +""" + +from .agent import graph + +__all__ = ["graph"] diff --git a/integrations/langgraph/python/examples/agents/multimodal_messages/agent.py b/integrations/langgraph/python/examples/agents/multimodal_messages/agent.py new file mode 100644 index 000000000..067006f9b --- /dev/null +++ b/integrations/langgraph/python/examples/agents/multimodal_messages/agent.py @@ -0,0 +1,90 @@ +""" +An example demonstrating multimodal message support with images. + +This agent demonstrates how to: +1. Receive user messages with images +2. Process multimodal content (text + images) +3. Use vision models to analyze images +""" + +from typing import List, Any, Optional +import os + +from langchain_core.runnables import RunnableConfig +from langchain_core.messages import SystemMessage +from langchain_openai import ChatOpenAI +from langgraph.graph import StateGraph, END, START +from langgraph.graph import MessagesState +from langgraph.types import Command + +class AgentState(MessagesState): + """ + State of our graph. + """ + tools: List[Any] + +async def vision_chat_node(state: AgentState, config: Optional[RunnableConfig] = None): + """ + Chat node that supports multimodal input including images. + + The messages in state can contain multimodal content with text and images. + LangGraph will automatically handle the conversion from AG-UI format to + the format expected by the vision model. + """ + + # 1. Use a vision-capable model + # GPT-4o supports vision, as do other models like Claude 3 + model = ChatOpenAI(model="gpt-4o") + + # Define config for the model + if config is None: + config = RunnableConfig(recursion_limit=25) + + # 2. Bind tools if needed + model_with_tools = model.bind_tools( + state.get("tools", []), + parallel_tool_calls=False, + ) + + # 3. Define the system message + system_message = SystemMessage( + content=( + "You are a helpful vision assistant. You can analyze images and " + "answer questions about them. Describe what you see in detail." + ) + ) + + # 4. Run the model with multimodal messages + # The messages may contain both text and images + response = await model_with_tools.ainvoke([ + system_message, + *state["messages"], + ], config) + + # 5. Return the response + return Command( + goto=END, + update={ + "messages": response + } + ) + +# Define a new graph +workflow = StateGraph(AgentState) +workflow.add_node("vision_chat_node", vision_chat_node) +workflow.set_entry_point("vision_chat_node") + +# Add edges +workflow.add_edge(START, "vision_chat_node") +workflow.add_edge("vision_chat_node", END) + +# Conditionally use a checkpointer based on the environment +is_fast_api = os.environ.get("LANGGRAPH_FAST_API", "false").lower() == "true" + +# Compile the graph +if is_fast_api: + from langgraph.checkpoint.memory import MemorySaver + memory = MemorySaver() + graph = workflow.compile(checkpointer=memory) +else: + graph = workflow.compile() diff --git a/integrations/langgraph/python/poetry.lock b/integrations/langgraph/python/poetry.lock index d5ffe403a..aa5300483 100644 --- a/integrations/langgraph/python/poetry.lock +++ b/integrations/langgraph/python/poetry.lock @@ -1,19 +1,21 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand. [[package]] name = "ag-ui-protocol" -version = "0.1.7" +version = "0.1.9" description = "" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "^3.9" groups = ["main"] -files = [ - {file = "ag_ui_protocol-0.1.7-py3-none-any.whl", hash = "sha256:8c821662ca6e9852569022f449b9f7aeb3f16aa75390fa8c28ceae2cce642baa"}, - {file = "ag_ui_protocol-0.1.7.tar.gz", hash = "sha256:0e93fd9f7c74d52afbd824d6e9738bd3422e859503905ba7582481cbc3c67ab2"}, -] +files = [] +develop = true [package.dependencies] -pydantic = ">=2.11.2,<3.0.0" +pydantic = "^2.11.2" + +[package.source] +type = "directory" +url = "../../../sdks/python" [[package]] name = "annotated-types" @@ -1473,4 +1475,4 @@ fastapi = ["fastapi"] [metadata] lock-version = "2.1" python-versions = "<3.14,>=3.10" -content-hash = "b4f98fd8fba22b450b106c36ab12b2dc3bdc656b060ac257b5d21b40b51b4f17" +content-hash = "7b62eac41b70b284f5d430698b1e0c8dd23dca37f9178ee00f10edc774f006f5" diff --git a/integrations/langgraph/python/pyproject.toml b/integrations/langgraph/python/pyproject.toml index e64a0051e..e4e679a45 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.1.9" +ag-ui-protocol = { path = "../../../sdks/python", develop = true } fastapi = { version = "^0.115.12", optional = true } langchain = ">=0.3.0" langchain-core = ">=0.3.0" diff --git a/integrations/langgraph/python/tests/test_multimodal.py b/integrations/langgraph/python/tests/test_multimodal.py new file mode 100644 index 000000000..afc68fffc --- /dev/null +++ b/integrations/langgraph/python/tests/test_multimodal.py @@ -0,0 +1,227 @@ +""" +Tests for multimodal message conversion between AG-UI and LangChain formats. +""" + +import unittest +from ag_ui.core import ( + UserMessage, + TextInputContent, + BinaryInputContent, +) +from langchain_core.messages import HumanMessage + +from ag_ui_langgraph.utils import ( + agui_messages_to_langchain, + langchain_messages_to_agui, + convert_agui_multimodal_to_langchain, + convert_langchain_multimodal_to_agui, + flatten_user_content, +) + + +class TestMultimodalConversion(unittest.TestCase): + """Test multimodal message conversion between AG-UI and LangChain.""" + + def test_agui_text_only_to_langchain(self): + """Test converting a text-only AG-UI message to LangChain.""" + agui_message = UserMessage( + id="test-1", + role="user", + content="Hello, world!" + ) + + lc_messages = agui_messages_to_langchain([agui_message]) + + self.assertEqual(len(lc_messages), 1) + self.assertIsInstance(lc_messages[0], HumanMessage) + self.assertEqual(lc_messages[0].content, "Hello, world!") + self.assertEqual(lc_messages[0].id, "test-1") + + def test_agui_multimodal_to_langchain(self): + """Test converting a multimodal AG-UI message to LangChain.""" + agui_message = UserMessage( + id="test-2", + role="user", + content=[ + TextInputContent(type="text", text="What's in this image?"), + BinaryInputContent( + type="binary", + mime_type="image/jpeg", + url="https://example.com/photo.jpg" + ), + ] + ) + + lc_messages = agui_messages_to_langchain([agui_message]) + + self.assertEqual(len(lc_messages), 1) + self.assertIsInstance(lc_messages[0], HumanMessage) + self.assertIsInstance(lc_messages[0].content, list) + self.assertEqual(len(lc_messages[0].content), 2) + + # Check text content + self.assertEqual(lc_messages[0].content[0]["type"], "text") + self.assertEqual(lc_messages[0].content[0]["text"], "What's in this image?") + + # Check image content + self.assertEqual(lc_messages[0].content[1]["type"], "image_url") + self.assertEqual( + lc_messages[0].content[1]["image_url"]["url"], + "https://example.com/photo.jpg" + ) + + def test_agui_multimodal_with_data_to_langchain(self): + """Test converting AG-UI message with base64 data to LangChain.""" + agui_message = UserMessage( + id="test-3", + role="user", + content=[ + TextInputContent(type="text", text="Analyze this"), + BinaryInputContent( + type="binary", + mime_type="image/png", + data="iVBORw0KGgoAAAANSUhEUgAAAAUA", + filename="test.png" + ), + ] + ) + + lc_messages = agui_messages_to_langchain([agui_message]) + + self.assertEqual(len(lc_messages), 1) + self.assertIsInstance(lc_messages[0].content, list) + self.assertEqual(len(lc_messages[0].content), 2) + + # Check that data URL is properly formatted + image_content = lc_messages[0].content[1] + self.assertEqual(image_content["type"], "image_url") + self.assertTrue( + image_content["image_url"]["url"].startswith("data:image/png;base64,") + ) + + def test_langchain_multimodal_to_agui(self): + """Test converting LangChain multimodal message to AG-UI.""" + lc_message = HumanMessage( + id="test-4", + content=[ + {"type": "text", "text": "What do you see?"}, + { + "type": "image_url", + "image_url": {"url": "https://example.com/image.jpg"} + }, + ] + ) + + agui_messages = langchain_messages_to_agui([lc_message]) + + self.assertEqual(len(agui_messages), 1) + self.assertEqual(agui_messages[0].role, "user") + self.assertIsInstance(agui_messages[0].content, list) + self.assertEqual(len(agui_messages[0].content), 2) + + # Check text content + self.assertIsInstance(agui_messages[0].content[0], TextInputContent) + self.assertEqual(agui_messages[0].content[0].text, "What do you see?") + + # Check binary content + self.assertIsInstance(agui_messages[0].content[1], BinaryInputContent) + self.assertEqual(agui_messages[0].content[1].mime_type, "image/png") + self.assertEqual(agui_messages[0].content[1].url, "https://example.com/image.jpg") + + def test_langchain_data_url_to_agui(self): + """Test converting LangChain data URL to AG-UI.""" + lc_message = HumanMessage( + id="test-5", + content=[ + {"type": "text", "text": "Check this out"}, + { + "type": "image_url", + "image_url": {"url": "data:image/png;base64,iVBORw0KGgo"} + }, + ] + ) + + agui_messages = langchain_messages_to_agui([lc_message]) + + self.assertEqual(len(agui_messages), 1) + self.assertIsInstance(agui_messages[0].content, list) + self.assertEqual(len(agui_messages[0].content), 2) + + # Check that data URL was parsed correctly + binary_content = agui_messages[0].content[1] + self.assertIsInstance(binary_content, BinaryInputContent) + self.assertEqual(binary_content.mime_type, "image/png") + self.assertEqual(binary_content.data, "iVBORw0KGgo") + + def test_flatten_multimodal_content(self): + """Test flattening multimodal content to plain text.""" + content = [ + TextInputContent(type="text", text="Hello"), + BinaryInputContent( + type="binary", + mime_type="image/jpeg", + url="https://example.com/image.jpg" + ), + TextInputContent(type="text", text="World"), + ] + + flattened = flatten_user_content(content) + + self.assertIn("Hello", flattened) + self.assertIn("World", flattened) + self.assertIn("[Binary content: https://example.com/image.jpg]", flattened) + + def test_flatten_with_filename(self): + """Test flattening binary content with filename.""" + content = [ + TextInputContent(type="text", text="Check this file"), + BinaryInputContent( + type="binary", + mime_type="application/pdf", + url="https://example.com/doc.pdf", + filename="report.pdf" + ), + ] + + flattened = flatten_user_content(content) + + self.assertIn("Check this file", flattened) + self.assertIn("[Binary content: report.pdf]", flattened) + + def test_convert_agui_multimodal_to_langchain_helper(self): + """Test the convert_agui_multimodal_to_langchain helper function.""" + agui_content = [ + TextInputContent(type="text", text="Test text"), + BinaryInputContent( + type="binary", + mime_type="image/png", + url="https://example.com/test.png" + ), + ] + + lc_content = convert_agui_multimodal_to_langchain(agui_content) + + self.assertEqual(len(lc_content), 2) + self.assertEqual(lc_content[0]["type"], "text") + self.assertEqual(lc_content[0]["text"], "Test text") + self.assertEqual(lc_content[1]["type"], "image_url") + self.assertEqual(lc_content[1]["image_url"]["url"], "https://example.com/test.png") + + def test_convert_langchain_multimodal_to_agui_helper(self): + """Test the convert_langchain_multimodal_to_agui helper function.""" + lc_content = [ + {"type": "text", "text": "Test text"}, + {"type": "image_url", "image_url": {"url": "https://example.com/test.png"}}, + ] + + agui_content = convert_langchain_multimodal_to_agui(lc_content) + + self.assertEqual(len(agui_content), 2) + self.assertIsInstance(agui_content[0], TextInputContent) + self.assertEqual(agui_content[0].text, "Test text") + self.assertIsInstance(agui_content[1], BinaryInputContent) + self.assertEqual(agui_content[1].url, "https://example.com/test.png") + + +if __name__ == "__main__": + unittest.main() From fcd77a5797b59fafd704bc0835956a6f55decb3b Mon Sep 17 00:00:00 2001 From: Max Korp Date: Fri, 17 Oct 2025 17:21:44 -0700 Subject: [PATCH 033/113] typescript parity yo --- .../src/agents/multimodal_messages/agent.ts | 120 ++++++++++ .../langgraph/typescript/src/utils.test.ts | 224 ++++++++++++++++++ .../langgraph/typescript/src/utils.ts | 151 +++++++++++- 3 files changed, 482 insertions(+), 13 deletions(-) create mode 100644 integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts create mode 100644 integrations/langgraph/typescript/src/utils.test.ts diff --git a/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts b/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts new file mode 100644 index 000000000..f6c0ac7da --- /dev/null +++ b/integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts @@ -0,0 +1,120 @@ +/** + * An example demonstrating multimodal message support with images. + * + * This agent demonstrates how to: + * 1. Receive user messages with images + * 2. Process multimodal content (text + images) + * 3. Use vision models to analyze images + * + * Example usage: + * + * ```typescript + * import { UserMessage, TextInputContent, BinaryInputContent } from "@ag-ui/core"; + * + * // Create a multimodal user message + * const message: UserMessage = { + * id: "user-123", + * role: "user", + * content: [ + * { type: "text", text: "What's in this image?" }, + * { + * type: "binary", + * mimeType: "image/jpeg", + * url: "https://example.com/photo.jpg" + * }, + * ], + * }; + * + * // Or with base64 encoded data + * const messageWithData: UserMessage = { + * id: "user-124", + * role: "user", + * content: [ + * { type: "text", text: "Describe this picture" }, + * { + * type: "binary", + * mimeType: "image/png", + * data: "iVBORw0KGgoAAAANSUhEUgAAAAUA...", // base64 encoded + * filename: "screenshot.png" + * }, + * ], + * }; + * ``` + * + * The LangGraph integration automatically handles: + * 1. Converting AG-UI multimodal format to LangChain's format + * 2. Passing multimodal messages to vision models + * 3. Converting responses back to AG-UI format + */ + +import { ChatOpenAI } from "@langchain/openai"; +import { SystemMessage } from "@langchain/core/messages"; +import { RunnableConfig } from "@langchain/core/runnables"; +import { Annotation, MessagesAnnotation, StateGraph, Command, START, END } from "@langchain/langgraph"; + +const AgentStateAnnotation = Annotation.Root({ + tools: Annotation({ + reducer: (x, y) => y ?? x, + default: () => [] + }), + ...MessagesAnnotation.spec, +}); + +type AgentState = typeof AgentStateAnnotation.State; + +async function visionChatNode(state: AgentState, config?: RunnableConfig) { + /** + * Chat node that supports multimodal input including images. + * + * The messages in state can contain multimodal content with text and images. + * LangGraph will automatically handle the conversion from AG-UI format to + * the format expected by the vision model. + */ + + // 1. Use a vision-capable model + // GPT-4o supports vision, as do other models like Claude 3 + const model = new ChatOpenAI({ model: "gpt-4o" }); + + // Define config for the model + if (!config) { + config = { recursionLimit: 25 }; + } + + // 2. Bind tools if needed + const modelWithTools = model.bindTools( + state.tools ?? [], + { + parallel_tool_calls: false, + } + ); + + // 3. Define the system message + const systemMessage = new SystemMessage({ + content: "You are a helpful vision assistant. You can analyze images and " + + "answer questions about them. Describe what you see in detail." + }); + + // 4. Run the model with multimodal messages + // The messages may contain both text and images + const response = await modelWithTools.invoke([ + systemMessage, + ...state.messages, + ], config); + + // 5. Return the response + return new Command({ + goto: END, + update: { + messages: [response] + } + }); +} + +// Define a new graph +const workflow = new StateGraph(AgentStateAnnotation) + .addNode("visionChatNode", visionChatNode) + .addEdge(START, "visionChatNode") + .addEdge("visionChatNode", END); + +// Compile the graph +export const graph = workflow.compile(); diff --git a/integrations/langgraph/typescript/src/utils.test.ts b/integrations/langgraph/typescript/src/utils.test.ts new file mode 100644 index 000000000..5042c6e20 --- /dev/null +++ b/integrations/langgraph/typescript/src/utils.test.ts @@ -0,0 +1,224 @@ +/** + * Tests for multimodal message conversion between AG-UI and LangChain formats. + */ + +import { Message as LangGraphMessage } from "@langchain/langgraph-sdk"; +import { Message, UserMessage, TextInputContent, BinaryInputContent } from "@ag-ui/client"; +import { aguiMessagesToLangChain, langchainMessagesToAgui } from "./utils"; + +describe("Multimodal Message Conversion", () => { + describe("aguiMessagesToLangChain", () => { + it("should convert text-only AG-UI message to LangChain", () => { + const aguiMessage: UserMessage = { + id: "test-1", + role: "user", + content: "Hello, world!", + }; + + const lcMessages = aguiMessagesToLangChain([aguiMessage]); + + expect(lcMessages).toHaveLength(1); + expect(lcMessages[0].type).toBe("human"); + expect(lcMessages[0].content).toBe("Hello, world!"); + expect(lcMessages[0].id).toBe("test-1"); + }); + + it("should convert multimodal AG-UI message to LangChain", () => { + const aguiMessage: UserMessage = { + id: "test-2", + role: "user", + content: [ + { type: "text", text: "What's in this image?" }, + { + type: "binary", + mimeType: "image/jpeg", + url: "https://example.com/photo.jpg", + }, + ], + }; + + const lcMessages = aguiMessagesToLangChain([aguiMessage]); + + expect(lcMessages).toHaveLength(1); + expect(lcMessages[0].type).toBe("human"); + expect(Array.isArray(lcMessages[0].content)).toBe(true); + + const content = lcMessages[0].content as Array; + expect(content).toHaveLength(2); + + // Check text content + expect(content[0].type).toBe("text"); + expect(content[0].text).toBe("What's in this image?"); + + // Check image content + expect(content[1].type).toBe("image_url"); + expect(content[1].image_url.url).toBe("https://example.com/photo.jpg"); + }); + + it("should convert AG-UI message with base64 data to LangChain", () => { + const aguiMessage: UserMessage = { + id: "test-3", + role: "user", + content: [ + { type: "text", text: "Analyze this" }, + { + type: "binary", + mimeType: "image/png", + data: "iVBORw0KGgoAAAANSUhEUgAAAAUA", + filename: "test.png", + }, + ], + }; + + const lcMessages = aguiMessagesToLangChain([aguiMessage]); + + expect(lcMessages).toHaveLength(1); + expect(Array.isArray(lcMessages[0].content)).toBe(true); + + const content = lcMessages[0].content as Array; + expect(content).toHaveLength(2); + + // Check that data URL is properly formatted + const imageContent = content[1]; + expect(imageContent.type).toBe("image_url"); + expect(imageContent.image_url.url).toContain("data:image/png;base64,"); + }); + }); + + describe("langchainMessagesToAgui", () => { + it("should convert text-only LangChain message to AG-UI", () => { + const lcMessage: LangGraphMessage = { + id: "test-4", + type: "human", + content: "Hello from LangChain", + }; + + const aguiMessages = langchainMessagesToAgui([lcMessage]); + + expect(aguiMessages).toHaveLength(1); + expect(aguiMessages[0].role).toBe("user"); + expect(aguiMessages[0].content).toBe("Hello from LangChain"); + }); + + it("should convert LangChain multimodal message to AG-UI", () => { + const lcMessage: LangGraphMessage = { + id: "test-5", + type: "human", + content: [ + { type: "text", text: "What do you see?" }, + { + type: "image_url", + image_url: { url: "https://example.com/image.jpg" }, + }, + ] as any, + }; + + const aguiMessages = langchainMessagesToAgui([lcMessage]); + + expect(aguiMessages).toHaveLength(1); + expect(aguiMessages[0].role).toBe("user"); + expect(Array.isArray(aguiMessages[0].content)).toBe(true); + + const content = aguiMessages[0].content as Array; + expect(content).toHaveLength(2); + + // Check text content + expect(content[0].type).toBe("text"); + expect((content[0] as TextInputContent).text).toBe("What do you see?"); + + // Check binary content + expect(content[1].type).toBe("binary"); + expect((content[1] as BinaryInputContent).mimeType).toBe("image/png"); + expect((content[1] as BinaryInputContent).url).toBe("https://example.com/image.jpg"); + }); + + it("should convert LangChain data URL to AG-UI", () => { + const lcMessage: LangGraphMessage = { + id: "test-6", + type: "human", + content: [ + { type: "text", text: "Check this out" }, + { + type: "image_url", + image_url: { url: "data:image/png;base64,iVBORw0KGgo" }, + }, + ] as any, + }; + + const aguiMessages = langchainMessagesToAgui([lcMessage]); + + expect(aguiMessages).toHaveLength(1); + expect(Array.isArray(aguiMessages[0].content)).toBe(true); + + const content = aguiMessages[0].content as Array; + expect(content).toHaveLength(2); + + // Check that data URL was parsed correctly + const binaryContent = content[1] as BinaryInputContent; + expect(binaryContent.type).toBe("binary"); + expect(binaryContent.mimeType).toBe("image/png"); + expect(binaryContent.data).toBe("iVBORw0KGgo"); + }); + }); + + describe("Edge cases", () => { + it("should handle empty content arrays", () => { + const aguiMessage: UserMessage = { + id: "test-7", + role: "user", + content: [], + }; + + const lcMessages = aguiMessagesToLangChain([aguiMessage]); + + expect(lcMessages).toHaveLength(1); + expect(Array.isArray(lcMessages[0].content)).toBe(true); + expect((lcMessages[0].content as Array)).toHaveLength(0); + }); + + it("should handle binary content with only id", () => { + const aguiMessage: UserMessage = { + id: "test-8", + role: "user", + content: [ + { + type: "binary", + mimeType: "image/jpeg", + id: "img-123", + }, + ], + }; + + const lcMessages = aguiMessagesToLangChain([aguiMessage]); + + expect(lcMessages).toHaveLength(1); + const content = lcMessages[0].content as Array; + expect(content).toHaveLength(1); + expect(content[0].type).toBe("image_url"); + expect(content[0].image_url.url).toBe("img-123"); + }); + + it("should skip binary content without any source", () => { + const aguiMessage: UserMessage = { + id: "test-9", + role: "user", + content: [ + { type: "text", text: "Hello" }, + { + type: "binary", + mimeType: "image/jpeg", + // No url, data, or id + } as BinaryInputContent, + ], + }; + + const lcMessages = aguiMessagesToLangChain([aguiMessage]); + + expect(lcMessages).toHaveLength(1); + const content = lcMessages[0].content as Array; + // Binary content should be skipped, only text remains + expect(content).toHaveLength(1); + expect(content[0].type).toBe("text"); + }); + }); +}); diff --git a/integrations/langgraph/typescript/src/utils.ts b/integrations/langgraph/typescript/src/utils.ts index 7d253c12f..8866a9d7f 100644 --- a/integrations/langgraph/typescript/src/utils.ts +++ b/integrations/langgraph/typescript/src/utils.ts @@ -1,6 +1,6 @@ import { Message as LangGraphMessage } from "@langchain/langgraph-sdk"; import { State, SchemaKeys, LangGraphReasoning } from "./types"; -import { Message, ToolCall } from "@ag-ui/client"; +import { Message, ToolCall, TextInputContent, BinaryInputContent, InputContent , UserMessage} from "@ag-ui/client"; export const DEFAULT_SCHEMA_KEYS = ["messages", "tools"]; @@ -26,21 +26,118 @@ export function getStreamPayloadInput({ return input; } +/** + * Convert LangChain's multimodal content to AG-UI format + */ +function convertLangchainMultimodalToAgui( + content: Array<{ type: string; text?: string; image_url?: any }> +): InputContent[] { + const aguiContent: InputContent[] = []; + + for (const item of content) { + if (item.type === "text" && item.text) { + aguiContent.push({ + type: "text", + text: item.text, + }); + } else if (item.type === "image_url") { + const imageUrl = typeof item.image_url === "string" + ? item.image_url + : item.image_url?.url; + + if (!imageUrl) continue; + + // Parse data URLs to extract base64 data + if (imageUrl.startsWith("data:")) { + // Format: data:mime_type;base64,data + const [header, data] = imageUrl.split(",", 2); + const mimeType = header.includes(":") + ? header.split(":")[1].split(";")[0] + : "image/png"; + + aguiContent.push({ + type: "binary", + mimeType, + data: data || "", + }); + } else { + // Regular URL or ID + aguiContent.push({ + type: "binary", + mimeType: "image/png", // Default MIME type + url: imageUrl, + }); + } + } + } + + return aguiContent; +} + +/** + * Convert AG-UI multimodal content to LangChain's format + */ +function convertAguiMultimodalToLangchain( + content: InputContent[] +): Array<{ type: string; text?: string; image_url?: { url: string } }> { + const langchainContent: Array<{ type: string; text?: string; image_url?: { url: string } }> = []; + + for (const item of content) { + if (item.type === "text") { + langchainContent.push({ + type: "text", + text: item.text, + }); + } else if (item.type === "binary") { + // LangChain uses image_url format (OpenAI-style) + let url: string; + + // Prioritize url, then data, then id + if (item.url) { + url = item.url; + } else if (item.data) { + // Construct data URL from base64 data + url = `data:${item.mimeType};base64,${item.data}`; + } else if (item.id) { + // Use id as a reference + url = item.id; + } else { + continue; // Skip if no source is provided + } + + langchainContent.push({ + type: "image_url", + image_url: { url }, + }); + } + } + + return langchainContent; +} + export function langchainMessagesToAgui(messages: LangGraphMessage[]): Message[] { return messages.map((message) => { switch (message.type) { case "human": + // Handle multimodal content + let userContent: string | InputContent[]; + if (Array.isArray(message.content)) { + userContent = convertLangchainMultimodalToAgui(message.content as any); + } else { + userContent = stringifyIfNeeded(resolveMessageContent(message.content)); + } + return { id: message.id!, role: "user", - content: stringifyIfNeeded(resolveMessageContent(message.content)), + content: userContent, }; case "ai": - const content = resolveMessageContent(message.content) + const aiContent = resolveMessageContent(message.content) return { id: message.id!, role: "assistant", - content: content ? stringifyIfNeeded(content) : '', + content: aiContent ? stringifyIfNeeded(aiContent) : '', toolCalls: message.tool_calls?.map((tc) => ({ id: tc.id!, type: "function", @@ -73,13 +170,22 @@ export function aguiMessagesToLangChain(messages: Message[]): LangGraphMessage[] return messages.map((message, index) => { switch (message.role) { case "user": - const userContent = flattenUserContent(message.content); + // 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: userContent, + content, type: "human", - }; + } as LangGraphMessage; case "assistant": return { id: message.id, @@ -120,7 +226,11 @@ function stringifyIfNeeded(item: any) { return JSON.stringify(item); } -function flattenUserContent(content: Message["content"]) { +/** + * 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; } @@ -129,12 +239,27 @@ function flattenUserContent(content: Message["content"]) { return ""; } - const textParts = content - .filter((part): part is { type: "text"; text: string } => part.type === "text") - .map((part) => part.text) - .filter((text) => text.length > 0); + 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 textParts.join("\n"); + return parts.join("\n"); } export function resolveReasoningContent(eventData: any): LangGraphReasoning | null { From c725df2151031ea43dd2a8dea7c78fdcd74eaa6f Mon Sep 17 00:00:00 2001 From: Max Korp Date: Mon, 20 Oct 2025 10:36:39 -0700 Subject: [PATCH 034/113] update versions to new prereleases --- integrations/langgraph/python/pyproject.toml | 4 ++-- sdks/python/pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integrations/langgraph/python/pyproject.toml b/integrations/langgraph/python/pyproject.toml index e4e679a45..26d515725 100644 --- a/integrations/langgraph/python/pyproject.toml +++ b/integrations/langgraph/python/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ag-ui-langgraph" -version = "0.0.17" +version = "0.0.18a0" description = "Implementation of the AG-UI protocol for LangGraph." authors = ["Ran Shem Tov "] readme = "README.md" @@ -10,7 +10,7 @@ exclude = [ [tool.poetry.dependencies] python = "<3.14,>=3.10" -ag-ui-protocol = { path = "../../../sdks/python", develop = true } +ag-ui-protocol = "==0.2.0a0" fastapi = { version = "^0.115.12", optional = true } langchain = ">=0.3.0" langchain-core = ">=0.3.0" diff --git a/sdks/python/pyproject.toml b/sdks/python/pyproject.toml index a8de00217..f38eb2dff 100644 --- a/sdks/python/pyproject.toml +++ b/sdks/python/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ag-ui-protocol" -version = "0.1.9" +version = "0.2.0a0" description = "" authors = ["Markus Ecker "] readme = "README.md" From 5b09d27737d774e8894c829315cd328328a4f8f9 Mon Sep 17 00:00:00 2001 From: Max Korp Date: Mon, 20 Oct 2025 10:52:11 -0700 Subject: [PATCH 035/113] bump alpha for typescript lg --- integrations/langgraph/typescript/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/integrations/langgraph/typescript/package.json b/integrations/langgraph/typescript/package.json index e465fb9d5..85ed2eaf0 100644 --- a/integrations/langgraph/typescript/package.json +++ b/integrations/langgraph/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@ag-ui/langgraph", - "version": "0.0.18", + "version": "0.0.19-alpha.0", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", @@ -29,8 +29,8 @@ "rxjs": "7.8.1" }, "peerDependencies": { - "@ag-ui/core": ">=0.0.38", - "@ag-ui/client": ">=0.0.38" + "@ag-ui/core": "0.0.40-alpha.6", + "@ag-ui/client": "0.0.40-alpha.6" }, "devDependencies": { "@ag-ui/core": "workspace:*", From ca5fbae214e9a39e7dd4ec83acc40eed9621d51a Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Mon, 20 Oct 2025 13:58:04 -0400 Subject: [PATCH 036/113] chore: upgrade versions to new prerelease version --- apps/dojo/package.json | 10 +- pnpm-lock.yaml | 1724 ++++++++++++++++++++++++++++++++++------ 2 files changed, 1495 insertions(+), 239 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 74805947b..acb802752 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/server-starter-all-features": "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", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251020144115", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251020144115", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251020144115", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251020144115", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251020144115", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70be6bfa3..352c4efd5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 1.10.6 - version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251020144115 + version: 0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251020144115 + version: 0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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(43a54c62826e391639c20a8a0387b983) + specifier: 0.0.0-feat-cpk-1-5-20251020144115 + version: 0.0.0-feat-cpk-1-5-20251020144115(43a54c62826e391639c20a8a0387b983) '@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-20251020144115 + version: 0.0.0-feat-cpk-1-5-20251020144115(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 1.10.6 - version: 1.10.6 + specifier: 0.0.0-feat-cpk-1-5-20251020144115 + version: 0.0.0-feat-cpk-1-5-20251020144115 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -507,7 +507,7 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(2963fdc46a5185bf1f60e289781c45cd) + version: 1.10.6(8dc826fe100bbc0d29be9c7fa737bed6) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -953,20 +953,23 @@ packages: '@ag-ui/client@0.0.35': resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==} + '@ag-ui/client@0.0.40-alpha.6': + resolution: {integrity: sha512-QIgOY8nJvv3mrDz9OXyaoxwj3Js28YPYXz+myRQ2idR1ghoKq0V9MEZrXoHOE4O6Z7PnUSw5z7zZIemh7YK/5w==} + '@ag-ui/core@0.0.35': resolution: {integrity: sha512-YAqrln3S3fdo+Hs5FFQPODXiBttyilv/E3xSSHCuxqC0Y/Fp3+VqyDx97BorO3NVp2VKZ9cG2nsO3cbmcTwkQw==} '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} - '@ag-ui/core@0.0.39': - resolution: {integrity: sha512-T5Hp4oFkQ+H5MynWAvSwrX/rNYJOD+PJ4qPQ0o771oSZQAxoIvDDft47Cx5wRyBNNLXAe1RWqJjfWUUwJFNKqA==} + '@ag-ui/core@0.0.40-alpha.6': + resolution: {integrity: sha512-XkZAnmtewucr0yayWxK2GEcOoxaHZ6cSZZKkVFKAEOPJuUwFCFstqS3vh0Z5rUy2ZE8eh8WJylBHidiCRW4yuA==} '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} - '@ag-ui/encoder@0.0.39': - resolution: {integrity: sha512-6fsoFwPWkStK7Uyj3pwBn7+aQjUWf7pbDTSI43cD53sBLvTr5oEFNnoKOzRfC5UqvHc4JjUIuLKPQyjHRwWg4g==} + '@ag-ui/encoder@0.0.40-alpha.6': + resolution: {integrity: sha512-q+bpJGp4fMjQplHowmbNaOQrICHzmk1J394jZXmTv/RjysNHtcDrWHythXBiPAnNRutYeqsG6bQJ5PASbQYiqg==} '@ag-ui/langgraph@0.0.18': resolution: {integrity: sha512-soWSV8+xR91jMArZUJoRv85UCgTi3Zt3u3gTMZhvs1t6fGFpAi6+hEQ4AqP13Rgvg90IlmIU8MTWo2k0OZDnoA==} @@ -977,8 +980,8 @@ packages: '@ag-ui/proto@0.0.35': resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==} - '@ag-ui/proto@0.0.39': - resolution: {integrity: sha512-xlj/PzZHkJ3CgoQC5QP9g7DEl/78wUK1+A2rdkoLKoNAMOkM2g6jKw0N88iFIh5GZhtiCNN2wb8XwRWPYx9XQQ==} + '@ag-ui/proto@0.0.40-alpha.6': + resolution: {integrity: sha512-xFw9igIC7OGdq/t1biUXRMinaC0sPLkavjj2oz820KaJe1uZOTSRfAK1qEgswoHJU1N4vRg0RQDEhd1wN8+GGg==} '@ai-sdk/anthropic@2.0.23': resolution: {integrity: sha512-ZEBiiv1UhjGjBwUU63pFhLK5LCSlNDb1idY9K1oZHm5/Fda1cuTojf32tOp0opH0RPbPAN/F8fyyNjbU33n9Kw==} @@ -1074,6 +1077,12 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@antfu/utils@9.3.0': + resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==} + '@anthropic-ai/sdk@0.27.3': resolution: {integrity: sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==} @@ -1471,6 +1480,9 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@braintree/sanitize-url@7.1.1': + resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} + '@browserbasehq/sdk@2.6.0': resolution: {integrity: sha512-83iXP5D7xMm8Wyn66TUaUrgoByCmAJuoMoZQI3sGg3JAiMlTfnCIMqyVBoNSaItaPIkaCnrsj6LiusmXV2X9YA==} @@ -1489,28 +1501,56 @@ packages: '@cfworker/json-schema@4.1.1': resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==} + '@chevrotain/cst-dts-gen@11.0.3': + resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} + + '@chevrotain/gast@11.0.3': + resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==} + + '@chevrotain/regexp-to-ast@11.0.3': + resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==} + + '@chevrotain/types@11.0.3': + resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==} + + '@chevrotain/utils@11.0.3': + resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} + '@clack/core@0.5.0': resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@1.10.6': - resolution: {integrity: sha512-sdojpntwgOxP8lWRzaFEiWr0g2wDefjQHtve5GPPie+otseFonV88FZjSqIq5LN+q5BIwDOEhCmDjALsGjXvuQ==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251020144115': + resolution: {integrity: sha512-KFeke2x5h8GXU52HQG2bks9bluQZ7XepKxBCa/HDDmzcn0rblp2jwyUYj/pJQhzG3h2ZPCGEmyOAbjkiVzVLqw==} peerDependencies: + '@copilotkitnext/core': 0.0.16 + '@copilotkitnext/react': 0.0.16 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-20251020144115': + resolution: {integrity: sha512-Sl2U5Fp/i7cHR5H9c45TF8g/yqLbZ7OaqKCQ/Uy+xpfY/BXy9ZlyzXPPUloMTIt8nQdaItE6B2gyU/QgwG1jgg==} peerDependencies: + '@copilotkitnext/core': 0.0.16 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-20251020144115': + resolution: {integrity: sha512-w+CXE31NIQD2txrGpkO91fHAiE+hn9w1W7YNH1mxTdxY6sRdQlEgBnEvWzdjSBLMPR7OoIhz6ImJatYBLXiHtA==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251020144115': + resolution: {integrity: sha512-ZfjrdSFes3GfvVA5AiiNHbr0RXw5JdtlDmkpFMNoQ8QhXBcDIMGfOSms+GQe9hxoRXbKQLPAFOfexnS2EX4U7g==} + 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: @@ -1520,9 +1560,45 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251020144115': + resolution: {integrity: sha512-DtHUbUcQRIJIddeyt11FdMp88Vel9WAPfSZDnL2MVmFaBeKk9rk7etr4VzIOb5l/MhUWBpwRc8BM5mclWH36CA==} + '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} + '@copilotkitnext/agent@0.0.17': + resolution: {integrity: sha512-PH7nAP0NLt6oF13Pzsi9PUC759q4f27nslFPGRne0rPmCO1zOjRZ/0IVxR3QFjfEgjewctuvm2y4ME7ClguHVg==} + engines: {node: '>=18'} + + '@copilotkitnext/core@0.0.16': + resolution: {integrity: sha512-eb6jCtLZTNnh3E8D7fKqU2iazDdJAO1ktcjIZluBhp65zb0OMEFhVo5ojIL9OHhQAnIOjJaC8eprqj9Qqa8hOA==} + engines: {node: '>=18'} + + '@copilotkitnext/react@0.0.16': + resolution: {integrity: sha512-AiD27umuMT9u/2rIWH5PM8J3I4zu3ZvN80Vz9lsQISbEWFzy37mzvOERjtcJG9H2hizgAu3QJdmHWpgkTUpw1A==} + engines: {node: '>=18'} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@copilotkitnext/runtime@0.0.17': + resolution: {integrity: sha512-1pqU+ZW1A898CUIx7+0hCQvuKEXUG4kuUGnN2wIvVTu2shAKOz3GwwNOZM3DLiC8k1ou3TPyjheNYDAGhmnQuA==} + engines: {node: '>=18'} + peerDependencies: + openai: ^5.9.0 + + '@copilotkitnext/shared@0.0.16': + resolution: {integrity: sha512-6Nmwmbsne0aNmDsBV2zFT3hKL+t3Np3surOC6R+qK9onPxnR/aQCZfWNTYcGhrJwctpzyP03V8BP37GNdnak3w==} + engines: {node: '>=18'} + + '@copilotkitnext/shared@0.0.17': + resolution: {integrity: sha512-6uAquOvcNvxJhdu+j6PbiaY4yUnYJ9DzSS0Xr+ISjsSZU14UFo2oynlAim3r9UKxX/bcAI5/Jk52aDkClEtLnQ==} + engines: {node: '>=18'} + + '@copilotkitnext/web-inspector@0.0.16': + resolution: {integrity: sha512-YGioU631EyG5h/7f8ovgUm4JvgbbaAym1lNpQMjVhcUQj1ofZ8v0N59E6mi17oEh6AxHJjkQUUm0IZEoGr27Bg==} + engines: {node: '>=18'} + '@emnapi/core@1.5.0': resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} @@ -1852,6 +1928,12 @@ packages: resolution: {integrity: sha512-TmLaoFXmLc7yVFJIQS25mzZcuWfju4JmRXcO62KthDKNENyPpXXJukrHN6gXfv1BotzFt0M2kyRnO1Vt8ZLlxQ==} engines: {node: '>=18.0.0'} + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.0.2': + resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==} + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -2711,6 +2793,20 @@ packages: cpu: [x64] os: [win32] + '@lit-labs/react@2.1.3': + resolution: {integrity: sha512-OD9h2JynerBQUMNzb563jiVpxfvPF0HjQkKY2mx0lpVYvD7F+rtJpOGz6ek+6ufMidV3i+MPT9SX62OKWHFrQg==} + + '@lit-labs/ssr-dom-shim@1.4.0': + resolution: {integrity: sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==} + + '@lit/react@1.0.8': + resolution: {integrity: sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==} + peerDependencies: + '@types/react': 17 || 18 || 19 + + '@lit/reactive-element@2.1.1': + resolution: {integrity: sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==} + '@lukeed/csprng@1.1.0': resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} engines: {node: '>=8'} @@ -2824,6 +2920,9 @@ packages: '@types/react': '>=16' react: '>=16' + '@mermaid-js/parser@0.6.3': + resolution: {integrity: sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==} + '@modelcontextprotocol/sdk@1.20.0': resolution: {integrity: sha512-kOQ4+fHuT4KbR2iq2IjeV32HiihueuOf1vJkq18z08CLZ1UQrTc8BXJpVfxZkq45+inLLD+D4xx4nBjUelJa4Q==} engines: {node: '>=18'} @@ -3696,6 +3795,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-use-callback-ref@1.1.1': resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: @@ -3759,6 +3871,19 @@ packages: '@types/react': optional: true + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} @@ -4137,6 +4262,27 @@ packages: resolution: {integrity: sha512-0dtu/5ApsOZ24qgaZwtif8jVwqol7a4m1x5AxPuM1k5wxhqU7t/qEfBGtaSki1R8VlbTQfCj5PAlO45NKCa7Gg==} hasBin: true + '@shikijs/core@3.13.0': + resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} + + '@shikijs/engine-javascript@3.13.0': + resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==} + + '@shikijs/engine-oniguruma@3.13.0': + resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==} + + '@shikijs/langs@3.13.0': + resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==} + + '@shikijs/themes@3.13.0': + resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==} + + '@shikijs/types@3.13.0': + resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -4644,6 +4790,99 @@ packages: '@types/cors@2.8.19': resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.7': + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.3': + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-shape@3.1.7': + resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -4665,6 +4904,9 @@ packages: '@types/express@4.17.23': resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==} + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -4802,6 +5044,9 @@ packages: '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -5390,6 +5635,14 @@ packages: chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + chevrotain-allstar@0.3.1: + resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} + peerDependencies: + chevrotain: ^11.0.0 + + chevrotain@11.0.3: + resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -5501,6 +5754,10 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -5567,6 +5824,12 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5594,6 +5857,162 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape@3.33.1: + resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} + engines: {node: '>=0.10'} + + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + dagre-d3-es@7.0.11: + resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -5622,6 +6041,9 @@ packages: dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dayjs@1.11.18: + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -5704,6 +6126,9 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delaunator@5.0.1: + resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -5765,6 +6190,9 @@ packages: dompurify@3.1.7: resolution: {integrity: sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==} + dompurify@3.3.0: + resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} + dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -6397,6 +6825,10 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -6458,6 +6890,9 @@ packages: resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==} engines: {node: '>=12.0.0'} + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -6490,9 +6925,21 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-from-dom@5.0.1: + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} + + hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-parse-selector@2.2.5: resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} @@ -6505,12 +6952,18 @@ packages: hast-util-to-estree@3.1.3: resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} @@ -6686,6 +7139,13 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + ip-regex@4.3.0: resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} engines: {node: '>=8'} @@ -7176,6 +7636,9 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -7184,6 +7647,9 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + langchain@0.3.36: resolution: {integrity: sha512-PqC19KChFF0QlTtYDFgfEbIg+SCnCXox29G8tY62QWfj9bOW7ew2kgWmPw5qoHLOTKOdQPvXET20/1Pdq8vAtQ==} engines: {node: '>=18'} @@ -7242,6 +7708,10 @@ packages: typeorm: optional: true + langium@3.3.1: + resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} + engines: {node: '>=16.0.0'} + langsmith@0.3.74: resolution: {integrity: sha512-ZuW3Qawz8w88XcuCRH91yTp6lsdGuwzRqZ5J0Hf5q/AjMz7DwcSv0MkE6V5W+8hFMI850QZN2Wlxwm3R9lHlZg==} peerDependencies: @@ -7266,6 +7736,12 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -7356,6 +7832,15 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + lit-element@4.2.1: + resolution: {integrity: sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==} + + lit-html@3.3.1: + resolution: {integrity: sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==} + + lit@3.3.1: + resolution: {integrity: sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==} + load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7372,6 +7857,9 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -7441,6 +7929,19 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lucide-react@0.525.0: + resolution: {integrity: sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide-react@0.542.0: + resolution: {integrity: sha512-w3hD8/SQB7+lzU2r4VdFyzzOzKnUjTZIF/MQJGSSvni7Llewni4vuViRppfRAa2guOsY5k4jZyxw/i9DQHv+dw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide@0.525.0: + resolution: {integrity: sha512-sfehWlaE/7NVkcEQ4T9JD3eID8RNMIGJBBUq9wF3UFiJIrcMKRbU3g1KGfDk4svcW7yw8BtDLXaXo02scDtUYQ==} + magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} @@ -7473,6 +7974,11 @@ packages: engines: {node: '>= 18'} hasBin: true + marked@16.4.1: + resolution: {integrity: sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==} + engines: {node: '>= 20'} + hasBin: true + mastra@0.15.1: resolution: {integrity: sha512-8C+2/ANWRrDN82gBvWpvcsi0tuntgZvXu2QdPGuqLAoap/vinzMVQXMXDgLtvlQ8shW1E7x6Vwsr0UzoNPKrAg==} hasBin: true @@ -7572,6 +8078,9 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + mermaid@11.12.0: + resolution: {integrity: sha512-ZudVx73BwrMJfCFmSSJT84y6u5brEoV8DOItdHomNLz32uBjNrelm7mg95X7g+C6UoQH/W6mBLGDEDv73JdxBg==} + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -8000,6 +8509,12 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + + oniguruma-to-es@4.3.3: + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + open@10.2.0: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} @@ -8089,6 +8604,9 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@1.5.0: + resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -8117,6 +8635,9 @@ packages: partial-json@0.1.7: resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==} + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -8244,6 +8765,12 @@ packages: engines: {node: '>=18'} hasBin: true + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -8585,10 +9112,25 @@ packages: refractor@3.6.0: resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} + rehype-harden@1.1.5: + resolution: {integrity: sha512-JrtBj5BVd/5vf3H3/blyJatXJbzQfRT9pJBmjafbTaPouQCAKxHwRyCc7dle9BXQKxv4z1OzZylz/tNamoiG3A==} + + rehype-katex@7.0.1: + resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} @@ -8676,6 +9218,9 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + robust-predicates@3.0.2: + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + rollup-plugin-esbuild@6.2.1: resolution: {integrity: sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==} engines: {node: '>=14.18.0'} @@ -8702,6 +9247,9 @@ packages: rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -8717,6 +9265,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -8814,6 +9365,9 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} + shiki@3.13.0: + resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==} + side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -8918,6 +9472,11 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} + streamdown@1.4.0: + resolution: {integrity: sha512-ylhDSQ4HpK5/nAH9v7OgIIdGJxlJB2HoYrYkJNGrO8lMpnWuKUcrz/A8xAMwA6eILA27469vIavcOTjmxctrKg==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -9028,6 +9587,9 @@ packages: babel-plugin-macros: optional: true + stylis@4.3.6: + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -9147,6 +9709,14 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + ts-deepmerge@7.0.3: + resolution: {integrity: sha512-Du/ZW2RfwV/D4cmA5rXafYjBQVuvu4qGiEEla4EmEHVHgRdx68Gftx7i66jn2bzHPwSVZY36Ae6OuDn9el4ZKA==} + engines: {node: '>=14.13.1'} + ts-error@1.0.6: resolution: {integrity: sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==} @@ -9254,6 +9824,9 @@ packages: resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==} hasBin: true + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -9354,6 +9927,9 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} @@ -9456,6 +10032,11 @@ packages: '@types/react': optional: true + use-stick-to-bottom@1.1.1: + resolution: {integrity: sha512-JkDp0b0tSmv7HQOOpL1hT7t7QaoUBXkq045WWWOFDTlLGRzgIIyW7vyzOIJzY7L2XVIG7j1yUxeDj2LHm9Vwng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -9512,6 +10093,26 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -9721,6 +10322,18 @@ snapshots: uuid: 11.1.0 zod: 3.25.76 + '@ag-ui/client@0.0.40-alpha.6': + dependencies: + '@ag-ui/core': 0.0.40-alpha.6 + '@ag-ui/encoder': 0.0.40-alpha.6 + '@ag-ui/proto': 0.0.40-alpha.6 + '@types/uuid': 10.0.0 + fast-json-patch: 3.1.1 + rxjs: 7.8.1 + untruncate-json: 0.0.1 + uuid: 11.1.0 + zod: 3.25.76 + '@ag-ui/core@0.0.35': dependencies: rxjs: 7.8.1 @@ -9731,7 +10344,7 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.39': + '@ag-ui/core@0.0.40-alpha.6': dependencies: rxjs: 7.8.1 zod: 3.25.76 @@ -9741,17 +10354,17 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 - '@ag-ui/encoder@0.0.39': + '@ag-ui/encoder@0.0.40-alpha.6': dependencies: - '@ag-ui/core': 0.0.39 - '@ag-ui/proto': 0.0.39 + '@ag-ui/core': 0.0.40-alpha.6 + '@ag-ui/proto': 0.0.40-alpha.6 - '@ag-ui/langgraph@0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@ag-ui/langgraph@0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/langgraph-sdk': 0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@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) partial-json: 0.1.7 rxjs: 7.8.1 transitivePeerDependencies: @@ -9767,9 +10380,9 @@ snapshots: '@ag-ui/core': 0.0.35 '@bufbuild/protobuf': 2.9.0 - '@ag-ui/proto@0.0.39': + '@ag-ui/proto@0.0.40-alpha.6': dependencies: - '@ag-ui/core': 0.0.39 + '@ag-ui/core': 0.0.40-alpha.6 '@bufbuild/protobuf': 2.9.0 '@protobuf-ts/protoc': 2.11.1 @@ -9871,6 +10484,13 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.5.0 + tinyexec: 1.0.1 + + '@antfu/utils@9.3.0': {} + '@anthropic-ai/sdk@0.27.3': dependencies: '@types/node': 18.19.130 @@ -10732,6 +11352,8 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@braintree/sanitize-url@7.1.1': {} + '@browserbasehq/sdk@2.6.0': dependencies: '@types/node': 18.19.130 @@ -10760,26 +11382,27 @@ snapshots: - encoding - utf-8-validate - '@browserbasehq/stagehand@1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)': - dependencies: - '@anthropic-ai/sdk': 0.27.3 - '@browserbasehq/sdk': 2.6.0 - '@playwright/test': 1.56.0 - deepmerge: 4.3.1 - dotenv: 16.6.1 - openai: 5.12.2(ws@8.18.3)(zod@3.25.76) - ws: 8.18.3 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@bufbuild/protobuf@2.9.0': {} '@cfworker/json-schema@4.1.1': {} + '@chevrotain/cst-dts-gen@11.0.3': + dependencies: + '@chevrotain/gast': 11.0.3 + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 + + '@chevrotain/gast@11.0.3': + dependencies: + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 + + '@chevrotain/regexp-to-ast@11.0.3': {} + + '@chevrotain/types@11.0.3': {} + + '@chevrotain/utils@11.0.3': {} + '@clack/core@0.5.0': dependencies: picocolors: 1.1.1 @@ -10791,26 +11414,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-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251020144115(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 + '@copilotkitnext/core': 0.0.16 + '@copilotkitnext/react': 0.0.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) '@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-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251020144115(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 + '@copilotkitnext/core': 0.0.16 '@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) @@ -10819,15 +11446,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-20251020144115(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 1.10.6 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -10836,22 +11465,24 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.10.6(2963fdc46a5185bf1f60e289781c45cd)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251020144115(43a54c62826e391639c20a8a0387b983)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': 0.0.39 - '@ag-ui/langgraph': 0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@ag-ui/proto': 0.0.39 + '@ag-ui/encoder': link:sdks/typescript/packages/encoder + '@ag-ui/langgraph': link:integrations/langgraph/typescript + '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 1.10.6 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 + '@copilotkitnext/agent': 0.0.17 + '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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@5.12.2(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(8d705aac09841dc81e24dfe2c773558d) + '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) + '@langchain/community': 0.3.57(a6f05470c76b31786172bd3244671918) '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) - '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) + '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) + '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) '@scarf/scarf': 1.4.0 class-transformer: 0.5.1 class-validator: 0.14.2 @@ -10860,7 +11491,7 @@ snapshots: graphql-scalars: 1.24.2(graphql@16.11.0) graphql-yoga: 5.16.0(graphql@16.11.0) groq-sdk: 0.5.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) + langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) partial-json: 0.1.7 pino: 9.13.1 @@ -11018,13 +11649,13 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(43a54c62826e391639c20a8a0387b983)': + '@copilotkit/runtime@1.10.6(8dc826fe100bbc0d29be9c7fa737bed6)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': link:sdks/typescript/packages/encoder - '@ag-ui/langgraph': link:integrations/langgraph/typescript - '@ag-ui/proto': link:sdks/typescript/packages/proto + '@ag-ui/encoder': 0.0.40-alpha.6 + '@ag-ui/langgraph': 0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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/proto': 0.0.40-alpha.6 '@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) @@ -11200,6 +11831,18 @@ snapshots: - ws - youtubei.js + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251020144115': + 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 @@ -11212,6 +11855,82 @@ snapshots: transitivePeerDependencies: - encoding + '@copilotkitnext/agent@0.0.17': + dependencies: + '@ag-ui/client': 0.0.40-alpha.6 + '@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) + rxjs: 7.8.1 + zod: 3.25.76 + transitivePeerDependencies: + - supports-color + + '@copilotkitnext/core@0.0.16': + dependencies: + '@ag-ui/client': 0.0.40-alpha.6 + '@copilotkitnext/shared': 0.0.16 + rxjs: 7.8.1 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + + '@copilotkitnext/react@0.0.16(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@ag-ui/client': 0.0.40-alpha.6 + '@ag-ui/core': 0.0.40-alpha.6 + '@copilotkitnext/core': 0.0.16 + '@copilotkitnext/shared': 0.0.16 + '@copilotkitnext/web-inspector': 0.0.16 + '@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-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 + katex: 0.16.25 + lucide-react: 0.525.0(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + streamdown: 1.4.0(@types/react@19.2.2)(react@19.2.0) + tailwind-merge: 3.3.1 + ts-deepmerge: 7.0.3 + tw-animate-css: 1.4.0 + use-stick-to-bottom: 1.1.1(react@19.2.0) + zod: 3.25.76 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - supports-color + + '@copilotkitnext/runtime@0.0.17(openai@4.104.0(ws@8.18.3)(zod@3.25.76))': + dependencies: + '@ag-ui/client': 0.0.40-alpha.6 + '@ag-ui/core': 0.0.40-alpha.6 + '@ag-ui/encoder': 0.0.40-alpha.6 + '@copilotkitnext/shared': 0.0.17 + hono: 4.9.12 + openai: 4.104.0(ws@8.18.3)(zod@3.25.76) + rxjs: 7.8.1 + + '@copilotkitnext/shared@0.0.16': + dependencies: + partial-json: 0.1.7 + uuid: 11.1.0 + + '@copilotkitnext/shared@0.0.17': + dependencies: + partial-json: 0.1.7 + uuid: 11.1.0 + + '@copilotkitnext/web-inspector@0.0.16': + dependencies: + '@ag-ui/client': 0.0.40-alpha.6 + '@copilotkitnext/core': 0.0.16 + lit: 3.3.1 + lucide: 0.525.0 + '@emnapi/core@1.5.0': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -11506,6 +12225,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.0.2': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@antfu/utils': 9.3.0 + '@iconify/types': 2.0.0 + debug: 4.4.3 + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.2 + mlly: 1.8.0 + transitivePeerDependencies: + - supports-color + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 @@ -11926,73 +12660,6 @@ snapshots: transitivePeerDependencies: - aws-crt - '@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 - '@aws-sdk/client-bedrock-runtime': 3.910.0 - '@aws-sdk/client-kendra': 3.910.0 - '@aws-sdk/credential-provider-node': 3.910.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - transitivePeerDependencies: - - aws-crt - - '@langchain/community@0.3.57(8d705aac09841dc81e24dfe2c773558d)': - dependencies: - '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) - '@ibm-cloud/watsonx-ai': 1.7.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - binary-extensions: 2.3.0 - expr-eval: 2.0.2 - flat: 5.0.2 - ibm-cloud-sdk-core: 5.4.3 - js-yaml: 4.1.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - uuid: 10.0.0 - zod: 3.25.76 - optionalDependencies: - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 - '@aws-sdk/client-bedrock-runtime': 3.910.0 - '@aws-sdk/client-dynamodb': 3.910.0 - '@aws-sdk/client-kendra': 3.910.0 - '@aws-sdk/credential-provider-node': 3.910.0 - '@browserbasehq/sdk': 2.6.0 - '@smithy/util-utf8': 2.3.0 - '@upstash/redis': 1.35.6 - fast-xml-parser: 5.2.5 - google-auth-library: 8.9.0 - ignore: 5.3.2 - jsonwebtoken: 9.0.2 - pg: 8.16.3 - playwright: 1.56.0 - redis: 5.8.3 - weaviate-client: 3.9.0 - ws: 8.18.3 - transitivePeerDependencies: - - '@langchain/anthropic' - - '@langchain/aws' - - '@langchain/cerebras' - - '@langchain/cohere' - - '@langchain/deepseek' - - '@langchain/google-genai' - - '@langchain/google-vertexai' - - '@langchain/google-vertexai-web' - - '@langchain/groq' - - '@langchain/mistralai' - - '@langchain/ollama' - - '@langchain/xai' - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - axios - - encoding - - handlebars - - peggy - '@langchain/community@0.3.57(a6f05470c76b31786172bd3244671918)': dependencies: '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) @@ -12098,14 +12765,6 @@ snapshots: transitivePeerDependencies: - zod - '@langchain/google-common@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - uuid: 10.0.0 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - zod - '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) @@ -12116,16 +12775,6 @@ snapshots: - supports-color - zod - '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-common': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - google-auth-library: 8.9.0 - transitivePeerDependencies: - - encoding - - supports-color - - zod - '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': dependencies: '@types/json-schema': 7.0.15 @@ -12136,15 +12785,16 @@ snapshots: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) react: 19.2.0 - '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': + '@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)': dependencies: '@types/json-schema': 7.0.15 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@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 + 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(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: @@ -12168,17 +12818,6 @@ snapshots: - encoding - ws - '@langchain/openai@0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - encoding - - ws - '@langchain/openai@0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) @@ -12188,25 +12827,11 @@ snapshots: transitivePeerDependencies: - ws - '@langchain/openai@0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - openai: 5.12.2(ws@8.18.3)(zod@3.25.76) - zod: 3.25.76 - transitivePeerDependencies: - - ws - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) js-tiktoken: 1.0.21 - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - '@langchain/weaviate@0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) @@ -12215,14 +12840,6 @@ snapshots: transitivePeerDependencies: - encoding - '@langchain/weaviate@0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - uuid: 10.0.0 - weaviate-client: 3.9.0 - transitivePeerDependencies: - - encoding - '@libsql/client@0.15.15': dependencies: '@libsql/core': 0.15.15 @@ -12285,6 +12902,22 @@ snapshots: '@libsql/win32-x64-msvc@0.5.22': optional: true + '@lit-labs/react@2.1.3(@types/react@19.2.2)': + dependencies: + '@lit/react': 1.0.8(@types/react@19.2.2) + transitivePeerDependencies: + - '@types/react' + + '@lit-labs/ssr-dom-shim@1.4.0': {} + + '@lit/react@1.0.8(@types/react@19.2.2)': + dependencies: + '@types/react': 19.2.2 + + '@lit/reactive-element@2.1.1': + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + '@lukeed/csprng@1.1.0': {} '@lukeed/uuid@2.0.1': @@ -12654,6 +13287,10 @@ snapshots: '@types/react': 19.2.2 react: 19.2.0 + '@mermaid-js/parser@0.6.3': + dependencies: + langium: 3.3.1 + '@modelcontextprotocol/sdk@1.20.0': dependencies: ajv: 6.12.6 @@ -13707,6 +14344,26 @@ snapshots: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) + '@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)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + optionalDependencies: + '@types/react': 19.2.2 + '@types/react-dom': 19.2.2(@types/react@19.2.2) + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.2.0)': dependencies: react: 19.2.0 @@ -13755,6 +14412,15 @@ snapshots: optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + optionalDependencies: + '@types/react': 19.2.2 + '@types/react-dom': 19.2.2(@types/react@19.2.2) + '@radix-ui/rect@1.1.1': {} '@react-aria/focus@3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': @@ -14052,6 +14718,39 @@ snapshots: prompts: 2.4.2 zod: 3.25.76 + '@shikijs/core@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 + + '@shikijs/engine-oniguruma@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + + '@shikijs/themes@3.13.0': + dependencies: + '@shikijs/types': 3.13.0 + + '@shikijs/types@3.13.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@sinclair/typebox@0.27.8': {} '@sindresorhus/merge-streams@4.0.0': {} @@ -14660,35 +15359,152 @@ snapshots: '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 - '@types/babel__generator@7.27.0': + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.28.4 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.28.4 + + '@types/body-parser@1.19.6': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.19.21 + + '@types/bunyan@1.8.11': + dependencies: + '@types/node': 20.19.21 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.19.21 + + '@types/cors@2.8.19': + dependencies: + '@types/node': 20.19.21 + + '@types/d3-array@3.2.2': {} + + '@types/d3-axis@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-brush@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-chord@3.0.6': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-contour@3.0.6': + dependencies: + '@types/d3-array': 3.2.2 + '@types/geojson': 7946.0.16 + + '@types/d3-delaunay@6.0.4': {} + + '@types/d3-dispatch@3.0.7': {} + + '@types/d3-drag@3.0.7': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-dsv@3.0.7': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-fetch@3.0.7': dependencies: - '@babel/types': 7.28.4 + '@types/d3-dsv': 3.0.7 - '@types/babel__template@7.4.4': + '@types/d3-force@3.0.10': {} + + '@types/d3-format@3.0.4': {} + + '@types/d3-geo@3.1.0': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@types/geojson': 7946.0.16 - '@types/babel__traverse@7.28.0': + '@types/d3-hierarchy@3.1.7': {} + + '@types/d3-interpolate@3.0.4': dependencies: - '@babel/types': 7.28.4 + '@types/d3-color': 3.1.3 - '@types/body-parser@1.19.6': + '@types/d3-path@3.1.1': {} + + '@types/d3-polygon@3.0.2': {} + + '@types/d3-quadtree@3.0.6': {} + + '@types/d3-random@3.0.3': {} + + '@types/d3-scale-chromatic@3.1.0': {} + + '@types/d3-scale@4.0.9': dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.19.21 + '@types/d3-time': 3.0.4 - '@types/bunyan@1.8.11': + '@types/d3-selection@3.0.11': {} + + '@types/d3-shape@3.1.7': dependencies: - '@types/node': 20.19.21 + '@types/d3-path': 3.1.1 - '@types/connect@3.4.38': + '@types/d3-time-format@4.0.3': {} + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/d3-transition@3.0.9': dependencies: - '@types/node': 20.19.21 + '@types/d3-selection': 3.0.11 - '@types/cors@2.8.19': + '@types/d3-zoom@3.0.8': dependencies: - '@types/node': 20.19.21 + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.11 + + '@types/d3@7.4.3': + dependencies: + '@types/d3-array': 3.2.2 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.7 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.10 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.0 + '@types/d3-hierarchy': 3.1.7 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.1.1 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.6 + '@types/d3-random': 3.0.3 + '@types/d3-scale': 4.0.9 + '@types/d3-scale-chromatic': 3.1.0 + '@types/d3-selection': 3.0.11 + '@types/d3-shape': 3.1.7 + '@types/d3-time': 3.0.4 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.9 + '@types/d3-zoom': 3.0.8 '@types/debug@4.1.12': dependencies: @@ -14718,6 +15534,8 @@ snapshots: '@types/qs': 6.14.0 '@types/serve-static': 1.15.9 + '@types/geojson@7946.0.16': {} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 20.19.21 @@ -14871,6 +15689,8 @@ snapshots: '@types/tough-cookie@4.0.5': {} + '@types/trusted-types@2.0.7': {} + '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -15515,6 +16335,20 @@ snapshots: chardet@2.1.0: {} + chevrotain-allstar@0.3.1(chevrotain@11.0.3): + dependencies: + chevrotain: 11.0.3 + lodash-es: 4.17.21 + + chevrotain@11.0.3: + dependencies: + '@chevrotain/cst-dts-gen': 11.0.3 + '@chevrotain/gast': 11.0.3 + '@chevrotain/regexp-to-ast': 11.0.3 + '@chevrotain/types': 11.0.3 + '@chevrotain/utils': 11.0.3 + lodash-es: 4.17.21 + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -15605,6 +16439,8 @@ snapshots: commander@4.1.1: {} + commander@7.2.0: {} + commander@8.3.0: {} commander@9.5.0: {} @@ -15657,6 +16493,14 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + cose-base@1.0.3: + dependencies: + layout-base: 1.0.2 + + cose-base@2.2.0: + dependencies: + layout-base: 2.0.1 + create-jest@29.7.0(@types/node@20.19.21): dependencies: '@jest/types': 29.6.3 @@ -15694,6 +16538,190 @@ snapshots: csstype@3.1.3: {} + cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): + dependencies: + cose-base: 1.0.3 + cytoscape: 3.33.1 + + cytoscape-fcose@2.2.0(cytoscape@3.33.1): + dependencies: + cose-base: 2.2.0 + cytoscape: 3.33.1 + + cytoscape@3.33.1: {} + + d3-array@2.12.1: + dependencies: + internmap: 1.0.1 + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-axis@3.0.0: {} + + d3-brush@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3-chord@3.0.1: + dependencies: + d3-path: 3.1.0 + + d3-color@3.1.0: {} + + d3-contour@4.0.2: + dependencies: + d3-array: 3.2.4 + + d3-delaunay@6.0.4: + dependencies: + delaunator: 5.0.1 + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-ease@3.0.1: {} + + d3-fetch@3.0.1: + dependencies: + d3-dsv: 3.0.1 + + d3-force@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + + d3-format@3.1.0: {} + + d3-geo@3.1.1: + dependencies: + d3-array: 3.2.4 + + d3-hierarchy@3.1.2: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@1.0.9: {} + + d3-path@3.1.0: {} + + d3-polygon@3.0.1: {} + + d3-quadtree@3.0.1: {} + + d3-random@3.0.1: {} + + d3-sankey@0.12.3: + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + + d3-scale-chromatic@3.1.0: + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-selection@3.0.0: {} + + d3-shape@1.3.7: + dependencies: + d3-path: 1.0.9 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3@7.9.0: + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.1.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.1.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + + dagre-d3-es@7.0.11: + dependencies: + d3: 7.9.0 + lodash-es: 4.17.21 + damerau-levenshtein@1.0.8: {} data-uri-to-buffer@4.0.1: {} @@ -15722,6 +16750,8 @@ snapshots: dateformat@4.6.3: {} + dayjs@1.11.18: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -15777,6 +16807,10 @@ snapshots: defu@6.1.4: {} + delaunator@5.0.1: + dependencies: + robust-predicates: 3.0.2 + delayed-stream@1.0.0: {} depd@2.0.0: {} @@ -15813,6 +16847,10 @@ snapshots: dompurify@3.1.7: {} + dompurify@3.3.0: + optionalDependencies: + '@types/trusted-types': 2.0.7 + dotenv@16.6.1: {} dprint-node@1.0.8: @@ -16737,6 +17775,8 @@ snapshots: globals@14.0.0: {} + globals@15.15.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -16828,6 +17868,8 @@ snapshots: - encoding - supports-color + hachure-fill@0.5.2: {} + handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -16859,6 +17901,28 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-from-dom@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hastscript: 9.0.1 + web-namespaces: 2.0.1 + + hast-util-from-html-isomorphic@2.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-dom: 5.0.1 + hast-util-from-html: 2.0.3 + unist-util-remove-position: 5.0.0 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.3 + hast-util-from-parse5@8.0.3: dependencies: '@types/hast': 3.0.4 @@ -16870,6 +17934,10 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-parse-selector@2.2.5: {} hast-util-parse-selector@4.0.0: @@ -16913,6 +17981,20 @@ snapshots: transitivePeerDependencies: - supports-color + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.8 @@ -16943,6 +18025,13 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + hast-util-whitespace@2.0.1: {} hast-util-whitespace@3.0.0: @@ -17034,7 +18123,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.12.2) + retry-axios: 2.6.0(axios@1.12.2(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -17105,6 +18194,10 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 + internmap@1.0.1: {} + + internmap@2.0.3: {} + ip-regex@4.3.0: {} ipaddr.js@1.9.1: {} @@ -17782,10 +18875,14 @@ snapshots: dependencies: json-buffer: 3.0.1 + khroma@2.1.0: {} + kleur@3.0.3: {} kleur@4.1.5: {} + 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): 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)) @@ -17811,30 +18908,13 @@ snapshots: - openai - ws - langchain@0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3): + langium@3.3.1: dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - js-tiktoken: 1.0.21 - js-yaml: 4.1.0 - jsonpointer: 5.0.1 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - openapi-types: 12.1.3 - p-retry: 4.6.2 - uuid: 10.0.0 - yaml: 2.8.1 - zod: 3.25.76 - optionalDependencies: - '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - axios: 1.12.2(debug@4.4.3) - handlebars: 4.7.8 - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - ws + chevrotain: 11.0.3 + chevrotain-allstar: 0.3.1(chevrotain@11.0.3) + vscode-languageserver: 9.0.1 + 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)): dependencies: @@ -17872,6 +18952,10 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 + layout-base@1.0.2: {} + + layout-base@2.0.1: {} + leven@3.1.0: {} levn@0.4.1: @@ -17949,6 +19033,22 @@ snapshots: dependencies: uc.micro: 2.1.0 + lit-element@4.2.1: + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + '@lit/reactive-element': 2.1.1 + lit-html: 3.3.1 + + lit-html@3.3.1: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.3.1: + dependencies: + '@lit/reactive-element': 2.1.1 + lit-element: 4.2.1 + lit-html: 3.3.1 + load-tsconfig@0.2.5: {} local-pkg@1.1.2: @@ -17965,6 +19065,8 @@ snapshots: dependencies: p-locate: 5.0.0 + lodash-es@4.17.21: {} + lodash.camelcase@4.3.0: {} lodash.get@4.4.2: {} @@ -17991,7 +19093,7 @@ snapshots: log-symbols@5.1.0: dependencies: - chalk: 5.2.0 + chalk: 5.6.2 is-unicode-supported: 1.3.0 long@5.3.2: {} @@ -18021,6 +19123,16 @@ snapshots: dependencies: react: 19.2.0 + lucide-react@0.525.0(react@19.2.0): + dependencies: + react: 19.2.0 + + lucide-react@0.542.0(react@19.2.0): + dependencies: + react: 19.2.0 + + lucide@0.525.0: {} + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -18052,6 +19164,8 @@ snapshots: marked@14.0.0: {} + 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): dependencies: '@clack/prompts': 0.11.0 @@ -18322,6 +19436,31 @@ snapshots: merge2@1.4.1: {} + mermaid@11.12.0: + dependencies: + '@braintree/sanitize-url': 7.1.1 + '@iconify/utils': 3.0.2 + '@mermaid-js/parser': 0.6.3 + '@types/d3': 7.4.3 + cytoscape: 3.33.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.1) + cytoscape-fcose: 2.2.0(cytoscape@3.33.1) + d3: 7.9.0 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.11 + dayjs: 1.11.18 + dompurify: 3.3.0 + katex: 0.16.25 + khroma: 2.1.0 + lodash-es: 4.17.21 + marked: 16.4.1 + roughjs: 4.6.6 + stylis: 4.3.6 + ts-dedent: 2.2.0 + uuid: 11.1.0 + transitivePeerDependencies: + - supports-color + methods@1.1.2: {} micromark-core-commonmark@1.1.0: @@ -18970,6 +20109,14 @@ snapshots: dependencies: mimic-fn: 4.0.0 + oniguruma-parser@0.12.1: {} + + oniguruma-to-es@4.3.3: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + open@10.2.0: dependencies: default-browser: 5.2.1 @@ -19066,6 +20213,8 @@ snapshots: package-json-from-dist@1.0.1: {} + package-manager-detector@1.5.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -19106,6 +20255,8 @@ snapshots: partial-json@0.1.7: {} + path-data-parser@0.1.0: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -19251,6 +20402,13 @@ snapshots: optionalDependencies: fsevents: 2.3.2 + points-on-curve@0.2.0: {} + + points-on-path@0.2.1: + dependencies: + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + possible-typed-array-names@1.1.0: {} postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(yaml@2.8.1): @@ -19680,6 +20838,16 @@ snapshots: parse-entities: 2.0.0 prismjs: 1.27.0 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.0.1: + dependencies: + regex-utilities: 2.3.0 + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -19689,6 +20857,18 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + rehype-harden@1.1.5: {} + + rehype-katex@7.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/katex': 0.16.7 + hast-util-from-html-isomorphic: 2.0.0 + hast-util-to-text: 4.0.2 + katex: 0.16.25 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 @@ -19809,7 +20989,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.12.2): + retry-axios@2.6.0(axios@1.12.2(debug@4.4.3)): dependencies: axios: 1.12.2(debug@4.4.3) @@ -19817,6 +20997,8 @@ snapshots: reusify@1.1.0: {} + robust-predicates@3.0.2: {} + rollup-plugin-esbuild@6.2.1(esbuild@0.25.10)(rollup@4.50.2): dependencies: debug: 4.4.3 @@ -19889,6 +21071,13 @@ snapshots: rope-sequence@1.3.4: {} + roughjs@4.6.6: + dependencies: + hachure-fill: 0.5.2 + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + points-on-path: 0.2.1 + router@2.2.0: dependencies: debug: 4.4.3 @@ -19907,6 +21096,8 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rw@1.3.3: {} + rxjs@7.8.1: dependencies: tslib: 2.8.1 @@ -20065,6 +21256,17 @@ snapshots: shell-quote@1.8.3: {} + shiki@3.13.0: + dependencies: + '@shikijs/core': 3.13.0 + '@shikijs/engine-javascript': 3.13.0 + '@shikijs/engine-oniguruma': 3.13.0 + '@shikijs/langs': 3.13.0 + '@shikijs/themes': 3.13.0 + '@shikijs/types': 3.13.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -20160,6 +21362,26 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 + streamdown@1.4.0(@types/react@19.2.2)(react@19.2.0): + dependencies: + clsx: 2.1.1 + katex: 0.16.25 + lucide-react: 0.542.0(react@19.2.0) + marked: 16.4.1 + mermaid: 11.12.0 + react: 19.2.0 + react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0) + rehype-harden: 1.1.5 + rehype-katex: 7.0.1 + rehype-raw: 7.0.0 + remark-gfm: 4.0.1 + remark-math: 6.0.0 + shiki: 3.13.0 + tailwind-merge: 3.3.1 + transitivePeerDependencies: + - '@types/react' + - supports-color + streamsearch@1.1.0: {} string-length@4.0.2: @@ -20284,6 +21506,8 @@ snapshots: client-only: 0.0.1 react: 19.2.0 + stylis@4.3.6: {} + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -20406,6 +21630,10 @@ snapshots: dependencies: typescript: 5.9.3 + ts-dedent@2.2.0: {} + + ts-deepmerge@7.0.3: {} + ts-error@1.0.6: {} ts-interface-checker@0.1.13: {} @@ -20516,6 +21744,8 @@ snapshots: turbo-windows-64: 2.5.8 turbo-windows-arm64: 2.5.8 + tw-animate-css@1.4.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -20633,6 +21863,11 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-generated@2.0.1: {} unist-util-is@5.2.1: @@ -20765,6 +22000,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.2 + use-stick-to-bottom@1.1.1(react@19.2.0): + dependencies: + react: 19.2.0 + use-sync-external-store@1.6.0(react@19.2.0): dependencies: react: 19.2.0 @@ -20823,6 +22062,23 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-uri@3.0.8: {} + w3c-keyname@2.2.8: {} wait-port@1.1.0: From ec8416653b7725c713e284d3a9690c44ddd2cee8 Mon Sep 17 00:00:00 2001 From: Max Korp Date: Mon, 20 Oct 2025 11:03:17 -0700 Subject: [PATCH 037/113] more version bumping --- integrations/langgraph/typescript/package.json | 6 +++--- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/integrations/langgraph/typescript/package.json b/integrations/langgraph/typescript/package.json index 85ed2eaf0..e6e4cd5a1 100644 --- a/integrations/langgraph/typescript/package.json +++ b/integrations/langgraph/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@ag-ui/langgraph", - "version": "0.0.19-alpha.0", + "version": "0.0.19-alpha.1", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", @@ -29,8 +29,8 @@ "rxjs": "7.8.1" }, "peerDependencies": { - "@ag-ui/core": "0.0.40-alpha.6", - "@ag-ui/client": "0.0.40-alpha.6" + "@ag-ui/core": "0.0.40-alpha.7", + "@ag-ui/client": "0.0.40-alpha.7" }, "devDependencies": { "@ag-ui/core": "workspace:*", diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 0a22e0736..775df6901 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.6", + "version": "0.0.40-alpha.7", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index b87185d1d..449cf4003 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.6", + "version": "0.0.40-alpha.7", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 6aad73e41..c1cf646f2 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-alpha.6", + "version": "0.0.40-alpha.7", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index e3145b022..2e8965739 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-alpha.6", + "version": "0.0.40-alpha.7", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 6d172cbe7..579cf2a8c 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-alpha.6", + "version": "0.0.40-alpha.7", "private": false, "publishConfig": { "access": "public" From 17c390ad7ae59c78fc3a2989fc8879aea2989b42 Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Mon, 20 Oct 2025 17:49:20 -0400 Subject: [PATCH 038/113] chore: install hono --- apps/dojo/package.json | 3 +- pnpm-lock.yaml | 132 ++++++++++++++++++++++++++++++++--------- 2 files changed, 107 insertions(+), 28 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index acb802752..0a7583555 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -20,10 +20,10 @@ "@ag-ui/llamaindex": "workspace:*", "@ag-ui/mastra": "workspace:*", "@ag-ui/middleware-starter": "workspace:*", - "@ag-ui/spring-ai": "workspace:*", "@ag-ui/pydantic-ai": "workspace:*", "@ag-ui/server-starter": "workspace:*", "@ag-ui/server-starter-all-features": "workspace:*", + "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251020144115", @@ -58,6 +58,7 @@ "diff": "^7.0.0", "embla-carousel-react": "^8.6.0", "fast-json-patch": "^3.1.1", + "hono": "^4.10.1", "lucide-react": "^0.477.0", "markdown-it": "^14.1.0", "markdown-it-ins": "^4.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 352c4efd5..3c0a636d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,16 +77,16 @@ importers: version: link:../../integrations/agno/typescript '@ag-ui/client': specifier: workspace:* - version: link:../../sdks/typescript/packages/client + version: 0.0.40 '@ag-ui/core': specifier: workspace:* - version: link:../../sdks/typescript/packages/core + version: 0.0.40-alpha.6 '@ag-ui/crewai': specifier: workspace:* version: link:../../integrations/crew-ai/typescript '@ag-ui/encoder': specifier: workspace:* - version: link:../../sdks/typescript/packages/encoder + version: 0.0.40-alpha.6 '@ag-ui/langgraph': specifier: workspace:* version: link:../../integrations/langgraph/typescript @@ -101,7 +101,7 @@ importers: version: link:../../middlewares/middleware-starter '@ag-ui/proto': specifier: workspace:* - version: link:../../sdks/typescript/packages/proto + version: 0.0.40-alpha.6 '@ag-ui/pydantic-ai': specifier: workspace:* version: link:../../integrations/pydantic-ai/typescript @@ -128,7 +128,7 @@ importers: version: 0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251020144115 - version: 0.0.0-feat-cpk-1-5-20251020144115(43a54c62826e391639c20a8a0387b983) + version: 0.0.0-feat-cpk-1-5-20251020144115(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': specifier: 0.0.0-feat-cpk-1-5-20251020144115 version: 0.0.0-feat-cpk-1-5-20251020144115(graphql@16.11.0)(react@19.2.0) @@ -216,6 +216,9 @@ importers: fast-json-patch: specifier: ^3.1.1 version: 3.1.1 + hono: + specifier: ^4.10.1 + version: 4.10.1 lucide-react: specifier: ^0.477.0 version: 0.477.0(react@19.2.0) @@ -359,7 +362,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -390,7 +393,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -421,7 +424,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -461,7 +464,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -492,7 +495,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -538,7 +541,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -603,7 +606,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -631,7 +634,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -659,7 +662,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -696,7 +699,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -733,7 +736,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -761,7 +764,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -795,7 +798,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -844,7 +847,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -953,6 +956,9 @@ packages: '@ag-ui/client@0.0.35': resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==} + '@ag-ui/client@0.0.40': + resolution: {integrity: sha512-4ftyZgMN7DIAX64k7Mdex/KGq7lfz8yxEKzniqosD6TE/xk65k4Z0v3bxTzPk2iS2+Cj2uVBgFkb5lC7k5Loqg==} + '@ag-ui/client@0.0.40-alpha.6': resolution: {integrity: sha512-QIgOY8nJvv3mrDz9OXyaoxwj3Js28YPYXz+myRQ2idR1ghoKq0V9MEZrXoHOE4O6Z7PnUSw5z7zZIemh7YK/5w==} @@ -962,12 +968,18 @@ packages: '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} + '@ag-ui/core@0.0.39': + resolution: {integrity: sha512-T5Hp4oFkQ+H5MynWAvSwrX/rNYJOD+PJ4qPQ0o771oSZQAxoIvDDft47Cx5wRyBNNLXAe1RWqJjfWUUwJFNKqA==} + '@ag-ui/core@0.0.40-alpha.6': resolution: {integrity: sha512-XkZAnmtewucr0yayWxK2GEcOoxaHZ6cSZZKkVFKAEOPJuUwFCFstqS3vh0Z5rUy2ZE8eh8WJylBHidiCRW4yuA==} '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} + '@ag-ui/encoder@0.0.39': + resolution: {integrity: sha512-6fsoFwPWkStK7Uyj3pwBn7+aQjUWf7pbDTSI43cD53sBLvTr5oEFNnoKOzRfC5UqvHc4JjUIuLKPQyjHRwWg4g==} + '@ag-ui/encoder@0.0.40-alpha.6': resolution: {integrity: sha512-q+bpJGp4fMjQplHowmbNaOQrICHzmk1J394jZXmTv/RjysNHtcDrWHythXBiPAnNRutYeqsG6bQJ5PASbQYiqg==} @@ -980,6 +992,9 @@ packages: '@ag-ui/proto@0.0.35': resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==} + '@ag-ui/proto@0.0.39': + resolution: {integrity: sha512-xlj/PzZHkJ3CgoQC5QP9g7DEl/78wUK1+A2rdkoLKoNAMOkM2g6jKw0N88iFIh5GZhtiCNN2wb8XwRWPYx9XQQ==} + '@ag-ui/proto@0.0.40-alpha.6': resolution: {integrity: sha512-xFw9igIC7OGdq/t1biUXRMinaC0sPLkavjj2oz820KaJe1uZOTSRfAK1qEgswoHJU1N4vRg0RQDEhd1wN8+GGg==} @@ -7030,6 +7045,10 @@ packages: zod-openapi: optional: true + hono@4.10.1: + resolution: {integrity: sha512-rpGNOfacO4WEPClfkEt1yfl8cbu10uB1lNpiI33AKoiAHwOS8lV748JiLx4b5ozO/u4qLjIvfpFsPXdY5Qjkmg==} + engines: {node: '>=16.9.0'} + hono@4.9.12: resolution: {integrity: sha512-SrTC0YxqPwnN7yKa8gg/giLyQ2pILCKoideIHbYbFQlWZjYt68D2A4Ae1hehO/aDQ6RmTcpqOV/O2yBtMzx/VQ==} engines: {node: '>=16.9.0'} @@ -10322,6 +10341,18 @@ snapshots: uuid: 11.1.0 zod: 3.25.76 + '@ag-ui/client@0.0.40': + dependencies: + '@ag-ui/core': 0.0.39 + '@ag-ui/encoder': 0.0.39 + '@ag-ui/proto': 0.0.39 + '@types/uuid': 10.0.0 + fast-json-patch: 3.1.1 + rxjs: 7.8.1 + untruncate-json: 0.0.1 + uuid: 11.1.0 + zod: 3.25.76 + '@ag-ui/client@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 @@ -10344,6 +10375,11 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 + '@ag-ui/core@0.0.39': + dependencies: + rxjs: 7.8.1 + zod: 3.25.76 + '@ag-ui/core@0.0.40-alpha.6': dependencies: rxjs: 7.8.1 @@ -10354,6 +10390,11 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 + '@ag-ui/encoder@0.0.39': + dependencies: + '@ag-ui/core': 0.0.39 + '@ag-ui/proto': 0.0.39 + '@ag-ui/encoder@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 @@ -10380,6 +10421,12 @@ snapshots: '@ag-ui/core': 0.0.35 '@bufbuild/protobuf': 2.9.0 + '@ag-ui/proto@0.0.39': + dependencies: + '@ag-ui/core': 0.0.39 + '@bufbuild/protobuf': 2.9.0 + '@protobuf-ts/protoc': 2.11.1 + '@ag-ui/proto@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 @@ -11465,13 +11512,13 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251020144115(43a54c62826e391639c20a8a0387b983)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251020144115(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: - '@ag-ui/client': link:sdks/typescript/packages/client - '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': link:sdks/typescript/packages/encoder + '@ag-ui/client': 0.0.40 + '@ag-ui/core': 0.0.40-alpha.6 + '@ag-ui/encoder': 0.0.40-alpha.6 '@ag-ui/langgraph': link:integrations/langgraph/typescript - '@ag-ui/proto': link:sdks/typescript/packages/proto + '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 '@copilotkitnext/agent': 0.0.17 @@ -11910,7 +11957,7 @@ snapshots: '@ag-ui/core': 0.0.40-alpha.6 '@ag-ui/encoder': 0.0.40-alpha.6 '@copilotkitnext/shared': 0.0.17 - hono: 4.9.12 + hono: 4.10.1 openai: 4.104.0(ws@8.18.3)(zod@3.25.76) rxjs: 7.8.1 @@ -13062,8 +13109,8 @@ snapshots: ai-v5: ai@5.0.60(zod@3.25.76) date-fns: 3.6.0 dotenv: 16.6.1 - hono: 4.9.12 - hono-openapi: 0.4.8(hono@4.9.12)(openapi-types@12.1.3)(zod@3.25.76) + hono: 4.10.1 + hono-openapi: 0.4.8(hono@4.10.1)(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 @@ -18060,6 +18107,14 @@ snapshots: highlightjs-vue@1.0.0: {} + hono-openapi@0.4.8(hono@4.10.1)(openapi-types@12.1.3)(zod@3.25.76): + dependencies: + json-schema-walker: 2.0.0 + openapi-types: 12.1.3 + optionalDependencies: + hono: 4.10.1 + 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 @@ -18068,6 +18123,8 @@ snapshots: hono: 4.9.12 zod: 3.25.76 + hono@4.10.1: {} + hono@4.9.12: {} html-escaper@2.0.2: {} @@ -21638,6 +21695,27 @@ 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): dependencies: bs-logger: 0.2.6 From 9cb670ebb669e2d189f5e227a398da03d5845d7b Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Mon, 20 Oct 2025 17:49:39 -0400 Subject: [PATCH 039/113] fix: refactor GET/POST API endpoints --- .../api/copilotkit/[integrationId]/route.ts | 56 +++++++++++++++---- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts index 5a0641441..41b00f832 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts @@ -4,26 +4,60 @@ import { copilotRuntimeNextJSAppRouterEndpoint, } from "@copilotkit/runtime"; import { agentsIntegrations } from "@/agents"; +import type { AbstractAgent } from "@ag-ui/client"; +import { handle } from "hono/vercel"; -import { NextRequest } from "next/server"; +const serviceAdapter = new ExperimentalEmptyAdapter(); -export async function POST(request: NextRequest) { - const integrationId = request.url.split("/").pop(); +function extractIntegrationIdFromUrl(url: string): string | null { + try { + const { pathname } = new URL(url); + const parts = pathname.split("/"); // ["", "api", "copilotkit", "", ...] + const apiIdx = parts.indexOf("api"); + if (apiIdx !== -1 && parts[apiIdx + 1] === "copilotkit" && parts.length > apiIdx + 2) { + return parts[apiIdx + 2] || null; + } + return parts.filter(Boolean).pop() ?? null; + } catch { + return null; + } +} +async function buildAppForIntegration(integrationId: string) { const integration = agentsIntegrations.find((i) => i.id === integrationId); - if (!integration) { - return new Response("Integration not found", { status: 404 }); - } - const agents = await integration.agents(); + if (!integration) return null; + + const agentsPartial = await integration.agents(); + const entries = Object.entries(agentsPartial).filter( + (entry): entry is [string, AbstractAgent] => Boolean(entry[1]) + ); + if (entries.length === 0) return null; + const agents = Object.fromEntries(entries) as Record; + const runtime = new CopilotRuntime({ // @ts-ignore for now agents, }); - const { handleRequest } = copilotRuntimeNextJSAppRouterEndpoint({ + const app = copilotRuntimeNextJSAppRouterEndpoint({ runtime, - serviceAdapter: new ExperimentalEmptyAdapter(), + serviceAdapter, endpoint: `/api/copilotkit/${integrationId}`, }); - - return handleRequest(request); + return app; } + +export const GET = async (request: Request) => { + const integrationId = extractIntegrationIdFromUrl(request.url); + if (!integrationId) return new Response("Integration not found", { status: 404 }); + const app = await buildAppForIntegration(integrationId); + if (!app) return new Response("Integration not found", { status: 404 }); + return handle(app)(request); +}; + +export const POST = async (request: Request) => { + const integrationId = extractIntegrationIdFromUrl(request.url); + if (!integrationId) return new Response("Integration not found", { status: 404 }); + const app = await buildAppForIntegration(integrationId); + if (!app) return new Response("Integration not found", { status: 404 }); + return handle(app)(request); +}; From 08c63b64d6d0d400679a84c47a7985d3446db432 Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Mon, 20 Oct 2025 17:55:47 -0400 Subject: [PATCH 040/113] chore: consolidate exports --- .../src/app/api/copilotkit/[integrationId]/route.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts index 41b00f832..80ab56e0a 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts @@ -46,7 +46,7 @@ async function buildAppForIntegration(integrationId: string) { return app; } -export const GET = async (request: Request) => { +const requestHandler = async (request: Request) => { const integrationId = extractIntegrationIdFromUrl(request.url); if (!integrationId) return new Response("Integration not found", { status: 404 }); const app = await buildAppForIntegration(integrationId); @@ -54,10 +54,5 @@ export const GET = async (request: Request) => { return handle(app)(request); }; -export const POST = async (request: Request) => { - const integrationId = extractIntegrationIdFromUrl(request.url); - if (!integrationId) return new Response("Integration not found", { status: 404 }); - const app = await buildAppForIntegration(integrationId); - if (!app) return new Response("Integration not found", { status: 404 }); - return handle(app)(request); -}; +export const GET = requestHandler; +export const POST = requestHandler; From d9739d718971a9b4287d390245f0f2d210501247 Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Tue, 21 Oct 2025 06:15:45 -0400 Subject: [PATCH 041/113] chore: upgrade versions to new prerelease version --- apps/dojo/package.json | 10 ++-- pnpm-lock.yaml | 113 +++++++++++++++++------------------------ 2 files changed, 51 insertions(+), 72 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 0a7583555..39e06eaf0 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251020144115", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251020144115", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251020144115", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251020144115", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251020144115", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251021095034", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251021095034", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251021095034", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251021095034", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251021095034", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c0a636d8..92bfd9005 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251020144115 - version: 0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251021095034 + version: 0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251020144115 - version: 0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251021095034 + version: 0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251020144115 - version: 0.0.0-feat-cpk-1-5-20251020144115(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251021095034 + version: 0.0.0-feat-cpk-1-5-20251021095034(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251020144115 - version: 0.0.0-feat-cpk-1-5-20251020144115(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251021095034 + version: 0.0.0-feat-cpk-1-5-20251021095034(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251020144115 - version: 0.0.0-feat-cpk-1-5-20251020144115 + specifier: 0.0.0-feat-cpk-1-5-20251021095034 + version: 0.0.0-feat-cpk-1-5-20251021095034 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -362,7 +362,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -393,7 +393,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -424,7 +424,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -464,7 +464,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -495,7 +495,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -541,7 +541,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -606,7 +606,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -634,7 +634,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -662,7 +662,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -699,7 +699,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -736,7 +736,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -764,7 +764,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -798,7 +798,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -847,7 +847,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251020144115': - resolution: {integrity: sha512-KFeke2x5h8GXU52HQG2bks9bluQZ7XepKxBCa/HDDmzcn0rblp2jwyUYj/pJQhzG3h2ZPCGEmyOAbjkiVzVLqw==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251021095034': + resolution: {integrity: sha512-XwH1ACzyzl7heVTG43sp6cVSHV/93fxVbbr9pmewE7joCK9OEcRnfHiWlNRtwl9WwPyA+TKei1dZzzRlpxGq8Q==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251020144115': - resolution: {integrity: sha512-Sl2U5Fp/i7cHR5H9c45TF8g/yqLbZ7OaqKCQ/Uy+xpfY/BXy9ZlyzXPPUloMTIt8nQdaItE6B2gyU/QgwG1jgg==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251021095034': + resolution: {integrity: sha512-Ml4EZoGldoqgDClF5MqI4GFu+u4t58Tr8iKidFG6GZ6JMg2+IdRbZh98nYxue2xU7VRi2zZGQnHuFu1H4FLVfg==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251020144115': - resolution: {integrity: sha512-w+CXE31NIQD2txrGpkO91fHAiE+hn9w1W7YNH1mxTdxY6sRdQlEgBnEvWzdjSBLMPR7OoIhz6ImJatYBLXiHtA==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021095034': + resolution: {integrity: sha512-mwK1FGBjxJcm5A2lMqK+STkb7ea2wyAsFxTAI9NNTTKIIgpT4Ca8RVHPSjxMan7JXwCP1PE/UJbJojAkP1iilA==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251020144115': - resolution: {integrity: sha512-ZfjrdSFes3GfvVA5AiiNHbr0RXw5JdtlDmkpFMNoQ8QhXBcDIMGfOSms+GQe9hxoRXbKQLPAFOfexnS2EX4U7g==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021095034': + resolution: {integrity: sha512-dYwaG0OBlOyaJY1mHoKW7GkdyDasoekGfsWMyl8uDoQ7PNNfo1KS2sllS9AQbC1DV+TZROB8e56uGE+ShmiVvA==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251020144115': - resolution: {integrity: sha512-DtHUbUcQRIJIddeyt11FdMp88Vel9WAPfSZDnL2MVmFaBeKk9rk7etr4VzIOb5l/MhUWBpwRc8BM5mclWH36CA==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021095034': + resolution: {integrity: sha512-dL3c5KL2T2o/tnsNuEyGTrcf3T86nOHCEHnP6fKPm0VnzJ6MJnvAeFISvswPvA3bpeFdY9ry+M3nu8+h/YSbyA==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251020144115(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251021095034(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251020144115(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251020144115(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251021095034(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251020144115(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021095034(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251020144115(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021095034(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251020144115 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251020144115': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021095034': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -21695,27 +21695,6 @@ 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): dependencies: bs-logger: 0.2.6 From 35515abd57221c36031bf2fa8de6242a7eebbd1d Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 21 Oct 2025 13:31:41 +0200 Subject: [PATCH 042/113] add activity messages --- .gitignore | 4 + docs/concepts/events.mdx | 35 +++++ docs/concepts/messages.mdx | 22 +++ docs/sdk/js/client/subscriber.mdx | 26 ++++ docs/sdk/js/core/events.mdx | 40 ++++++ docs/sdk/js/core/types.mdx | 23 ++- docs/sdk/python/core/events.mdx | 42 ++++++ docs/sdk/python/core/types.mdx | 32 ++++- integrations/mastra/typescript/src/utils.ts | 10 +- sdks/python/ag_ui/core/__init__.py | 6 + sdks/python/ag_ui/core/events.py | 22 +++ sdks/python/ag_ui/core/types.py | 24 +++- sdks/python/tests/test_events.py | 62 +++++++- sdks/python/tests/test_types.py | 30 +++- .../typescript/packages/client/jest.config.js | 6 + .../packages/client/src/agent/subscriber.ts | 18 +++ .../packages/client/src/apply/default.ts | 135 ++++++++++++++++++ .../packages/client/src/chunks/transform.ts | 5 +- sdks/typescript/packages/core/src/events.ts | 20 +++ sdks/typescript/packages/core/src/types.ts | 10 ++ 20 files changed, 560 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index ae16bb43e..2d5204ff6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,7 @@ node_modules .vscode **/mastra.db* + +.pnpm-store + +**/.poetry-cache diff --git a/docs/concepts/events.mdx b/docs/concepts/events.mdx index 0f1c2b7ac..cdb6d5563 100644 --- a/docs/concepts/events.mdx +++ b/docs/concepts/events.mdx @@ -19,6 +19,7 @@ Events in the protocol are categorized by their purpose: | Text Message Events | Handle streaming textual content | | Tool Call Events | Manage tool executions by agents | | State Management Events | Synchronize state between agents and UI | +| Activity Events | Represent ongoing activity progress | | Special Events | Support custom functionality | | Draft Events | Proposed events under development | @@ -447,6 +448,40 @@ 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 | + +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 diff --git a/docs/concepts/messages.mdx b/docs/concepts/messages.mdx index 499e22730..c37011d1b 100644 --- a/docs/concepts/messages.mdx +++ b/docs/concepts/messages.mdx @@ -28,6 +28,10 @@ interface BaseMessage { } ``` +The `role` discriminator can be `"user"`, `"assistant"`, `"system"`, +`"tool"`, `"developer"`, or `"activity"`. Concrete message types extend this +shape with the fields they need. + ## Message Types AG-UI supports several message types to accommodate different participants in a @@ -106,6 +110,24 @@ interface ToolMessage { } ``` +### Activity Messages + +Structured progress updates that appear between chat messages: + +```typescript +interface ActivityMessage { + id: string + role: "activity" + activityType: string // e.g. "PLAN", "SEARCH", "SCRAPE" + content: Record // Structured payload rendered by the frontend +} +``` + +Activity messages are populated by `ACTIVITY_SNAPSHOT` and `ACTIVITY_DELTA` +events. The structured `content` object gives frontends everything they need to +render bespoke status views, such as checklists, workflow progress, or search +results in flight. + ### Developer Messages Internal messages used for development or debugging: diff --git a/docs/sdk/js/client/subscriber.mdx b/docs/sdk/js/client/subscriber.mdx index ee010488f..f97ab1389 100644 --- a/docs/sdk/js/client/subscriber.mdx +++ b/docs/sdk/js/client/subscriber.mdx @@ -271,6 +271,32 @@ Called when a complete message history snapshot is provided. onMessagesSnapshotEvent?(params: { event: MessagesSnapshotEvent } & AgentSubscriberParams): MaybePromise ``` +#### onActivitySnapshotEvent() + +Called when an activity snapshot is received. The handler receives both the raw +event and any existing `ActivityMessage` (if present) so you can inspect or +replace it before the default client logic runs. + +```typescript +onActivitySnapshotEvent?(params: { + event: ActivitySnapshotEvent + activityMessage?: ActivityMessage + existingMessage?: Message +} & AgentSubscriberParams): MaybePromise +``` + +#### onActivityDeltaEvent() + +Triggered for each activity delta. Use this hook to transform or debounce the +incoming JSON Patch operations before they update the conversation transcript. + +```typescript +onActivityDeltaEvent?(params: { + event: ActivityDeltaEvent + activityMessage?: ActivityMessage +} & AgentSubscriberParams): MaybePromise +``` + #### onRawEvent() Handler for raw, unprocessed events. diff --git a/docs/sdk/js/core/events.mdx b/docs/sdk/js/core/events.mdx index 4e586f179..62f76301d 100644 --- a/docs/sdk/js/core/events.mdx +++ b/docs/sdk/js/core/events.mdx @@ -26,6 +26,8 @@ enum EventType { STATE_SNAPSHOT = "STATE_SNAPSHOT", STATE_DELTA = "STATE_DELTA", MESSAGES_SNAPSHOT = "MESSAGES_SNAPSHOT", + ACTIVITY_SNAPSHOT = "ACTIVITY_SNAPSHOT", + ACTIVITY_DELTA = "ACTIVITY_DELTA", RAW = "RAW", CUSTOM = "CUSTOM", RUN_STARTED = "RUN_STARTED", @@ -324,6 +326,44 @@ 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 +} +``` + +| 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 | + +### 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 diff --git a/docs/sdk/js/core/types.mdx b/docs/sdk/js/core/types.mdx index 528f46ee9..758549ed0 100644 --- a/docs/sdk/js/core/types.mdx +++ b/docs/sdk/js/core/types.mdx @@ -50,7 +50,7 @@ messages in the system. Represents the possible roles a message sender can have. ```typescript -type Role = "developer" | "system" | "assistant" | "user" | "tool" +type Role = "developer" | "system" | "assistant" | "user" | "tool" | "activity" ``` ### DeveloperMessage @@ -189,6 +189,26 @@ type ToolMessage = { | `toolCallId` | `string` | ID of the tool call this message responds to | | `error` | `string` | Error message if the tool call failed | +### ActivityMessage + +Represents structured activity progress emitted between chat messages. + +```typescript +type ActivityMessage = { + id: string + role: "activity" + activityType: string + content: Record +} +``` + +| Property | Type | Description | +| -------------- | --------------------- | ------------------------------------------------------- | +| `id` | `string` | Unique identifier for the activity message | +| `role` | `"activity"` | Fixed discriminator identifying the message as activity | +| `activityType` | `string` | Activity discriminator used for renderer selection | +| `content` | `Record` | Structured payload representing the activity state | + ### Message A union type representing any type of message in the system. @@ -200,6 +220,7 @@ type Message = | AssistantMessage | UserMessage | ToolMessage + | ActivityMessage ``` ### ToolCall diff --git a/docs/sdk/python/core/events.mdx b/docs/sdk/python/core/events.mdx index 1a9fe9c76..fc4c6a5db 100644 --- a/docs/sdk/python/core/events.mdx +++ b/docs/sdk/python/core/events.mdx @@ -29,6 +29,8 @@ class EventType(str, Enum): STATE_SNAPSHOT = "STATE_SNAPSHOT" STATE_DELTA = "STATE_DELTA" MESSAGES_SNAPSHOT = "MESSAGES_SNAPSHOT" + ACTIVITY_SNAPSHOT = "ACTIVITY_SNAPSHOT" + ACTIVITY_DELTA = "ACTIVITY_DELTA" RAW = "RAW" CUSTOM = "CUSTOM" RUN_STARTED = "RUN_STARTED" @@ -346,6 +348,46 @@ 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 +``` + +| 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 | + +### 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 diff --git a/docs/sdk/python/core/types.mdx b/docs/sdk/python/core/types.mdx index 5d864631a..70275c4e2 100644 --- a/docs/sdk/python/core/types.mdx +++ b/docs/sdk/python/core/types.mdx @@ -53,7 +53,7 @@ messages in the system. Represents the possible roles a message sender can have. ```python -Role = Literal["developer", "system", "assistant", "user", "tool"] +Role = Literal["developer", "system", "assistant", "user", "tool", "activity"] ``` ### DeveloperMessage @@ -197,6 +197,27 @@ class ToolMessage(ConfiguredBaseModel): | `tool_call_id` | `str` | ID of the tool call this message responds to | | `error` | `Optional[str]` | Error message if the tool call failed | +### ActivityMessage + +`from ag_ui.core import ActivityMessage` + +Represents structured activity progress emitted between chat messages. + +```python +class ActivityMessage(ConfiguredBaseModel): + id: str + role: Literal["activity"] + activity_type: str + content: Dict[str, Any] +``` + +| Property | Type | Description | +| --------------- | ----------------------- | ------------------------------------------------------- | +| `id` | `str` | Unique identifier for the activity message | +| `role` | `Literal["activity"]` | Fixed discriminator identifying the message as activity | +| `activity_type` | `str` | Activity discriminator used for renderer selection | +| `content` | `Dict[str, Any]` | Structured payload representing the activity state | + ### Message `from ag_ui.core import Message` @@ -205,7 +226,14 @@ A union type representing any type of message in the system. ```python Message = Annotated[ - Union[DeveloperMessage, SystemMessage, AssistantMessage, UserMessage, ToolMessage], + Union[ + DeveloperMessage, + SystemMessage, + AssistantMessage, + UserMessage, + ToolMessage, + ActivityMessage, + ], Field(discriminator="role") ] ``` diff --git a/integrations/mastra/typescript/src/utils.ts b/integrations/mastra/typescript/src/utils.ts index 873ec9072..e775d353f 100644 --- a/integrations/mastra/typescript/src/utils.ts +++ b/integrations/mastra/typescript/src/utils.ts @@ -15,9 +15,15 @@ const toMastraTextContent = (content: Message["content"]): string => { return content; } + if (!Array.isArray(content)) { + return ""; + } + + type TextInput = Extract; + const textParts = content - .filter((part): part is Extract => part.type === "text") - .map((part) => part.text.trim()) + .filter((part): part is TextInput => part.type === "text") + .map((part: TextInput) => part.text.trim()) .filter(Boolean); return textParts.join("\n"); diff --git a/sdks/python/ag_ui/core/__init__.py b/sdks/python/ag_ui/core/__init__.py index 67ae5ac6c..248ff1005 100644 --- a/sdks/python/ag_ui/core/__init__.py +++ b/sdks/python/ag_ui/core/__init__.py @@ -22,6 +22,8 @@ StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, + ActivitySnapshotEvent, + ActivityDeltaEvent, RawEvent, CustomEvent, RunStartedEvent, @@ -41,6 +43,7 @@ AssistantMessage, UserMessage, ToolMessage, + ActivityMessage, Message, Role, Context, @@ -73,6 +76,8 @@ "StateSnapshotEvent", "StateDeltaEvent", "MessagesSnapshotEvent", + "ActivitySnapshotEvent", + "ActivityDeltaEvent", "RawEvent", "CustomEvent", "RunStartedEvent", @@ -90,6 +95,7 @@ "AssistantMessage", "UserMessage", "ToolMessage", + "ActivityMessage", "Message", "Role", "Context", diff --git a/sdks/python/ag_ui/core/events.py b/sdks/python/ag_ui/core/events.py index 411767e2b..6f66d40d0 100644 --- a/sdks/python/ag_ui/core/events.py +++ b/sdks/python/ag_ui/core/events.py @@ -34,6 +34,8 @@ class EventType(str, Enum): STATE_SNAPSHOT = "STATE_SNAPSHOT" STATE_DELTA = "STATE_DELTA" MESSAGES_SNAPSHOT = "MESSAGES_SNAPSHOT" + ACTIVITY_SNAPSHOT = "ACTIVITY_SNAPSHOT" + ACTIVITY_DELTA = "ACTIVITY_DELTA" RAW = "RAW" CUSTOM = "CUSTOM" RUN_STARTED = "RUN_STARTED" @@ -188,6 +190,24 @@ 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 + + +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. @@ -266,6 +286,8 @@ class StepFinishedEvent(BaseEvent): StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, + ActivitySnapshotEvent, + ActivityDeltaEvent, RawEvent, CustomEvent, RunStartedEvent, diff --git a/sdks/python/ag_ui/core/types.py b/sdks/python/ag_ui/core/types.py index 06b253fe7..e4e358caf 100644 --- a/sdks/python/ag_ui/core/types.py +++ b/sdks/python/ag_ui/core/types.py @@ -2,7 +2,7 @@ This module contains the types for the Agent User Interaction Protocol Python SDK. """ -from typing import Annotated, Any, List, Literal, Optional, Union +from typing import Annotated, Any, Dict, List, Literal, Optional, Union from pydantic import BaseModel, ConfigDict, Field, model_validator from pydantic.alias_generators import to_camel @@ -121,12 +121,30 @@ class ToolMessage(ConfiguredBaseModel): error: Optional[str] = None +class ActivityMessage(ConfiguredBaseModel): + """ + An activity progress message emitted between chat messages. + """ + + id: str + role: Literal["activity"] = "activity" # pyright: ignore[reportIncompatibleVariableOverride] + activity_type: str + content: Dict[str, Any] + + Message = Annotated[ - Union[DeveloperMessage, SystemMessage, AssistantMessage, UserMessage, ToolMessage], + Union[ + DeveloperMessage, + SystemMessage, + AssistantMessage, + UserMessage, + ToolMessage, + ActivityMessage, + ], Field(discriminator="role") ] -Role = Literal["developer", "system", "assistant", "user", "tool"] +Role = Literal["developer", "system", "assistant", "user", "tool", "activity"] class Context(ConfiguredBaseModel): diff --git a/sdks/python/tests/test_events.py b/sdks/python/tests/test_events.py index c73a2537c..f638b00d1 100644 --- a/sdks/python/tests/test_events.py +++ b/sdks/python/tests/test_events.py @@ -16,6 +16,8 @@ StateSnapshotEvent, StateDeltaEvent, MessagesSnapshotEvent, + ActivitySnapshotEvent, + ActivityDeltaEvent, RawEvent, CustomEvent, RunStartedEvent, @@ -202,6 +204,46 @@ 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) + + 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) + + def test_activity_delta(self): + """Test creating and serializing an ActivityDeltaEvent""" + patch = [{"op": "replace", "path": "/tasks/0", "value": "✓ search"}] + event = ActivityDeltaEvent( + message_id="msg_activity", + activity_type="PLAN", + patch=patch, + timestamp=1648214400000, + ) + + self.assertEqual(event.message_id, "msg_activity") + self.assertEqual(event.activity_type, "PLAN") + self.assertEqual(event.patch, patch) + + serialized = event.model_dump(by_alias=True) + self.assertEqual(serialized["type"], "ACTIVITY_DELTA") + self.assertEqual(serialized["messageId"], "msg_activity") + self.assertEqual(serialized["activityType"], "PLAN") + self.assertEqual(serialized["patch"], patch) + def test_raw_event(self): """Test creating and serializing a RawEvent""" raw_data = {"origin": "server", "data": {"key": "value"}} @@ -338,6 +380,13 @@ def test_event_union_deserialization(self): "snapshot": {"status": "active"}, "timestamp": 1648214400000 }, + { + "type": "ACTIVITY_SNAPSHOT", + "messageId": "msg_activity", + "activityType": "PLAN", + "content": {"tasks": []}, + "timestamp": 1648214400000, + }, { "type": "RUN_ERROR", "message": "Error occurred", @@ -345,12 +394,13 @@ def test_event_union_deserialization(self): "timestamp": 1648214400000 } ] - + expected_types = [ TextMessageStartEvent, TextMessageContentEvent, ToolCallStartEvent, StateSnapshotEvent, + ActivitySnapshotEvent, RunErrorEvent ] @@ -392,6 +442,16 @@ def test_serialization_round_trip(self): UserMessage(id="user_1", content="Hello") ] ), + ActivitySnapshotEvent( + message_id="msg_activity", + activity_type="PLAN", + content={"tasks": []}, + ), + ActivityDeltaEvent( + message_id="msg_activity", + activity_type="PLAN", + patch=[{"op": "add", "path": "/tasks/-", "value": "search"}], + ), RunStartedEvent( thread_id="thread_123", run_id="run_456" diff --git a/sdks/python/tests/test_types.py b/sdks/python/tests/test_types.py index 94a5bdbc3..843a5a977 100644 --- a/sdks/python/tests/test_types.py +++ b/sdks/python/tests/test_types.py @@ -10,6 +10,7 @@ AssistantMessage, UserMessage, ToolMessage, + ActivityMessage, Message, RunAgentInput, TextInputContent, @@ -58,6 +59,24 @@ def test_tool_message_camel_case(self): self.assertIn("toolCallId", serialized) self.assertEqual(serialized["toolCallId"], "call_456") + def test_activity_message(self): + """Test creating and serializing an activity message""" + content = {"steps": ["search", "summarize"]} + msg = ActivityMessage( + id="activity_123", + activity_type="PLAN", + content=content, + ) + + self.assertEqual(msg.role, "activity") + self.assertEqual(msg.activity_type, "PLAN") + self.assertEqual(msg.content, content) + + serialized = msg.model_dump(by_alias=True) + self.assertEqual(serialized["role"], "activity") + self.assertEqual(serialized["activityType"], "PLAN") + self.assertEqual(serialized["content"], content) + def test_parse_camel_case_json_tool_message(self): """Test parsing JSON with camelCase field names""" # JSON data with camelCase field names @@ -186,7 +205,13 @@ def test_message_union_deserialization(self): "role": "tool", "content": "Tool result", "toolCallId": "call_303" - } + }, + { + "id": "activity_404", + "role": "activity", + "activityType": "PLAN", + "content": {"steps": []}, + }, ] expected_types = [ @@ -194,7 +219,8 @@ def test_message_union_deserialization(self): SystemMessage, AssistantMessage, UserMessage, - ToolMessage + ToolMessage, + ActivityMessage, ] for data, expected_type in zip(message_data, expected_types): diff --git a/sdks/typescript/packages/client/jest.config.js b/sdks/typescript/packages/client/jest.config.js index 0521f8d91..919fd78b9 100644 --- a/sdks/typescript/packages/client/jest.config.js +++ b/sdks/typescript/packages/client/jest.config.js @@ -6,5 +6,11 @@ module.exports = { passWithNoTests: true, moduleNameMapper: { "^@/(.*)$": "/src/$1", + "^@ag-ui/core$": "/../core/src/index.ts", + "^@ag-ui/core/(.*)$": "/../core/src/$1", + "^@ag-ui/proto$": "/../proto/src/index.ts", + "^@ag-ui/proto/(.*)$": "/../proto/src/$1", + "^@ag-ui/encoder$": "/../encoder/src/index.ts", + "^@ag-ui/encoder/(.*)$": "/../encoder/src/$1", }, }; diff --git a/sdks/typescript/packages/client/src/agent/subscriber.ts b/sdks/typescript/packages/client/src/agent/subscriber.ts index ab7d09e9f..204038e62 100644 --- a/sdks/typescript/packages/client/src/agent/subscriber.ts +++ b/sdks/typescript/packages/client/src/agent/subscriber.ts @@ -21,6 +21,9 @@ import { RawEvent, CustomEvent, ToolCall, + ActivitySnapshotEvent, + ActivityDeltaEvent, + ActivityMessage, } from "@ag-ui/core"; import { AbstractAgent } from "./agent"; import { structuredClone_ } from "@/utils"; @@ -123,6 +126,21 @@ export interface AgentSubscriber { params: { event: MessagesSnapshotEvent } & AgentSubscriberParams, ): MaybePromise; + onActivitySnapshotEvent?( + params: { + event: ActivitySnapshotEvent; + activityMessage?: ActivityMessage; + existingMessage?: Message; + } & AgentSubscriberParams, + ): MaybePromise; + + onActivityDeltaEvent?( + params: { + event: ActivityDeltaEvent; + activityMessage?: ActivityMessage; + } & AgentSubscriberParams, + ): MaybePromise; + onRawEvent?( params: { event: RawEvent } & AgentSubscriberParams, ): MaybePromise; diff --git a/sdks/typescript/packages/client/src/apply/default.ts b/sdks/typescript/packages/client/src/apply/default.ts index 87a8f462b..5b7fd0d10 100644 --- a/sdks/typescript/packages/client/src/apply/default.ts +++ b/sdks/typescript/packages/client/src/apply/default.ts @@ -25,6 +25,9 @@ import { RunErrorEvent, StepStartedEvent, StepFinishedEvent, + ActivitySnapshotEvent, + ActivityDeltaEvent, + ActivityMessage, } from "@ag-ui/core"; import { mergeMap, mergeAll, defaultIfEmpty, concatMap } from "rxjs/operators"; import { of, EMPTY } from "rxjs"; @@ -517,6 +520,138 @@ 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 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) { + messages[existingIndex] = { + ...existingActivityMessage, + activityType: activityEvent.activityType, + content: structuredClone_(activityEvent.content), + }; + } else { + 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 baseMessage = structuredClone_(existingActivityMessage); + baseMessage.activityType = activityEvent.activityType; + baseMessage.content ??= {}; + + const result = applyPatch(baseMessage, activityEvent.patch, true, false); + const updated = result.newDocument as ActivityMessage; + + messages[existingIndex] = { + ...updated, + id: existingActivityMessage.id, + role: "activity", + 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, diff --git a/sdks/typescript/packages/client/src/chunks/transform.ts b/sdks/typescript/packages/client/src/chunks/transform.ts index bb0ec6ba4..0f2f4e15c 100644 --- a/sdks/typescript/packages/client/src/chunks/transform.ts +++ b/sdks/typescript/packages/client/src/chunks/transform.ts @@ -101,6 +101,8 @@ 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; @@ -220,10 +222,11 @@ 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 - return closePendingEvent(); + closePendingEvent(); }), ); }; diff --git a/sdks/typescript/packages/core/src/events.ts b/sdks/typescript/packages/core/src/events.ts index 115182bea..5c668f1ab 100644 --- a/sdks/typescript/packages/core/src/events.ts +++ b/sdks/typescript/packages/core/src/events.ts @@ -27,6 +27,8 @@ 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", @@ -139,6 +141,20 @@ 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()), +}); + +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(), @@ -200,6 +216,8 @@ export const EventSchemas = z.discriminatedUnion("type", [ StateSnapshotEventSchema, StateDeltaEventSchema, MessagesSnapshotEventSchema, + ActivitySnapshotEventSchema, + ActivityDeltaEventSchema, RawEventSchema, CustomEventSchema, RunStartedEventSchema, @@ -227,6 +245,8 @@ 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 3a73d4e0e..6a8560293 100644 --- a/sdks/typescript/packages/core/src/types.ts +++ b/sdks/typescript/packages/core/src/types.ts @@ -89,12 +89,20 @@ 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([ @@ -103,6 +111,7 @@ export const RoleSchema = z.union([ z.literal("assistant"), z.literal("user"), z.literal("tool"), + z.literal("activity"), ]); export const ContextSchema = z.object({ @@ -139,6 +148,7 @@ 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; From 9f21fda73a7473793ad697c55be21fdd9de8b519 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 21 Oct 2025 13:31:48 +0200 Subject: [PATCH 043/113] add activity messages --- .../apply/__tests__/default.activity.test.ts | 59 +++++++++++++++++++ .../src/__tests__/activity-events.test.ts | 41 +++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts create mode 100644 sdks/typescript/packages/core/src/__tests__/activity-events.test.ts 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 new file mode 100644 index 000000000..c6b2a9702 --- /dev/null +++ b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts @@ -0,0 +1,59 @@ +import { Subject } from "rxjs"; +import { toArray } from "rxjs/operators"; +import { firstValueFrom } from "rxjs"; +import { + ActivityDeltaEvent, + ActivitySnapshotEvent, + BaseEvent, + EventType, + RunAgentInput, +} from "@ag-ui/core"; +import { defaultApplyEvents } from "../default"; +import { AbstractAgent } from "@/agent"; + +const FAKE_AGENT = null 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 result$ = defaultApplyEvents(initialState, events$, FAKE_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: "/content/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"] }); + }); +}); diff --git a/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts b/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts new file mode 100644 index 000000000..88da46e0f --- /dev/null +++ b/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts @@ -0,0 +1,41 @@ +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"]); + }); + + 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: [] }); + }); +}); From fa94711f66cfdb216351f63abddde9977324cc9f Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 21 Oct 2025 13:50:21 +0200 Subject: [PATCH 044/113] filter activity messages before they reach the agent --- sdks/typescript/packages/client/src/agent/agent.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 0560d049e..a85af6765 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -205,6 +205,11 @@ export abstract class AbstractAgent { } protected prepareRunAgentInput(parameters?: RunAgentParameters): RunAgentInput { + const clonedMessages = structuredClone_(this.messages) as Message[]; + const messagesWithoutActivity = clonedMessages.filter( + (message) => message.role !== "activity", + ); + return { threadId: this.threadId, runId: parameters?.runId || uuidv4(), @@ -212,7 +217,7 @@ export abstract class AbstractAgent { context: structuredClone_(parameters?.context ?? []), forwardedProps: structuredClone_(parameters?.forwardedProps ?? {}), state: structuredClone_(this.state), - messages: structuredClone_(this.messages), + messages: messagesWithoutActivity, }; } From 5c4f5df928b65092d6ff5557f095838048e20a62 Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Tue, 21 Oct 2025 08:15:40 -0400 Subject: [PATCH 045/113] feat: simplify `routeHandler` --- .../api/copilotkit/[integrationId]/route.ts | 65 ++++++++----------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts index 80ab56e0a..adb8f4d7e 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts @@ -4,55 +4,44 @@ import { copilotRuntimeNextJSAppRouterEndpoint, } from "@copilotkit/runtime"; import { agentsIntegrations } from "@/agents"; -import type { AbstractAgent } from "@ag-ui/client"; -import { handle } from "hono/vercel"; +import { handle } from 'hono/vercel' -const serviceAdapter = new ExperimentalEmptyAdapter(); +import { NextRequest } from "next/server"; -function extractIntegrationIdFromUrl(url: string): string | null { - try { - const { pathname } = new URL(url); - const parts = pathname.split("/"); // ["", "api", "copilotkit", "", ...] - const apiIdx = parts.indexOf("api"); - if (apiIdx !== -1 && parts[apiIdx + 1] === "copilotkit" && parts.length > apiIdx + 2) { - return parts[apiIdx + 2] || null; - } - return parts.filter(Boolean).pop() ?? null; - } catch { - return null; - } -} - -async function buildAppForIntegration(integrationId: string) { +async function createApp(integrationId: string) { const integration = agentsIntegrations.find((i) => i.id === integrationId); - if (!integration) return null; - - const agentsPartial = await integration.agents(); - const entries = Object.entries(agentsPartial).filter( - (entry): entry is [string, AbstractAgent] => Boolean(entry[1]) - ); - if (entries.length === 0) return null; - const agents = Object.fromEntries(entries) as Record; + if (!integration) { + throw new Error(`Integration not found: ${integrationId}`); + } + const agents = await integration.agents(); const runtime = new CopilotRuntime({ // @ts-ignore for now agents, }); - const app = copilotRuntimeNextJSAppRouterEndpoint({ + + return copilotRuntimeNextJSAppRouterEndpoint({ runtime, - serviceAdapter, + serviceAdapter: new ExperimentalEmptyAdapter(), endpoint: `/api/copilotkit/${integrationId}`, }); - return app; } -const requestHandler = async (request: Request) => { - const integrationId = extractIntegrationIdFromUrl(request.url); - if (!integrationId) return new Response("Integration not found", { status: 404 }); - const app = await buildAppForIntegration(integrationId); - if (!app) return new Response("Integration not found", { status: 404 }); - return handle(app)(request); -}; +async function routeHandler( + request: NextRequest, + { params }: { params: Promise<{ integrationId: string }> } +) { + const { integrationId } = await params; + try { + const app = await createApp(integrationId); + return handle(app)(request); + } catch (error) { + return new Response( + error instanceof Error ? error.message : "Integration not found", + { status: 404 } + ); + } +} -export const GET = requestHandler; -export const POST = requestHandler; +export const GET = routeHandler; +export const POST = routeHandler; From 9f9c43d56406ecec4cf83819db2299db2ce4395c Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Tue, 21 Oct 2025 08:30:51 -0400 Subject: [PATCH 046/113] chore: move `route.ts` into `[...slug]` subdirectory --- .../app/api/copilotkit/[integrationId]/{ => [...slug]}/route.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/dojo/src/app/api/copilotkit/[integrationId]/{ => [...slug]}/route.ts (100%) 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 100% rename from apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts rename to apps/dojo/src/app/api/copilotkit/[integrationId]/[...slug]/route.ts From 89bc92df3f46d8cad75ed023672200674c3f6e76 Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Tue, 21 Oct 2025 10:48:49 -0400 Subject: [PATCH 047/113] fix: change `[...slug]` to `[[...slug]]` --- .../[integrationId]/{[...slug] => [[...slug]]}/route.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename apps/dojo/src/app/api/copilotkit/[integrationId]/{[...slug] => [[...slug]]}/route.ts (100%) diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/[...slug]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts similarity index 100% rename from apps/dojo/src/app/api/copilotkit/[integrationId]/[...slug]/route.ts rename to apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts From 3e5a70b43eebd02ca4d49f0506ce27a7f7aa968f Mon Sep 17 00:00:00 2001 From: Brandon McConnell Date: Tue, 21 Oct 2025 10:52:31 -0400 Subject: [PATCH 048/113] fix: swap `NextRequest` for `Request` --- .../app/api/copilotkit/[integrationId]/[[...slug]]/route.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts index adb8f4d7e..b8ee70ca9 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts @@ -4,9 +4,7 @@ import { copilotRuntimeNextJSAppRouterEndpoint, } from "@copilotkit/runtime"; import { agentsIntegrations } from "@/agents"; -import { handle } from 'hono/vercel' - -import { NextRequest } from "next/server"; +import { handle } from 'hono/vercel'; async function createApp(integrationId: string) { const integration = agentsIntegrations.find((i) => i.id === integrationId); @@ -28,7 +26,7 @@ async function createApp(integrationId: string) { } async function routeHandler( - request: NextRequest, + request: Request, { params }: { params: Promise<{ integrationId: string }> } ) { const { integrationId } = await params; From 9c97c35e93f7e105d799c312dd104155691beae1 Mon Sep 17 00:00:00 2001 From: ran Date: Tue, 21 Oct 2025 18:08:05 +0200 Subject: [PATCH 049/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++---- pnpm-lock.yaml | 64 +++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 39e06eaf0..d7726c02d 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251021095034", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251021095034", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251021095034", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251021095034", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251021095034", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251021144842", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251021144842", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251021144842", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251021144842", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251021144842", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92bfd9005..ca77c3a88 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251021095034 - version: 0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251021144842 + version: 0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251021095034 - version: 0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251021144842 + version: 0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251021095034 - version: 0.0.0-feat-cpk-1-5-20251021095034(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251021144842 + version: 0.0.0-feat-cpk-1-5-20251021144842(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251021095034 - version: 0.0.0-feat-cpk-1-5-20251021095034(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251021144842 + version: 0.0.0-feat-cpk-1-5-20251021144842(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251021095034 - version: 0.0.0-feat-cpk-1-5-20251021095034 + specifier: 0.0.0-feat-cpk-1-5-20251021144842 + version: 0.0.0-feat-cpk-1-5-20251021144842 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251021095034': - resolution: {integrity: sha512-XwH1ACzyzl7heVTG43sp6cVSHV/93fxVbbr9pmewE7joCK9OEcRnfHiWlNRtwl9WwPyA+TKei1dZzzRlpxGq8Q==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251021144842': + resolution: {integrity: sha512-VZeLhqcz1VARW8QhIAZB7xATb6EQixaKLaCFFO9lOwor5DJoNFb7kFd8AaiEfEDhPYDS87JdvUs8IuBz69+h1Q==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251021095034': - resolution: {integrity: sha512-Ml4EZoGldoqgDClF5MqI4GFu+u4t58Tr8iKidFG6GZ6JMg2+IdRbZh98nYxue2xU7VRi2zZGQnHuFu1H4FLVfg==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251021144842': + resolution: {integrity: sha512-f0JmgnygReKPzVBzXPjqRhjdlaiuveNY3T+3vjyL2pAF9eH/YFWQ2OkMlIzC11URp3+9GtDvc9llRpRdwBiMCg==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021095034': - resolution: {integrity: sha512-mwK1FGBjxJcm5A2lMqK+STkb7ea2wyAsFxTAI9NNTTKIIgpT4Ca8RVHPSjxMan7JXwCP1PE/UJbJojAkP1iilA==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021144842': + resolution: {integrity: sha512-JJeHIB+Lu+6V2+pAB/d6j+bdxsX/vF1a0IuWRlfF3+Fqx9gyZ9mG2HbPrIoqsyLi+uQKHBkfnSIEuvhwXczivg==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021095034': - resolution: {integrity: sha512-dYwaG0OBlOyaJY1mHoKW7GkdyDasoekGfsWMyl8uDoQ7PNNfo1KS2sllS9AQbC1DV+TZROB8e56uGE+ShmiVvA==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021144842': + resolution: {integrity: sha512-pYJb8JeUABxzbCHFwTx/7Un0iZ3bXDx1R2N43D9gvCy9xpoRy1zTaHVxTBBxnAc8/Ur8UIwVSKoi8JVtkMhwYg==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021095034': - resolution: {integrity: sha512-dL3c5KL2T2o/tnsNuEyGTrcf3T86nOHCEHnP6fKPm0VnzJ6MJnvAeFISvswPvA3bpeFdY9ry+M3nu8+h/YSbyA==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021144842': + resolution: {integrity: sha512-yhJBCN6ksVfXk5V8wf5vzOI8z6t3/+g1HEOtNZqC4nKOEOCs+mBf6bO6e+XxpLBuTR3fHpe5k6WWeI2DQIwcRw==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251021095034(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251021144842(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251021095034(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251021095034(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251021144842(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021095034(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021144842(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021095034(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021144842(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021095034 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021095034': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021144842': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 From 8208b4e1c958e7e941b23d6521ea10dbbcb0f40b Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 22 Oct 2025 10:43:34 +0200 Subject: [PATCH 050/113] fix package.json paths --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 8e7e9a40c..ec3d2bda9 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ "check-types": "turbo run check-types", "test": "turbo run test", "create-integration": "pnpm dlx tsx create-integration.ts", - "bump": "pnpm --filter './packages/*' exec -- pnpm version", - "bump:alpha": "pnpm --filter './packages/*' exec -- pnpm version --preid alpha", - "publish": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --filter='./packages/*'", + "bump": "pnpm --filter './sdks/typescript/packages/*' exec -- pnpm version", + "bump:alpha": "pnpm --filter './sdks/typescript/packages/*' exec -- pnpm version --preid alpha", + "publish": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --filter='./sdks/typescript/packages/*'", "publish:integrations": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --filter='./integrations/*'", - "publish:alpha": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --no-git-checks --filter='./packages/*' --tag alpha" + "publish:alpha": "pnpm -r clean && pnpm install && turbo run build && pnpm publish -r --no-git-checks --filter='./sdks/typescript/packages/*' --tag alpha" }, "devDependencies": { "prettier": "^3.5.3", From 48e75820391f47b205d1dd65af3e2d78b5089af7 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 22 Oct 2025 10:44:12 +0200 Subject: [PATCH 051/113] v0.0.40-alpha.8 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 775df6901..6f9937e02 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.7", + "version": "0.0.40-alpha.8", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index 449cf4003..2beffdc7e 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.7", + "version": "0.0.40-alpha.8", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index c1cf646f2..d9f3a42ac 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-alpha.7", + "version": "0.0.40-alpha.8", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 2e8965739..f7ed53335 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-alpha.7", + "version": "0.0.40-alpha.8", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 579cf2a8c..6cbcd03ff 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-alpha.7", + "version": "0.0.40-alpha.8", "private": false, "publishConfig": { "access": "public" From b2e8cf0f1dbf4b3f05a60c43c97b90f51a59750f Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 22 Oct 2025 14:25:17 +0200 Subject: [PATCH 052/113] replace flag --- docs/concepts/events.mdx | 7 +- docs/sdk/js/core/events.mdx | 2 + docs/sdk/python/core/events.mdx | 2 + sdks/python/ag_ui/core/events.py | 1 + sdks/python/tests/test_events.py | 12 + .../apply/__tests__/default.activity.test.ts | 240 ++++++++++++++++++ .../packages/client/src/apply/default.ts | 15 +- .../src/__tests__/activity-events.test.ts | 13 + sdks/typescript/packages/core/src/events.ts | 1 + 9 files changed, 284 insertions(+), 9 deletions(-) diff --git a/docs/concepts/events.mdx b/docs/concepts/events.mdx index cdb6d5563..6ba6c9cc4 100644 --- a/docs/concepts/events.mdx +++ b/docs/concepts/events.mdx @@ -541,9 +541,10 @@ 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 | +| `messageId` | Unique identifier for the ActivityMessage | +| `activityType` | Activity type (e.g., "PLAN", "SEARCH", "SCRAPE") | +| `content` | Complete activity state at this point | +| `replace` | `true` (default) replaces an existing activity message; `false` only creates a new one if none exists | #### ActivityDeltaEvent diff --git a/docs/sdk/js/core/events.mdx b/docs/sdk/js/core/events.mdx index 62f76301d..df4d8646e 100644 --- a/docs/sdk/js/core/events.mdx +++ b/docs/sdk/js/core/events.mdx @@ -336,6 +336,7 @@ type ActivitySnapshotEvent = BaseEvent & { messageId: string activityType: string content: Record + replace?: boolean } ``` @@ -344,6 +345,7 @@ type ActivitySnapshotEvent = BaseEvent & { | `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 diff --git a/docs/sdk/python/core/events.mdx b/docs/sdk/python/core/events.mdx index fc4c6a5db..463b21734 100644 --- a/docs/sdk/python/core/events.mdx +++ b/docs/sdk/python/core/events.mdx @@ -360,6 +360,7 @@ class ActivitySnapshotEvent(BaseEvent): message_id: str activity_type: str content: Any + replace: bool = True ``` | Property | Type | Description | @@ -367,6 +368,7 @@ class ActivitySnapshotEvent(BaseEvent): | `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 diff --git a/sdks/python/ag_ui/core/events.py b/sdks/python/ag_ui/core/events.py index 6f66d40d0..94fb63c75 100644 --- a/sdks/python/ag_ui/core/events.py +++ b/sdks/python/ag_ui/core/events.py @@ -197,6 +197,7 @@ class ActivitySnapshotEvent(BaseEvent): message_id: str activity_type: str content: Any + replace: bool = True class ActivityDeltaEvent(BaseEvent): diff --git a/sdks/python/tests/test_events.py b/sdks/python/tests/test_events.py index f638b00d1..7245d88aa 100644 --- a/sdks/python/tests/test_events.py +++ b/sdks/python/tests/test_events.py @@ -217,12 +217,24 @@ def test_activity_snapshot(self): 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""" 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 index c6b2a9702..2ec80231d 100644 --- a/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts +++ b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts @@ -56,4 +56,244 @@ describe("defaultApplyEvents with activity events", () => { const deltaUpdate = stateUpdates[1]; expect(deltaUpdate?.messages?.[0]?.content).toEqual({ tasks: ["✓ search"] }); }); + + 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 result$ = defaultApplyEvents(initialState, events$, FAKE_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 result$ = defaultApplyEvents(initialState, events$, FAKE_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 result$ = defaultApplyEvents(initialState, events$, FAKE_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 result$ = defaultApplyEvents(initialState, events$, FAKE_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 result$ = defaultApplyEvents(initialState, events$, FAKE_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 firstResult$ = defaultApplyEvents(baseInput, firstRunEvents$, FAKE_AGENT, []); + 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 secondResult$ = defaultApplyEvents(secondInput, secondRunEvents$, FAKE_AGENT, []); + 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/default.ts b/sdks/typescript/packages/client/src/apply/default.ts index 5b7fd0d10..8f1c8c0c7 100644 --- a/sdks/typescript/packages/client/src/apply/default.ts +++ b/sdks/typescript/packages/client/src/apply/default.ts @@ -526,6 +526,7 @@ export const defaultApplyEvents = ( 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, @@ -558,12 +559,14 @@ export const defaultApplyEvents = ( messages.push(activityMessage); createdMessage = activityMessage; } else if (existingActivityMessage) { - messages[existingIndex] = { - ...existingActivityMessage, - activityType: activityEvent.activityType, - content: structuredClone_(activityEvent.content), - }; - } else { + if (replace) { + messages[existingIndex] = { + ...existingActivityMessage, + activityType: activityEvent.activityType, + content: structuredClone_(activityEvent.content), + }; + } + } else if (replace) { messages[existingIndex] = activityMessage; createdMessage = activityMessage; } diff --git a/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts b/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts index 88da46e0f..78b31d3a3 100644 --- a/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts +++ b/sdks/typescript/packages/core/src/__tests__/activity-events.test.ts @@ -13,6 +13,19 @@ describe("Activity events", () => { 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", () => { diff --git a/sdks/typescript/packages/core/src/events.ts b/sdks/typescript/packages/core/src/events.ts index 5c668f1ab..36076896c 100644 --- a/sdks/typescript/packages/core/src/events.ts +++ b/sdks/typescript/packages/core/src/events.ts @@ -146,6 +146,7 @@ export const ActivitySnapshotEventSchema = BaseEventSchema.extend({ messageId: z.string(), activityType: z.string(), content: z.record(z.any()), + replace: z.boolean().optional().default(true), }); export const ActivityDeltaEventSchema = BaseEventSchema.extend({ From 274ac601c0e23e91f20ad97ce88527e5950ad5b3 Mon Sep 17 00:00:00 2001 From: ran Date: Wed, 22 Oct 2025 15:33:39 +0200 Subject: [PATCH 053/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++---- pnpm-lock.yaml | 64 +++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index d7726c02d..912b5ffa5 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251021144842", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251021144842", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251021144842", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251021144842", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251021144842", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251022120653", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251022120653", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251022120653", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251022120653", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251022120653", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca77c3a88..e3e86b236 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251021144842 - version: 0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251022120653 + version: 0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251021144842 - version: 0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251022120653 + version: 0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251021144842 - version: 0.0.0-feat-cpk-1-5-20251021144842(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251022120653 + version: 0.0.0-feat-cpk-1-5-20251022120653(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251021144842 - version: 0.0.0-feat-cpk-1-5-20251021144842(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251022120653 + version: 0.0.0-feat-cpk-1-5-20251022120653(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251021144842 - version: 0.0.0-feat-cpk-1-5-20251021144842 + specifier: 0.0.0-feat-cpk-1-5-20251022120653 + version: 0.0.0-feat-cpk-1-5-20251022120653 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251021144842': - resolution: {integrity: sha512-VZeLhqcz1VARW8QhIAZB7xATb6EQixaKLaCFFO9lOwor5DJoNFb7kFd8AaiEfEDhPYDS87JdvUs8IuBz69+h1Q==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251022120653': + resolution: {integrity: sha512-m+nUCi9sCQNU9nwMKPk2VaDhm9SHxXgwskJcXlRr1zxkYsdXutcLHQMztrxcjeMC37suhIx45CKmz6rvRDDWBw==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251021144842': - resolution: {integrity: sha512-f0JmgnygReKPzVBzXPjqRhjdlaiuveNY3T+3vjyL2pAF9eH/YFWQ2OkMlIzC11URp3+9GtDvc9llRpRdwBiMCg==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251022120653': + resolution: {integrity: sha512-U0X6h9SYw8NBKFR1neshXMvkT/HR/3u4IhUUFK3dDVAuBWX4ZMMnRmfM8g7ub8lVhhDKBoJNxzMoPVAS84iiaQ==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021144842': - resolution: {integrity: sha512-JJeHIB+Lu+6V2+pAB/d6j+bdxsX/vF1a0IuWRlfF3+Fqx9gyZ9mG2HbPrIoqsyLi+uQKHBkfnSIEuvhwXczivg==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251022120653': + resolution: {integrity: sha512-Bx/RrfjdOsUHQOPKDWkGBb0eNBY2NF8nuvy1mKZyAimLvrP5u7O4u2uy5/E0MIYHls0m/JgBnYmo0P34iFFw7w==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021144842': - resolution: {integrity: sha512-pYJb8JeUABxzbCHFwTx/7Un0iZ3bXDx1R2N43D9gvCy9xpoRy1zTaHVxTBBxnAc8/Ur8UIwVSKoi8JVtkMhwYg==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251022120653': + resolution: {integrity: sha512-pcvJjvTLcKdm+HvHESq+CJw31h5CgWx7/KLLr1xXCPTLVR9JScNLJUyqlRNAt0uFaJSbodf1p9ZczL4s5RQDjA==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021144842': - resolution: {integrity: sha512-yhJBCN6ksVfXk5V8wf5vzOI8z6t3/+g1HEOtNZqC4nKOEOCs+mBf6bO6e+XxpLBuTR3fHpe5k6WWeI2DQIwcRw==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251022120653': + resolution: {integrity: sha512-Amr5M71r3qdwn8I7k7O03aIHVtra/uzJjAHDcBrafa/HWn9Yyv1B/8AYqag1kQIRdxFwfpLwy6txdp6NtX4w0g==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251021144842(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251022120653(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251021144842(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251021144842(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251022120653(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251021144842(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251022120653(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251021144842(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251022120653(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251021144842 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251021144842': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251022120653': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 From 0061ccdee42883c6856022356234783e53765ad8 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 22 Oct 2025 18:11:00 +0200 Subject: [PATCH 054/113] wip --- apps/dojo/package.json | 1 + apps/dojo/src/agents.ts | 12 + apps/dojo/src/env.ts | 4 +- apps/dojo/src/menu.ts | 5 + integrations/a2a/typescript/.gitignore | 2 + integrations/a2a/typescript/.npmrc | 1 + integrations/a2a/typescript/README.md | 84 ++++ integrations/a2a/typescript/jest.config.js | 10 + integrations/a2a/typescript/package.json | 52 +++ .../typescript/src/__tests__/agent.test.ts | 159 ++++++++ .../typescript/src/__tests__/utils.test.ts | 196 ++++++++++ integrations/a2a/typescript/src/agent.ts | 263 +++++++++++++ integrations/a2a/typescript/src/index.ts | 3 + integrations/a2a/typescript/src/types.ts | 53 +++ integrations/a2a/typescript/src/utils.ts | 360 ++++++++++++++++++ integrations/a2a/typescript/tsconfig.json | 24 ++ integrations/a2a/typescript/tsup.config.ts | 13 + pnpm-lock.yaml | 220 ++++------- 18 files changed, 1321 insertions(+), 141 deletions(-) create mode 100644 integrations/a2a/typescript/.gitignore create mode 100644 integrations/a2a/typescript/.npmrc create mode 100644 integrations/a2a/typescript/README.md create mode 100644 integrations/a2a/typescript/jest.config.js create mode 100644 integrations/a2a/typescript/package.json create mode 100644 integrations/a2a/typescript/src/__tests__/agent.test.ts create mode 100644 integrations/a2a/typescript/src/__tests__/utils.test.ts create mode 100644 integrations/a2a/typescript/src/agent.ts create mode 100644 integrations/a2a/typescript/src/index.ts create mode 100644 integrations/a2a/typescript/src/types.ts create mode 100644 integrations/a2a/typescript/src/utils.ts create mode 100644 integrations/a2a/typescript/tsconfig.json create mode 100644 integrations/a2a/typescript/tsup.config.ts diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 74805947b..049327c18 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -13,6 +13,7 @@ }, "dependencies": { "@ag-ui/a2a-middleware": "workspace:*", + "@ag-ui/a2a": "workspace:*", "@ag-ui/adk": "workspace:*", "@ag-ui/agno": "workspace:*", "@ag-ui/crewai": "workspace:*", diff --git a/apps/dojo/src/agents.ts b/apps/dojo/src/agents.ts index 18d7e90e8..391bee541 100644 --- a/apps/dojo/src/agents.ts +++ b/apps/dojo/src/agents.ts @@ -19,6 +19,7 @@ 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"; const envVars = getEnvVars(); export const agentsIntegrations: AgentIntegrationConfig[] = [ @@ -341,6 +342,17 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ }; }, }, + { + id: "a2a-basic", + agents: async () => { + return { + agentic_chat: new A2AAgent({ + description: "Direct A2A agent", + agentUrl: envVars.a2aUrl, + }), + }; + }, + }, { id: "a2a", agents: async () => { diff --git a/apps/dojo/src/env.ts b/apps/dojo/src/env.ts index c63344897..569c6cfdc 100644 --- a/apps/dojo/src/env.ts +++ b/apps/dojo/src/env.ts @@ -11,6 +11,7 @@ type envVars = { crewAiUrl: string; pydanticAIUrl: string; adkMiddlewareUrl: string; + a2aUrl: string; a2aMiddlewareBuildingsManagementUrl: string; a2aMiddlewareFinanceUrl: string; a2aMiddlewareItUrl: string; @@ -40,10 +41,11 @@ export default function getEnvVars(): envVars { pydanticAIUrl: process.env.PYDANTIC_AI_URL || 'http://localhost:9000', adkMiddlewareUrl: process.env.ADK_MIDDLEWARE_URL || 'http://localhost:8000', springAiUrl: process.env.SPRING_AI_URL || 'http://localhost:8080', + a2aUrl: process.env.A2A_URL || 'http://localhost:10002', a2aMiddlewareBuildingsManagementUrl: process.env.A2A_MIDDLEWARE_BUILDINGS_MANAGEMENT_URL || 'http://localhost:9001', a2aMiddlewareFinanceUrl: process.env.A2A_MIDDLEWARE_FINANCE_URL || 'http://localhost:9002', a2aMiddlewareItUrl: process.env.A2A_MIDDLEWARE_IT_URL || 'http://localhost:9003', a2aMiddlewareOrchestratorUrl: process.env.A2A_MIDDLEWARE_ORCHESTRATOR_URL || 'http://localhost:9000', customDomainTitle: customDomainTitle, } -} \ No newline at end of file +} diff --git a/apps/dojo/src/menu.ts b/apps/dojo/src/menu.ts index 25d02f283..b46243256 100644 --- a/apps/dojo/src/menu.ts +++ b/apps/dojo/src/menu.ts @@ -125,6 +125,11 @@ export const menuIntegrations: MenuIntegrationConfig[] = [ "tool_based_generative_ui", ], }, + { + id: "a2a-basic", + name: "A2A (Direct)", + features: ["agentic_chat"], + }, // Disabled until we can support Vercel AI SDK v5 // { // id: "vercel-ai-sdk", diff --git a/integrations/a2a/typescript/.gitignore b/integrations/a2a/typescript/.gitignore new file mode 100644 index 000000000..de4d1f007 --- /dev/null +++ b/integrations/a2a/typescript/.gitignore @@ -0,0 +1,2 @@ +dist +node_modules diff --git a/integrations/a2a/typescript/.npmrc b/integrations/a2a/typescript/.npmrc new file mode 100644 index 000000000..3e775efb0 --- /dev/null +++ b/integrations/a2a/typescript/.npmrc @@ -0,0 +1 @@ +auto-install-peers=true diff --git a/integrations/a2a/typescript/README.md b/integrations/a2a/typescript/README.md new file mode 100644 index 000000000..d1f15529a --- /dev/null +++ b/integrations/a2a/typescript/README.md @@ -0,0 +1,84 @@ +# @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"; + +const agent = new A2AAgent({ + agentUrl: "https://my-a2a-agent", + 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 | +| ------ | ----------- | +| `agentUrl` | Base URL of the A2A agent. Provide this when you want the integration to construct its own `A2AClient`. | +| `client` | Pass an existing `A2AClient` (e.g. one with custom auth or a test double). When `client` is supplied, `agentUrl` becomes optional. | + +## 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. +- `A2AAgent.getRemoteAgents({ agentUrls, agentConfig })` — helper that instantiates a map of `A2AAgent`s keyed by remote agent name or URL. + +## Testing + +```bash +pnpm --filter @ag-ui/a2a test +``` + +The suite covers conversion edge cases and streaming / fallback behaviour using mocked A2A clients. + +## Examples + +- `examples/basic.ts` – minimal script. If you set `A2A_AGENT_URL`, it will connect to that agent through the real `A2AClient`. Otherwise it falls back to a tiny in-memory mock client so you can observe the integration without hitting a remote endpoint. + +## Release checklist + +1. `pnpm --filter @ag-ui/a2a build` +2. `pnpm --filter @ag-ui/a2a test` +3. Update CHANGELOG / release notes. +4. Publish with `pnpm publish --filter @ag-ui/a2a`. diff --git a/integrations/a2a/typescript/jest.config.js b/integrations/a2a/typescript/jest.config.js new file mode 100644 index 000000000..0521f8d91 --- /dev/null +++ b/integrations/a2a/typescript/jest.config.js @@ -0,0 +1,10 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: "ts-jest", + testEnvironment: "node", + testMatch: ["**/*.test.ts"], + passWithNoTests: true, + moduleNameMapper: { + "^@/(.*)$": "/src/$1", + }, +}; diff --git a/integrations/a2a/typescript/package.json b/integrations/a2a/typescript/package.json new file mode 100644 index 000000000..44aa29177 --- /dev/null +++ b/integrations/a2a/typescript/package.json @@ -0,0 +1,52 @@ +{ + "name": "@ag-ui/a2a", + "author": "Markus Ecker ", + "version": "0.0.1", + "license": "Apache-2.0", + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "sideEffects": false, + "private": false, + "publishConfig": { + "access": "public" + }, + "files": [ + "dist/**", + "README.md" + ], + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + } + }, + "scripts": { + "build": "tsup", + "dev": "tsup --watch", + "clean": "rm -rf dist .turbo node_modules", + "typecheck": "tsc --noEmit", + "test": "jest", + "link:global": "pnpm link --global", + "unlink:global": "pnpm unlink --global" + }, + "dependencies": { + "@a2a-js/sdk": "^0.2.2", + "rxjs": "7.8.1" + }, + "peerDependencies": { + "@ag-ui/core": ">=0.0.40", + "@ag-ui/client": ">=0.0.40" + }, + "devDependencies": { + "@ag-ui/core": "workspace:*", + "@ag-ui/client": "workspace:*", + "@types/jest": "^29.5.14", + "@types/node": "^20.11.19", + "jest": "^29.7.0", + "ts-jest": "^29.1.2", + "tsup": "^8.0.2", + "typescript": "^5.3.3" + } +} diff --git a/integrations/a2a/typescript/src/__tests__/agent.test.ts b/integrations/a2a/typescript/src/__tests__/agent.test.ts new file mode 100644 index 000000000..c02824730 --- /dev/null +++ b/integrations/a2a/typescript/src/__tests__/agent.test.ts @@ -0,0 +1,159 @@ +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({ + agentUrl: "https://example.com", + client: fakeClient as any, + initialMessages: [ + createMessage({ + id: "user-1", + role: "user", + content: "Hi there", + }), + ], + }); + + const result = await agent.runAgent(); + + expect(result.result).toMatchObject({ + messages: [ + { + messageId: expect.any(String), + text: "Hello from stream", + }, + ], + }); + + 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({ + agentUrl: "https://fallback.example.com", + client: fakeClient as any, + initialMessages: [ + createMessage({ id: "user-1", role: "user", content: "Ping" }), + ], + }); + + const result = await agent.runAgent(); + + expect(result.result).toMatchObject({ + messages: [ + { + text: "Blocking response", + }, + ], + }); + }); + + 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({ + agentUrl: "https://error.example.com", + client: fakeClient as any, + initialMessages: [ + createMessage({ id: "user-1", role: "user", content: "Trouble" }), + ], + }); + + await expect(agent.runAgent()).rejects.toThrow("Agent failure"); + }); +}); diff --git a/integrations/a2a/typescript/src/__tests__/utils.test.ts b/integrations/a2a/typescript/src/__tests__/utils.test.ts new file mode 100644 index 000000000..fd64a3d81 --- /dev/null +++ b/integrations/a2a/typescript/src/__tests__/utils.test.ts @@ -0,0 +1,196 @@ +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(1); + expect(events[0]).toEqual( + expect.objectContaining({ + type: EventType.RAW, + }), + ); + }); +}); + +describe("sendMessageToA2AAgentTool", () => { + it("matches the expected schema", () => { + expect(sendMessageToA2AAgentTool.name).toBe("send_message_to_a2a_agent"); + expect(sendMessageToA2AAgentTool.parameters.required).toContain("task"); + }); +}); diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts new file mode 100644 index 000000000..e12588f32 --- /dev/null +++ b/integrations/a2a/typescript/src/agent.ts @@ -0,0 +1,263 @@ +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 } from "./types"; +import { randomUUID } from "@ag-ui/client"; + +export interface A2AAgentConfig extends AgentConfig { + agentUrl?: string; + client?: A2AClient; +} + +export class A2AAgent extends AbstractAgent { + private readonly agentUrl?: string; + private readonly client: A2AClient; + private readonly messageIdMap = new Map(); + + constructor(config: A2AAgentConfig) { + const { agentUrl, client, ...rest } = config; + + if (!agentUrl && !client) { + throw new Error("A2AAgent requires either an agentUrl or a preconfigured A2AClient."); + } + + super(rest); + + this.agentUrl = agentUrl; + this.client = client ?? new A2AClient(agentUrl!); + } + + protected 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, + result: { + messages: [], + rawEvents: [], + }, + }; + 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, + result: { + messages: [], + rawEvents: [], + info: "No user message to forward to A2A agent.", + }, + } as unknown as RunFinishedEvent; + subscriber.next(runFinished); + subscriber.complete(); + return; + } + + const sendParams = await this.createSendParams(converted, input); + + let summary: A2AAgentRunResultSummary | null = null; + + try { + summary = await this.streamMessage(sendParams, subscriber); + } catch (error) { + summary = await this.fallbackToBlocking(sendParams, subscriber, error as Error); + } + + const runFinished: RunFinishedEvent = { + type: EventType.RUN_FINISHED, + threadId: input.threadId, + runId: input.runId, + result: summary, + }; + 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; + + const metadata = { + agui: { + threadId: input.threadId, + runId: input.runId, + history: converted.history, + }, + } as Record; + + return { + message, + configuration, + metadata, + } as MessageSendParams; + } + + private async streamMessage( + params: MessageSendParams, + subscriber: { next: (event: BaseEvent) => void }, + ): Promise { + const aggregatedText = new Map(); + const rawEvents: A2AStreamEvent[] = []; + + const stream = this.client.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); + }, + source: this.agentUrl ?? "a2a", + }); + for (const event of events) { + subscriber.next(event); + } + } + + return { + messages: Array.from(aggregatedText.entries()).map(([messageId, text]) => ({ messageId, text })), + rawEvents, + }; + } + + private async fallbackToBlocking( + params: MessageSendParams, + subscriber: { next: (event: BaseEvent) => void }, + error: Error, + ): Promise { + const configuration: MessageSendConfiguration = { + ...params.configuration, + acceptedOutputModes: params.configuration?.acceptedOutputModes ?? ["text"], + blocking: true, + }; + + return this.blockingMessage( + { + ...params, + configuration, + }, + subscriber, + ); + } + + private async blockingMessage( + params: MessageSendParams, + subscriber: { next: (event: BaseEvent) => void }, + ): Promise { + const response = await this.client.sendMessage(params); + + if (this.client.isErrorResponse(response)) { + const errorMessage = response.error?.message ?? "Unknown error from A2A agent"; + throw new Error(errorMessage); + } + + const aggregatedText = new Map(); + const rawEvents: A2AStreamEvent[] = []; + + 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); + }, + source: this.agentUrl ?? "a2a", + }); + + for (const event of events) { + subscriber.next(event); + } + + return { + messages: Array.from(aggregatedText.entries()).map(([messageId, text]) => ({ messageId, text })), + rawEvents, + }; + } + + static async getRemoteAgents(options: { + agentUrls: string[]; + agentConfig?: AgentConfig; + }): Promise> { + const { agentUrls, agentConfig } = options; + + const pairs = await Promise.all( + agentUrls.map(async (url) => { + const client = new A2AClient(url); + + const agent = new A2AAgent({ + ...(agentConfig ?? {}), + agentUrl: url, + client, + }); + + return [agent.agentId ?? url, agent] as const; + }), + ); + + return Object.fromEntries(pairs); + } +} diff --git a/integrations/a2a/typescript/src/index.ts b/integrations/a2a/typescript/src/index.ts new file mode 100644 index 000000000..c06315272 --- /dev/null +++ b/integrations/a2a/typescript/src/index.ts @@ -0,0 +1,3 @@ +export * from "./agent"; +export * from "./utils"; +export * from "./types"; diff --git a/integrations/a2a/typescript/src/types.ts b/integrations/a2a/typescript/src/types.ts new file mode 100644 index 000000000..e3f67d617 --- /dev/null +++ b/integrations/a2a/typescript/src/types.ts @@ -0,0 +1,53 @@ +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 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; +} + +export interface A2AAgentRunResultSummary { + messages: Array<{ messageId: string; text: string }>; + rawEvents: A2AStreamEvent[]; +} diff --git a/integrations/a2a/typescript/src/utils.ts b/integrations/a2a/typescript/src/utils.ts new file mode 100644 index 000000000..673cde7d8 --- /dev/null +++ b/integrations/a2a/typescript/src/utils.ts @@ -0,0 +1,360 @@ +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 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 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"; + +export function convertA2AEventToAGUIEvents( + event: A2AStreamEvent, + options: ConvertA2AEventOptions, +): BaseEvent[] { + const events: BaseEvent[] = []; + const role = options.role ?? "assistant"; + const source = options.source ?? "a2a"; + + if (isA2AMessage(event)) { + const originalId = event.messageId ?? randomUUID(); + const mappedId = options.messageIdMap.get(originalId) ?? randomUUID(); + options.messageIdMap.set(originalId, mappedId); + + const openToolCalls = new Set(); + + for (const part of event.parts ?? []) { + if (part.kind === "text") { + const textPart = part as A2ATextPart; + if (textPart.text) { + const chunkEvent: TextMessageChunkEvent = { + type: EventType.TEXT_MESSAGE_CHUNK, + messageId: mappedId, + role, + delta: textPart.text, + }; + options.onTextDelta?.({ messageId: mappedId, delta: textPart.text }); + 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; + } + + // 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; + } + + if (isA2ATask(event)) { + const rawEvent: RawEvent = { + type: EventType.RAW, + event, + source, + }; + events.push(rawEvent); + return events; + } + + const fallbackEvent: RawEvent = { + type: EventType.RAW, + event, + source, + }; + events.push(fallbackEvent); + return events; +} + +export const sendMessageToA2AAgentTool = { + name: "send_message_to_a2a_agent", + description: + "Sends a task to the agent named `agentName`, including the full conversation context and goal", + parameters: { + type: "object", + properties: { + agentName: { + type: "string", + description: "The name of the A2A agent to send the message to.", + }, + task: { + type: "string", + description: + "The comprehensive conversation-context summary and goal to be achieved regarding the user inquiry.", + }, + }, + required: ["task"], + }, +} as const; diff --git a/integrations/a2a/typescript/tsconfig.json b/integrations/a2a/typescript/tsconfig.json new file mode 100644 index 000000000..ceecfd457 --- /dev/null +++ b/integrations/a2a/typescript/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "es2017", + "module": "NodeNext", + "lib": ["dom", "dom.iterable", "esnext"], + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "moduleResolution": "NodeNext", + "skipLibCheck": true, + "strict": true, + "jsx": "react-jsx", + "esModuleInterop": true, + "resolveJsonModule": true, + "isolatedModules": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + "stripInternal": true + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/integrations/a2a/typescript/tsup.config.ts b/integrations/a2a/typescript/tsup.config.ts new file mode 100644 index 000000000..a0ee0a256 --- /dev/null +++ b/integrations/a2a/typescript/tsup.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from "tsup"; + +export default defineConfig({ + entry: { + index: "src/index.ts", + }, + format: ["cjs", "esm"], + dts: true, + splitting: false, + sourcemap: true, + clean: true, + minify: true, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 70be6bfa3..3f7c368f9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,6 +66,9 @@ importers: apps/dojo: dependencies: + '@ag-ui/a2a': + specifier: workspace:* + version: link:../../integrations/a2a/typescript '@ag-ui/a2a-middleware': specifier: workspace:* version: link:../../middlewares/a2a-middleware @@ -128,7 +131,7 @@ importers: version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@copilotkit/runtime': specifier: 1.10.6 - version: 1.10.6(43a54c62826e391639c20a8a0387b983) + version: 1.10.6(iqshwn2xropb3vpfei3flnb2ay) '@copilotkit/runtime-client-gql': specifier: 1.10.6 version: 1.10.6(graphql@16.11.0)(react@19.2.0) @@ -314,6 +317,40 @@ importers: 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))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + tsup: + specifier: ^8.0.2 + version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) + typescript: + specifier: ^5.3.3 + version: 5.9.3 + integrations/adk-middleware/typescript: dependencies: rxjs: @@ -507,7 +544,7 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(2963fdc46a5185bf1f60e289781c45cd) + version: 1.10.6(g627ky2tgyn7hivafue6z6l5mq) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -959,26 +996,26 @@ packages: '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} - '@ag-ui/core@0.0.39': - resolution: {integrity: sha512-T5Hp4oFkQ+H5MynWAvSwrX/rNYJOD+PJ4qPQ0o771oSZQAxoIvDDft47Cx5wRyBNNLXAe1RWqJjfWUUwJFNKqA==} + '@ag-ui/core@0.0.40-alpha.8': + resolution: {integrity: sha512-p4S3WBUL6kqSQYfzvKjtLDSeE4z0Unqy0073Uet1gb6IR6KzwtQ5Pv4TvZ+lKb7x8ABdIZNFBYm1CUxyKOWEAQ==} '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} - '@ag-ui/encoder@0.0.39': - resolution: {integrity: sha512-6fsoFwPWkStK7Uyj3pwBn7+aQjUWf7pbDTSI43cD53sBLvTr5oEFNnoKOzRfC5UqvHc4JjUIuLKPQyjHRwWg4g==} + '@ag-ui/encoder@0.0.40-alpha.8': + resolution: {integrity: sha512-wbZfn+cB5qzbbl/5OvfTv0bFn/KV+4iDRxUF1a3plygNbTFpvrA7qe61BnFU52uDGMEU7nBtChRo/d3Y/JSPDw==} - '@ag-ui/langgraph@0.0.18': - resolution: {integrity: sha512-soWSV8+xR91jMArZUJoRv85UCgTi3Zt3u3gTMZhvs1t6fGFpAi6+hEQ4AqP13Rgvg90IlmIU8MTWo2k0OZDnoA==} + '@ag-ui/langgraph@0.0.19-alpha.1': + resolution: {integrity: sha512-rX8Y4LSxTXWUMFzCspO0c42b6YWGTuciP69Okrh7Lw3kpGsmFq/zmXoBLFz654Yuii2zLHl5mZvkBJ5a3nI6lA==} peerDependencies: - '@ag-ui/client': '>=0.0.38' - '@ag-ui/core': '>=0.0.38' + '@ag-ui/client': 0.0.40-alpha.7 + '@ag-ui/core': 0.0.40-alpha.7 '@ag-ui/proto@0.0.35': resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==} - '@ag-ui/proto@0.0.39': - resolution: {integrity: sha512-xlj/PzZHkJ3CgoQC5QP9g7DEl/78wUK1+A2rdkoLKoNAMOkM2g6jKw0N88iFIh5GZhtiCNN2wb8XwRWPYx9XQQ==} + '@ag-ui/proto@0.0.40-alpha.8': + resolution: {integrity: sha512-JuChCwxUkFSdOVm61wWH00shG3LSToieGuWzLCLXwUsnvkOk1mvA1em6PbMBVyt6YMhWCttHo8PyVTNmoqCTLg==} '@ai-sdk/anthropic@2.0.23': resolution: {integrity: sha512-ZEBiiv1UhjGjBwUU63pFhLK5LCSlNDb1idY9K1oZHm5/Fda1cuTojf32tOp0opH0RPbPAN/F8fyyNjbU33n9Kw==} @@ -7279,7 +7316,6 @@ packages: 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: @@ -9731,7 +9767,7 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.39': + '@ag-ui/core@0.0.40-alpha.8': dependencies: rxjs: 7.8.1 zod: 3.25.76 @@ -9741,12 +9777,12 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 - '@ag-ui/encoder@0.0.39': + '@ag-ui/encoder@0.0.40-alpha.8': dependencies: - '@ag-ui/core': 0.0.39 - '@ag-ui/proto': 0.0.39 + '@ag-ui/core': 0.0.40-alpha.8 + '@ag-ui/proto': 0.0.40-alpha.8 - '@ag-ui/langgraph@0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@ag-ui/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@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 @@ -9767,9 +9803,9 @@ snapshots: '@ag-ui/core': 0.0.35 '@bufbuild/protobuf': 2.9.0 - '@ag-ui/proto@0.0.39': + '@ag-ui/proto@0.0.40-alpha.8': dependencies: - '@ag-ui/core': 0.0.39 + '@ag-ui/core': 0.0.40-alpha.8 '@bufbuild/protobuf': 2.9.0 '@protobuf-ts/protoc': 2.11.1 @@ -10836,22 +10872,22 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.10.6(2963fdc46a5185bf1f60e289781c45cd)': + '@copilotkit/runtime@1.10.6(g627ky2tgyn7hivafue6z6l5mq)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': 0.0.39 - '@ag-ui/langgraph': 0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@ag-ui/proto': 0.0.39 + '@ag-ui/encoder': 0.0.40-alpha.8 + '@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@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.8 '@anthropic-ai/sdk': 0.57.0 '@copilotkit/shared': 1.10.6 '@graphql-yoga/plugin-defer-stream': 3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0) - '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(8d705aac09841dc81e24dfe2c773558d) + '@langchain/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(75igdgciibrgswysse3hw62tgi) '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) - '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) + '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) + '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) '@scarf/scarf': 1.4.0 class-transformer: 0.5.1 class-validator: 0.14.2 @@ -10860,7 +10896,7 @@ snapshots: graphql-scalars: 1.24.2(graphql@16.11.0) graphql-yoga: 5.16.0(graphql@16.11.0) groq-sdk: 0.5.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) + langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) partial-json: 0.1.7 pino: 9.13.1 @@ -11018,7 +11054,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(43a54c62826e391639c20a8a0387b983)': + '@copilotkit/runtime@1.10.6(iqshwn2xropb3vpfei3flnb2ay)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11029,7 +11065,7 @@ snapshots: '@copilotkit/shared': 1.10.6 '@graphql-yoga/plugin-defer-stream': 3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0) '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(a6f05470c76b31786172bd3244671918) + '@langchain/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) @@ -11926,29 +11962,19 @@ snapshots: transitivePeerDependencies: - aws-crt - '@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': + '@langchain/community@0.3.57(37emb7xvj5c4vxjobtfi323cve)': dependencies: - '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 - '@aws-sdk/client-bedrock-runtime': 3.910.0 - '@aws-sdk/client-kendra': 3.910.0 - '@aws-sdk/credential-provider-node': 3.910.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - transitivePeerDependencies: - - aws-crt - - '@langchain/community@0.3.57(8d705aac09841dc81e24dfe2c773558d)': - dependencies: - '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) + '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) '@ibm-cloud/watsonx-ai': 1.7.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) binary-extensions: 2.3.0 expr-eval: 2.0.2 flat: 5.0.2 ibm-cloud-sdk-core: 5.4.3 js-yaml: 4.1.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) + langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) uuid: 10.0.0 @@ -11993,9 +12019,9 @@ snapshots: - handlebars - peggy - '@langchain/community@0.3.57(a6f05470c76b31786172bd3244671918)': + '@langchain/community@0.3.57(75igdgciibrgswysse3hw62tgi)': 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) @@ -12098,14 +12124,6 @@ snapshots: transitivePeerDependencies: - zod - '@langchain/google-common@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - uuid: 10.0.0 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - zod - '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) @@ -12116,16 +12134,6 @@ snapshots: - supports-color - zod - '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-common': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - google-auth-library: 8.9.0 - transitivePeerDependencies: - - encoding - - supports-color - - zod - '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': dependencies: '@types/json-schema': 7.0.15 @@ -12136,16 +12144,6 @@ snapshots: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) react: 19.2.0 - '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': - dependencies: - '@types/json-schema': 7.0.15 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.1 - optionalDependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - react: 19.2.0 - '@langchain/langgraph-sdk@0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@types/json-schema': 7.0.15 @@ -12168,17 +12166,6 @@ snapshots: - encoding - ws - '@langchain/openai@0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - encoding - - ws - '@langchain/openai@0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) @@ -12188,25 +12175,11 @@ snapshots: transitivePeerDependencies: - ws - '@langchain/openai@0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - openai: 5.12.2(ws@8.18.3)(zod@3.25.76) - zod: 3.25.76 - transitivePeerDependencies: - - ws - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) js-tiktoken: 1.0.21 - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - '@langchain/weaviate@0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))': dependencies: '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) @@ -12215,14 +12188,6 @@ snapshots: transitivePeerDependencies: - encoding - '@langchain/weaviate@0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - uuid: 10.0.0 - weaviate-client: 3.9.0 - transitivePeerDependencies: - - encoding - '@libsql/client@0.15.15': dependencies: '@libsql/core': 0.15.15 @@ -16085,7 +16050,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)): + 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)): dependencies: debug: 3.2.7 optionalDependencies: @@ -16107,7 +16072,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.37.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)) + 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)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -17034,7 +16999,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.12.2) + retry-axios: 2.6.0(axios@1.12.2(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -17811,31 +17776,6 @@ snapshots: - openai - ws - langchain@0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3): - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - js-tiktoken: 1.0.21 - js-yaml: 4.1.0 - jsonpointer: 5.0.1 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - openapi-types: 12.1.3 - p-retry: 4.6.2 - uuid: 10.0.0 - yaml: 2.8.1 - zod: 3.25.76 - optionalDependencies: - '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - axios: 1.12.2(debug@4.4.3) - handlebars: 4.7.8 - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - ws - langsmith@0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)): dependencies: '@types/uuid': 10.0.0 @@ -19809,7 +19749,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.12.2): + retry-axios@2.6.0(axios@1.12.2(debug@4.4.3)): dependencies: axios: 1.12.2(debug@4.4.3) From df06481356ac67c36d8604f6872be8e2bfef7c55 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 22 Oct 2025 19:09:06 +0200 Subject: [PATCH 055/113] wip --- apps/dojo/src/agents.ts | 25 +++++---- integrations/a2a/typescript/src/agent.ts | 69 +++++++++++++++--------- 2 files changed, 59 insertions(+), 35 deletions(-) diff --git a/apps/dojo/src/agents.ts b/apps/dojo/src/agents.ts index 391bee541..95f802c35 100644 --- a/apps/dojo/src/agents.ts +++ b/apps/dojo/src/agents.ts @@ -16,7 +16,7 @@ import getEnvVars from "./env"; import { mastra } from "./mastra"; import { PydanticAIAgent } from "@ag-ui/pydantic-ai"; import { ADKAgent } from "@ag-ui/adk"; -import { SpringAiAgent } from '@ag-ui/spring-ai'; +import { SpringAiAgent } from "@ag-ui/spring-ai"; import { HttpAgent } from "@ag-ui/client"; import { A2AMiddlewareAgent } from "@ag-ui/a2a-middleware"; import { A2AAgent } from "@ag-ui/a2a"; @@ -82,7 +82,9 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ backend_tool_rendering: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/backend_tool_rendering`, }), - shared_state: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/adk-shared-state-agent` }), + shared_state: new ADKAgent({ + url: `${envVars.adkMiddlewareUrl}/adk-shared-state-agent`, + }), // predictive_state_updates: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/adk-predictive-state-agent` }), }; }, @@ -274,26 +276,26 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ }, }, { - id: 'spring-ai', + id: "spring-ai", agents: async () => { return { agentic_chat: new SpringAiAgent({ - url: `${envVars.springAiUrl}/agentic_chat/agui` + url: `${envVars.springAiUrl}/agentic_chat/agui`, }), shared_state: new SpringAiAgent({ - url: `${envVars.springAiUrl}/shared_state/agui` + url: `${envVars.springAiUrl}/shared_state/agui`, }), tool_based_generative_ui: new SpringAiAgent({ - url: `${envVars.springAiUrl}/tool_based_generative_ui/agui` + url: `${envVars.springAiUrl}/tool_based_generative_ui/agui`, }), human_in_the_loop: new SpringAiAgent({ - url: `${envVars.springAiUrl}/human_in_the_loop/agui` + url: `${envVars.springAiUrl}/human_in_the_loop/agui`, }), agentic_generative_ui: new SpringAiAgent({ - url: `${envVars.springAiUrl}/agentic_generative_ui/agui` - }) - } - } + url: `${envVars.springAiUrl}/agentic_generative_ui/agui`, + }), + }; + }, }, { id: "llama-index", @@ -349,6 +351,7 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ agentic_chat: new A2AAgent({ description: "Direct A2A agent", agentUrl: envVars.a2aUrl, + debug: process.env.NODE_ENV !== "production", }), }; }, diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index e12588f32..4d7e21e24 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -10,9 +10,17 @@ import { } 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 type { + MessageSendConfiguration, + MessageSendParams, + Message as A2AMessage, +} from "@a2a-js/sdk"; import { convertAGUIMessagesToA2A, convertA2AEventToAGUIEvents } from "./utils"; -import type { A2AAgentRunResultSummary, ConvertedA2AMessages, A2AStreamEvent } from "./types"; +import type { + A2AAgentRunResultSummary, + ConvertedA2AMessages, + A2AStreamEvent, +} from "./types"; import { randomUUID } from "@ag-ui/client"; export interface A2AAgentConfig extends AgentConfig { @@ -22,20 +30,22 @@ export interface A2AAgentConfig extends AgentConfig { export class A2AAgent extends AbstractAgent { private readonly agentUrl?: string; - private readonly client: A2AClient; + private readonly a2aClient: A2AClient; private readonly messageIdMap = new Map(); constructor(config: A2AAgentConfig) { const { agentUrl, client, ...rest } = config; if (!agentUrl && !client) { - throw new Error("A2AAgent requires either an agentUrl or a preconfigured A2AClient."); + throw new Error( + "A2AAgent requires either an agentUrl or a preconfigured A2AClient.", + ); } super(rest); this.agentUrl = agentUrl; - this.client = client ?? new A2AClient(agentUrl!); + this.a2aClient = client ?? new A2AClient(agentUrl!); } protected run(input: RunAgentInput): Observable { @@ -89,9 +99,15 @@ export class A2AAgent extends AbstractAgent { try { summary = await this.streamMessage(sendParams, subscriber); } catch (error) { - summary = await this.fallbackToBlocking(sendParams, subscriber, error as Error); + summary = await this.fallbackToBlocking( + sendParams, + subscriber, + error as Error, + ); } + console.log("Summary:", summary); + const runFinished: RunFinishedEvent = { type: EventType.RUN_FINISHED, threadId: input.threadId, @@ -138,18 +154,9 @@ export class A2AAgent extends AbstractAgent { acceptedOutputModes: ["text"], } as MessageSendConfiguration; - const metadata = { - agui: { - threadId: input.threadId, - runId: input.runId, - history: converted.history, - }, - } as Record; - return { message, configuration, - metadata, } as MessageSendParams; } @@ -160,14 +167,17 @@ export class A2AAgent extends AbstractAgent { const aggregatedText = new Map(); const rawEvents: A2AStreamEvent[] = []; - const stream = this.client.sendMessageStream(params); + 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); + aggregatedText.set( + messageId, + (aggregatedText.get(messageId) ?? "") + delta, + ); }, source: this.agentUrl ?? "a2a", }); @@ -177,7 +187,9 @@ export class A2AAgent extends AbstractAgent { } return { - messages: Array.from(aggregatedText.entries()).map(([messageId, text]) => ({ messageId, text })), + messages: Array.from(aggregatedText.entries()).map( + ([messageId, text]) => ({ messageId, text }), + ), rawEvents, }; } @@ -189,7 +201,9 @@ export class A2AAgent extends AbstractAgent { ): Promise { const configuration: MessageSendConfiguration = { ...params.configuration, - acceptedOutputModes: params.configuration?.acceptedOutputModes ?? ["text"], + acceptedOutputModes: params.configuration?.acceptedOutputModes ?? [ + "text", + ], blocking: true, }; @@ -206,10 +220,12 @@ export class A2AAgent extends AbstractAgent { params: MessageSendParams, subscriber: { next: (event: BaseEvent) => void }, ): Promise { - const response = await this.client.sendMessage(params); + const response = await this.a2aClient.sendMessage(params); - if (this.client.isErrorResponse(response)) { - const errorMessage = response.error?.message ?? "Unknown error from A2A agent"; + 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); } @@ -223,7 +239,10 @@ export class A2AAgent extends AbstractAgent { role: "assistant", messageIdMap: this.messageIdMap, onTextDelta: ({ messageId, delta }) => { - aggregatedText.set(messageId, (aggregatedText.get(messageId) ?? "") + delta); + aggregatedText.set( + messageId, + (aggregatedText.get(messageId) ?? "") + delta, + ); }, source: this.agentUrl ?? "a2a", }); @@ -233,7 +252,9 @@ export class A2AAgent extends AbstractAgent { } return { - messages: Array.from(aggregatedText.entries()).map(([messageId, text]) => ({ messageId, text })), + messages: Array.from(aggregatedText.entries()).map( + ([messageId, text]) => ({ messageId, text }), + ), rawEvents, }; } From 450f2d19420ca67edd8e1617fae90e818660510a Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 22 Oct 2025 19:19:14 +0200 Subject: [PATCH 056/113] wip --- integrations/a2a/typescript/src/agent.ts | 2 - integrations/a2a/typescript/src/utils.ts | 186 +++++++++++++---------- 2 files changed, 102 insertions(+), 86 deletions(-) diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index 4d7e21e24..7fe99d8b1 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -106,8 +106,6 @@ export class A2AAgent extends AbstractAgent { ); } - console.log("Summary:", summary); - const runFinished: RunFinishedEvent = { type: EventType.RUN_FINISHED, threadId: input.threadId, diff --git a/integrations/a2a/typescript/src/utils.ts b/integrations/a2a/typescript/src/utils.ts index 673cde7d8..efdcea5f1 100644 --- a/integrations/a2a/typescript/src/utils.ts +++ b/integrations/a2a/typescript/src/utils.ts @@ -215,107 +215,125 @@ const isA2AMessage = (event: A2AStreamEvent): event is A2AMessage => event.kind const isA2ATask = (event: A2AStreamEvent): event is import("@a2a-js/sdk").Task => event.kind === "task"; -export function convertA2AEventToAGUIEvents( +const isA2AStatusUpdate = ( event: A2AStreamEvent, - options: ConvertA2AEventOptions, -): BaseEvent[] { - const events: BaseEvent[] = []; +): event is import("@a2a-js/sdk").TaskStatusUpdateEvent => event.kind === "status-update"; + +function convertMessageToEvents(message: A2AMessage, options: ConvertA2AEventOptions): BaseEvent[] { const role = options.role ?? "assistant"; - const source = options.source ?? "a2a"; + const events: BaseEvent[] = []; - if (isA2AMessage(event)) { - const originalId = event.messageId ?? randomUUID(); - const mappedId = options.messageIdMap.get(originalId) ?? randomUUID(); - options.messageIdMap.set(originalId, mappedId); - - const openToolCalls = new Set(); - - for (const part of event.parts ?? []) { - if (part.kind === "text") { - const textPart = part as A2ATextPart; - if (textPart.text) { - const chunkEvent: TextMessageChunkEvent = { - type: EventType.TEXT_MESSAGE_CHUNK, - messageId: mappedId, - role, - delta: textPart.text, - }; - options.onTextDelta?.({ messageId: mappedId, delta: textPart.text }); - events.push(chunkEvent); - } - continue; + const originalId = message.messageId ?? randomUUID(); + const mappedId = options.messageIdMap.get(originalId) ?? randomUUID(); + options.messageIdMap.set(originalId, mappedId); + + const openToolCalls = new Set(); + + for (const part of message.parts ?? []) { + if (part.kind === "text") { + const textPart = part as A2ATextPart; + if (textPart.text) { + const chunkEvent: TextMessageChunkEvent = { + type: EventType.TEXT_MESSAGE_CHUNK, + messageId: mappedId, + role, + delta: textPart.text, + }; + options.onTextDelta?.({ messageId: mappedId, delta: textPart.text }); + 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, + 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, - toolCallName, - parentMessageId: mappedId, + delta: JSON.stringify(args), }; - 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; + events.push(argsEvent); } - 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, + 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, - 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); - } + events.push(endEvent); + openToolCalls.delete(toolCallId); } - - continue; } - // Ignore other part kinds for now. + continue; } - for (const toolCallId of openToolCalls) { - const endEvent: ToolCallEndEvent = { - type: EventType.TOOL_CALL_END, - toolCallId, - }; - events.push(endEvent); - } + // 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; + if (statusMessage && statusMessage.kind === "message") { + return convertMessageToEvents(statusMessage as A2AMessage, options); + } return events; } From f92d0e937e06ed0bb64fe0a50be0daecd3f6cbc5 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Wed, 22 Oct 2025 19:38:03 +0200 Subject: [PATCH 057/113] wip --- integrations/a2a/typescript/src/agent.ts | 2 + integrations/a2a/typescript/src/types.ts | 1 + integrations/a2a/typescript/src/utils.ts | 72 +++++++++++++++++++----- 3 files changed, 62 insertions(+), 13 deletions(-) diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index 7fe99d8b1..906468dad 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -177,6 +177,7 @@ export class A2AAgent extends AbstractAgent { (aggregatedText.get(messageId) ?? "") + delta, ); }, + getCurrentText: (messageId) => aggregatedText.get(messageId), source: this.agentUrl ?? "a2a", }); for (const event of events) { @@ -242,6 +243,7 @@ export class A2AAgent extends AbstractAgent { (aggregatedText.get(messageId) ?? "") + delta, ); }, + getCurrentText: (messageId) => aggregatedText.get(messageId), source: this.agentUrl ?? "a2a", }); diff --git a/integrations/a2a/typescript/src/types.ts b/integrations/a2a/typescript/src/types.ts index e3f67d617..c59b8a2dd 100644 --- a/integrations/a2a/typescript/src/types.ts +++ b/integrations/a2a/typescript/src/types.ts @@ -45,6 +45,7 @@ export interface ConvertA2AEventOptions { messageIdMap: Map; onTextDelta?: (payload: { messageId: string; delta: string }) => void; source?: string; + getCurrentText?: (messageId: string) => string | undefined; } export interface A2AAgentRunResultSummary { diff --git a/integrations/a2a/typescript/src/utils.ts b/integrations/a2a/typescript/src/utils.ts index efdcea5f1..dd0705c0e 100644 --- a/integrations/a2a/typescript/src/utils.ts +++ b/integrations/a2a/typescript/src/utils.ts @@ -219,28 +219,71 @@ const isA2AStatusUpdate = ( event: A2AStreamEvent, ): event is import("@a2a-js/sdk").TaskStatusUpdateEvent => event.kind === "status-update"; -function convertMessageToEvents(message: A2AMessage, options: ConvertA2AEventOptions): BaseEvent[] { +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 = options.messageIdMap.get(originalId) ?? randomUUID(); - options.messageIdMap.set(originalId, mappedId); + 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; - if (textPart.text) { - const chunkEvent: TextMessageChunkEvent = { - type: EventType.TEXT_MESSAGE_CHUNK, - messageId: mappedId, - role, - delta: textPart.text, - }; - options.onTextDelta?.({ messageId: mappedId, delta: textPart.text }); - events.push(chunkEvent); + 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; } @@ -331,8 +374,11 @@ export function convertA2AEventToAGUIEvents( 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); + return convertMessageToEvents(statusMessage as A2AMessage, options, aliasKey); } return events; } From 272c4158e9fa122410978db8e86849183e60321d Mon Sep 17 00:00:00 2001 From: ran Date: Thu, 23 Oct 2025 11:03:07 +0200 Subject: [PATCH 058/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++--- apps/dojo/src/files.json | 6 ++-- pnpm-lock.yaml | 68 ++++++++++++++++++++-------------------- 3 files changed, 42 insertions(+), 42 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 912b5ffa5..f6204e0c0 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251022120653", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251022120653", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251022120653", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251022120653", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251022120653", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251023090044", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251023090044", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251023090044", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251023090044", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251023090044", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/apps/dojo/src/files.json b/apps/dojo/src/files.json index ff3dcf339..4fdd3b9d6 100644 --- a/apps/dojo/src/files.json +++ b/apps/dojo/src/files.json @@ -1281,7 +1281,7 @@ }, { "name": "agentic_chat.py", - "content": "\"\"\"Example: Agno Agent with Finance tools\n\nThis example shows how to create an Agno Agent with tools (YFinanceTools) and expose it in an AG-UI compatible way.\n\"\"\"\nfrom agno.agent.agent import Agent\nfrom agno.app.agui.app import AGUIApp\nfrom agno.models.openai import OpenAIChat\nfrom agno.tools.yfinance import YFinanceTools\nfrom agno.tools import tool\n\n\n@tool(external_execution=True)\ndef change_background(background: str) -> str: # pylint: disable=unused-argument\n \"\"\"\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\n Args:\n background: str: The background color to change to. Can be anything that the CSS background attribute accepts. Regular colors, linear of radial gradients etc.\n \"\"\" # pylint: disable=line-too-long\n\nagent = Agent(\n model=OpenAIChat(id=\"gpt-4o\"),\n tools=[\n YFinanceTools(\n stock_price=True, analyst_recommendations=True, stock_fundamentals=True\n ),\n change_background,\n ],\n description=\"You are an investment analyst that researches stock prices, analyst recommendations, and stock fundamentals.\",\n instructions=\"Format your response using markdown and use tables to display data where possible.\",\n)\n\nagui_app = AGUIApp(\n agent=agent,\n name=\"Investment Analyst\",\n app_id=\"agentic_chat\",\n description=\"An investment analyst that researches stock prices, analyst recommendations, and stock fundamentals.\",\n)\n\napp = agui_app.get_app()", + "content": "\"\"\"Example: Agno Agent with Finance tools\n\nThis example shows how to create an Agno Agent with tools (YFinanceTools) and expose it in an AG-UI compatible way.\n\"\"\"\nfrom agno.agent.agent import Agent\nfrom agno.os import AgentOS\nfrom agno.os.interfaces.agui import AGUI\nfrom agno.models.openai import OpenAIChat\nfrom agno.tools.yfinance import YFinanceTools\nfrom agno.tools import tool\n\n\n@tool(external_execution=True)\ndef change_background(background: str) -> str: # pylint: disable=unused-argument\n \"\"\"\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\n Args:\n background: str: The background color to change to. Can be anything that the CSS background attribute accepts. Regular colors, linear of radial gradients etc.\n \"\"\" # pylint: disable=line-too-long\n\nagent = Agent(\n model=OpenAIChat(id=\"gpt-4o\"),\n tools=[\n YFinanceTools(),\n change_background,\n ],\n description=\"You are an investment analyst that researches stock prices, analyst recommendations, and stock fundamentals.\",\n instructions=\"Format your response using markdown and use tables to display data where possible.\",\n)\n\nagent_os = AgentOS(\n agents=[agent],\n interfaces=[AGUI(agent=agent)]\n)\n\napp = agent_os.get_app()", "language": "python", "type": "file" } @@ -1307,7 +1307,7 @@ }, { "name": "tool_based_generative_ui.py", - "content": "\"\"\"Example: Tool-based Generative UI Agent\n\nThis example shows how to create an Agno Agent with custom tools for haiku generation\nand background changing, exposed in an AG-UI compatible way.\n\"\"\"\nfrom typing import List\n\nfrom agno.agent.agent import Agent\nfrom agno.app.agui.app import AGUIApp\nfrom agno.models.openai import OpenAIChat\nfrom agno.tools import tool\n\n\n@tool(external_execution=True)\ndef generate_haiku(english: List[str], japanese: List[str], image_names: List[str]) -> str: # pylint: disable=unused-argument\n \"\"\"\n\n Generate a haiku in Japanese and its English translation.\n YOU MUST PROVIDE THE ENGLISH HAIKU AND THE JAPANESE HAIKU AND THE IMAGE NAMES.\n When picking image names, pick them from the following list:\n - \"Osaka_Castle_Turret_Stone_Wall_Pine_Trees_Daytime.jpg\",\n - \"Tokyo_Skyline_Night_Tokyo_Tower_Mount_Fuji_View.jpg\",\n - \"Itsukushima_Shrine_Miyajima_Floating_Torii_Gate_Sunset_Long_Exposure.jpg\",\n - \"Takachiho_Gorge_Waterfall_River_Lush_Greenery_Japan.jpg\",\n - \"Bonsai_Tree_Potted_Japanese_Art_Green_Foliage.jpeg\",\n - \"Shirakawa-go_Gassho-zukuri_Thatched_Roof_Village_Aerial_View.jpg\",\n - \"Ginkaku-ji_Silver_Pavilion_Kyoto_Japanese_Garden_Pond_Reflection.jpg\",\n - \"Senso-ji_Temple_Asakusa_Cherry_Blossoms_Kimono_Umbrella.jpg\",\n - \"Cherry_Blossoms_Sakura_Night_View_City_Lights_Japan.jpg\",\n - \"Mount_Fuji_Lake_Reflection_Cherry_Blossoms_Sakura_Spring.jpg\"\n\n Args:\n english: List[str]: An array of three lines of the haiku in English. YOU MUST PROVIDE THE ENGLISH HAIKU.\n japanese: List[str]: An array of three lines of the haiku in Japanese. YOU MUST PROVIDE THE JAPANESE HAIKU.\n image_names: List[str]: An array of three image names. YOU MUST PROVIDE THE IMAGE NAMES.\n\n\n Returns:\n str: A confirmation message.\n \"\"\" # pylint: disable=line-too-long\n return \"Haiku generated\"\n\nagent = Agent(\n model=OpenAIChat(id=\"gpt-4o\"),\n tools=[generate_haiku],\n description=\"Help the user with writing Haikus. If the user asks for a haiku, use the generate_haiku tool to display the haiku to the user.\",\n debug_mode=True,\n)\n\nagui_app = AGUIApp(\n agent=agent,\n name=\"Tool-based Generative UI Agent\",\n app_id=\"tool_based_generative_ui\",\n description=\"A tool-based generative UI agent with haiku generation and background changing capabilities.\",\n)\n\napp = agui_app.get_app()", + "content": "\"\"\"Example: Tool-based Generative UI Agent\n\nThis example shows how to create an Agno Agent with custom tools for haiku generation\nand background changing, exposed in an AG-UI compatible way.\n\"\"\"\nfrom typing import List\n\nfrom agno.agent.agent import Agent\nfrom agno.os import AgentOS\nfrom agno.os.interfaces.agui import AGUI\nfrom agno.models.openai import OpenAIChat\nfrom agno.tools import tool\n\n\n@tool(external_execution=True)\ndef generate_haiku(english: List[str], japanese: List[str], image_names: List[str]) -> str: # pylint: disable=unused-argument\n \"\"\"\n\n Generate a haiku in Japanese and its English translation.\n YOU MUST PROVIDE THE ENGLISH HAIKU AND THE JAPANESE HAIKU AND THE IMAGE NAMES.\n When picking image names, pick them from the following list:\n - \"Osaka_Castle_Turret_Stone_Wall_Pine_Trees_Daytime.jpg\",\n - \"Tokyo_Skyline_Night_Tokyo_Tower_Mount_Fuji_View.jpg\",\n - \"Itsukushima_Shrine_Miyajima_Floating_Torii_Gate_Sunset_Long_Exposure.jpg\",\n - \"Takachiho_Gorge_Waterfall_River_Lush_Greenery_Japan.jpg\",\n - \"Bonsai_Tree_Potted_Japanese_Art_Green_Foliage.jpeg\",\n - \"Shirakawa-go_Gassho-zukuri_Thatched_Roof_Village_Aerial_View.jpg\",\n - \"Ginkaku-ji_Silver_Pavilion_Kyoto_Japanese_Garden_Pond_Reflection.jpg\",\n - \"Senso-ji_Temple_Asakusa_Cherry_Blossoms_Kimono_Umbrella.jpg\",\n - \"Cherry_Blossoms_Sakura_Night_View_City_Lights_Japan.jpg\",\n - \"Mount_Fuji_Lake_Reflection_Cherry_Blossoms_Sakura_Spring.jpg\"\n\n Args:\n english: List[str]: An array of three lines of the haiku in English. YOU MUST PROVIDE THE ENGLISH HAIKU.\n japanese: List[str]: An array of three lines of the haiku in Japanese. YOU MUST PROVIDE THE JAPANESE HAIKU.\n image_names: List[str]: An array of three image names. YOU MUST PROVIDE THE IMAGE NAMES.\n\n\n Returns:\n str: A confirmation message.\n \"\"\" # pylint: disable=line-too-long\n return \"Haiku generated\"\n\nagent = Agent(\n model=OpenAIChat(id=\"gpt-4o\"),\n tools=[generate_haiku],\n description=\"Help the user with writing Haikus. If the user asks for a haiku, use the generate_haiku tool to display the haiku to the user.\",\n debug_mode=True,\n)\n\nagent_os = AgentOS(\n agents=[agent],\n interfaces=[AGUI(agent=agent)]\n)\n\napp = agent_os.get_app()", "language": "python", "type": "file" } @@ -1333,7 +1333,7 @@ }, { "name": "backend_tool_rendering.py", - "content": "\"\"\"Example: Agno Agent with Finance tools\n\nThis example shows how to create an Agno Agent with tools (YFinanceTools) and expose it in an AG-UI compatible way.\n\"\"\"\n\nfrom agno.agent.agent import Agent\nfrom agno.app.agui.app import AGUIApp\nfrom agno.models.openai import OpenAIChat\nfrom agno.tools.yfinance import YFinanceTools\nfrom agno.tools import tool\nimport httpx\nimport json\n\n\ndef get_weather_condition(code: int) -> str:\n \"\"\"Map weather code to human-readable condition.\n\n Args:\n code: WMO weather code.\n\n Returns:\n Human-readable weather condition string.\n \"\"\"\n conditions = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n 2: \"Partly cloudy\",\n 3: \"Overcast\",\n 45: \"Foggy\",\n 48: \"Depositing rime fog\",\n 51: \"Light drizzle\",\n 53: \"Moderate drizzle\",\n 55: \"Dense drizzle\",\n 56: \"Light freezing drizzle\",\n 57: \"Dense freezing drizzle\",\n 61: \"Slight rain\",\n 63: \"Moderate rain\",\n 65: \"Heavy rain\",\n 66: \"Light freezing rain\",\n 67: \"Heavy freezing rain\",\n 71: \"Slight snow fall\",\n 73: \"Moderate snow fall\",\n 75: \"Heavy snow fall\",\n 77: \"Snow grains\",\n 80: \"Slight rain showers\",\n 81: \"Moderate rain showers\",\n 82: \"Violent rain showers\",\n 85: \"Slight snow showers\",\n 86: \"Heavy snow showers\",\n 95: \"Thunderstorm\",\n 96: \"Thunderstorm with slight hail\",\n 99: \"Thunderstorm with heavy hail\",\n }\n return conditions.get(code, \"Unknown\")\n\n\n@tool(external_execution=False)\nasync def get_weather(location: str) -> str:\n \"\"\"Get current weather for a location.\n\n Args:\n location: City name.\n\n Returns:\n A json string with weather information including temperature, feels like,\n humidity, wind speed, wind gust, conditions, and location name.\n \"\"\"\n async with httpx.AsyncClient() as client:\n # Geocode the location\n geocoding_url = (\n f\"https://geocoding-api.open-meteo.com/v1/search?name={location}&count=1\"\n )\n geocoding_response = await client.get(geocoding_url)\n geocoding_data = geocoding_response.json()\n\n if not geocoding_data.get(\"results\"):\n raise ValueError(f\"Location '{location}' not found\")\n\n result = geocoding_data[\"results\"][0]\n latitude = result[\"latitude\"]\n longitude = result[\"longitude\"]\n name = result[\"name\"]\n\n # Get weather data\n weather_url = (\n f\"https://api.open-meteo.com/v1/forecast?\"\n f\"latitude={latitude}&longitude={longitude}\"\n f\"¤t=temperature_2m,apparent_temperature,relative_humidity_2m,\"\n f\"wind_speed_10m,wind_gusts_10m,weather_code\"\n )\n weather_response = await client.get(weather_url)\n weather_data = weather_response.json()\n\n current = weather_data[\"current\"]\n\n return json.dumps(\n {\n \"temperature\": current[\"temperature_2m\"],\n \"feelsLike\": current[\"apparent_temperature\"],\n \"humidity\": current[\"relative_humidity_2m\"],\n \"windSpeed\": current[\"wind_speed_10m\"],\n \"windGust\": current[\"wind_gusts_10m\"],\n \"conditions\": get_weather_condition(current[\"weather_code\"]),\n \"location\": name,\n }\n )\n\n\nagent = Agent(\n model=OpenAIChat(id=\"gpt-4o\"),\n tools=[\n get_weather,\n ],\n description=\"You are a helpful weather assistant that provides accurate weather information.\",\n instructions=\"\"\"\n Your primary function is to help users get weather details for specific locations. When responding:\n - Always ask for a location if none is provided\n - If the location name isn’t in English, please translate it\n - If giving a location with multiple parts (e.g. \"New York, NY\"), use the most relevant part (e.g. \"New York\")\n - Include relevant details like humidity, wind conditions, and precipitation\n - Keep responses concise but informative\n\n Use the get_weather tool to fetch current weather data.\n \"\"\",\n)\n\nagui_app = AGUIApp(\n agent=agent,\n name=\"Weather Agent\",\n app_id=\"backend_tool_rendering\",\n description=\"A helpful weather assistant that provides accurate weather information.\",\n)\n\napp = agui_app.get_app()\n", + "content": "\"\"\"Example: Agno Agent with Finance tools\n\nThis example shows how to create an Agno Agent with tools (YFinanceTools) and expose it in an AG-UI compatible way.\n\"\"\"\n\nfrom agno.agent.agent import Agent\nfrom agno.os import AgentOS\nfrom agno.os.interfaces.agui import AGUI\nfrom agno.models.openai import OpenAIChat\nfrom agno.tools.yfinance import YFinanceTools\nfrom agno.tools import tool\nimport httpx\nimport json\n\n\ndef get_weather_condition(code: int) -> str:\n \"\"\"Map weather code to human-readable condition.\n\n Args:\n code: WMO weather code.\n\n Returns:\n Human-readable weather condition string.\n \"\"\"\n conditions = {\n 0: \"Clear sky\",\n 1: \"Mainly clear\",\n 2: \"Partly cloudy\",\n 3: \"Overcast\",\n 45: \"Foggy\",\n 48: \"Depositing rime fog\",\n 51: \"Light drizzle\",\n 53: \"Moderate drizzle\",\n 55: \"Dense drizzle\",\n 56: \"Light freezing drizzle\",\n 57: \"Dense freezing drizzle\",\n 61: \"Slight rain\",\n 63: \"Moderate rain\",\n 65: \"Heavy rain\",\n 66: \"Light freezing rain\",\n 67: \"Heavy freezing rain\",\n 71: \"Slight snow fall\",\n 73: \"Moderate snow fall\",\n 75: \"Heavy snow fall\",\n 77: \"Snow grains\",\n 80: \"Slight rain showers\",\n 81: \"Moderate rain showers\",\n 82: \"Violent rain showers\",\n 85: \"Slight snow showers\",\n 86: \"Heavy snow showers\",\n 95: \"Thunderstorm\",\n 96: \"Thunderstorm with slight hail\",\n 99: \"Thunderstorm with heavy hail\",\n }\n return conditions.get(code, \"Unknown\")\n\n\n@tool(external_execution=False)\nasync def get_weather(location: str) -> str:\n \"\"\"Get current weather for a location.\n\n Args:\n location: City name.\n\n Returns:\n A json string with weather information including temperature, feels like,\n humidity, wind speed, wind gust, conditions, and location name.\n \"\"\"\n async with httpx.AsyncClient() as client:\n # Geocode the location\n geocoding_url = (\n f\"https://geocoding-api.open-meteo.com/v1/search?name={location}&count=1\"\n )\n geocoding_response = await client.get(geocoding_url)\n geocoding_data = geocoding_response.json()\n\n if not geocoding_data.get(\"results\"):\n raise ValueError(f\"Location '{location}' not found\")\n\n result = geocoding_data[\"results\"][0]\n latitude = result[\"latitude\"]\n longitude = result[\"longitude\"]\n name = result[\"name\"]\n\n # Get weather data\n weather_url = (\n f\"https://api.open-meteo.com/v1/forecast?\"\n f\"latitude={latitude}&longitude={longitude}\"\n f\"¤t=temperature_2m,apparent_temperature,relative_humidity_2m,\"\n f\"wind_speed_10m,wind_gusts_10m,weather_code\"\n )\n weather_response = await client.get(weather_url)\n weather_data = weather_response.json()\n\n current = weather_data[\"current\"]\n\n return json.dumps(\n {\n \"temperature\": current[\"temperature_2m\"],\n \"feelsLike\": current[\"apparent_temperature\"],\n \"humidity\": current[\"relative_humidity_2m\"],\n \"windSpeed\": current[\"wind_speed_10m\"],\n \"windGust\": current[\"wind_gusts_10m\"],\n \"conditions\": get_weather_condition(current[\"weather_code\"]),\n \"location\": name,\n }\n )\n\n\nagent = Agent(\n model=OpenAIChat(id=\"gpt-4o\"),\n tools=[\n get_weather,\n ],\n description=\"You are a helpful weather assistant that provides accurate weather information.\",\n instructions=\"\"\"\n Your primary function is to help users get weather details for specific locations. When responding:\n - Always ask for a location if none is provided\n - If the location name isn't in English, please translate it\n - If giving a location with multiple parts (e.g. \"New York, NY\"), use the most relevant part (e.g. \"New York\")\n - Include relevant details like humidity, wind conditions, and precipitation\n - Keep responses concise but informative\n\n Use the get_weather tool to fetch current weather data.\n \"\"\",\n)\n\nagent_os = AgentOS(\n agents=[agent],\n interfaces=[AGUI(agent=agent)]\n)\n\napp = agent_os.get_app()\n", "language": "python", "type": "file" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e3e86b236..757298cfe 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251022120653 - version: 0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251023090044 + version: 0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251022120653 - version: 0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251023090044 + version: 0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251022120653 - version: 0.0.0-feat-cpk-1-5-20251022120653(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251023090044 + version: 0.0.0-feat-cpk-1-5-20251023090044(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251022120653 - version: 0.0.0-feat-cpk-1-5-20251022120653(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251023090044 + version: 0.0.0-feat-cpk-1-5-20251023090044(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251022120653 - version: 0.0.0-feat-cpk-1-5-20251022120653 + specifier: 0.0.0-feat-cpk-1-5-20251023090044 + version: 0.0.0-feat-cpk-1-5-20251023090044 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251022120653': - resolution: {integrity: sha512-m+nUCi9sCQNU9nwMKPk2VaDhm9SHxXgwskJcXlRr1zxkYsdXutcLHQMztrxcjeMC37suhIx45CKmz6rvRDDWBw==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251023090044': + resolution: {integrity: sha512-M229E6cMLN9w8EPimbGCZD60MkrepZiEZnqwvetmyBooDfFnLZGuc+vYqWiUEfOmTUPEbK8X8A2W4f4jZ9QX7g==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251022120653': - resolution: {integrity: sha512-U0X6h9SYw8NBKFR1neshXMvkT/HR/3u4IhUUFK3dDVAuBWX4ZMMnRmfM8g7ub8lVhhDKBoJNxzMoPVAS84iiaQ==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251023090044': + resolution: {integrity: sha512-NQ8NE0Ursz8N6Dw2VQur+DHIxeZg9b9zjsyouhJlegHWCJrv6B3pH1ePMF5K9kKnE+jXsmJRtY0UUZML4TjAQw==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251022120653': - resolution: {integrity: sha512-Bx/RrfjdOsUHQOPKDWkGBb0eNBY2NF8nuvy1mKZyAimLvrP5u7O4u2uy5/E0MIYHls0m/JgBnYmo0P34iFFw7w==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023090044': + resolution: {integrity: sha512-eWVzkne0P/BZnV9b8SkJAx1qcPNXZooWMAIEL43ko+euwjvWp+g/6FE1ZRKIn75cWtyTK5w9SepFUIip2WYbyw==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251022120653': - resolution: {integrity: sha512-pcvJjvTLcKdm+HvHESq+CJw31h5CgWx7/KLLr1xXCPTLVR9JScNLJUyqlRNAt0uFaJSbodf1p9ZczL4s5RQDjA==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023090044': + resolution: {integrity: sha512-wAYgtzP35KU33HEZ479VjSYUrNsJ2oVK2e0ZdH9g94SjIHNlWkoBYiub5GMU9xtvCSCzjBGQzSR/LDs81M9k4g==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251022120653': - resolution: {integrity: sha512-Amr5M71r3qdwn8I7k7O03aIHVtra/uzJjAHDcBrafa/HWn9Yyv1B/8AYqag1kQIRdxFwfpLwy6txdp6NtX4w0g==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023090044': + resolution: {integrity: sha512-XuICJmHUaRuQEMxeaP8esg3dmzaoZtOCA8FOiVnC9K0O8OfkeEaI/pLqn+ERp3+jiG28Qwgd8LnwGv6UoX2mfw==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251022120653(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251023090044(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251022120653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251022120653(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251023090044(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251022120653(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023090044(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251022120653(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023090044(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251022120653 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251022120653': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023090044': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -18180,7 +18180,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.12.2) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -21046,7 +21046,7 @@ 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.12.2): dependencies: axios: 1.12.2(debug@4.4.3) From 3691839c836280da0379123738c1acc8f7fb9c09 Mon Sep 17 00:00:00 2001 From: ran Date: Thu, 23 Oct 2025 11:53:05 +0200 Subject: [PATCH 059/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++---- pnpm-lock.yaml | 68 +++++++++++++++++++++--------------------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index f6204e0c0..2c0c414df 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251023090044", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251023090044", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251023090044", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251023090044", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251023090044", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251023094810", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251023094810", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251023094810", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251023094810", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251023094810", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 757298cfe..0118d392c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251023090044 - version: 0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251023094810 + version: 0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251023090044 - version: 0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251023094810 + version: 0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251023090044 - version: 0.0.0-feat-cpk-1-5-20251023090044(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251023094810 + version: 0.0.0-feat-cpk-1-5-20251023094810(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251023090044 - version: 0.0.0-feat-cpk-1-5-20251023090044(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251023094810 + version: 0.0.0-feat-cpk-1-5-20251023094810(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251023090044 - version: 0.0.0-feat-cpk-1-5-20251023090044 + specifier: 0.0.0-feat-cpk-1-5-20251023094810 + version: 0.0.0-feat-cpk-1-5-20251023094810 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251023090044': - resolution: {integrity: sha512-M229E6cMLN9w8EPimbGCZD60MkrepZiEZnqwvetmyBooDfFnLZGuc+vYqWiUEfOmTUPEbK8X8A2W4f4jZ9QX7g==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251023094810': + resolution: {integrity: sha512-sSjnB4sPGalcJ2UhOuMs8NYrlE1CLNCh+S+nyoEfyz1b+LJlxYi9bh7HXxJF5IOwk2ftXoUHoikVEEqCq1hNtQ==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251023090044': - resolution: {integrity: sha512-NQ8NE0Ursz8N6Dw2VQur+DHIxeZg9b9zjsyouhJlegHWCJrv6B3pH1ePMF5K9kKnE+jXsmJRtY0UUZML4TjAQw==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251023094810': + resolution: {integrity: sha512-nlUA4fRDHo0Tm8BEI409ISihtIqrVRsNUkLE8wiDd83XueOAn8dfTdLHpVZOkoxysc8NAoKT2iqV7puTogUxQw==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023090044': - resolution: {integrity: sha512-eWVzkne0P/BZnV9b8SkJAx1qcPNXZooWMAIEL43ko+euwjvWp+g/6FE1ZRKIn75cWtyTK5w9SepFUIip2WYbyw==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023094810': + resolution: {integrity: sha512-Ko9Lj3p9LRygC7s6/PgN4dXpG0h++I/Hukf0EagdxGmVEVtKq10HLAlAWDLrzr8aCxqFTDaMIf/WgQhjZipEyQ==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023090044': - resolution: {integrity: sha512-wAYgtzP35KU33HEZ479VjSYUrNsJ2oVK2e0ZdH9g94SjIHNlWkoBYiub5GMU9xtvCSCzjBGQzSR/LDs81M9k4g==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023094810': + resolution: {integrity: sha512-brvIbrGF1C9wTyBwGSeK/gTUkWSTSbv0rnf/aOGCeddPLJ4FCBkgXNvA7+YvUjV3ALupeFR/EyC9z9eedLAUCQ==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023090044': - resolution: {integrity: sha512-XuICJmHUaRuQEMxeaP8esg3dmzaoZtOCA8FOiVnC9K0O8OfkeEaI/pLqn+ERp3+jiG28Qwgd8LnwGv6UoX2mfw==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023094810': + resolution: {integrity: sha512-Od5fnHgWhohnHS3kRwLdTZ/ylSKJfN+csrf2HDuoD8Wib7dbgYJKpj8VBaVcuZMAUIOFWxRDfyzLTv5sl4or6Q==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251023090044(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251023094810(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251023090044(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251023090044(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251023094810(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023090044(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023094810(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023090044(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023094810(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023090044 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023090044': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023094810': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -18180,7 +18180,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.12.2) + retry-axios: 2.6.0(axios@1.12.2(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -21046,7 +21046,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.12.2): + retry-axios@2.6.0(axios@1.12.2(debug@4.4.3)): dependencies: axios: 1.12.2(debug@4.4.3) From 71587e25465d9e47a257b1fcef93f15ac9ff74a1 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 12:04:34 +0200 Subject: [PATCH 060/113] request A2UI --- integrations/a2a/typescript/src/agent.ts | 92 ++++++++++++++++++++++++ integrations/a2a/typescript/src/utils.ts | 2 + 2 files changed, 94 insertions(+) diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index 906468dad..9a620443b 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -28,6 +28,8 @@ export interface A2AAgentConfig extends AgentConfig { client?: A2AClient; } +const A2A_UI_EXTENSION_URI = "https://a2ui.org/ext/a2a-ui/v0.1"; + export class A2AAgent extends AbstractAgent { private readonly agentUrl?: string; private readonly a2aClient: A2AClient; @@ -46,6 +48,7 @@ export class A2AAgent extends AbstractAgent { this.agentUrl = agentUrl; this.a2aClient = client ?? new A2AClient(agentUrl!); + this.initializeA2UIExtension(this.a2aClient); } protected run(input: RunAgentInput): Observable { @@ -281,4 +284,93 @@ export class A2AAgent extends AbstractAgent { return Object.fromEntries(pairs); } + + private initializeA2UIExtension(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(A2A_UI_EXTENSION_URI)) { + values.push(A2A_UI_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; + } + } } diff --git a/integrations/a2a/typescript/src/utils.ts b/integrations/a2a/typescript/src/utils.ts index dd0705c0e..509c40ba9 100644 --- a/integrations/a2a/typescript/src/utils.ts +++ b/integrations/a2a/typescript/src/utils.ts @@ -292,6 +292,8 @@ function convertMessageToEvents( const dataPart = part as A2ADataPart; const payload = dataPart.data; + console.log("[A2A] Received data part:", payload); + 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"; From ff9506e3e95f9f574be2b55e9f27f170b3edb860 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 13:25:56 +0200 Subject: [PATCH 061/113] remove logging --- integrations/a2a/typescript/src/agent.ts | 44 +++++++++------- integrations/a2a/typescript/src/types.ts | 6 +++ integrations/a2a/typescript/src/utils.ts | 66 +++++++++++++++++++++++- 3 files changed, 95 insertions(+), 21 deletions(-) diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index 9a620443b..96b22974c 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -20,6 +20,7 @@ import type { A2AAgentRunResultSummary, ConvertedA2AMessages, A2AStreamEvent, + SurfaceTracker, } from "./types"; import { randomUUID } from "@ag-ui/client"; @@ -66,10 +67,6 @@ export class A2AAgent extends AbstractAgent { type: EventType.RUN_FINISHED, threadId: input.threadId, runId: input.runId, - result: { - messages: [], - rawEvents: [], - }, }; subscriber.next(runFinished); subscriber.complete(); @@ -84,11 +81,6 @@ export class A2AAgent extends AbstractAgent { type: EventType.RUN_FINISHED, threadId: input.threadId, runId: input.runId, - result: { - messages: [], - rawEvents: [], - info: "No user message to forward to A2A agent.", - }, } as unknown as RunFinishedEvent; subscriber.next(runFinished); subscriber.complete(); @@ -97,15 +89,16 @@ export class A2AAgent extends AbstractAgent { const sendParams = await this.createSendParams(converted, input); - let summary: A2AAgentRunResultSummary | null = null; + const surfaceTracker = this.createSurfaceTracker(); try { - summary = await this.streamMessage(sendParams, subscriber); + await this.streamMessage(sendParams, subscriber, surfaceTracker); } catch (error) { - summary = await this.fallbackToBlocking( + await this.fallbackToBlocking( sendParams, subscriber, error as Error, + surfaceTracker, ); } @@ -113,7 +106,6 @@ export class A2AAgent extends AbstractAgent { type: EventType.RUN_FINISHED, threadId: input.threadId, runId: input.runId, - result: summary, }; subscriber.next(runFinished); subscriber.complete(); @@ -164,9 +156,11 @@ export class A2AAgent extends AbstractAgent { 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) { @@ -182,6 +176,7 @@ export class A2AAgent extends AbstractAgent { }, getCurrentText: (messageId) => aggregatedText.get(messageId), source: this.agentUrl ?? "a2a", + surfaceTracker: tracker, }); for (const event of events) { subscriber.next(event); @@ -189,9 +184,7 @@ export class A2AAgent extends AbstractAgent { } return { - messages: Array.from(aggregatedText.entries()).map( - ([messageId, text]) => ({ messageId, text }), - ), + messages: [], rawEvents, }; } @@ -200,6 +193,7 @@ export class A2AAgent extends AbstractAgent { params: MessageSendParams, subscriber: { next: (event: BaseEvent) => void }, error: Error, + surfaceTracker?: SurfaceTracker, ): Promise { const configuration: MessageSendConfiguration = { ...params.configuration, @@ -215,12 +209,14 @@ export class A2AAgent extends AbstractAgent { configuration, }, subscriber, + surfaceTracker, ); } private async blockingMessage( params: MessageSendParams, subscriber: { next: (event: BaseEvent) => void }, + surfaceTracker?: SurfaceTracker, ): Promise { const response = await this.a2aClient.sendMessage(params); @@ -233,6 +229,7 @@ export class A2AAgent extends AbstractAgent { const aggregatedText = new Map(); const rawEvents: A2AStreamEvent[] = []; + const tracker = surfaceTracker ?? this.createSurfaceTracker(); const result = response.result as A2AStreamEvent; rawEvents.push(result); @@ -248,6 +245,7 @@ export class A2AAgent extends AbstractAgent { }, getCurrentText: (messageId) => aggregatedText.get(messageId), source: this.agentUrl ?? "a2a", + surfaceTracker: tracker, }); for (const event of events) { @@ -255,9 +253,7 @@ export class A2AAgent extends AbstractAgent { } return { - messages: Array.from(aggregatedText.entries()).map( - ([messageId, text]) => ({ messageId, text }), - ), + messages: [], rawEvents, }; } @@ -373,4 +369,14 @@ export class A2AAgent extends AbstractAgent { 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/types.ts b/integrations/a2a/typescript/src/types.ts index c59b8a2dd..b3e51181c 100644 --- a/integrations/a2a/typescript/src/types.ts +++ b/integrations/a2a/typescript/src/types.ts @@ -23,6 +23,11 @@ export type { AGUIMessage as AGUIConversationMessage, }; +export interface SurfaceTracker { + has(surfaceId: string): boolean; + add(surfaceId: string): void; +} + export type A2AStreamEvent = | A2AMessage | A2ATask @@ -46,6 +51,7 @@ export interface ConvertA2AEventOptions { onTextDelta?: (payload: { messageId: string; delta: string }) => void; source?: string; getCurrentText?: (messageId: string) => string | undefined; + surfaceTracker?: SurfaceTracker; } export interface A2AAgentRunResultSummary { diff --git a/integrations/a2a/typescript/src/utils.ts b/integrations/a2a/typescript/src/utils.ts index 509c40ba9..8aba08fcd 100644 --- a/integrations/a2a/typescript/src/utils.ts +++ b/integrations/a2a/typescript/src/utils.ts @@ -32,6 +32,13 @@ const ROLE_MAP: Record = { 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, @@ -71,6 +78,28 @@ const createFilePart = (content: Extract): A2A 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); @@ -292,8 +321,6 @@ function convertMessageToEvents( const dataPart = part as A2ADataPart; const payload = dataPart.data; - console.log("[A2A] Received data part:", payload); - 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"; @@ -344,6 +371,41 @@ function convertMessageToEvents( 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; From 8143ee3e47e9a4c83b31d608fe2c71face635f94 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 13:28:48 +0200 Subject: [PATCH 062/113] v0.0.40-alpha.9 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 6f9937e02..589250222 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.8", + "version": "0.0.40-alpha.9", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index 2beffdc7e..dc60f6820 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.8", + "version": "0.0.40-alpha.9", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index d9f3a42ac..eabd6238e 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-alpha.8", + "version": "0.0.40-alpha.9", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index f7ed53335..589651576 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-alpha.8", + "version": "0.0.40-alpha.9", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 6cbcd03ff..8ad424243 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-alpha.8", + "version": "0.0.40-alpha.9", "private": false, "publishConfig": { "access": "public" From 89b62c5e1392d6b5a067c199554d53b4a4effe4c Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 15:16:23 +0200 Subject: [PATCH 063/113] enforce passing the a2a client --- apps/dojo/src/agents.ts | 4 +- integrations/a2a/typescript/README.md | 10 +++-- .../typescript/src/__tests__/agent.test.ts | 26 +++-------- .../typescript/src/__tests__/utils.test.ts | 7 +-- integrations/a2a/typescript/src/agent.ts | 43 +++---------------- 5 files changed, 22 insertions(+), 68 deletions(-) diff --git a/apps/dojo/src/agents.ts b/apps/dojo/src/agents.ts index 95f802c35..02db44e28 100644 --- a/apps/dojo/src/agents.ts +++ b/apps/dojo/src/agents.ts @@ -20,6 +20,7 @@ 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[] = [ @@ -347,10 +348,11 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ { id: "a2a-basic", agents: async () => { + const a2aClient = new A2AClient(envVars.a2aUrl); return { agentic_chat: new A2AAgent({ description: "Direct A2A agent", - agentUrl: envVars.a2aUrl, + a2aClient, debug: process.env.NODE_ENV !== "production", }), }; diff --git a/integrations/a2a/typescript/README.md b/integrations/a2a/typescript/README.md index d1f15529a..e1f689eb1 100644 --- a/integrations/a2a/typescript/README.md +++ b/integrations/a2a/typescript/README.md @@ -27,8 +27,12 @@ pnpm --filter @ag-ui/a2a build ```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({ - agentUrl: "https://my-a2a-agent", + a2aClient: client, initialMessages: [ { id: "user-1", role: "user", content: "Plan a team offsite" } as any, ], @@ -45,8 +49,7 @@ You can inject your own `A2AClient` instance via the `client` option, override d | Option | Description | | ------ | ----------- | -| `agentUrl` | Base URL of the A2A agent. Provide this when you want the integration to construct its own `A2AClient`. | -| `client` | Pass an existing `A2AClient` (e.g. one with custom auth or a test double). When `client` is supplied, `agentUrl` becomes optional. | +| `a2aClient` | Required. Provide an `A2AClient` instance (with any auth headers or custom fetch logic you need). | ## Environment variables & authentication @@ -62,7 +65,6 @@ Pass any credentials to the `A2AClient` you provide to `A2AAgent`, or configure - `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. -- `A2AAgent.getRemoteAgents({ agentUrls, agentConfig })` — helper that instantiates a map of `A2AAgent`s keyed by remote agent name or URL. ## Testing diff --git a/integrations/a2a/typescript/src/__tests__/agent.test.ts b/integrations/a2a/typescript/src/__tests__/agent.test.ts index c02824730..9d9ab88b9 100644 --- a/integrations/a2a/typescript/src/__tests__/agent.test.ts +++ b/integrations/a2a/typescript/src/__tests__/agent.test.ts @@ -69,8 +69,7 @@ describe("A2AAgent", () => { }); const agent = new A2AAgent({ - agentUrl: "https://example.com", - client: fakeClient as any, + a2aClient: fakeClient as any, initialMessages: [ createMessage({ id: "user-1", @@ -82,14 +81,7 @@ describe("A2AAgent", () => { const result = await agent.runAgent(); - expect(result.result).toMatchObject({ - messages: [ - { - messageId: expect.any(String), - text: "Hello from stream", - }, - ], - }); + expect(result.result).toBeUndefined(); expect(result.newMessages).toEqual( expect.arrayContaining([ @@ -116,8 +108,7 @@ describe("A2AAgent", () => { }); const agent = new A2AAgent({ - agentUrl: "https://fallback.example.com", - client: fakeClient as any, + a2aClient: fakeClient as any, initialMessages: [ createMessage({ id: "user-1", role: "user", content: "Ping" }), ], @@ -125,13 +116,7 @@ describe("A2AAgent", () => { const result = await agent.runAgent(); - expect(result.result).toMatchObject({ - messages: [ - { - text: "Blocking response", - }, - ], - }); + expect(result.result).toBeUndefined(); }); it("throws when the A2A service reports an error", async () => { @@ -147,8 +132,7 @@ describe("A2AAgent", () => { }); const agent = new A2AAgent({ - agentUrl: "https://error.example.com", - client: fakeClient as any, + a2aClient: fakeClient as any, initialMessages: [ createMessage({ id: "user-1", role: "user", content: "Trouble" }), ], diff --git a/integrations/a2a/typescript/src/__tests__/utils.test.ts b/integrations/a2a/typescript/src/__tests__/utils.test.ts index fd64a3d81..2621e62df 100644 --- a/integrations/a2a/typescript/src/__tests__/utils.test.ts +++ b/integrations/a2a/typescript/src/__tests__/utils.test.ts @@ -179,12 +179,7 @@ describe("convertA2AEventToAGUIEvents", () => { messageIdMap: new Map(), }); - expect(events).toHaveLength(1); - expect(events[0]).toEqual( - expect.objectContaining({ - type: EventType.RAW, - }), - ); + expect(events).toHaveLength(0); }); }); diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index 96b22974c..f1383232d 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -25,30 +25,24 @@ import type { import { randomUUID } from "@ag-ui/client"; export interface A2AAgentConfig extends AgentConfig { - agentUrl?: string; - client?: A2AClient; + a2aClient: A2AClient; } const A2A_UI_EXTENSION_URI = "https://a2ui.org/ext/a2a-ui/v0.1"; export class A2AAgent extends AbstractAgent { - private readonly agentUrl?: string; private readonly a2aClient: A2AClient; private readonly messageIdMap = new Map(); constructor(config: A2AAgentConfig) { - const { agentUrl, client, ...rest } = config; - - if (!agentUrl && !client) { - throw new Error( - "A2AAgent requires either an agentUrl or a preconfigured A2AClient.", - ); + const { a2aClient, ...rest } = config; + if (!a2aClient) { + throw new Error("A2AAgent requires a configured A2AClient instance."); } super(rest); - this.agentUrl = agentUrl; - this.a2aClient = client ?? new A2AClient(agentUrl!); + this.a2aClient = a2aClient; this.initializeA2UIExtension(this.a2aClient); } @@ -175,7 +169,7 @@ export class A2AAgent extends AbstractAgent { ); }, getCurrentText: (messageId) => aggregatedText.get(messageId), - source: this.agentUrl ?? "a2a", + source: "a2a", surfaceTracker: tracker, }); for (const event of events) { @@ -244,7 +238,7 @@ export class A2AAgent extends AbstractAgent { ); }, getCurrentText: (messageId) => aggregatedText.get(messageId), - source: this.agentUrl ?? "a2a", + source: "a2a", surfaceTracker: tracker, }); @@ -258,29 +252,6 @@ export class A2AAgent extends AbstractAgent { }; } - static async getRemoteAgents(options: { - agentUrls: string[]; - agentConfig?: AgentConfig; - }): Promise> { - const { agentUrls, agentConfig } = options; - - const pairs = await Promise.all( - agentUrls.map(async (url) => { - const client = new A2AClient(url); - - const agent = new A2AAgent({ - ...(agentConfig ?? {}), - agentUrl: url, - client, - }); - - return [agent.agentId ?? url, agent] as const; - }), - ); - - return Object.fromEntries(pairs); - } - private initializeA2UIExtension(client: A2AClient) { const addExtensionHeader = (headers: Headers) => { const existingValue = headers.get("X-A2A-Extensions") ?? ""; From 6dd9ea2fbea8d852ad2fa141b5a90318f5171ab6 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 15:17:42 +0200 Subject: [PATCH 064/113] 0.0.2 --- integrations/a2a/typescript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/a2a/typescript/package.json b/integrations/a2a/typescript/package.json index 44aa29177..246e4be69 100644 --- a/integrations/a2a/typescript/package.json +++ b/integrations/a2a/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/a2a", "author": "Markus Ecker ", - "version": "0.0.1", + "version": "0.0.2", "license": "Apache-2.0", "main": "./dist/index.js", "module": "./dist/index.mjs", From 403a13ccf2b6876236173e8a4c14d6e4d290b037 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 15:43:04 +0200 Subject: [PATCH 065/113] Properly clone A2AAgent --- integrations/a2a/typescript/src/agent.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index f1383232d..618c34c22 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -46,6 +46,10 @@ export class A2AAgent extends AbstractAgent { this.initializeA2UIExtension(this.a2aClient); } + clone() { + return new A2AAgent({ a2aClient: this.a2aClient }); + } + protected run(input: RunAgentInput): Observable { return new Observable((subscriber) => { const run = async () => { @@ -326,18 +330,21 @@ export class A2AAgent extends AbstractAgent { }; const originalSendMessage = client.sendMessage.bind(client); - client.sendMessage = (params) => wrapPromise(() => originalSendMessage(params)); + 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; + 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; + client.resubscribeTask = + wrappedResubscribeTask as typeof client.resubscribeTask; } } From 2bd66397d1c2d167de5ad01a87961d99640dd629 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 15:43:29 +0200 Subject: [PATCH 066/113] 0.0.3 --- integrations/a2a/typescript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/a2a/typescript/package.json b/integrations/a2a/typescript/package.json index 246e4be69..4a65efc05 100644 --- a/integrations/a2a/typescript/package.json +++ b/integrations/a2a/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/a2a", "author": "Markus Ecker ", - "version": "0.0.2", + "version": "0.0.3", "license": "Apache-2.0", "main": "./dist/index.js", "module": "./dist/index.mjs", From 8257ab519252c318f61cc8993b0aa654779e7820 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 16:00:18 +0200 Subject: [PATCH 067/113] 0.0.4 --- integrations/a2a/typescript/package.json | 2 +- integrations/a2a/typescript/src/agent.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/integrations/a2a/typescript/package.json b/integrations/a2a/typescript/package.json index 4a65efc05..be440804d 100644 --- a/integrations/a2a/typescript/package.json +++ b/integrations/a2a/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/a2a", "author": "Markus Ecker ", - "version": "0.0.3", + "version": "0.0.4", "license": "Apache-2.0", "main": "./dist/index.js", "module": "./dist/index.mjs", diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index 618c34c22..eaffa8ee2 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -47,7 +47,7 @@ export class A2AAgent extends AbstractAgent { } clone() { - return new A2AAgent({ a2aClient: this.a2aClient }); + return new A2AAgent({ a2aClient: this.a2aClient, debug: this.debug }); } protected run(input: RunAgentInput): Observable { From 55965d9ec73bb98eb7ec22a4fdfdb71fc6c93088 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 16:45:55 +0200 Subject: [PATCH 068/113] add unit tests --- .../src/agent/__tests__/agent-result.test.ts | 57 ++++++++++++++++- .../apply/__tests__/default.activity.test.ts | 63 +++++++++++++++++++ 2 files changed, 119 insertions(+), 1 deletion(-) diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts index 5df3a5cf1..7832e8a73 100644 --- a/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts +++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts @@ -1,11 +1,12 @@ import { AbstractAgent } from "../agent"; import { AgentSubscriber } from "../subscriber"; import { + ActivityDeltaEvent, + ActivitySnapshotEvent, BaseEvent, EventType, Message, RunAgentInput, - State, MessagesSnapshotEvent, RunFinishedEvent, RunStartedEvent, @@ -307,6 +308,60 @@ describe("Agent Result", () => { expect(result.newMessages[1].id).toBe("new-2"); expect(result.newMessages[2].id).toBe("new-3"); }); + + it("should retain appended activity operations in agent messages", async () => { + const firstOperation = { id: "op-1", status: "PENDING" }; + const secondOperation = { id: "op-2", status: "COMPLETE" }; + + agent.setEventsToEmit([ + { + type: EventType.RUN_STARTED, + threadId: "test-thread", + runId: "run-ops", + } as RunStartedEvent, + { + type: EventType.ACTIVITY_SNAPSHOT, + messageId: "activity-ops", + activityType: "PLAN", + content: { operations: [] }, + replace: false, + } as ActivitySnapshotEvent, + { + type: EventType.ACTIVITY_DELTA, + messageId: "activity-ops", + activityType: "PLAN", + patch: [{ op: "add", path: "/content/operations/-", value: firstOperation }], + } as ActivityDeltaEvent, + { + type: EventType.ACTIVITY_DELTA, + messageId: "activity-ops", + activityType: "PLAN", + patch: [{ op: "add", path: "/content/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/apply/__tests__/default.activity.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts index 2ec80231d..8f5973d7d 100644 --- a/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts +++ b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts @@ -57,6 +57,69 @@ describe("defaultApplyEvents with activity events", () => { 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 result$ = defaultApplyEvents(initialState, events$, FAKE_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: "/content/operations/-", value: firstOperation }, + ], + } as ActivityDeltaEvent); + + events$.next({ + type: EventType.ACTIVITY_DELTA, + messageId: "activity-ops", + activityType: "PLAN", + patch: [ + { op: "add", path: "/content/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 = { From 7110beb38f5b87bd4040554d7bb8f1bf346b105b Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 18:15:42 +0200 Subject: [PATCH 069/113] wip --- .../src/agent/__tests__/agent-result.test.ts | 4 ++-- .../apply/__tests__/default.activity.test.ts | 6 +++--- .../packages/client/src/apply/default.ts | 18 ++++++++++-------- 3 files changed, 15 insertions(+), 13 deletions(-) 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 7832e8a73..bcc39d219 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 @@ -330,13 +330,13 @@ describe("Agent Result", () => { type: EventType.ACTIVITY_DELTA, messageId: "activity-ops", activityType: "PLAN", - patch: [{ op: "add", path: "/content/operations/-", value: firstOperation }], + patch: [{ op: "add", path: "/operations/-", value: firstOperation }], } as ActivityDeltaEvent, { type: EventType.ACTIVITY_DELTA, messageId: "activity-ops", activityType: "PLAN", - patch: [{ op: "add", path: "/content/operations/-", value: secondOperation }], + patch: [{ op: "add", path: "/operations/-", value: secondOperation }], } as ActivityDeltaEvent, { type: EventType.RUN_FINISHED, 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 index 8f5973d7d..76f83da9e 100644 --- a/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts +++ b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts @@ -39,7 +39,7 @@ describe("defaultApplyEvents with activity events", () => { type: EventType.ACTIVITY_DELTA, messageId: "activity-1", activityType: "PLAN", - patch: [{ op: "replace", path: "/content/tasks/0", value: "✓ search" }], + patch: [{ op: "replace", path: "/tasks/0", value: "✓ search" }], } as ActivityDeltaEvent); events$.complete(); @@ -86,7 +86,7 @@ describe("defaultApplyEvents with activity events", () => { messageId: "activity-ops", activityType: "PLAN", patch: [ - { op: "add", path: "/content/operations/-", value: firstOperation }, + { op: "add", path: "/operations/-", value: firstOperation }, ], } as ActivityDeltaEvent); @@ -95,7 +95,7 @@ describe("defaultApplyEvents with activity events", () => { messageId: "activity-ops", activityType: "PLAN", patch: [ - { op: "add", path: "/content/operations/-", value: secondOperation }, + { op: "add", path: "/operations/-", value: secondOperation }, ], } as ActivityDeltaEvent); diff --git a/sdks/typescript/packages/client/src/apply/default.ts b/sdks/typescript/packages/client/src/apply/default.ts index 8f1c8c0c7..1f74efc72 100644 --- a/sdks/typescript/packages/client/src/apply/default.ts +++ b/sdks/typescript/packages/client/src/apply/default.ts @@ -629,17 +629,19 @@ export const defaultApplyEvents = ( if (mutation.stopPropagation !== true) { try { - const baseMessage = structuredClone_(existingActivityMessage); - baseMessage.activityType = activityEvent.activityType; - baseMessage.content ??= {}; + const baseContent = structuredClone_(existingActivityMessage.content ?? {}); - const result = applyPatch(baseMessage, activityEvent.patch, true, false); - const updated = result.newDocument as ActivityMessage; + const result = applyPatch( + baseContent, + activityEvent.patch ?? [], + true, + false, + ); + const updatedContent = result.newDocument as ActivityMessage["content"]; messages[existingIndex] = { - ...updated, - id: existingActivityMessage.id, - role: "activity", + ...existingActivityMessage, + content: structuredClone_(updatedContent), activityType: activityEvent.activityType, }; From f2eca2558b8bcfa88264592e845aa212b3352c51 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 18:22:42 +0200 Subject: [PATCH 070/113] wip --- apps/dojo/package.json | 5 +- pnpm-lock.yaml | 130 +++++++++++++++++++++++++++-------------- 2 files changed, 88 insertions(+), 47 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 049327c18..4ce7c802f 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -12,8 +12,9 @@ "run-everything": "./scripts/prep-dojo-everything.js && ./scripts/run-dojo-everything.js" }, "dependencies": { - "@ag-ui/a2a-middleware": "workspace:*", + "@a2a-js/sdk": "0.2.5", "@ag-ui/a2a": "workspace:*", + "@ag-ui/a2a-middleware": "workspace:*", "@ag-ui/adk": "workspace:*", "@ag-ui/agno": "workspace:*", "@ag-ui/crewai": "workspace:*", @@ -21,10 +22,10 @@ "@ag-ui/llamaindex": "workspace:*", "@ag-ui/mastra": "workspace:*", "@ag-ui/middleware-starter": "workspace:*", - "@ag-ui/spring-ai": "workspace:*", "@ag-ui/pydantic-ai": "workspace:*", "@ag-ui/server-starter": "workspace:*", "@ag-ui/server-starter-all-features": "workspace:*", + "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", "@copilotkit/react-core": "1.10.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f7c368f9..6711643ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,6 +66,9 @@ importers: apps/dojo: dependencies: + '@a2a-js/sdk': + specifier: 0.2.5 + version: 0.2.5 '@ag-ui/a2a': specifier: workspace:* version: link:../../integrations/a2a/typescript @@ -80,16 +83,16 @@ importers: version: link:../../integrations/agno/typescript '@ag-ui/client': specifier: workspace:* - version: link:../../sdks/typescript/packages/client + version: 0.0.40-alpha.9 '@ag-ui/core': specifier: workspace:* - version: link:../../sdks/typescript/packages/core + version: 0.0.40-alpha.9 '@ag-ui/crewai': specifier: workspace:* version: link:../../integrations/crew-ai/typescript '@ag-ui/encoder': specifier: workspace:* - version: link:../../sdks/typescript/packages/encoder + version: 0.0.40-alpha.9 '@ag-ui/langgraph': specifier: workspace:* version: link:../../integrations/langgraph/typescript @@ -104,7 +107,7 @@ importers: version: link:../../middlewares/middleware-starter '@ag-ui/proto': specifier: workspace:* - version: link:../../sdks/typescript/packages/proto + version: 0.0.40-alpha.9 '@ag-ui/pydantic-ai': specifier: workspace:* version: link:../../integrations/pydantic-ai/typescript @@ -131,7 +134,7 @@ importers: version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@copilotkit/runtime': specifier: 1.10.6 - version: 1.10.6(iqshwn2xropb3vpfei3flnb2ay) + version: 1.10.6(uwjjxhr52zjctzhvu6qqvyjj4q) '@copilotkit/runtime-client-gql': specifier: 1.10.6 version: 1.10.6(graphql@16.11.0)(react@19.2.0) @@ -343,7 +346,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -396,7 +399,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -427,7 +430,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -458,7 +461,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -498,7 +501,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -529,7 +532,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -544,7 +547,7 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(g627ky2tgyn7hivafue6z6l5mq) + version: 1.10.6(zpz5usii42i6fql3rrkgx3daf4) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -575,7 +578,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -640,7 +643,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -668,7 +671,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -696,7 +699,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -733,7 +736,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -770,7 +773,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -798,7 +801,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -832,7 +835,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -881,7 +884,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -990,20 +993,23 @@ packages: '@ag-ui/client@0.0.35': resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==} + '@ag-ui/client@0.0.40-alpha.9': + resolution: {integrity: sha512-TmNf4GdZGpjgniDLjnSiqR9gNVgxv5+GN82PoHoKKGUPtJSeQOpjYr3Nw3b34aUHAqr/Sce5W0P9Rr0X5EmYbw==} + '@ag-ui/core@0.0.35': resolution: {integrity: sha512-YAqrln3S3fdo+Hs5FFQPODXiBttyilv/E3xSSHCuxqC0Y/Fp3+VqyDx97BorO3NVp2VKZ9cG2nsO3cbmcTwkQw==} '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} - '@ag-ui/core@0.0.40-alpha.8': - resolution: {integrity: sha512-p4S3WBUL6kqSQYfzvKjtLDSeE4z0Unqy0073Uet1gb6IR6KzwtQ5Pv4TvZ+lKb7x8ABdIZNFBYm1CUxyKOWEAQ==} + '@ag-ui/core@0.0.40-alpha.9': + resolution: {integrity: sha512-h4fXCuWgzoOEmNWk+mb8qT97felBDudIOsu+0nnbeP9G5DLti44Il7w5+DNeImEmB8QoAOOMVn8JqLoo1+Prag==} '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} - '@ag-ui/encoder@0.0.40-alpha.8': - resolution: {integrity: sha512-wbZfn+cB5qzbbl/5OvfTv0bFn/KV+4iDRxUF1a3plygNbTFpvrA7qe61BnFU52uDGMEU7nBtChRo/d3Y/JSPDw==} + '@ag-ui/encoder@0.0.40-alpha.9': + resolution: {integrity: sha512-XhXUIUQaKWm35D8IGW3GRbdk6sB0NjZcSfNvUcBD0G8+7VvCl3J5TBtwxiR4NDLFKYRDnhJSkm7vXPh/sFogww==} '@ag-ui/langgraph@0.0.19-alpha.1': resolution: {integrity: sha512-rX8Y4LSxTXWUMFzCspO0c42b6YWGTuciP69Okrh7Lw3kpGsmFq/zmXoBLFz654Yuii2zLHl5mZvkBJ5a3nI6lA==} @@ -1014,8 +1020,8 @@ packages: '@ag-ui/proto@0.0.35': resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==} - '@ag-ui/proto@0.0.40-alpha.8': - resolution: {integrity: sha512-JuChCwxUkFSdOVm61wWH00shG3LSToieGuWzLCLXwUsnvkOk1mvA1em6PbMBVyt6YMhWCttHo8PyVTNmoqCTLg==} + '@ag-ui/proto@0.0.40-alpha.9': + resolution: {integrity: sha512-Gd6kiiGVWA4L/qo9g+TesaoRavVyslG35XAydmXuovka+U051caidSlgUxkh3z8xQGNroG0cNWrLgWUDG8P06Q==} '@ai-sdk/anthropic@2.0.23': resolution: {integrity: sha512-ZEBiiv1UhjGjBwUU63pFhLK5LCSlNDb1idY9K1oZHm5/Fda1cuTojf32tOp0opH0RPbPAN/F8fyyNjbU33n9Kw==} @@ -7316,6 +7322,7 @@ packages: 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: @@ -9757,6 +9764,18 @@ snapshots: uuid: 11.1.0 zod: 3.25.76 + '@ag-ui/client@0.0.40-alpha.9': + dependencies: + '@ag-ui/core': 0.0.40-alpha.9 + '@ag-ui/encoder': 0.0.40-alpha.9 + '@ag-ui/proto': 0.0.40-alpha.9 + '@types/uuid': 10.0.0 + fast-json-patch: 3.1.1 + rxjs: 7.8.1 + untruncate-json: 0.0.1 + uuid: 11.1.0 + zod: 3.25.76 + '@ag-ui/core@0.0.35': dependencies: rxjs: 7.8.1 @@ -9767,7 +9786,7 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.40-alpha.8': + '@ag-ui/core@0.0.40-alpha.9': dependencies: rxjs: 7.8.1 zod: 3.25.76 @@ -9777,10 +9796,10 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 - '@ag-ui/encoder@0.0.40-alpha.8': + '@ag-ui/encoder@0.0.40-alpha.9': dependencies: - '@ag-ui/core': 0.0.40-alpha.8 - '@ag-ui/proto': 0.0.40-alpha.8 + '@ag-ui/core': 0.0.40-alpha.9 + '@ag-ui/proto': 0.0.40-alpha.9 '@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@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: @@ -9803,9 +9822,9 @@ snapshots: '@ag-ui/core': 0.0.35 '@bufbuild/protobuf': 2.9.0 - '@ag-ui/proto@0.0.40-alpha.8': + '@ag-ui/proto@0.0.40-alpha.9': dependencies: - '@ag-ui/core': 0.0.40-alpha.8 + '@ag-ui/core': 0.0.40-alpha.9 '@bufbuild/protobuf': 2.9.0 '@protobuf-ts/protoc': 2.11.1 @@ -10872,18 +10891,18 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.10.6(g627ky2tgyn7hivafue6z6l5mq)': + '@copilotkit/runtime@1.10.6(uwjjxhr52zjctzhvu6qqvyjj4q)': dependencies: - '@ag-ui/client': link:sdks/typescript/packages/client - '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': 0.0.40-alpha.8 - '@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@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.8 + '@ag-ui/client': 0.0.40-alpha.9 + '@ag-ui/core': 0.0.40-alpha.9 + '@ag-ui/encoder': 0.0.40-alpha.9 + '@ag-ui/langgraph': link:integrations/langgraph/typescript + '@ag-ui/proto': 0.0.40-alpha.9 '@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(75igdgciibrgswysse3hw62tgi) + '@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) @@ -11054,18 +11073,18 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(iqshwn2xropb3vpfei3flnb2ay)': + '@copilotkit/runtime@1.10.6(zpz5usii42i6fql3rrkgx3daf4)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': link:sdks/typescript/packages/encoder - '@ag-ui/langgraph': link:integrations/langgraph/typescript - '@ag-ui/proto': link:sdks/typescript/packages/proto + '@ag-ui/encoder': 0.0.40-alpha.9 + '@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@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.9 '@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/community': 0.3.57(75igdgciibrgswysse3hw62tgi) '@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) @@ -20350,6 +20369,27 @@ 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): dependencies: bs-logger: 0.2.6 From 16a1f43b100072733bfec8ee38a7db953a42d99c Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 18:27:40 +0200 Subject: [PATCH 071/113] v0.0.40-alpha.10 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 589250222..5d730101d 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.9", + "version": "0.0.40-alpha.10", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index dc60f6820..d258bd0d4 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.9", + "version": "0.0.40-alpha.10", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index eabd6238e..e309fb82c 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-alpha.9", + "version": "0.0.40-alpha.10", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 589651576..d514a7434 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-alpha.9", + "version": "0.0.40-alpha.10", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 8ad424243..abf100c4d 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-alpha.9", + "version": "0.0.40-alpha.10", "private": false, "publishConfig": { "access": "public" From b89742bcd9c7682bb45a62c9084c37b6ad80b75c Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 18:35:26 +0200 Subject: [PATCH 072/113] fix build error --- apps/dojo/tsconfig.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/dojo/tsconfig.json b/apps/dojo/tsconfig.json index af157911a..a57e78c43 100644 --- a/apps/dojo/tsconfig.json +++ b/apps/dojo/tsconfig.json @@ -19,9 +19,9 @@ } ], "paths": { - "@/*": ["./src/*", "../../packages/client/src/*"], - "@ag-ui/client": ["../../packages/client/src"], - "@ag-ui/client/*": ["../../packages/client/src/*"] + "@/*": ["./src/*", "../../sdks/typescript/packages/client/src/*"], + "@ag-ui/client": ["../../sdks/typescript/packages/client/src"], + "@ag-ui/client/*": ["../../sdks/typescript/packages/client/src/*"] } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], From 86a7cbb971a7be2517dc984b8ecdc8d810371e99 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 23 Oct 2025 18:54:48 +0200 Subject: [PATCH 073/113] 0.0.5 --- integrations/a2a/typescript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/a2a/typescript/package.json b/integrations/a2a/typescript/package.json index be440804d..d939bf829 100644 --- a/integrations/a2a/typescript/package.json +++ b/integrations/a2a/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/a2a", "author": "Markus Ecker ", - "version": "0.0.4", + "version": "0.0.5", "license": "Apache-2.0", "main": "./dist/index.js", "module": "./dist/index.mjs", From cd8ceb0e2e64fd2ba5cdc2be8198188550720a9f Mon Sep 17 00:00:00 2001 From: ran Date: Fri, 24 Oct 2025 16:55:32 +0200 Subject: [PATCH 074/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++---- pnpm-lock.yaml | 64 +++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 2c0c414df..fa17c8520 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251023094810", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251023094810", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251023094810", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251023094810", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251023094810", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251024134919", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251024134919", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251024134919", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251024134919", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251024134919", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0118d392c..b9e820e2d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251023094810 - version: 0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251024134919 + version: 0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251023094810 - version: 0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251024134919 + version: 0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251023094810 - version: 0.0.0-feat-cpk-1-5-20251023094810(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251024134919 + version: 0.0.0-feat-cpk-1-5-20251024134919(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251023094810 - version: 0.0.0-feat-cpk-1-5-20251023094810(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251024134919 + version: 0.0.0-feat-cpk-1-5-20251024134919(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251023094810 - version: 0.0.0-feat-cpk-1-5-20251023094810 + specifier: 0.0.0-feat-cpk-1-5-20251024134919 + version: 0.0.0-feat-cpk-1-5-20251024134919 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251023094810': - resolution: {integrity: sha512-sSjnB4sPGalcJ2UhOuMs8NYrlE1CLNCh+S+nyoEfyz1b+LJlxYi9bh7HXxJF5IOwk2ftXoUHoikVEEqCq1hNtQ==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251024134919': + resolution: {integrity: sha512-LblzSa+oYfkcURt89fQhXTocnObjZyZKkExpRTpSX5EQu8UvU6ZXqTz+ucw6Gzfx056oTm6yPJ44kDIIX9A9bA==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251023094810': - resolution: {integrity: sha512-nlUA4fRDHo0Tm8BEI409ISihtIqrVRsNUkLE8wiDd83XueOAn8dfTdLHpVZOkoxysc8NAoKT2iqV7puTogUxQw==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251024134919': + resolution: {integrity: sha512-Eo/okzkPPIa3G5AoFIGvwfpXcI3aaKd/BhdsDF1na77eG8qfcXDqrEmxd6SI4SglCnrNgE0hCRUMbXnAPCgQ4A==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023094810': - resolution: {integrity: sha512-Ko9Lj3p9LRygC7s6/PgN4dXpG0h++I/Hukf0EagdxGmVEVtKq10HLAlAWDLrzr8aCxqFTDaMIf/WgQhjZipEyQ==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024134919': + resolution: {integrity: sha512-02XuklEpLHDjn4FWiEg1ZKqrmUsXwynIU8d7xgTgT4iLi7aB49qUFOnUsdaF6+eqPj0EAjcAZHFIPALeRUOkgA==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023094810': - resolution: {integrity: sha512-brvIbrGF1C9wTyBwGSeK/gTUkWSTSbv0rnf/aOGCeddPLJ4FCBkgXNvA7+YvUjV3ALupeFR/EyC9z9eedLAUCQ==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024134919': + resolution: {integrity: sha512-J7zc/VFLpLnVwbfzsd4ZXLs1M8AqxCJEYvk+Sig87jXLo4RAv81QNQgzophMi0Hp4A5oSvpkg7jYe9VqtaGPxQ==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023094810': - resolution: {integrity: sha512-Od5fnHgWhohnHS3kRwLdTZ/ylSKJfN+csrf2HDuoD8Wib7dbgYJKpj8VBaVcuZMAUIOFWxRDfyzLTv5sl4or6Q==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024134919': + resolution: {integrity: sha512-wLd9YghsTs9EfMK07sEFOAoY7dnH4MUgEu91oEkRsg4bDOrQJ2VQ3IUQwIG3m8YuszT26l+qpfneWCPzzn9gyg==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251023094810(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251024134919(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251023094810(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251023094810(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251024134919(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251023094810(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024134919(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251023094810(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024134919(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251023094810 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251023094810': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024134919': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 From 7889c6ed569a41f5a842fcdf0ac433099101942f Mon Sep 17 00:00:00 2001 From: ran Date: Fri, 24 Oct 2025 17:45:49 +0200 Subject: [PATCH 075/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++---- pnpm-lock.yaml | 64 +++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index fa17c8520..d23612c42 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251024134919", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251024134919", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251024134919", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251024134919", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251024134919", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251024154300", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251024154300", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251024154300", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251024154300", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251024154300", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9e820e2d..c3be41a02 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251024134919 - version: 0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251024154300 + version: 0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251024134919 - version: 0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251024154300 + version: 0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251024134919 - version: 0.0.0-feat-cpk-1-5-20251024134919(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251024154300 + version: 0.0.0-feat-cpk-1-5-20251024154300(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251024134919 - version: 0.0.0-feat-cpk-1-5-20251024134919(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251024154300 + version: 0.0.0-feat-cpk-1-5-20251024154300(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251024134919 - version: 0.0.0-feat-cpk-1-5-20251024134919 + specifier: 0.0.0-feat-cpk-1-5-20251024154300 + version: 0.0.0-feat-cpk-1-5-20251024154300 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251024134919': - resolution: {integrity: sha512-LblzSa+oYfkcURt89fQhXTocnObjZyZKkExpRTpSX5EQu8UvU6ZXqTz+ucw6Gzfx056oTm6yPJ44kDIIX9A9bA==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251024154300': + resolution: {integrity: sha512-bHkTfVImzOqw8bWKWhG5W6tAx+fFpNPXEmLIUzbnFb2GrYd+LiXu+EykpBl8W8osEwxHaTHx0oj429L0S86pDw==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251024134919': - resolution: {integrity: sha512-Eo/okzkPPIa3G5AoFIGvwfpXcI3aaKd/BhdsDF1na77eG8qfcXDqrEmxd6SI4SglCnrNgE0hCRUMbXnAPCgQ4A==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251024154300': + resolution: {integrity: sha512-d1yMZhxJ0Fpjp3WeLqdDuJDFbIdYnJ3+ECnjFTWg/Zn7lMfUWcI1ZHF785W4wnTV5S7HLWZ9ZnCE28NfOgB8HQ==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024134919': - resolution: {integrity: sha512-02XuklEpLHDjn4FWiEg1ZKqrmUsXwynIU8d7xgTgT4iLi7aB49qUFOnUsdaF6+eqPj0EAjcAZHFIPALeRUOkgA==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024154300': + resolution: {integrity: sha512-d3N6R++MdNiQCNhGgcxy21XqY43GVx29G5XMm2EnbJG94fQYVA3iX8FJt/9flLU+YctjCWA7W7TEj/8d9zaUow==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024134919': - resolution: {integrity: sha512-J7zc/VFLpLnVwbfzsd4ZXLs1M8AqxCJEYvk+Sig87jXLo4RAv81QNQgzophMi0Hp4A5oSvpkg7jYe9VqtaGPxQ==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024154300': + resolution: {integrity: sha512-KlqnfVg1s84rvHB7yoln5/r5LRHuD265o3tGl83UhBbp51iemut18ohn+o3ESxEwWcOKYwVW62B4ku+MnDi3EA==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024134919': - resolution: {integrity: sha512-wLd9YghsTs9EfMK07sEFOAoY7dnH4MUgEu91oEkRsg4bDOrQJ2VQ3IUQwIG3m8YuszT26l+qpfneWCPzzn9gyg==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024154300': + resolution: {integrity: sha512-PRyAWeq4/pDv4+kG9jAkHElqDKlSVYlSioW6b+PNst/CMzBP2Ulaau422zq20yWNIfpOeTpH9svRwVbPiAu5nw==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251024134919(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251024154300(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251024134919(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251024134919(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251024154300(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024134919(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024154300(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024134919(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024154300(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024134919 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024134919': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024154300': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 From d876259d19e791381ee0f975f6bf94b4a2a8c2f7 Mon Sep 17 00:00:00 2001 From: ran Date: Tue, 28 Oct 2025 13:04:36 +0100 Subject: [PATCH 076/113] latest 1.5 alpha --- apps/dojo/package.json | 10 ++-- pnpm-lock.yaml | 113 ++++++++++++++++++++++++----------------- 2 files changed, 72 insertions(+), 51 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index d23612c42..eb3a1586f 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.42", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251024154300", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251024154300", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251024154300", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251024154300", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251024154300", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251028120232", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251028120232", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251028120232", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251028120232", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251028120232", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3be41a02..585364690 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251024154300 - version: 0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251028120232 + version: 0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251024154300 - version: 0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251028120232 + version: 0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251024154300 - version: 0.0.0-feat-cpk-1-5-20251024154300(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251028120232 + version: 0.0.0-feat-cpk-1-5-20251028120232(64e53d6a38a9d6a8b11809b6b9b1396b) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251024154300 - version: 0.0.0-feat-cpk-1-5-20251024154300(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251028120232 + version: 0.0.0-feat-cpk-1-5-20251028120232(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251024154300 - version: 0.0.0-feat-cpk-1-5-20251024154300 + specifier: 0.0.0-feat-cpk-1-5-20251028120232 + version: 0.0.0-feat-cpk-1-5-20251028120232 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -362,7 +362,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -393,7 +393,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -424,7 +424,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -464,7 +464,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -495,7 +495,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -541,7 +541,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -606,7 +606,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -634,7 +634,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -662,7 +662,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -699,7 +699,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -736,7 +736,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -764,7 +764,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -798,7 +798,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -847,7 +847,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -1537,8 +1537,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251024154300': - resolution: {integrity: sha512-bHkTfVImzOqw8bWKWhG5W6tAx+fFpNPXEmLIUzbnFb2GrYd+LiXu+EykpBl8W8osEwxHaTHx0oj429L0S86pDw==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251028120232': + resolution: {integrity: sha512-Qy/uZsKoiPNnXWFBk/+mF1kOyDWa5V6qmVLhIDBtPMWGByWD4Nk5snI6bAtcu+KD6gdW6u1sOtKCeYF+TcP2Lw==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1546,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251024154300': - resolution: {integrity: sha512-d1yMZhxJ0Fpjp3WeLqdDuJDFbIdYnJ3+ECnjFTWg/Zn7lMfUWcI1ZHF785W4wnTV5S7HLWZ9ZnCE28NfOgB8HQ==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251028120232': + resolution: {integrity: sha512-/AU/3uG6afIgE27uRliVoFNRsoJy6XxInqN6Feayvb1glWnAEFwTiOfi5GSUZsNyEdj8IR6jL7qyNgtMlauiQw==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024154300': - resolution: {integrity: sha512-d3N6R++MdNiQCNhGgcxy21XqY43GVx29G5XMm2EnbJG94fQYVA3iX8FJt/9flLU+YctjCWA7W7TEj/8d9zaUow==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251028120232': + resolution: {integrity: sha512-oOfU6Y4T1m75Wb8TTg/2Q07Ssym3m+h2YNLpg9kas1jarpp6uUpYKoc2CjVP4pr60SDd7f7CQEvc4NonOEUprg==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024154300': - resolution: {integrity: sha512-KlqnfVg1s84rvHB7yoln5/r5LRHuD265o3tGl83UhBbp51iemut18ohn+o3ESxEwWcOKYwVW62B4ku+MnDi3EA==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251028120232': + resolution: {integrity: sha512-HsyFrzmAA6pC/Vx+8BdIdb9hUKYgkwNTg97/yhyQtEefzKyfpXCqrjyaNxLdf0mEFR3yuAa+pGnoQQs7gVuzIg==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1575,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024154300': - resolution: {integrity: sha512-PRyAWeq4/pDv4+kG9jAkHElqDKlSVYlSioW6b+PNst/CMzBP2Ulaau422zq20yWNIfpOeTpH9svRwVbPiAu5nw==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251028120232': + resolution: {integrity: sha512-A8NYaZ9h/i9gnMZepOeRiijlibuto4qD9Ko9PlvTV2ZQklizfwV/vaiGX9r/YvpFSY4yK5r+SGpEBGcAOUchvQ==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11461,10 +11461,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251024154300(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251028120232(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11479,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251024154300(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251024154300(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251028120232(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11501,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251024154300(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251028120232(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,7 +11512,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251024154300(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251028120232(64e53d6a38a9d6a8b11809b6b9b1396b)': dependencies: '@ag-ui/client': 0.0.40 '@ag-ui/core': 0.0.40-alpha.6 @@ -11520,7 +11520,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251024154300 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11878,7 +11878,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251024154300': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251028120232': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -21695,6 +21695,27 @@ 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): dependencies: bs-logger: 0.2.6 From baa67ea4ee1e40880deab13bc876c45c2ab74fc7 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 28 Oct 2025 15:28:37 +0100 Subject: [PATCH 077/113] integrate vnext chat --- apps/dojo/package.json | 2 + .../feature/vnext_chat/page.tsx | 39 + .../api/copilotkit/[integrationId]/route.ts | 6 +- apps/dojo/src/app/api/copilotkit/route.ts | 22 + .../[integrationId]/[[...slug]]/route.ts | 41 + apps/dojo/src/config.ts | 18 +- apps/dojo/src/menu.ts | 30 +- apps/dojo/src/types/integration.ts | 3 +- pnpm-lock.yaml | 1420 ++++++++++++++++- 9 files changed, 1525 insertions(+), 56 deletions(-) create mode 100644 apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx create mode 100644 apps/dojo/src/app/api/copilotkit/route.ts create mode 100644 apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 4ce7c802f..565cbb19e 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -33,6 +33,8 @@ "@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", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx b/apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx new file mode 100644 index 000000000..b81ab7ecb --- /dev/null +++ b/apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx @@ -0,0 +1,39 @@ +"use client"; + +import React from "react"; +import "@copilotkitnext/react/styles.css"; +import { CopilotChat, CopilotKitProvider } from "@copilotkitnext/react"; + +export const dynamic = "force-dynamic"; + +interface PageProps { + params: Promise<{ + integrationId: string; + }>; +} + +export default function Page({ params }: PageProps) { + const { integrationId } = React.use(params); + + return ( + +
+ +
+
+ ); +} + +function Chat({ threadId }: { threadId: string }) { + return ( +
+ +
+ ); +} diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts index 5a0641441..a1c04b856 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/route.ts @@ -3,10 +3,10 @@ import { ExperimentalEmptyAdapter, copilotRuntimeNextJSAppRouterEndpoint, } from "@copilotkit/runtime"; -import { agentsIntegrations } from "@/agents"; - import { NextRequest } from "next/server"; +import { agentsIntegrations } from "@/agents"; + export async function POST(request: NextRequest) { const integrationId = request.url.split("/").pop(); @@ -14,6 +14,7 @@ export async function POST(request: NextRequest) { if (!integration) { return new Response("Integration not found", { status: 404 }); } + const agents = await integration.agents(); const runtime = new CopilotRuntime({ // @ts-ignore for now @@ -27,3 +28,4 @@ export async function POST(request: NextRequest) { return handleRequest(request); } + diff --git a/apps/dojo/src/app/api/copilotkit/route.ts b/apps/dojo/src/app/api/copilotkit/route.ts new file mode 100644 index 000000000..80f03f2c1 --- /dev/null +++ b/apps/dojo/src/app/api/copilotkit/route.ts @@ -0,0 +1,22 @@ +import { + CopilotRuntime, + InMemoryAgentRunner, + createCopilotEndpoint, +} from "@copilotkitnext/runtime"; +import { handle } from "hono/vercel"; + +const runtime = new CopilotRuntime({ + agents: { + default: null as any, + }, + runner: new InMemoryAgentRunner(), +}); + +const app = createCopilotEndpoint({ + runtime, + basePath: "/api/copilotkit", +}); + +export const GET = handle(app); +export const POST = handle(app); + diff --git a/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts new file mode 100644 index 000000000..a30f34eeb --- /dev/null +++ b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts @@ -0,0 +1,41 @@ +import { + CopilotRuntime, + InMemoryAgentRunner, + createCopilotEndpoint, +} from "@copilotkitnext/runtime"; +import { handle } from "hono/vercel"; +import type { NextRequest } from "next/server"; + +type RouteParams = { + params: { + integrationId: string; + slug?: string[]; + }; +}; + +function createHandler(integrationId: string) { + const runtime = new CopilotRuntime({ + agents: { + default: null as any, + }, + runner: new InMemoryAgentRunner(), + }); + + const app = createCopilotEndpoint({ + runtime, + basePath: `/api/copilotkitnext/${integrationId}`, + }); + + return handle(app); +} + +export function GET(request: NextRequest, context: RouteParams) { + const handler = createHandler(context.params.integrationId); + return handler(request); +} + +export function POST(request: NextRequest, context: RouteParams) { + const handler = createHandler(context.params.integrationId); + return handler(request); +} + diff --git a/apps/dojo/src/config.ts b/apps/dojo/src/config.ts index e27f3a4b8..df7e0f25e 100644 --- a/apps/dojo/src/config.ts +++ b/apps/dojo/src/config.ts @@ -32,13 +32,15 @@ export const featureConfig: FeatureConfig[] = [ createFeatureConfig({ id: "human_in_the_loop", name: "Human in the loop", - description: "Plan a task together and direct the Copilot to take the right steps", + description: + "Plan a task together and direct the Copilot to take the right steps", tags: ["HITL", "Interactivity"], }), createFeatureConfig({ id: "agentic_generative_ui", name: "Agentic Generative UI", - description: "Assign a long running task to your Copilot and see how it performs!", + description: + "Assign a long running task to your Copilot and see how it performs!", tags: ["Generative ui (agent)", "Long running task"], }), createFeatureConfig({ @@ -56,7 +58,8 @@ export const featureConfig: FeatureConfig[] = [ createFeatureConfig({ id: "predictive_state_updates", name: "Predictive State Updates", - description: "Use collaboration to edit a document in real time with your Copilot", + description: + "Use collaboration to edit a document in real time with your Copilot", tags: ["State", "Streaming", "Tools"], }), createFeatureConfig({ @@ -68,7 +71,8 @@ export const featureConfig: FeatureConfig[] = [ createFeatureConfig({ id: "subgraphs", name: "Subgraphs", - description: "Have your tasks performed by multiple agents, working together", + description: + "Have your tasks performed by multiple agents, working together", tags: ["Chat", "Multi-agent architecture", "Streaming", "Subgraphs"], }), createFeatureConfig({ @@ -77,6 +81,12 @@ export const featureConfig: FeatureConfig[] = [ description: "Chat with your Copilot and call frontend tools", tags: ["Chat", "Tools", "Streaming"], }), + createFeatureConfig({ + id: "vnext_chat", + name: "VNext Chat", + description: "Chat based on CopilotKit vnext", + tags: ["Chat", "VNext", "Streaming"], + }), ]; export default featureConfig; diff --git a/apps/dojo/src/menu.ts b/apps/dojo/src/menu.ts index b46243256..36959a218 100644 --- a/apps/dojo/src/menu.ts +++ b/apps/dojo/src/menu.ts @@ -47,7 +47,11 @@ export const menuIntegrations: MenuIntegrationConfig[] = [ { id: "mastra", name: "Mastra", - features: ["agentic_chat", "backend_tool_rendering", "tool_based_generative_ui"], + features: [ + "agentic_chat", + "backend_tool_rendering", + "tool_based_generative_ui", + ], }, { id: "mastra-agent-local", @@ -60,15 +64,15 @@ export const menuIntegrations: MenuIntegrationConfig[] = [ ], }, { - id: 'spring-ai', - name: 'Spring AI', + id: "spring-ai", + name: "Spring AI", features: [ - 'agentic_chat', - 'shared_state', - 'tool_based_generative_ui', - 'human_in_the_loop', - 'agentic_generative_ui' - ] + "agentic_chat", + "shared_state", + "tool_based_generative_ui", + "human_in_the_loop", + "agentic_generative_ui", + ], }, { id: "pydantic-ai", @@ -99,7 +103,11 @@ export const menuIntegrations: MenuIntegrationConfig[] = [ { id: "agno", name: "Agno", - features: ["agentic_chat", "backend_tool_rendering", "tool_based_generative_ui"], + features: [ + "agentic_chat", + "backend_tool_rendering", + "tool_based_generative_ui", + ], }, { id: "llama-index", @@ -128,7 +136,7 @@ export const menuIntegrations: MenuIntegrationConfig[] = [ { id: "a2a-basic", name: "A2A (Direct)", - features: ["agentic_chat"], + features: ["vnext_chat"], }, // Disabled until we can support Vercel AI SDK v5 // { diff --git a/apps/dojo/src/types/integration.ts b/apps/dojo/src/types/integration.ts index 59d9b3adb..182933a6f 100644 --- a/apps/dojo/src/types/integration.ts +++ b/apps/dojo/src/types/integration.ts @@ -10,7 +10,8 @@ export type Feature = | "backend_tool_rendering" | "agentic_chat_reasoning" | "subgraphs" - | "a2a_chat"; + | "a2a_chat" + | "vnext_chat"; export interface MenuIntegrationConfig { id: string; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6711643ec..78a3a9867 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,16 +83,16 @@ importers: version: link:../../integrations/agno/typescript '@ag-ui/client': specifier: workspace:* - version: 0.0.40-alpha.9 + version: link:../../sdks/typescript/packages/client '@ag-ui/core': specifier: workspace:* - version: 0.0.40-alpha.9 + version: link:../../sdks/typescript/packages/core '@ag-ui/crewai': specifier: workspace:* version: link:../../integrations/crew-ai/typescript '@ag-ui/encoder': specifier: workspace:* - version: 0.0.40-alpha.9 + version: link:../../sdks/typescript/packages/encoder '@ag-ui/langgraph': specifier: workspace:* version: link:../../integrations/langgraph/typescript @@ -107,7 +107,7 @@ importers: version: link:../../middlewares/middleware-starter '@ag-ui/proto': specifier: workspace:* - version: 0.0.40-alpha.9 + version: link:../../sdks/typescript/packages/proto '@ag-ui/pydantic-ai': specifier: workspace:* version: link:../../integrations/pydantic-ai/typescript @@ -134,13 +134,19 @@ importers: version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@copilotkit/runtime': specifier: 1.10.6 - version: 1.10.6(uwjjxhr52zjctzhvu6qqvyjj4q) + version: 1.10.6(iqshwn2xropb3vpfei3flnb2ay) '@copilotkit/runtime-client-gql': specifier: 1.10.6 version: 1.10.6(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': specifier: 1.10.6 version: 1.10.6 + '@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) + '@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)) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -547,7 +553,7 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(zpz5usii42i6fql3rrkgx3daf4) + version: 1.10.6(oefq6yilp5bsxwbn3p2ta6g6we) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -993,8 +999,8 @@ packages: '@ag-ui/client@0.0.35': resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==} - '@ag-ui/client@0.0.40-alpha.9': - resolution: {integrity: sha512-TmNf4GdZGpjgniDLjnSiqR9gNVgxv5+GN82PoHoKKGUPtJSeQOpjYr3Nw3b34aUHAqr/Sce5W0P9Rr0X5EmYbw==} + '@ag-ui/client@0.0.40-alpha.10': + resolution: {integrity: sha512-b1hcS1+nMzsNSSt4E3tryFD4Bd9DQqcqYg0R1CeD9dx4bbDg2cF0sjtUBDpbAQ6N3l4438VranGE9Sj+UozUBg==} '@ag-ui/core@0.0.35': resolution: {integrity: sha512-YAqrln3S3fdo+Hs5FFQPODXiBttyilv/E3xSSHCuxqC0Y/Fp3+VqyDx97BorO3NVp2VKZ9cG2nsO3cbmcTwkQw==} @@ -1002,14 +1008,14 @@ packages: '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} - '@ag-ui/core@0.0.40-alpha.9': - resolution: {integrity: sha512-h4fXCuWgzoOEmNWk+mb8qT97felBDudIOsu+0nnbeP9G5DLti44Il7w5+DNeImEmB8QoAOOMVn8JqLoo1+Prag==} + '@ag-ui/core@0.0.40-alpha.10': + resolution: {integrity: sha512-VczUym5UTwVdvJPD95z4cqSEnrygjINqrqZX4ru1gnNlf8PPmhElNPdE/ZiFEgmZAXaxzK6rI+LB6iDx5NltQA==} '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} - '@ag-ui/encoder@0.0.40-alpha.9': - resolution: {integrity: sha512-XhXUIUQaKWm35D8IGW3GRbdk6sB0NjZcSfNvUcBD0G8+7VvCl3J5TBtwxiR4NDLFKYRDnhJSkm7vXPh/sFogww==} + '@ag-ui/encoder@0.0.40-alpha.10': + resolution: {integrity: sha512-aoBhFIcX+SGWzvw/FAK4+mHY6NIz5YA7DchjRCBWAyAGWrdSEObKRgPRifahOrl3hhKgSZo0MYwOin9Q33B+rg==} '@ag-ui/langgraph@0.0.19-alpha.1': resolution: {integrity: sha512-rX8Y4LSxTXWUMFzCspO0c42b6YWGTuciP69Okrh7Lw3kpGsmFq/zmXoBLFz654Yuii2zLHl5mZvkBJ5a3nI6lA==} @@ -1020,8 +1026,8 @@ packages: '@ag-ui/proto@0.0.35': resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==} - '@ag-ui/proto@0.0.40-alpha.9': - resolution: {integrity: sha512-Gd6kiiGVWA4L/qo9g+TesaoRavVyslG35XAydmXuovka+U051caidSlgUxkh3z8xQGNroG0cNWrLgWUDG8P06Q==} + '@ag-ui/proto@0.0.40-alpha.10': + resolution: {integrity: sha512-d7FzAIjWyQzaMEZyMkTMgIyW+qK7LUg2T/MpjAGqWjjcrWGk2Zh6DU/rNMwMbYnK/YlXS3Ljo5a5gI95SrLS+Q==} '@ai-sdk/anthropic@2.0.23': resolution: {integrity: sha512-ZEBiiv1UhjGjBwUU63pFhLK5LCSlNDb1idY9K1oZHm5/Fda1cuTojf32tOp0opH0RPbPAN/F8fyyNjbU33n9Kw==} @@ -1117,6 +1123,12 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@antfu/utils@9.3.0': + resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==} + '@anthropic-ai/sdk@0.27.3': resolution: {integrity: sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==} @@ -1514,6 +1526,9 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@braintree/sanitize-url@7.1.1': + resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} + '@browserbasehq/sdk@2.6.0': resolution: {integrity: sha512-83iXP5D7xMm8Wyn66TUaUrgoByCmAJuoMoZQI3sGg3JAiMlTfnCIMqyVBoNSaItaPIkaCnrsj6LiusmXV2X9YA==} @@ -1532,6 +1547,21 @@ packages: '@cfworker/json-schema@4.1.1': resolution: {integrity: sha512-gAmrUZSGtKc3AiBL71iNWxDsyUC5uMaKKGdvzYsBoTW/xi42JQHl7eKV2OYzCUqvc+D2RCcf7EXY2iCyFIk6og==} + '@chevrotain/cst-dts-gen@11.0.3': + resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} + + '@chevrotain/gast@11.0.3': + resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==} + + '@chevrotain/regexp-to-ast@11.0.3': + resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==} + + '@chevrotain/types@11.0.3': + resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==} + + '@chevrotain/utils@11.0.3': + resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} + '@clack/core@0.5.0': resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} @@ -1566,6 +1596,31 @@ packages: '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} + '@copilotkitnext/core@0.0.19-alpha.0': + resolution: {integrity: sha512-pIv1mrAW2uNNpaWWgUtkZNhscQwu6dGAfL1BA9WYW0ipZPgrlSbR3OleKV0D5z+uV51XCknWTSNM49ioTcgZZQ==} + engines: {node: '>=18'} + + '@copilotkitnext/react@0.0.19-alpha.0': + resolution: {integrity: sha512-ApVlwXDalzwYaVNki6srA4Ab9LDw5VcqECzoZK8wf+6aSYvdLIXLe1ZLxIFemzU/Cuks8rmhJ0Bwk0gbRSk9eA==} + 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==} + engines: {node: '>=18'} + peerDependencies: + openai: ^5.9.0 + + '@copilotkitnext/shared@0.0.19-alpha.0': + resolution: {integrity: sha512-dfQCod+NmD0ttfpLOZxeEj3IQprlgsj8Z5+XCRAkXtKRWf+BaW53BzPZMPPKN1oUSJSK8g7jb3aoD+3Ek5w1AA==} + engines: {node: '>=18'} + + '@copilotkitnext/web-inspector@0.0.19-alpha.0': + resolution: {integrity: sha512-em2OACHCarRXuZgpqpULshXGQpZhAeZVbwzkD5u60zy4ALmGDjFZ4Rb7FUhR+vwIpFQ/yZfOjvxoduVzu+wrBA==} + engines: {node: '>=18'} + '@emnapi/core@1.5.0': resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} @@ -1895,6 +1950,12 @@ packages: resolution: {integrity: sha512-TmLaoFXmLc7yVFJIQS25mzZcuWfju4JmRXcO62KthDKNENyPpXXJukrHN6gXfv1BotzFt0M2kyRnO1Vt8ZLlxQ==} engines: {node: '>=18.0.0'} + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.0.2': + resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==} + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -2754,6 +2815,20 @@ packages: cpu: [x64] os: [win32] + '@lit-labs/react@2.1.3': + resolution: {integrity: sha512-OD9h2JynerBQUMNzb563jiVpxfvPF0HjQkKY2mx0lpVYvD7F+rtJpOGz6ek+6ufMidV3i+MPT9SX62OKWHFrQg==} + + '@lit-labs/ssr-dom-shim@1.4.0': + resolution: {integrity: sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==} + + '@lit/react@1.0.8': + resolution: {integrity: sha512-p2+YcF+JE67SRX3mMlJ1TKCSTsgyOVdAwd/nxp3NuV1+Cb6MWALbN6nT7Ld4tpmYofcE5kcaSY1YBB9erY+6fw==} + peerDependencies: + '@types/react': 17 || 18 || 19 + + '@lit/reactive-element@2.1.1': + resolution: {integrity: sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==} + '@lukeed/csprng@1.1.0': resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} engines: {node: '>=8'} @@ -2867,6 +2942,9 @@ packages: '@types/react': '>=16' react: '>=16' + '@mermaid-js/parser@0.6.3': + resolution: {integrity: sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==} + '@modelcontextprotocol/sdk@1.20.0': resolution: {integrity: sha512-kOQ4+fHuT4KbR2iq2IjeV32HiihueuOf1vJkq18z08CLZ1UQrTc8BXJpVfxZkq45+inLLD+D4xx4nBjUelJa4Q==} engines: {node: '>=18'} @@ -3739,6 +3817,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-use-callback-ref@1.1.1': resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: @@ -3802,6 +3893,19 @@ packages: '@types/react': optional: true + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} @@ -4180,6 +4284,27 @@ packages: resolution: {integrity: sha512-0dtu/5ApsOZ24qgaZwtif8jVwqol7a4m1x5AxPuM1k5wxhqU7t/qEfBGtaSki1R8VlbTQfCj5PAlO45NKCa7Gg==} hasBin: true + '@shikijs/core@3.14.0': + resolution: {integrity: sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw==} + + '@shikijs/engine-javascript@3.14.0': + resolution: {integrity: sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ==} + + '@shikijs/engine-oniguruma@3.14.0': + resolution: {integrity: sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug==} + + '@shikijs/langs@3.14.0': + resolution: {integrity: sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg==} + + '@shikijs/themes@3.14.0': + resolution: {integrity: sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA==} + + '@shikijs/types@3.14.0': + resolution: {integrity: sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -4687,6 +4812,99 @@ packages: '@types/cors@2.8.19': resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.7': + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.0': + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.3': + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-shape@3.1.7': + resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -4708,6 +4926,9 @@ packages: '@types/express@4.17.23': resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==} + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -4845,6 +5066,9 @@ packages: '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -5433,6 +5657,14 @@ packages: chardet@2.1.0: resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + chevrotain-allstar@0.3.1: + resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} + peerDependencies: + chevrotain: ^11.0.0 + + chevrotain@11.0.3: + resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} + chokidar@4.0.3: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} @@ -5544,6 +5776,10 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -5610,6 +5846,12 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -5637,6 +5879,162 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape@3.33.1: + resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} + engines: {node: '>=0.10'} + + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} + + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} + + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} + + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.0: + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + dagre-d3-es@7.0.13: + resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -5665,6 +6063,9 @@ packages: dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dayjs@1.11.18: + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -5747,6 +6148,9 @@ packages: defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delaunator@5.0.1: + resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -5808,6 +6212,9 @@ packages: dompurify@3.1.7: resolution: {integrity: sha512-VaTstWtsneJY8xzy7DekmYWEOZcmzIe3Qb3zPd4STve1OBTa+e+WmS1ITQec1fZYXI3HCsOZZiSMpG6oxoWMWQ==} + dompurify@3.3.0: + resolution: {integrity: sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==} + dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -6440,6 +6847,10 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -6501,6 +6912,9 @@ packages: resolution: {integrity: sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==} engines: {node: '>=12.0.0'} + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -6533,9 +6947,21 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-from-dom@5.0.1: + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} + + hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + hast-util-from-parse5@8.0.3: resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + hast-util-parse-selector@2.2.5: resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} @@ -6548,12 +6974,18 @@ packages: hast-util-to-estree@3.1.3: resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} @@ -6729,6 +7161,13 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + ip-regex@4.3.0: resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} engines: {node: '>=8'} @@ -7219,6 +7658,9 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -7227,6 +7669,9 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + langchain@0.3.36: resolution: {integrity: sha512-PqC19KChFF0QlTtYDFgfEbIg+SCnCXox29G8tY62QWfj9bOW7ew2kgWmPw5qoHLOTKOdQPvXET20/1Pdq8vAtQ==} engines: {node: '>=18'} @@ -7285,6 +7730,10 @@ packages: typeorm: optional: true + langium@3.3.1: + resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} + engines: {node: '>=16.0.0'} + langsmith@0.3.74: resolution: {integrity: sha512-ZuW3Qawz8w88XcuCRH91yTp6lsdGuwzRqZ5J0Hf5q/AjMz7DwcSv0MkE6V5W+8hFMI850QZN2Wlxwm3R9lHlZg==} peerDependencies: @@ -7309,6 +7758,12 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -7399,6 +7854,15 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + lit-element@4.2.1: + resolution: {integrity: sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==} + + lit-html@3.3.1: + resolution: {integrity: sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==} + + lit@3.3.1: + resolution: {integrity: sha512-Ksr/8L3PTapbdXJCk+EJVB78jDodUMaP54gD24W186zGRARvwrsPfS60wae/SSCTCNZVPd1chXqio1qHQmu4NA==} + load-tsconfig@0.2.5: resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7415,6 +7879,9 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -7484,6 +7951,19 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lucide-react@0.525.0: + resolution: {integrity: sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide-react@0.542.0: + resolution: {integrity: sha512-w3hD8/SQB7+lzU2r4VdFyzzOzKnUjTZIF/MQJGSSvni7Llewni4vuViRppfRAa2guOsY5k4jZyxw/i9DQHv+dw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide@0.525.0: + resolution: {integrity: sha512-sfehWlaE/7NVkcEQ4T9JD3eID8RNMIGJBBUq9wF3UFiJIrcMKRbU3g1KGfDk4svcW7yw8BtDLXaXo02scDtUYQ==} + magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} @@ -7516,6 +7996,11 @@ packages: engines: {node: '>= 18'} hasBin: true + marked@16.4.1: + resolution: {integrity: sha512-ntROs7RaN3EvWfy3EZi14H4YxmT6A5YvywfhO+0pm+cH/dnSQRmdAmoFIc3B9aiwTehyk7pESH4ofyBY+V5hZg==} + engines: {node: '>= 20'} + hasBin: true + mastra@0.15.1: resolution: {integrity: sha512-8C+2/ANWRrDN82gBvWpvcsi0tuntgZvXu2QdPGuqLAoap/vinzMVQXMXDgLtvlQ8shW1E7x6Vwsr0UzoNPKrAg==} hasBin: true @@ -7615,6 +8100,9 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + mermaid@11.12.1: + resolution: {integrity: sha512-UlIZrRariB11TY1RtTgUWp65tphtBv4CSq7vyS2ZZ2TgoMjs2nloq+wFqxiwcxlhHUvs7DPGgMjs2aeQxz5h9g==} + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -8043,6 +8531,12 @@ packages: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + + oniguruma-to-es@4.3.3: + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + open@10.2.0: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} @@ -8132,6 +8626,9 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@1.5.0: + resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -8160,6 +8657,9 @@ packages: partial-json@0.1.7: resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==} + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -8287,6 +8787,12 @@ packages: engines: {node: '>=18'} hasBin: true + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -8628,10 +9134,25 @@ packages: refractor@3.6.0: resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} + rehype-harden@1.1.5: + resolution: {integrity: sha512-JrtBj5BVd/5vf3H3/blyJatXJbzQfRT9pJBmjafbTaPouQCAKxHwRyCc7dle9BXQKxv4z1OzZylz/tNamoiG3A==} + + rehype-katex@7.0.1: + resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} @@ -8719,6 +9240,9 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + robust-predicates@3.0.2: + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + rollup-plugin-esbuild@6.2.1: resolution: {integrity: sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==} engines: {node: '>=14.18.0'} @@ -8745,6 +9269,9 @@ packages: rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + router@2.2.0: resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} engines: {node: '>= 18'} @@ -8760,6 +9287,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} @@ -8857,6 +9387,9 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} + shiki@3.14.0: + resolution: {integrity: sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g==} + side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -8961,6 +9494,11 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} + streamdown@1.4.0: + resolution: {integrity: sha512-ylhDSQ4HpK5/nAH9v7OgIIdGJxlJB2HoYrYkJNGrO8lMpnWuKUcrz/A8xAMwA6eILA27469vIavcOTjmxctrKg==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -9071,6 +9609,9 @@ packages: babel-plugin-macros: optional: true + stylis@4.3.6: + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -9190,6 +9731,14 @@ packages: peerDependencies: typescript: '>=4.8.4' + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + ts-deepmerge@7.0.3: + resolution: {integrity: sha512-Du/ZW2RfwV/D4cmA5rXafYjBQVuvu4qGiEEla4EmEHVHgRdx68Gftx7i66jn2bzHPwSVZY36Ae6OuDn9el4ZKA==} + engines: {node: '>=14.13.1'} + ts-error@1.0.6: resolution: {integrity: sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==} @@ -9297,6 +9846,9 @@ packages: resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==} hasBin: true + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -9397,6 +9949,9 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} @@ -9499,6 +10054,11 @@ packages: '@types/react': optional: true + use-stick-to-bottom@1.1.1: + resolution: {integrity: sha512-JkDp0b0tSmv7HQOOpL1hT7t7QaoUBXkq045WWWOFDTlLGRzgIIyW7vyzOIJzY7L2XVIG7j1yUxeDj2LHm9Vwng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -9555,6 +10115,26 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -9764,11 +10344,11 @@ snapshots: uuid: 11.1.0 zod: 3.25.76 - '@ag-ui/client@0.0.40-alpha.9': + '@ag-ui/client@0.0.40-alpha.10': dependencies: - '@ag-ui/core': 0.0.40-alpha.9 - '@ag-ui/encoder': 0.0.40-alpha.9 - '@ag-ui/proto': 0.0.40-alpha.9 + '@ag-ui/core': 0.0.40-alpha.10 + '@ag-ui/encoder': 0.0.40-alpha.10 + '@ag-ui/proto': 0.0.40-alpha.10 '@types/uuid': 10.0.0 fast-json-patch: 3.1.1 rxjs: 7.8.1 @@ -9786,7 +10366,7 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.40-alpha.9': + '@ag-ui/core@0.0.40-alpha.10': dependencies: rxjs: 7.8.1 zod: 3.25.76 @@ -9796,10 +10376,10 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 - '@ag-ui/encoder@0.0.40-alpha.9': + '@ag-ui/encoder@0.0.40-alpha.10': dependencies: - '@ag-ui/core': 0.0.40-alpha.9 - '@ag-ui/proto': 0.0.40-alpha.9 + '@ag-ui/core': 0.0.40-alpha.10 + '@ag-ui/proto': 0.0.40-alpha.10 '@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@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: @@ -9822,9 +10402,9 @@ snapshots: '@ag-ui/core': 0.0.35 '@bufbuild/protobuf': 2.9.0 - '@ag-ui/proto@0.0.40-alpha.9': + '@ag-ui/proto@0.0.40-alpha.10': dependencies: - '@ag-ui/core': 0.0.40-alpha.9 + '@ag-ui/core': 0.0.40-alpha.10 '@bufbuild/protobuf': 2.9.0 '@protobuf-ts/protoc': 2.11.1 @@ -9926,6 +10506,13 @@ snapshots: '@alloc/quick-lru@5.2.0': {} + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.5.0 + tinyexec: 1.0.1 + + '@antfu/utils@9.3.0': {} + '@anthropic-ai/sdk@0.27.3': dependencies: '@types/node': 18.19.130 @@ -10787,6 +11374,8 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@braintree/sanitize-url@7.1.1': {} + '@browserbasehq/sdk@2.6.0': dependencies: '@types/node': 18.19.130 @@ -10835,15 +11424,32 @@ snapshots: '@cfworker/json-schema@4.1.1': {} - '@clack/core@0.5.0': + '@chevrotain/cst-dts-gen@11.0.3': dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 + '@chevrotain/gast': 11.0.3 + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 - '@clack/prompts@0.11.0': + '@chevrotain/gast@11.0.3': dependencies: - '@clack/core': 0.5.0 - picocolors: 1.1.1 + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 + + '@chevrotain/regexp-to-ast@11.0.3': {} + + '@chevrotain/types@11.0.3': {} + + '@chevrotain/utils@11.0.3': {} + + '@clack/core@0.5.0': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + + '@clack/prompts@0.11.0': + dependencies: + '@clack/core': 0.5.0 + picocolors: 1.1.1 sisteransi: 1.0.5 '@copilotkit/react-core@1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': @@ -10891,13 +11497,13 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.10.6(uwjjxhr52zjctzhvu6qqvyjj4q)': + '@copilotkit/runtime@1.10.6(iqshwn2xropb3vpfei3flnb2ay)': dependencies: - '@ag-ui/client': 0.0.40-alpha.9 - '@ag-ui/core': 0.0.40-alpha.9 - '@ag-ui/encoder': 0.0.40-alpha.9 + '@ag-ui/client': link:sdks/typescript/packages/client + '@ag-ui/core': link:sdks/typescript/packages/core + '@ag-ui/encoder': link:sdks/typescript/packages/encoder '@ag-ui/langgraph': link:integrations/langgraph/typescript - '@ag-ui/proto': 0.0.40-alpha.9 + '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 '@copilotkit/shared': 1.10.6 '@graphql-yoga/plugin-defer-stream': 3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0) @@ -11073,13 +11679,13 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(zpz5usii42i6fql3rrkgx3daf4)': + '@copilotkit/runtime@1.10.6(oefq6yilp5bsxwbn3p2ta6g6we)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': 0.0.40-alpha.9 + '@ag-ui/encoder': 0.0.40-alpha.10 '@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@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.9 + '@ag-ui/proto': 0.0.40-alpha.10 '@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) @@ -11267,6 +11873,65 @@ snapshots: transitivePeerDependencies: - encoding + '@copilotkitnext/core@0.0.19-alpha.0': + dependencies: + '@ag-ui/client': 0.0.40-alpha.10 + '@copilotkitnext/shared': 0.0.19-alpha.0 + 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)': + 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 + '@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-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 + katex: 0.16.25 + lucide-react: 0.525.0(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + streamdown: 1.4.0(@types/react@19.2.2)(react@19.2.0) + tailwind-merge: 3.3.1 + ts-deepmerge: 7.0.3 + tw-animate-css: 1.4.0 + use-stick-to-bottom: 1.1.1(react@19.2.0) + zod: 3.25.76 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - supports-color + + '@copilotkitnext/runtime@0.0.19-alpha.0(openai@4.104.0(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 + hono: 4.9.12 + openai: 4.104.0(ws@8.18.3)(zod@3.25.76) + rxjs: 7.8.1 + + '@copilotkitnext/shared@0.0.19-alpha.0': + dependencies: + '@ag-ui/client': 0.0.40-alpha.10 + partial-json: 0.1.7 + uuid: 11.1.0 + + '@copilotkitnext/web-inspector@0.0.19-alpha.0': + dependencies: + '@ag-ui/client': 0.0.40-alpha.10 + '@copilotkitnext/core': 0.0.19-alpha.0 + lit: 3.3.1 + lucide: 0.525.0 + '@emnapi/core@1.5.0': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -11561,6 +12226,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.0.2': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@antfu/utils': 9.3.0 + '@iconify/types': 2.0.0 + debug: 4.4.3 + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.2 + mlly: 1.8.0 + transitivePeerDependencies: + - supports-color + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 @@ -12269,6 +12949,22 @@ snapshots: '@libsql/win32-x64-msvc@0.5.22': optional: true + '@lit-labs/react@2.1.3(@types/react@19.2.2)': + dependencies: + '@lit/react': 1.0.8(@types/react@19.2.2) + transitivePeerDependencies: + - '@types/react' + + '@lit-labs/ssr-dom-shim@1.4.0': {} + + '@lit/react@1.0.8(@types/react@19.2.2)': + dependencies: + '@types/react': 19.2.2 + + '@lit/reactive-element@2.1.1': + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + '@lukeed/csprng@1.1.0': {} '@lukeed/uuid@2.0.1': @@ -12638,6 +13334,10 @@ snapshots: '@types/react': 19.2.2 react: 19.2.0 + '@mermaid-js/parser@0.6.3': + dependencies: + langium: 3.3.1 + '@modelcontextprotocol/sdk@1.20.0': dependencies: ajv: 6.12.6 @@ -13691,6 +14391,26 @@ snapshots: '@types/react': 19.2.2 '@types/react-dom': 19.2.2(@types/react@19.2.2) + '@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)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.2.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + optionalDependencies: + '@types/react': 19.2.2 + '@types/react-dom': 19.2.2(@types/react@19.2.2) + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.2.0)': dependencies: react: 19.2.0 @@ -13739,6 +14459,15 @@ snapshots: optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + react: 19.2.0 + react-dom: 19.2.0(react@19.2.0) + optionalDependencies: + '@types/react': 19.2.2 + '@types/react-dom': 19.2.2(@types/react@19.2.2) + '@radix-ui/rect@1.1.1': {} '@react-aria/focus@3.21.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': @@ -14036,6 +14765,39 @@ snapshots: prompts: 2.4.2 zod: 3.25.76 + '@shikijs/core@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 + + '@shikijs/engine-oniguruma@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + + '@shikijs/themes@3.14.0': + dependencies: + '@shikijs/types': 3.14.0 + + '@shikijs/types@3.14.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@sinclair/typebox@0.27.8': {} '@sindresorhus/merge-streams@4.0.0': {} @@ -14674,6 +15436,123 @@ snapshots: dependencies: '@types/node': 20.19.21 + '@types/d3-array@3.2.2': {} + + '@types/d3-axis@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-brush@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-chord@3.0.6': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-contour@3.0.6': + dependencies: + '@types/d3-array': 3.2.2 + '@types/geojson': 7946.0.16 + + '@types/d3-delaunay@6.0.4': {} + + '@types/d3-dispatch@3.0.7': {} + + '@types/d3-drag@3.0.7': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-dsv@3.0.7': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-fetch@3.0.7': + dependencies: + '@types/d3-dsv': 3.0.7 + + '@types/d3-force@3.0.10': {} + + '@types/d3-format@3.0.4': {} + + '@types/d3-geo@3.1.0': + dependencies: + '@types/geojson': 7946.0.16 + + '@types/d3-hierarchy@3.1.7': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-polygon@3.0.2': {} + + '@types/d3-quadtree@3.0.6': {} + + '@types/d3-random@3.0.3': {} + + '@types/d3-scale-chromatic@3.1.0': {} + + '@types/d3-scale@4.0.9': + dependencies: + '@types/d3-time': 3.0.4 + + '@types/d3-selection@3.0.11': {} + + '@types/d3-shape@3.1.7': + dependencies: + '@types/d3-path': 3.1.1 + + '@types/d3-time-format@4.0.3': {} + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/d3-transition@3.0.9': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-zoom@3.0.8': + dependencies: + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.11 + + '@types/d3@7.4.3': + dependencies: + '@types/d3-array': 3.2.2 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.7 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.10 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.0 + '@types/d3-hierarchy': 3.1.7 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.1.1 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.6 + '@types/d3-random': 3.0.3 + '@types/d3-scale': 4.0.9 + '@types/d3-scale-chromatic': 3.1.0 + '@types/d3-selection': 3.0.11 + '@types/d3-shape': 3.1.7 + '@types/d3-time': 3.0.4 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.9 + '@types/d3-zoom': 3.0.8 + '@types/debug@4.1.12': dependencies: '@types/ms': 2.1.0 @@ -14702,6 +15581,8 @@ snapshots: '@types/qs': 6.14.0 '@types/serve-static': 1.15.9 + '@types/geojson@7946.0.16': {} + '@types/graceful-fs@4.1.9': dependencies: '@types/node': 20.19.21 @@ -14855,6 +15736,8 @@ snapshots: '@types/tough-cookie@4.0.5': {} + '@types/trusted-types@2.0.7': {} + '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -15499,6 +16382,20 @@ snapshots: chardet@2.1.0: {} + chevrotain-allstar@0.3.1(chevrotain@11.0.3): + dependencies: + chevrotain: 11.0.3 + lodash-es: 4.17.21 + + chevrotain@11.0.3: + dependencies: + '@chevrotain/cst-dts-gen': 11.0.3 + '@chevrotain/gast': 11.0.3 + '@chevrotain/regexp-to-ast': 11.0.3 + '@chevrotain/types': 11.0.3 + '@chevrotain/utils': 11.0.3 + lodash-es: 4.17.21 + chokidar@4.0.3: dependencies: readdirp: 4.1.2 @@ -15589,6 +16486,8 @@ snapshots: commander@4.1.1: {} + commander@7.2.0: {} + commander@8.3.0: {} commander@9.5.0: {} @@ -15641,6 +16540,14 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + cose-base@1.0.3: + dependencies: + layout-base: 1.0.2 + + cose-base@2.2.0: + dependencies: + layout-base: 2.0.1 + create-jest@29.7.0(@types/node@20.19.21): dependencies: '@jest/types': 29.6.3 @@ -15678,6 +16585,190 @@ snapshots: csstype@3.1.3: {} + cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.1): + dependencies: + cose-base: 1.0.3 + cytoscape: 3.33.1 + + cytoscape-fcose@2.2.0(cytoscape@3.33.1): + dependencies: + cose-base: 2.2.0 + cytoscape: 3.33.1 + + cytoscape@3.33.1: {} + + d3-array@2.12.1: + dependencies: + internmap: 1.0.1 + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-axis@3.0.0: {} + + d3-brush@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3-chord@3.0.1: + dependencies: + d3-path: 3.1.0 + + d3-color@3.1.0: {} + + d3-contour@4.0.2: + dependencies: + d3-array: 3.2.4 + + d3-delaunay@6.0.4: + dependencies: + delaunator: 5.0.1 + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-ease@3.0.1: {} + + d3-fetch@3.0.1: + dependencies: + d3-dsv: 3.0.1 + + d3-force@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + + d3-format@3.1.0: {} + + d3-geo@3.1.1: + dependencies: + d3-array: 3.2.4 + + d3-hierarchy@3.1.2: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@1.0.9: {} + + d3-path@3.1.0: {} + + d3-polygon@3.0.1: {} + + d3-quadtree@3.0.1: {} + + d3-random@3.0.1: {} + + d3-sankey@0.12.3: + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + + d3-scale-chromatic@3.1.0: + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-selection@3.0.0: {} + + d3-shape@1.3.7: + dependencies: + d3-path: 1.0.9 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3@7.9.0: + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.1.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.1.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + + dagre-d3-es@7.0.13: + dependencies: + d3: 7.9.0 + lodash-es: 4.17.21 + damerau-levenshtein@1.0.8: {} data-uri-to-buffer@4.0.1: {} @@ -15706,6 +16797,8 @@ snapshots: dateformat@4.6.3: {} + dayjs@1.11.18: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -15761,6 +16854,10 @@ snapshots: defu@6.1.4: {} + delaunator@5.0.1: + dependencies: + robust-predicates: 3.0.2 + delayed-stream@1.0.0: {} depd@2.0.0: {} @@ -15797,6 +16894,10 @@ snapshots: dompurify@3.1.7: {} + dompurify@3.3.0: + optionalDependencies: + '@types/trusted-types': 2.0.7 + dotenv@16.6.1: {} dprint-node@1.0.8: @@ -16721,6 +17822,8 @@ snapshots: globals@14.0.0: {} + globals@15.15.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -16812,6 +17915,8 @@ snapshots: - encoding - supports-color + hachure-fill@0.5.2: {} + handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -16843,6 +17948,28 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-from-dom@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hastscript: 9.0.1 + web-namespaces: 2.0.1 + + hast-util-from-html-isomorphic@2.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-dom: 5.0.1 + hast-util-from-html: 2.0.3 + unist-util-remove-position: 5.0.0 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.3 + hast-util-from-parse5@8.0.3: dependencies: '@types/hast': 3.0.4 @@ -16854,6 +17981,10 @@ snapshots: vfile-location: 5.0.3 web-namespaces: 2.0.1 + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-parse-selector@2.2.5: {} hast-util-parse-selector@4.0.0: @@ -16897,6 +18028,20 @@ snapshots: transitivePeerDependencies: - supports-color + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.8 @@ -16927,6 +18072,13 @@ snapshots: web-namespaces: 2.0.1 zwitch: 2.0.4 + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + hast-util-whitespace@2.0.1: {} hast-util-whitespace@3.0.0: @@ -17089,6 +18241,10 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 + internmap@1.0.1: {} + + internmap@2.0.3: {} + ip-regex@4.3.0: {} ipaddr.js@1.9.1: {} @@ -17766,10 +18922,14 @@ snapshots: dependencies: json-buffer: 3.0.1 + khroma@2.1.0: {} + kleur@3.0.3: {} kleur@4.1.5: {} + 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): 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)) @@ -17795,6 +18955,14 @@ snapshots: - openai - ws + langium@3.3.1: + dependencies: + chevrotain: 11.0.3 + chevrotain-allstar: 0.3.1(chevrotain@11.0.3) + vscode-languageserver: 9.0.1 + 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)): dependencies: '@types/uuid': 10.0.0 @@ -17831,6 +18999,10 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 + layout-base@1.0.2: {} + + layout-base@2.0.1: {} + leven@3.1.0: {} levn@0.4.1: @@ -17908,6 +19080,22 @@ snapshots: dependencies: uc.micro: 2.1.0 + lit-element@4.2.1: + dependencies: + '@lit-labs/ssr-dom-shim': 1.4.0 + '@lit/reactive-element': 2.1.1 + lit-html: 3.3.1 + + lit-html@3.3.1: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.3.1: + dependencies: + '@lit/reactive-element': 2.1.1 + lit-element: 4.2.1 + lit-html: 3.3.1 + load-tsconfig@0.2.5: {} local-pkg@1.1.2: @@ -17924,6 +19112,8 @@ snapshots: dependencies: p-locate: 5.0.0 + lodash-es@4.17.21: {} + lodash.camelcase@4.3.0: {} lodash.get@4.4.2: {} @@ -17980,6 +19170,16 @@ snapshots: dependencies: react: 19.2.0 + lucide-react@0.525.0(react@19.2.0): + dependencies: + react: 19.2.0 + + lucide-react@0.542.0(react@19.2.0): + dependencies: + react: 19.2.0 + + lucide@0.525.0: {} + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -18011,6 +19211,8 @@ snapshots: marked@14.0.0: {} + 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): dependencies: '@clack/prompts': 0.11.0 @@ -18281,6 +19483,31 @@ snapshots: merge2@1.4.1: {} + mermaid@11.12.1: + dependencies: + '@braintree/sanitize-url': 7.1.1 + '@iconify/utils': 3.0.2 + '@mermaid-js/parser': 0.6.3 + '@types/d3': 7.4.3 + cytoscape: 3.33.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.1) + cytoscape-fcose: 2.2.0(cytoscape@3.33.1) + d3: 7.9.0 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.13 + dayjs: 1.11.18 + dompurify: 3.3.0 + katex: 0.16.25 + khroma: 2.1.0 + lodash-es: 4.17.21 + marked: 16.4.1 + roughjs: 4.6.6 + stylis: 4.3.6 + ts-dedent: 2.2.0 + uuid: 11.1.0 + transitivePeerDependencies: + - supports-color + methods@1.1.2: {} micromark-core-commonmark@1.1.0: @@ -18929,6 +20156,14 @@ snapshots: dependencies: mimic-fn: 4.0.0 + oniguruma-parser@0.12.1: {} + + oniguruma-to-es@4.3.3: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + open@10.2.0: dependencies: default-browser: 5.2.1 @@ -19025,6 +20260,8 @@ snapshots: package-json-from-dist@1.0.1: {} + package-manager-detector@1.5.0: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -19065,6 +20302,8 @@ snapshots: partial-json@0.1.7: {} + path-data-parser@0.1.0: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -19210,6 +20449,13 @@ snapshots: optionalDependencies: fsevents: 2.3.2 + points-on-curve@0.2.0: {} + + points-on-path@0.2.1: + dependencies: + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + possible-typed-array-names@1.1.0: {} postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(yaml@2.8.1): @@ -19639,6 +20885,16 @@ snapshots: parse-entities: 2.0.0 prismjs: 1.27.0 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.0.1: + dependencies: + regex-utilities: 2.3.0 + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -19648,6 +20904,18 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 + rehype-harden@1.1.5: {} + + rehype-katex@7.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/katex': 0.16.7 + hast-util-from-html-isomorphic: 2.0.0 + hast-util-to-text: 4.0.2 + katex: 0.16.25 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 @@ -19776,6 +21044,8 @@ snapshots: reusify@1.1.0: {} + robust-predicates@3.0.2: {} + rollup-plugin-esbuild@6.2.1(esbuild@0.25.10)(rollup@4.50.2): dependencies: debug: 4.4.3 @@ -19848,6 +21118,13 @@ snapshots: rope-sequence@1.3.4: {} + roughjs@4.6.6: + dependencies: + hachure-fill: 0.5.2 + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + points-on-path: 0.2.1 + router@2.2.0: dependencies: debug: 4.4.3 @@ -19866,6 +21143,8 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rw@1.3.3: {} + rxjs@7.8.1: dependencies: tslib: 2.8.1 @@ -20024,6 +21303,17 @@ snapshots: shell-quote@1.8.3: {} + shiki@3.14.0: + dependencies: + '@shikijs/core': 3.14.0 + '@shikijs/engine-javascript': 3.14.0 + '@shikijs/engine-oniguruma': 3.14.0 + '@shikijs/langs': 3.14.0 + '@shikijs/themes': 3.14.0 + '@shikijs/types': 3.14.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -20119,6 +21409,26 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 + streamdown@1.4.0(@types/react@19.2.2)(react@19.2.0): + dependencies: + clsx: 2.1.1 + katex: 0.16.25 + lucide-react: 0.542.0(react@19.2.0) + marked: 16.4.1 + mermaid: 11.12.1 + react: 19.2.0 + react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0) + rehype-harden: 1.1.5 + rehype-katex: 7.0.1 + rehype-raw: 7.0.0 + remark-gfm: 4.0.1 + remark-math: 6.0.0 + shiki: 3.14.0 + tailwind-merge: 3.3.1 + transitivePeerDependencies: + - '@types/react' + - supports-color + streamsearch@1.1.0: {} string-length@4.0.2: @@ -20243,6 +21553,8 @@ snapshots: client-only: 0.0.1 react: 19.2.0 + stylis@4.3.6: {} + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.13 @@ -20365,6 +21677,10 @@ snapshots: dependencies: typescript: 5.9.3 + ts-dedent@2.2.0: {} + + ts-deepmerge@7.0.3: {} + ts-error@1.0.6: {} ts-interface-checker@0.1.13: {} @@ -20496,6 +21812,8 @@ snapshots: turbo-windows-64: 2.5.8 turbo-windows-arm64: 2.5.8 + tw-animate-css@1.4.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -20613,6 +21931,11 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-generated@2.0.1: {} unist-util-is@5.2.1: @@ -20745,6 +22068,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.2 + use-stick-to-bottom@1.1.1(react@19.2.0): + dependencies: + react: 19.2.0 + use-sync-external-store@1.6.0(react@19.2.0): dependencies: react: 19.2.0 @@ -20803,6 +22130,23 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-uri@3.0.8: {} + w3c-keyname@2.2.8: {} wait-port@1.1.0: From 05b9a4daa1549916f25b992833a812403eb54a92 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 28 Oct 2025 15:51:28 +0100 Subject: [PATCH 078/113] vnext demo runnign --- apps/dojo/package.json | 2 + .../[integrationId]/[[...slug]]/route.ts | 33 +++-- pnpm-lock.yaml | 115 ++++++++++-------- 3 files changed, 90 insertions(+), 60 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 565cbb19e..8a8cd3d68 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -35,6 +35,7 @@ "@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", @@ -62,6 +63,7 @@ "diff": "^7.0.0", "embla-carousel-react": "^8.6.0", "fast-json-patch": "^3.1.1", + "hono": "^4.10.3", "lucide-react": "^0.477.0", "markdown-it": "^14.1.0", "markdown-it-ins": "^4.0.0", diff --git a/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts index a30f34eeb..f1b05e9d3 100644 --- a/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts +++ b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts @@ -5,18 +5,28 @@ import { } from "@copilotkitnext/runtime"; import { handle } from "hono/vercel"; import type { NextRequest } from "next/server"; +import { BasicAgent } from "@copilotkitnext/agent"; type RouteParams = { - params: { + params: Promise<{ integrationId: string; slug?: string[]; - }; + }>; }; -function createHandler(integrationId: string) { +const handlerCache = new Map>(); + +function getHandler(integrationId: string) { + const cached = handlerCache.get(integrationId); + if (cached) { + return cached; + } + const runtime = new CopilotRuntime({ agents: { - default: null as any, + default: new BasicAgent({ + model: "openai/gpt-4o", + }), }, runner: new InMemoryAgentRunner(), }); @@ -26,16 +36,19 @@ function createHandler(integrationId: string) { basePath: `/api/copilotkitnext/${integrationId}`, }); - return handle(app); + const handler = handle(app); + handlerCache.set(integrationId, handler); + return handler; } -export function GET(request: NextRequest, context: RouteParams) { - const handler = createHandler(context.params.integrationId); +export async function GET(request: NextRequest, context: RouteParams) { + const { integrationId } = await context.params; + const handler = getHandler(integrationId); return handler(request); } -export function POST(request: NextRequest, context: RouteParams) { - const handler = createHandler(context.params.integrationId); +export async function POST(request: NextRequest, context: RouteParams) { + const { integrationId } = await context.params; + const handler = getHandler(integrationId); return handler(request); } - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 78a3a9867..f9ec0554c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,16 +83,16 @@ importers: version: link:../../integrations/agno/typescript '@ag-ui/client': specifier: workspace:* - version: link:../../sdks/typescript/packages/client + version: 0.0.40-alpha.10 '@ag-ui/core': specifier: workspace:* - version: link:../../sdks/typescript/packages/core + version: 0.0.40-alpha.10 '@ag-ui/crewai': specifier: workspace:* version: link:../../integrations/crew-ai/typescript '@ag-ui/encoder': specifier: workspace:* - version: link:../../sdks/typescript/packages/encoder + version: 0.0.40-alpha.10 '@ag-ui/langgraph': specifier: workspace:* version: link:../../integrations/langgraph/typescript @@ -107,7 +107,7 @@ importers: version: link:../../middlewares/middleware-starter '@ag-ui/proto': specifier: workspace:* - version: link:../../sdks/typescript/packages/proto + version: 0.0.40-alpha.10 '@ag-ui/pydantic-ai': specifier: workspace:* version: link:../../integrations/pydantic-ai/typescript @@ -134,13 +134,16 @@ importers: version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@copilotkit/runtime': specifier: 1.10.6 - version: 1.10.6(iqshwn2xropb3vpfei3flnb2ay) + version: 1.10.6(mowpvgryoykmzvzmtdo322deu4) '@copilotkit/runtime-client-gql': specifier: 1.10.6 version: 1.10.6(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': specifier: 1.10.6 version: 1.10.6 + '@copilotkitnext/agent': + specifier: 0.0.19-alpha.0 + version: 0.0.19-alpha.0 '@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) @@ -228,6 +231,9 @@ importers: fast-json-patch: specifier: ^3.1.1 version: 3.1.1 + hono: + specifier: ^4.10.3 + version: 4.10.3 lucide-react: specifier: ^0.477.0 version: 0.477.0(react@19.2.0) @@ -352,7 +358,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -405,7 +411,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -436,7 +442,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -467,7 +473,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -507,7 +513,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -538,7 +544,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -584,7 +590,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -649,7 +655,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -677,7 +683,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -705,7 +711,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -742,7 +748,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -779,7 +785,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -807,7 +813,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -841,7 +847,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -890,7 +896,7 @@ importers: 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) + version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: specifier: ^8.0.2 version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1) @@ -1596,6 +1602,10 @@ packages: '@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==} + engines: {node: '>=18'} + '@copilotkitnext/core@0.0.19-alpha.0': resolution: {integrity: sha512-pIv1mrAW2uNNpaWWgUtkZNhscQwu6dGAfL1BA9WYW0ipZPgrlSbR3OleKV0D5z+uV51XCknWTSNM49ioTcgZZQ==} engines: {node: '>=18'} @@ -7052,6 +7062,10 @@ packages: zod-openapi: optional: true + hono@4.10.3: + 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'} @@ -7777,7 +7791,6 @@ packages: 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: @@ -11497,13 +11510,13 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.10.6(iqshwn2xropb3vpfei3flnb2ay)': + '@copilotkit/runtime@1.10.6(mowpvgryoykmzvzmtdo322deu4)': dependencies: - '@ag-ui/client': link:sdks/typescript/packages/client - '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': link:sdks/typescript/packages/encoder + '@ag-ui/client': 0.0.40-alpha.10 + '@ag-ui/core': 0.0.40-alpha.10 + '@ag-ui/encoder': 0.0.40-alpha.10 '@ag-ui/langgraph': link:integrations/langgraph/typescript - '@ag-ui/proto': link:sdks/typescript/packages/proto + '@ag-ui/proto': 0.0.40-alpha.10 '@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) @@ -11873,6 +11886,19 @@ snapshots: transitivePeerDependencies: - encoding + '@copilotkitnext/agent@0.0.19-alpha.0': + 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) + rxjs: 7.8.1 + zod: 3.25.76 + transitivePeerDependencies: + - supports-color + '@copilotkitnext/core@0.0.19-alpha.0': dependencies: '@ag-ui/client': 0.0.40-alpha.10 @@ -11915,7 +11941,7 @@ snapshots: '@ag-ui/core': 0.0.40-alpha.10 '@ag-ui/encoder': 0.0.40-alpha.10 '@copilotkitnext/shared': 0.0.19-alpha.0 - hono: 4.9.12 + hono: 4.10.3 openai: 4.104.0(ws@8.18.3)(zod@3.25.76) rxjs: 7.8.1 @@ -13109,8 +13135,8 @@ snapshots: ai-v5: ai@5.0.60(zod@3.25.76) date-fns: 3.6.0 dotenv: 16.6.1 - hono: 4.9.12 - hono-openapi: 0.4.8(hono@4.9.12)(openapi-types@12.1.3)(zod@3.25.76) + 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 @@ -18107,6 +18133,14 @@ snapshots: highlightjs-vue@1.0.0: {} + hono-openapi@0.4.8(hono@4.10.3)(openapi-types@12.1.3)(zod@3.25.76): + dependencies: + json-schema-walker: 2.0.0 + openapi-types: 12.1.3 + optionalDependencies: + 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 @@ -18115,6 +18149,8 @@ snapshots: hono: 4.9.12 zod: 3.25.76 + hono@4.10.3: {} + hono@4.9.12: {} html-escaper@2.0.2: {} @@ -21685,27 +21721,6 @@ 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): dependencies: bs-logger: 0.2.6 From 2ce996f61bd8ffd522f495172805695215d0e0e5 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 28 Oct 2025 15:53:07 +0100 Subject: [PATCH 079/113] Update agent.ts --- integrations/a2a/typescript/src/agent.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index eaffa8ee2..e141763fc 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -28,7 +28,7 @@ export interface A2AAgentConfig extends AgentConfig { a2aClient: A2AClient; } -const A2A_UI_EXTENSION_URI = "https://a2ui.org/ext/a2a-ui/v0.1"; +const EXTENSION_URI = "https://a2ui.org/ext/a2a-ui/v0.1"; export class A2AAgent extends AbstractAgent { private readonly a2aClient: A2AClient; @@ -43,7 +43,7 @@ export class A2AAgent extends AbstractAgent { super(rest); this.a2aClient = a2aClient; - this.initializeA2UIExtension(this.a2aClient); + this.initializeExtension(this.a2aClient); } clone() { @@ -256,7 +256,7 @@ export class A2AAgent extends AbstractAgent { }; } - private initializeA2UIExtension(client: A2AClient) { + private initializeExtension(client: A2AClient) { const addExtensionHeader = (headers: Headers) => { const existingValue = headers.get("X-A2A-Extensions") ?? ""; const values = existingValue @@ -264,8 +264,8 @@ export class A2AAgent extends AbstractAgent { .map((value) => value.trim()) .filter(Boolean); - if (!values.includes(A2A_UI_EXTENSION_URI)) { - values.push(A2A_UI_EXTENSION_URI); + if (!values.includes(EXTENSION_URI)) { + values.push(EXTENSION_URI); headers.set("X-A2A-Extensions", values.join(", ")); } }; From 3e3c207e432e70020439714d89e060dd144cd89e Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Wed, 29 Oct 2025 08:42:35 -0700 Subject: [PATCH 080/113] latest 1.5 alpha --- apps/client-cli-example/package.json | 10 +- apps/dojo/package.json | 80 +- .../adk-middleware/typescript/package.json | 11 +- integrations/agno/typescript/package.json | 12 +- .../spring-ai/typescript/package.json | 12 +- integrations/crew-ai/typescript/package.json | 12 +- .../langgraph/typescript/package.json | 18 +- .../llama-index/typescript/package.json | 12 +- .../mastra/typescript/examples/package.json | 14 +- integrations/mastra/typescript/package.json | 16 +- .../pydantic-ai/typescript/package.json | 12 +- .../typescript/package.json | 8 +- .../server-starter/typescript/package.json | 8 +- .../vercel-ai-sdk/typescript/package.json | 16 +- middlewares/a2a-middleware/package.json | 14 +- middlewares/middleware-starter/package.json | 8 +- package.json | 4 +- pnpm-lock.yaml | 4757 ++++++++--------- sdks/typescript/packages/cli/package.json | 14 +- sdks/typescript/packages/client/package.json | 12 +- sdks/typescript/packages/core/package.json | 10 +- sdks/typescript/packages/encoder/package.json | 8 +- sdks/typescript/packages/proto/package.json | 10 +- 23 files changed, 2520 insertions(+), 2558 deletions(-) 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 eb3a1586f..33f4e61de 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -25,32 +25,32 @@ "@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": "0.0.0-feat-cpk-1-5-20251028120232", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251028120232", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251028120232", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251028120232", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251028120232", + "@ai-sdk/openai": "^2.0.57", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251029153759", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251029153759", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251029153759", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251029153759", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251029153759", "@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", + "@mastra/dynamodb": "^0.15.9", + "@mastra/libsql": "^0.15.2", + "@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", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -58,23 +58,23 @@ "diff": "^7.0.0", "embla-carousel-react": "^8.6.0", "fast-json-patch": "^3.1.1", - "hono": "^4.10.1", + "hono": "^4.10.3", "lucide-react": "^0.477.0", "markdown-it": "^14.1.0", "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": "^4.104.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:*", @@ -83,21 +83,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/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 05b9cd0dc..5d4bcb33c 100644 --- a/integrations/agno/typescript/package.json +++ b/integrations/agno/typescript/package.json @@ -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/package.json b/integrations/community/spring-ai/typescript/package.json index a3441a42f..a8a4f9c69 100644 --- a/integrations/community/spring-ai/typescript/package.json +++ b/integrations/community/spring-ai/typescript/package.json @@ -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/package.json b/integrations/crew-ai/typescript/package.json index b5c334022..6490e7111 100644 --- a/integrations/crew-ai/typescript/package.json +++ b/integrations/crew-ai/typescript/package.json @@ -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/langgraph/typescript/package.json b/integrations/langgraph/typescript/package.json index e465fb9d5..27145deac 100644 --- a/integrations/langgraph/typescript/package.json +++ b/integrations/langgraph/typescript/package.json @@ -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.38", - "@ag-ui/client": ">=0.0.38" + "@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/llama-index/typescript/package.json b/integrations/llama-index/typescript/package.json index bb2226b9b..730c309b8 100644 --- a/integrations/llama-index/typescript/package.json +++ b/integrations/llama-index/typescript/package.json @@ -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/mastra/typescript/examples/package.json b/integrations/mastra/typescript/examples/package.json index 4a5c96063..497c36d11 100644 --- a/integrations/mastra/typescript/examples/package.json +++ b/integrations/mastra/typescript/examples/package.json @@ -16,17 +16,17 @@ "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", + "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..93bb7641b 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", + "@ai-sdk/ui-utils": "^1.2.11", "@mastra/client-js": "^0.15.2", "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", "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.20.2", "@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/package.json b/integrations/pydantic-ai/typescript/package.json index e53c3a2ae..fdfcf8aa4 100644 --- a/integrations/pydantic-ai/typescript/package.json +++ b/integrations/pydantic-ai/typescript/package.json @@ -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/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..560f979ec 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": "^4.3.19", + "zod": "^3.25.76" } } diff --git a/middlewares/a2a-middleware/package.json b/middlewares/a2a-middleware/package.json index 39f2cf91d..7c8222c42 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": "^4.3.19", + "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/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 8e7e9a40c..afa043967 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "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", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 585364690..879b2a923 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,10 +9,10 @@ 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 @@ -48,20 +48,20 @@ importers: specifier: 0.12.0 version: 0.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0) open: - specifier: ^10.1.2 + 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: @@ -77,16 +77,16 @@ importers: version: link:../../integrations/agno/typescript '@ag-ui/client': specifier: workspace:* - version: 0.0.40 + version: link:../../sdks/typescript/packages/client '@ag-ui/core': specifier: workspace:* - version: 0.0.40-alpha.6 + version: link:../../sdks/typescript/packages/core '@ag-ui/crewai': specifier: workspace:* version: link:../../integrations/crew-ai/typescript '@ag-ui/encoder': specifier: workspace:* - version: 0.0.40-alpha.6 + version: link:../../sdks/typescript/packages/encoder '@ag-ui/langgraph': specifier: workspace:* version: link:../../integrations/langgraph/typescript @@ -101,7 +101,7 @@ importers: version: link:../../middlewares/middleware-starter '@ag-ui/proto': specifier: workspace:* - version: 0.0.40-alpha.6 + version: link:../../sdks/typescript/packages/proto '@ag-ui/pydantic-ai': specifier: workspace:* version: link:../../integrations/pydantic-ai/typescript @@ -118,23 +118,23 @@ 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: 0.0.0-feat-cpk-1-5-20251028120232 - version: 0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251029153759 + version: 0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251028120232 - version: 0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251029153759 + version: 0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251028120232 - version: 0.0.0-feat-cpk-1-5-20251028120232(64e53d6a38a9d6a8b11809b6b9b1396b) + specifier: 0.0.0-feat-cpk-1-5-20251029153759 + version: 0.0.0-feat-cpk-1-5-20251029153759(598077099cdaa46f4023ae6f6b0e63e2) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251028120232 - version: 0.0.0-feat-cpk-1-5-20251028120232(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251029153759 + version: 0.0.0-feat-cpk-1-5-20251029153759(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251028120232 - version: 0.0.0-feat-cpk-1-5-20251028120232 + specifier: 0.0.0-feat-cpk-1-5-20251029153759 + version: 0.0.0-feat-cpk-1-5-20251029153759 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -142,59 +142,59 @@ importers: specifier: ^0.20.2 version: 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) '@mastra/dynamodb': - specifier: ^0.15.6 - version: 0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + specifier: ^0.15.9 + version: 0.15.9(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) '@mastra/libsql': - specifier: ^0.15.1 - version: 0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + specifier: ^0.15.2 + version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) '@mastra/loggers': - specifier: ^0.10.15 - version: 0.10.15(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + specifier: ^0.10.18 + version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) '@mastra/memory': - specifier: ^0.15.6 - version: 0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76) + specifier: ^0.15.10 + version: 0.15.10(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76) '@mdx-js/loader': - specifier: ^3.1.0 + 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 @@ -217,8 +217,8 @@ importers: specifier: ^3.1.1 version: 3.1.1 hono: - specifier: ^4.10.1 - version: 4.10.1 + specifier: ^4.10.3 + version: 4.10.3 lucide-react: specifier: ^0.477.0 version: 0.477.0(react@19.2.0) @@ -235,29 +235,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 + specifier: ^4.104.0 version: 4.104.0(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 @@ -265,53 +265,53 @@ 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 @@ -330,13 +330,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: @@ -355,19 +355,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: @@ -386,19 +386,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: @@ -417,29 +417,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(ws@8.18.3)(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(ws@8.18.3)(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 @@ -457,19 +457,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: @@ -488,29 +488,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/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(8dc826fe100bbc0d29be9c7fa737bed6) + version: 1.10.6(1f5af21bce261bff0b535dd1d09feb22) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -528,32 +528,32 @@ importers: specifier: workspace:* version: link:../../../sdks/typescript/packages/core '@mastra/core': - specifier: ^0.20.1 + specifier: ^0.20.2 version: 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) '@types/jest': specifier: ^29.5.14 version: 29.5.14 '@types/node': - specifier: ^20.11.19 - version: 20.19.21 + 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) @@ -561,26 +561,26 @@ importers: specifier: ^0.20.2 version: 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) '@mastra/libsql': - specifier: ^0.15.1 - version: 0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + specifier: ^0.15.2 + version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) '@mastra/loggers': - specifier: ^0.10.15 - version: 0.10.15(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + specifier: ^0.10.18 + version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) '@mastra/memory': - specifier: ^0.15.6 - version: 0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76) + specifier: ^0.15.10 + version: 0.15.10(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76) zod: - specifier: ^3.25.48 + 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) typescript: - specifier: ^5.8.3 + specifier: ^5.9.3 version: 5.9.3 integrations/pydantic-ai/typescript: @@ -599,19 +599,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: @@ -627,19 +627,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: @@ -655,31 +655,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 + specifier: ^4.3.19 version: 4.3.19(react@19.2.0)(zod@3.25.76) rxjs: specifier: 7.8.1 version: 7.8.1 zod: - specifier: ^3.22.4 + specifier: ^3.25.76 version: 3.25.76 devDependencies: '@ag-ui/client': @@ -692,34 +692,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 + specifier: ^4.3.19 version: 4.3.19(react@19.2.0)(zod@3.25.76) rxjs: specifier: 7.8.1 version: 7.8.1 zod: - specifier: ^3.22.4 + specifier: ^3.25.76 version: 3.25.76 devDependencies: '@ag-ui/client': @@ -729,19 +729,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: @@ -757,25 +757,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 @@ -784,26 +784,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: @@ -833,26 +833,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: @@ -861,23 +861,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: @@ -890,19 +890,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: @@ -911,8 +911,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 @@ -925,18 +925,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: @@ -956,9 +956,6 @@ packages: '@ag-ui/client@0.0.35': resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==} - '@ag-ui/client@0.0.40': - resolution: {integrity: sha512-4ftyZgMN7DIAX64k7Mdex/KGq7lfz8yxEKzniqosD6TE/xk65k4Z0v3bxTzPk2iS2+Cj2uVBgFkb5lC7k5Loqg==} - '@ag-ui/client@0.0.40-alpha.6': resolution: {integrity: sha512-QIgOY8nJvv3mrDz9OXyaoxwj3Js28YPYXz+myRQ2idR1ghoKq0V9MEZrXoHOE4O6Z7PnUSw5z7zZIemh7YK/5w==} @@ -968,18 +965,12 @@ packages: '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} - '@ag-ui/core@0.0.39': - resolution: {integrity: sha512-T5Hp4oFkQ+H5MynWAvSwrX/rNYJOD+PJ4qPQ0o771oSZQAxoIvDDft47Cx5wRyBNNLXAe1RWqJjfWUUwJFNKqA==} - '@ag-ui/core@0.0.40-alpha.6': resolution: {integrity: sha512-XkZAnmtewucr0yayWxK2GEcOoxaHZ6cSZZKkVFKAEOPJuUwFCFstqS3vh0Z5rUy2ZE8eh8WJylBHidiCRW4yuA==} '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} - '@ag-ui/encoder@0.0.39': - resolution: {integrity: sha512-6fsoFwPWkStK7Uyj3pwBn7+aQjUWf7pbDTSI43cD53sBLvTr5oEFNnoKOzRfC5UqvHc4JjUIuLKPQyjHRwWg4g==} - '@ag-ui/encoder@0.0.40-alpha.6': resolution: {integrity: sha512-q+bpJGp4fMjQplHowmbNaOQrICHzmk1J394jZXmTv/RjysNHtcDrWHythXBiPAnNRutYeqsG6bQJ5PASbQYiqg==} @@ -992,9 +983,6 @@ packages: '@ag-ui/proto@0.0.35': resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==} - '@ag-ui/proto@0.0.39': - resolution: {integrity: sha512-xlj/PzZHkJ3CgoQC5QP9g7DEl/78wUK1+A2rdkoLKoNAMOkM2g6jKw0N88iFIh5GZhtiCNN2wb8XwRWPYx9XQQ==} - '@ag-ui/proto@0.0.40-alpha.6': resolution: {integrity: sha512-xFw9igIC7OGdq/t1biUXRMinaC0sPLkavjj2oz820KaJe1uZOTSRfAK1qEgswoHJU1N4vRg0RQDEhd1wN8+GGg==} @@ -1004,18 +992,36 @@ packages: 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.33': resolution: {integrity: sha512-v9i3GPEo4t3fGcSkQkc07xM6KJN75VUv7C1Mqmmsu2xD8lQwnQfsrgAXyNuWe20yGY0eHuheSPDZhiqsGKtH1g==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/gateway@2.0.3': + resolution: {integrity: sha512-/vCoMKtod+A74/BbkWsaAflWKz1ovhX5lmJpIaXQXtd6gyexZncjotBTbFM8rVJT9LKJ/Kx7iVVo3vh+KT+IJg==} + 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.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'} @@ -1034,8 +1040,8 @@ 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.57': + resolution: {integrity: sha512-ad2e4Ah9KdLnchMcWFv2FfU1JCwm50b3+UZq2VhkO8qLYEh2kh/aVQomZyAsIbx5ft5nOv2KmDwZrefXkeKttQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -1052,8 +1058,8 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@3.0.12': - resolution: {integrity: sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==} + '@ai-sdk/provider-utils@3.0.14': + resolution: {integrity: sha512-CYRU6L7IlR7KslSBVxvlqlybQvXJln/PI57O8swhOaDIURZbjRP2AY3igKgUsrmWqqnFFUHP+AwTN8xqJAknnA==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -1132,139 +1138,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' @@ -1272,28 +1278,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': @@ -1304,8 +1310,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 @@ -1314,8 +1320,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': @@ -1350,8 +1356,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': @@ -1362,8 +1368,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 @@ -1464,14 +1470,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 @@ -1484,12 +1490,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': @@ -1510,8 +1516,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==} @@ -1537,8 +1543,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251028120232': - resolution: {integrity: sha512-Qy/uZsKoiPNnXWFBk/+mF1kOyDWa5V6qmVLhIDBtPMWGByWD4Nk5snI6bAtcu+KD6gdW6u1sOtKCeYF+TcP2Lw==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251029153759': + resolution: {integrity: sha512-+ztIg5dJpcLhPXE6lCIcZY4mrIpBLs8EbZLi5IpTs6oHJtQOXkfGXId8HOcyoKn4Mfmt0pUkhEoAVYqHfQEjQg==} peerDependencies: '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.16 @@ -1546,19 +1552,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251028120232': - resolution: {integrity: sha512-/AU/3uG6afIgE27uRliVoFNRsoJy6XxInqN6Feayvb1glWnAEFwTiOfi5GSUZsNyEdj8IR6jL7qyNgtMlauiQw==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251029153759': + resolution: {integrity: sha512-1RvKa2tXfYqqrzOJ+HxKuXIPo9sHMDm8o2hXEOSszoSIeIM0sK52Cpj0kTz2N7NtqlMZvJPVni2SkEwCCgdqJw==} peerDependencies: '@copilotkitnext/core': 0.0.16 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251028120232': - resolution: {integrity: sha512-oOfU6Y4T1m75Wb8TTg/2Q07Ssym3m+h2YNLpg9kas1jarpp6uUpYKoc2CjVP4pr60SDd7f7CQEvc4NonOEUprg==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251029153759': + resolution: {integrity: sha512-jVadvwjqj1vlv0eMiiuza2HLecLIuZjp64xwWiyQ6fvoD5GsIO3OEjnqfkQdtn4QEAN2yuUQ085e0EAjhNPXvg==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251028120232': - resolution: {integrity: sha512-HsyFrzmAA6pC/Vx+8BdIdb9hUKYgkwNTg97/yhyQtEefzKyfpXCqrjyaNxLdf0mEFR3yuAa+pGnoQQs7gVuzIg==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251029153759': + resolution: {integrity: sha512-qktKcbl7Tdvo25KdWKeKfI0Lmf1tjcBV6P2mX0r0l4vp3tx+b3wmkTlTWvT58t/g+dCJOuHpdz4AdhKlQway8Q==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1575,8 +1581,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251028120232': - resolution: {integrity: sha512-A8NYaZ9h/i9gnMZepOeRiijlibuto4qD9Ko9PlvTV2ZQklizfwV/vaiGX9r/YvpFSY4yK5r+SGpEBGcAOUchvQ==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251029153759': + resolution: {integrity: sha512-A8RVW40fcNhKzdPPkhsEib+WMvWr4Nij1zheC+c/lc7Z5YITFMisLYM6s3qQakMHR0bM6ieJbGPD5LboqRIEPA==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -1614,11 +1620,11 @@ packages: resolution: {integrity: sha512-YGioU631EyG5h/7f8ovgUm4JvgbbaAym1lNpQMjVhcUQj1ofZ8v0N59E6mi17oEh6AxHJjkQUUm0IZEoGr27Bg==} 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==} @@ -1635,158 +1641,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] @@ -1797,36 +1803,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': @@ -2192,10 +2202,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'} @@ -2682,8 +2688,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': @@ -2729,12 +2735,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'} @@ -2858,35 +2858,35 @@ packages: '@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.21.0-0' + '@mastra/core': '>=0.19.0-alpha.1 <0.22.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': @@ -2894,10 +2894,10 @@ 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': @@ -2912,6 +2912,12 @@ packages: ai: ^4.0.0 || ^5.0.0 zod: ^3.25.0 || ^4.0.0 + '@mastra/schema-compat@0.11.6': + resolution: {integrity: sha512-oPsnOj6CyWjCyXitDB3BLQjzf83Xo/TsyKZAMPoRaxRd673C1QzHf/1hwF2vTunpGeiwpBpVJE+WO7rYUX9ZvQ==} + peerDependencies: + ai: ^4.0.0 || ^5.0.0 + zod: ^3.25.0 || ^4.0.0 + '@mastra/server@0.20.2': resolution: {integrity: sha512-Cnuwh+6Evjf5K0R9Jt6euBR89wmTXNwbvuPpVD+LN3nBxwxJj0AcG5Yfy0rXJIur8UFW9aP8d6DwOvClLCKv/w==} peerDependencies: @@ -2938,8 +2944,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': @@ -2967,8 +2973,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' @@ -3070,8 +3076,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' @@ -3082,8 +3088,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' @@ -3434,14 +3440,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 @@ -3452,8 +3458,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 @@ -3470,8 +3476,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' @@ -3488,8 +3494,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' @@ -3506,8 +3512,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' @@ -3518,8 +3524,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' @@ -3551,6 +3557,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'} @@ -3939,33 +3948,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==} @@ -3982,8 +3991,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 @@ -4041,8 +4050,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] @@ -4051,8 +4060,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] @@ -4061,8 +4070,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] @@ -4071,8 +4080,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] @@ -4081,8 +4090,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] @@ -4091,8 +4100,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] @@ -4101,8 +4110,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] @@ -4111,8 +4120,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] @@ -4121,8 +4130,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] @@ -4131,8 +4140,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] @@ -4141,8 +4150,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] @@ -4151,8 +4160,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] @@ -4161,8 +4170,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] @@ -4171,8 +4180,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] @@ -4181,8 +4190,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] @@ -4191,8 +4200,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] @@ -4201,8 +4210,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] @@ -4211,8 +4220,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] @@ -4221,8 +4230,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] @@ -4231,13 +4240,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] @@ -4246,16 +4255,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==} @@ -4277,23 +4286,23 @@ packages: resolution: {integrity: sha512-0dtu/5ApsOZ24qgaZwtif8jVwqol7a4m1x5AxPuM1k5wxhqU7t/qEfBGtaSki1R8VlbTQfCj5PAlO45NKCa7Gg==} hasBin: true - '@shikijs/core@3.13.0': - resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} + '@shikijs/core@3.14.0': + resolution: {integrity: sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw==} - '@shikijs/engine-javascript@3.13.0': - resolution: {integrity: sha512-Ty7xv32XCp8u0eQt8rItpMs6rU9Ki6LJ1dQOW3V/56PKDcpvfHPnYFbsx5FFUP2Yim34m/UkazidamMNVR4vKg==} + '@shikijs/engine-javascript@3.14.0': + resolution: {integrity: sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ==} - '@shikijs/engine-oniguruma@3.13.0': - resolution: {integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==} + '@shikijs/engine-oniguruma@3.14.0': + resolution: {integrity: sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug==} - '@shikijs/langs@3.13.0': - resolution: {integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==} + '@shikijs/langs@3.14.0': + resolution: {integrity: sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg==} - '@shikijs/themes@3.13.0': - resolution: {integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==} + '@shikijs/themes@3.14.0': + resolution: {integrity: sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA==} - '@shikijs/types@3.13.0': - resolution: {integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==} + '@shikijs/types@3.14.0': + resolution: {integrity: sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -4319,52 +4328,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': @@ -4375,72 +4384,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': @@ -4467,32 +4476,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': @@ -4507,8 +4516,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': @@ -4527,65 +4536,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: @@ -4596,24 +4605,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==} @@ -4629,148 +4638,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==} @@ -4916,8 +4925,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==} @@ -4994,11 +5003,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.13': + resolution: {integrity: sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A==} - '@types/node@22.18.10': - resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} + '@types/node@24.9.2': + resolution: {integrity: sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==} '@types/oracledb@6.5.2': resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==} @@ -5038,14 +5050,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==} @@ -5074,8 +5086,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==} @@ -5083,66 +5095,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': @@ -5249,8 +5261,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': @@ -5338,6 +5350,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + ai@5.0.82: + resolution: {integrity: sha512-wmZZfsU40qB77umrcj3YzMSk6cUP5gxLXZDPfiSQLBLegTVXPUdSJC603tR7JB5JkhBDzN5VLaliuRKQGKpUXg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -5454,8 +5472,8 @@ 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==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -5495,8 +5513,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: @@ -5530,8 +5548,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 @@ -5600,8 +5618,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==} @@ -5662,10 +5680,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'} @@ -5727,8 +5741,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==} @@ -5802,8 +5816,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==} @@ -6025,8 +6039,8 @@ packages: resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} engines: {node: '>=12'} - dagre-d3-es@7.0.11: - resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} + dagre-d3-es@7.0.13: + resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -6232,11 +6246,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==} @@ -6332,8 +6346,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 @@ -6442,8 +6456,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: @@ -6813,8 +6827,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==} @@ -6882,8 +6896,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 @@ -7045,12 +7059,8 @@ packages: zod-openapi: optional: true - hono@4.10.1: - resolution: {integrity: sha512-rpGNOfacO4WEPClfkEt1yfl8cbu10uB1lNpiI33AKoiAHwOS8lV748JiLx4b5ozO/u4qLjIvfpFsPXdY5Qjkmg==} - engines: {node: '>=16.9.0'} - - hono@4.9.12: - resolution: {integrity: sha512-SrTC0YxqPwnN7yKa8gg/giLyQ2pILCKoideIHbYbFQlWZjYt68D2A4Ae1hehO/aDQ6RmTcpqOV/O2yBtMzx/VQ==} + hono@4.10.3: + resolution: {integrity: sha512-2LOYWUbnhdxdL8MNbNg9XZig6k+cZXm5IjHn2Aviv7honhBMOHb+jxrKIeJRZJRmn+htUCKhaicxwXuUDlchRA==} engines: {node: '>=16.9.0'} html-escaper@2.0.2: @@ -7731,8 +7741,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': '*' @@ -7769,76 +7779,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: @@ -7961,8 +7977,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==} @@ -8097,8 +8113,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.12.0: - resolution: {integrity: sha512-ZudVx73BwrMJfCFmSSJT84y6u5brEoV8DOItdHomNLz32uBjNrelm7mg95X7g+C6UoQH/W6mBLGDEDv73JdxBg==} + mermaid@11.12.1: + resolution: {integrity: sha512-UlIZrRariB11TY1RtTgUWp65tphtBv4CSq7vyS2ZZ2TgoMjs2nloq+wFqxiwcxlhHUvs7DPGgMjs2aeQxz5h9g==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -8322,10 +8338,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==} @@ -8450,8 +8462,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==} @@ -8752,8 +8764,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: @@ -8911,14 +8923,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==} @@ -8929,8 +8941,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==} @@ -8938,8 +8950,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==} @@ -9117,8 +9129,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: @@ -9210,8 +9222,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 @@ -9258,8 +9270,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 @@ -9384,8 +9396,8 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - shiki@3.13.0: - resolution: {integrity: sha512-aZW4l8Og16CokuCLf8CF8kq+KK2yOygapU5m3+hoGw0Mdosc6fPitjM+ujYarppj5ZIKGyPDPP1vqmQhr+5/0g==} + shiki@3.14.0: + resolution: {integrity: sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -9426,9 +9438,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==} @@ -9631,8 +9640,8 @@ packages: 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==} @@ -9642,17 +9651,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==} @@ -9775,8 +9780,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: @@ -9936,6 +9941,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'} @@ -9955,8 +9963,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==} @@ -9979,8 +9987,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==} @@ -10010,8 +10018,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' @@ -10089,8 +10097,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: @@ -10259,10 +10267,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'} @@ -10295,8 +10299,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==} @@ -10321,7 +10325,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 @@ -10341,18 +10345,6 @@ snapshots: uuid: 11.1.0 zod: 3.25.76 - '@ag-ui/client@0.0.40': - dependencies: - '@ag-ui/core': 0.0.39 - '@ag-ui/encoder': 0.0.39 - '@ag-ui/proto': 0.0.39 - '@types/uuid': 10.0.0 - fast-json-patch: 3.1.1 - rxjs: 7.8.1 - untruncate-json: 0.0.1 - uuid: 11.1.0 - zod: 3.25.76 - '@ag-ui/client@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 @@ -10375,11 +10367,6 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.39': - dependencies: - rxjs: 7.8.1 - zod: 3.25.76 - '@ag-ui/core@0.0.40-alpha.6': dependencies: rxjs: 7.8.1 @@ -10390,22 +10377,17 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 - '@ag-ui/encoder@0.0.39': - dependencies: - '@ag-ui/core': 0.0.39 - '@ag-ui/proto': 0.0.39 - '@ag-ui/encoder@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 '@ag-ui/proto': 0.0.40-alpha.6 - '@ag-ui/langgraph@0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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@4.104.0(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@4.104.0(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@4.104.0(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: @@ -10419,18 +10401,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.39': - dependencies: - '@ag-ui/core': 0.0.39 - '@bufbuild/protobuf': 2.9.0 - '@protobuf-ts/protoc': 2.11.1 + '@bufbuild/protobuf': 2.10.0 '@ag-ui/proto@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 - '@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)': @@ -10439,11 +10415,24 @@ snapshots: '@ai-sdk/provider-utils': 3.0.10(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.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.3(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.14(zod@3.25.76) + '@vercel/oidc': 3.0.3 zod: 3.25.76 '@ai-sdk/google@2.0.17(zod@3.25.76)': @@ -10452,6 +10441,12 @@ snapshots: '@ai-sdk/provider-utils': 3.0.10(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 @@ -10470,10 +10465,10 @@ 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.57(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.12(zod@3.25.76) + '@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)': @@ -10490,7 +10485,7 @@ snapshots: eventsource-parser: 3.0.6 zod: 3.25.76 - '@ai-sdk/provider-utils@3.0.12(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 @@ -10566,7 +10561,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': @@ -10574,7 +10569,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 @@ -10582,7 +10577,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': @@ -10591,347 +10586,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 @@ -10941,218 +10936,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 @@ -11162,213 +11155,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 @@ -11377,25 +11370,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': {} @@ -11429,7 +11422,7 @@ snapshots: - encoding - utf-8-validate - '@bufbuild/protobuf@2.9.0': {} + '@bufbuild/protobuf@2.10.0': {} '@cfworker/json-schema@4.1.1': {} @@ -11461,10 +11454,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251028120232(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251029153759(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11479,11 +11472,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251028120232(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251028120232(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251029153759(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11501,9 +11494,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251028120232(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251029153759(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11512,40 +11505,40 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251028120232(64e53d6a38a9d6a8b11809b6b9b1396b)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251029153759(598077099cdaa46f4023ae6f6b0e63e2)': dependencies: - '@ag-ui/client': 0.0.40 - '@ag-ui/core': 0.0.40-alpha.6 - '@ag-ui/encoder': 0.0.40-alpha.6 + '@ag-ui/client': link:sdks/typescript/packages/client + '@ag-ui/core': link:sdks/typescript/packages/core + '@ag-ui/encoder': link:sdks/typescript/packages/encoder '@ag-ui/langgraph': link:integrations/langgraph/typescript - '@ag-ui/proto': 0.0.40-alpha.6 + '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251028120232 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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(a6f05470c76b31786172bd3244671918) - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) - '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@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@4.104.0(ws@8.18.3)(zod@3.25.76))) + '@langchain/community': 0.3.57(0a641055e4160bf052669db489f82b00) + '@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@4.104.0(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@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.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@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) '@scarf/scarf': 1.4.0 class-transformer: 0.5.1 class-validator: 0.14.2 express: 4.21.2 graphql: 16.11.0 - graphql-scalars: 1.24.2(graphql@16.11.0) + graphql-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) + 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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) partial-json: 0.1.7 - pino: 9.13.1 + pino: 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' @@ -11696,38 +11689,38 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(8dc826fe100bbc0d29be9c7fa737bed6)': + '@copilotkit/runtime@1.10.6(1f5af21bce261bff0b535dd1d09feb22)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core '@ag-ui/encoder': 0.0.40-alpha.6 - '@ag-ui/langgraph': 0.0.18(@ag-ui/client@sdks+typescript+packages+client)(@ag-ui/core@sdks+typescript+packages+core)(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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@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/proto': 0.0.40-alpha.6 '@anthropic-ai/sdk': 0.57.0 '@copilotkit/shared': 1.10.6 '@graphql-yoga/plugin-defer-stream': 3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0) - '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(a6f05470c76b31786172bd3244671918) - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) - '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@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@4.104.0(ws@8.18.3)(zod@3.25.76))) + '@langchain/community': 0.3.57(0a641055e4160bf052669db489f82b00) + '@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@4.104.0(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@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.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@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) '@scarf/scarf': 1.4.0 class-transformer: 0.5.1 class-validator: 0.14.2 express: 4.21.2 graphql: 16.11.0 - graphql-scalars: 1.24.2(graphql@16.11.0) + graphql-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) + 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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) partial-json: 0.1.7 - pino: 9.13.1 + pino: 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' @@ -11878,7 +11871,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251028120232': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251029153759': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -11905,11 +11898,11 @@ snapshots: '@copilotkitnext/agent@0.0.17': dependencies: '@ag-ui/client': 0.0.40-alpha.6 - '@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) + '@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.82(zod@3.25.76) rxjs: 7.8.1 zod: 3.25.76 transitivePeerDependencies: @@ -11957,7 +11950,7 @@ snapshots: '@ag-ui/core': 0.0.40-alpha.6 '@ag-ui/encoder': 0.0.40-alpha.6 '@copilotkitnext/shared': 0.0.17 - hono: 4.10.1 + hono: 4.10.3 openai: 4.104.0(ws@8.18.3)(zod@3.25.76) rxjs: 7.8.1 @@ -11978,13 +11971,13 @@ snapshots: 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 @@ -12011,107 +12004,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 @@ -12126,13 +12123,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': @@ -12168,7 +12165,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': {} @@ -12353,7 +12350,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': @@ -12364,128 +12361,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: @@ -12496,10 +12493,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': @@ -12515,7 +12508,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 @@ -12528,14 +12521,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 @@ -12560,7 +12553,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': @@ -12578,7 +12571,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 @@ -12600,9 +12593,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 @@ -12636,7 +12629,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: @@ -12647,7 +12640,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 @@ -12670,8 +12663,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': @@ -12697,40 +12690,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@4.104.0(ws@8.18.3)(zod@3.25.76)))': dependencies: - '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 - '@aws-sdk/client-bedrock-runtime': 3.910.0 - '@aws-sdk/client-kendra': 3.910.0 - '@aws-sdk/credential-provider-node': 3.910.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + '@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@4.104.0(ws@8.18.3)(zod@3.25.76)) transitivePeerDependencies: - aws-crt - '@langchain/community@0.3.57(a6f05470c76b31786172bd3244671918)': + '@langchain/community@0.3.57(0a641055e4160bf052669db489f82b00)': dependencies: '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) '@ibm-cloud/watsonx-ai': 1.7.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) + '@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@4.104.0(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@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76))) binary-extensions: 2.3.0 expr-eval: 2.0.2 flat: 5.0.2 ibm-cloud-sdk-core: 5.4.3 js-yaml: 4.1.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + 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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(handlebars@4.7.8)(openai@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76)) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) uuid: 10.0.0 zod: 3.25.76 optionalDependencies: '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 - '@aws-sdk/client-bedrock-runtime': 3.910.0 - '@aws-sdk/client-dynamodb': 3.910.0 - '@aws-sdk/client-kendra': 3.910.0 - '@aws-sdk/credential-provider-node': 3.910.0 + '@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 @@ -12740,7 +12733,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: @@ -12764,14 +12757,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@4.104.0(ws@8.18.3)(zod@3.25.76))': dependencies: '@cfworker/json-schema': 4.1.1 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.21 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + 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@4.104.0(ws@8.18.3)(zod@3.25.76)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -12784,14 +12777,14 @@ 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(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@5.12.2(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 @@ -12804,59 +12797,59 @@ snapshots: - '@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)': + '@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@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@4.104.0(ws@8.18.3)(zod@3.25.76)) uuid: 10.0.0 zod-to-json-schema: 3.24.6(zod@3.25.76) transitivePeerDependencies: - zod - '@langchain/google-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@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-common': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) + '@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@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) google-auth-library: 8.9.0 transitivePeerDependencies: - encoding - supports-color - zod - '@langchain/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@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': dependencies: '@types/json-schema': 7.0.15 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + '@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@4.104.0(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@4.104.0(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@4.104.0(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(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@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)) 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)': + '@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@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@4.104.0(ws@8.18.3)(zod@3.25.76)) js-tiktoken: 1.0.21 openai: 4.104.0(ws@8.18.3)(zod@3.25.76) zod: 3.25.76 @@ -12865,23 +12858,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@4.104.0(ws@8.18.3)(zod@3.25.76)))': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + '@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@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76)))': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + '@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@4.104.0(ws@8.18.3)(zod@3.25.76)) uuid: 10.0.0 weaviate-client: 3.9.0 transitivePeerDependencies: @@ -13031,27 +13015,27 @@ snapshots: '@ai-sdk/ui-utils': 1.2.11(zod@3.25.76) '@mastra/schema-compat': 0.10.5(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76) '@opentelemetry/api': 1.9.0 - '@opentelemetry/auto-instrumentations-node': 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)) - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/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) 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 @@ -13092,30 +13076,30 @@ snapshots: '@mastra/schema-compat': 0.11.4(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76) '@openrouter/ai-sdk-provider-v5': '@openrouter/ai-sdk-provider@1.2.0(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)' '@opentelemetry/api': 1.9.0 - '@opentelemetry/auto-instrumentations-node': 0.62.2(@opentelemetry/api@1.9.0)(@opentelemetry/core@2.1.0(@opentelemetry/api@1.9.0)) - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/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-v5: ai@5.0.60(zod@3.25.76) date-fns: 3.6.0 dotenv: 16.6.1 - hono: 4.10.1 - hono-openapi: 0.4.8(hono@4.10.1)(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) js-tiktoken: 1.0.21 json-schema: 0.4.0 json-schema-to-zod: 2.6.1 p-map: 7.0.3 - pino: 9.13.1 + pino: 9.14.0 pino-pretty: 13.1.2 radash: 12.1.1 sift: 17.1.3 @@ -13141,15 +13125,15 @@ snapshots: '@mastra/deployer@0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(typescript@5.9.3)(zod@3.25.76)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 - '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) '@mastra/server': 0.20.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(zod@3.25.76) '@neon-rs/load': 0.1.82 '@optimize-lodash/rollup-plugin': 5.0.2(rollup@4.50.2) '@rollup/plugin-alias': 5.1.1(rollup@4.50.2) - '@rollup/plugin-commonjs': 28.0.7(rollup@4.50.2) + '@rollup/plugin-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) @@ -13159,15 +13143,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) @@ -13176,12 +13160,12 @@ 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.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))': dependencies: - '@aws-sdk/client-dynamodb': 3.910.0 - '@aws-sdk/lib-dynamodb': 3.910.0(@aws-sdk/client-dynamodb@3.910.0) + '@aws-sdk/client-dynamodb': 3.919.0 + '@aws-sdk/lib-dynamodb': 3.919.0(@aws-sdk/client-dynamodb@3.919.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) + electrodb: 3.5.0(@aws-sdk/client-dynamodb@3.919.0) transitivePeerDependencies: - aws-crt @@ -13193,7 +13177,7 @@ snapshots: - 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.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))': dependencies: '@libsql/client': 0.15.15 '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -13201,29 +13185,29 @@ snapshots: - 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)(react@19.2.0)(zod@3.25.76))': dependencies: '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) - pino: 9.13.1 + pino: 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))': dependencies: '@mastra/core': 0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) - pino: 9.13.1 + 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/mcp@0.13.5(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(@types/json-schema@7.0.15)(zod@3.25.76)': dependencies: '@apidevtools/json-schema-ref-parser': 14.2.1(@types/json-schema@7.0.15) '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) - '@modelcontextprotocol/sdk': 1.20.0 + '@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' @@ -13240,7 +13224,7 @@ 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) @@ -13248,10 +13232,10 @@ snapshots: - 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)(react@19.2.0)(zod@3.25.76))(react@19.2.0)(zod@3.25.76)': dependencies: '@mastra/core': 0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) - '@mastra/schema-compat': 0.11.4(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76) + '@mastra/schema-compat': 0.11.6(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76) '@upstash/redis': 1.35.6 ai: 4.3.19(react@19.2.0)(zod@3.25.76) ai-v5: ai@5.0.60(zod@3.25.76) @@ -13261,7 +13245,7 @@ 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) @@ -13282,7 +13266,16 @@ snapshots: ai: 4.3.19(react@19.2.0)(zod@3.25.76) json-schema: 0.4.0 zod: 3.25.76 - zod-from-json-schema: 0.5.0 + zod-from-json-schema: 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/schema-compat@0.11.6(ai@4.3.19(react@19.2.0)(zod@3.25.76))(zod@3.25.76)': + dependencies: + ai: 4.3.19(react@19.2.0)(zod@3.25.76) + json-schema: 0.4.0 + zod: 3.25.76 + zod-from-json-schema: 0.5.1 zod-from-json-schema-v3: zod-from-json-schema@0.0.5 zod-to-json-schema: 3.24.6(zod@3.25.76) @@ -13338,7 +13331,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 @@ -13368,8 +13361,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 @@ -13383,7 +13376,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: @@ -13439,10 +13432,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) @@ -13484,12 +13477,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 @@ -13499,7 +13492,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 @@ -13508,7 +13501,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 @@ -13621,7 +13614,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: @@ -13639,7 +13632,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: @@ -13665,7 +13658,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 @@ -13697,7 +13690,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: @@ -13706,7 +13699,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: @@ -13715,7 +13708,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 @@ -13745,7 +13738,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: @@ -13789,7 +13782,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: @@ -13822,7 +13815,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: @@ -13874,7 +13867,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) @@ -13887,7 +13880,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 @@ -13904,7 +13897,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: @@ -13945,7 +13938,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 @@ -14004,37 +13997,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: @@ -14047,10 +14040,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)': @@ -14066,11 +14059,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: @@ -14107,11 +14100,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)': @@ -14121,19 +14114,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: @@ -14144,13 +14137,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 @@ -14519,25 +14514,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': {} @@ -14547,21 +14542,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 @@ -14578,7 +14573,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 @@ -14597,135 +14592,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': {} @@ -14765,33 +14760,33 @@ snapshots: prompts: 2.4.2 zod: 3.25.76 - '@shikijs/core@3.13.0': + '@shikijs/core@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.13.0': + '@shikijs/engine-javascript@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.3 - '@shikijs/engine-oniguruma@3.13.0': + '@shikijs/engine-oniguruma@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.13.0': + '@shikijs/langs@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 - '@shikijs/themes@3.13.0': + '@shikijs/themes@3.14.0': dependencies: - '@shikijs/types': 3.13.0 + '@shikijs/types': 3.14.0 - '@shikijs/types@3.13.0': + '@shikijs/types@3.14.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -14819,88 +14814,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': @@ -14911,120 +14907,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': @@ -15055,49 +15051,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 @@ -15118,10 +15114,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': @@ -15140,82 +15136,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: @@ -15225,169 +15218,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': {} @@ -15400,41 +15393,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': {} @@ -15569,23 +15562,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': 20.19.24 '@types/hast@2.3.10': dependencies: @@ -15600,7 +15593,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': {} @@ -15644,7 +15637,7 @@ snapshots: '@types/memcached@2.2.10': dependencies: - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/mime@1.3.5': {} @@ -15652,28 +15645,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': 20.19.24 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: @@ -15681,7 +15678,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 @@ -15709,30 +15706,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': {} @@ -15746,27 +15743,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 @@ -15775,56 +15772,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 @@ -15835,20 +15832,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': {} @@ -15923,7 +15920,7 @@ snapshots: transitivePeerDependencies: - graphql - '@vercel/oidc@3.0.2': {} + '@vercel/oidc@3.0.3': {} '@webcontainer/env@1.1.1': {} @@ -16018,6 +16015,14 @@ snapshots: '@opentelemetry/api': 1.9.0 zod: 3.25.76 + ai@5.0.82(zod@3.25.76): + dependencies: + '@ai-sdk/gateway': 2.0.3(zod@3.25.76) + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.14(zod@3.25.76) + '@opentelemetry/api': 1.9.0 + zod: 3.25.76 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -16151,7 +16156,7 @@ snapshots: axe-core@4.11.0: {} - axios@1.12.2(debug@4.4.3): + axios@1.13.1(debug@4.4.3): dependencies: follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.4 @@ -16161,13 +16166,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 @@ -16187,34 +16192,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: {} @@ -16222,7 +16227,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.16: {} + baseline-browser-mapping@2.8.21: {} bignumber.js@9.3.1: {} @@ -16280,13 +16285,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: @@ -16313,9 +16318,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: @@ -16349,7 +16354,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001750: {} + caniuse-lite@1.0.30001751: {} case-anything@2.1.13: {} @@ -16400,8 +16405,6 @@ snapshots: dependencies: readdirp: 4.1.2 - chownr@3.0.0: {} - ci-info@3.9.0: {} citty@0.1.6: @@ -16414,9 +16417,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: @@ -16450,7 +16453,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: @@ -16511,7 +16514,7 @@ snapshots: consola@3.4.2: {} - console-table-printer@2.14.6: + console-table-printer@2.15.0: dependencies: simple-wcswidth: 1.1.2 @@ -16548,13 +16551,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: @@ -16764,7 +16767,7 @@ snapshots: d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dagre-d3-es@7.0.11: + dagre-d3-es@7.0.13: dependencies: d3: 7.9.0 lodash-es: 4.17.21 @@ -16920,15 +16923,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: @@ -17088,34 +17091,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: {} @@ -17127,19 +17130,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: @@ -17151,37 +17154,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@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 @@ -17190,9 +17193,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@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 @@ -17204,13 +17207,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 @@ -17220,7 +17223,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 @@ -17229,11 +17232,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 @@ -17241,7 +17244,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 @@ -17264,21 +17267,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 @@ -17618,9 +17620,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: @@ -17781,7 +17783,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 @@ -17869,7 +17871,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 @@ -18107,25 +18109,15 @@ snapshots: highlightjs-vue@1.0.0: {} - hono-openapi@0.4.8(hono@4.10.1)(openapi-types@12.1.3)(zod@3.25.76): - dependencies: - json-schema-walker: 2.0.0 - openapi-types: 12.1.3 - optionalDependencies: - hono: 4.10.1 - zod: 3.25.76 - - hono-openapi@0.4.8(hono@4.9.12)(openapi-types@12.1.3)(zod@3.25.76): + hono-openapi@0.4.8(hono@4.10.3)(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 + hono: 4.10.3 zod: 3.25.76 - hono@4.10.1: {} - - hono@4.9.12: {} + hono@4.10.3: {} html-escaper@2.0.2: {} @@ -18170,7 +18162,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.1(debug@4.4.3) camelcase: 6.3.0 debug: 4.4.3 dotenv: 16.6.1 @@ -18180,7 +18172,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.1(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -18233,17 +18225,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: @@ -18454,8 +18446,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 @@ -18464,8 +18456,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 @@ -18518,7 +18510,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 @@ -18538,16 +18530,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 @@ -18557,12 +18549,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 @@ -18582,7 +18574,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 @@ -18611,7 +18603,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 @@ -18621,7 +18613,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 @@ -18660,7 +18652,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): @@ -18684,7 +18676,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 @@ -18695,7 +18687,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 @@ -18723,10 +18715,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 @@ -18743,15 +18735,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 @@ -18769,7 +18761,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 @@ -18788,7 +18780,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 @@ -18797,17 +18789,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 @@ -18940,28 +18932,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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3): dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) + '@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@4.104.0(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@4.104.0(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@4.104.0(ws@8.18.3)(zod@3.25.76))) js-tiktoken: 1.0.21 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + 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@4.104.0(ws@8.18.3)(zod@3.25.76)) openapi-types: 12.1.3 p-retry: 4.6.2 uuid: 10.0.0 yaml: 2.8.1 zod: 3.25.76 optionalDependencies: - '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) - axios: 1.12.2(debug@4.4.3) + '@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@4.104.0(ws@8.18.3)(zod@3.25.76))) + axios: 1.13.1(debug@4.4.3) handlebars: 4.7.8 transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/exporter-trace-otlp-proto' - '@opentelemetry/sdk-trace-base' + - encoding - openai - ws @@ -18973,11 +18966,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@4.104.0(ws@8.18.3)(zod@3.25.76)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 - console-table-printer: 2.14.6 + console-table-printer: 2.15.0 p-queue: 6.6.2 p-retry: 4.6.2 semver: 7.7.3 @@ -18985,14 +18978,14 @@ 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) + '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - langsmith@0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)): + 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 @@ -19000,7 +18993,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) + '@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: {} @@ -19020,7 +19013,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: @@ -19037,50 +19030,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-x64@1.30.1: + lightningcss-darwin-arm64@1.30.2: optional: true - lightningcss-freebsd-x64@1.30.1: + lightningcss-darwin-x64@1.30.2: optional: true - lightningcss-linux-arm-gnueabihf@1.30.1: + lightningcss-freebsd-x64@1.30.2: optional: true - lightningcss-linux-arm64-gnu@1.30.1: + lightningcss-linux-arm-gnueabihf@1.30.2: optional: true - lightningcss-linux-arm64-musl@1.30.1: + lightningcss-linux-arm64-gnu@1.30.2: optional: true - lightningcss-linux-x64-gnu@1.30.1: + lightningcss-linux-arm64-musl@1.30.2: optional: true - lightningcss-linux-x64-musl@1.30.1: + lightningcss-linux-x64-gnu@1.30.2: optional: true - lightningcss-win32-arm64-msvc@1.30.1: + lightningcss-linux-x64-musl@1.30.2: optional: true - lightningcss-win32-x64-msvc@1.30.1: + lightningcss-win32-arm64-msvc@1.30.2: optional: true - lightningcss@1.30.1: + lightningcss-win32-x64-msvc@1.30.2: + optional: true + + 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: {} @@ -19150,7 +19147,7 @@ snapshots: log-symbols@5.1.0: dependencies: - chalk: 5.6.2 + chalk: 5.2.0 is-unicode-supported: 1.3.0 long@5.3.2: {} @@ -19190,7 +19187,7 @@ snapshots: lucide@0.525.0: {} - magic-string@0.30.19: + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -19229,16 +19226,16 @@ snapshots: '@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/loggers': 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + '@mastra/mcp': 0.13.5(@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.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 @@ -19276,8 +19273,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: @@ -19434,7 +19431,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: @@ -19493,7 +19490,7 @@ snapshots: merge2@1.4.1: {} - mermaid@11.12.0: + mermaid@11.12.1: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 3.0.2 @@ -19504,7 +19501,7 @@ snapshots: cytoscape-fcose: 2.2.0(cytoscape@3.33.1) d3: 7.9.0 d3-sankey: 0.12.3 - dagre-d3-es: 7.0.11 + dagre-d3-es: 7.0.13 dayjs: 1.11.18 dompurify: 3.3.0 katex: 0.16.25 @@ -19962,10 +19959,6 @@ snapshots: minipass@7.1.2: {} - minizlib@3.1.0: - dependencies: - minipass: 7.1.2 - mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -20025,7 +20018,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) @@ -20079,7 +20072,7 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.23: {} + node-releases@2.0.26: {} normalize-path@3.0.0: {} @@ -20200,6 +20193,7 @@ snapshots: optionalDependencies: ws: 8.18.3 zod: 3.25.76 + optional: true openapi-types@12.1.3: {} @@ -20417,8 +20411,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 @@ -20427,7 +20422,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 @@ -20508,7 +20502,7 @@ snapshots: posthog-node@4.18.0: dependencies: - axios: 1.12.2(debug@4.4.3) + axios: 1.13.1(debug@4.4.3) transitivePeerDependencies: - debug @@ -20561,101 +20555,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: @@ -20670,7 +20664,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: @@ -20868,13 +20862,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: {} @@ -20923,7 +20917,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: @@ -21011,7 +21005,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 @@ -21029,7 +21023,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 @@ -21046,9 +21040,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.1(debug@4.4.3)): dependencies: - axios: 1.12.2(debug@4.4.3) + axios: 1.13.1(debug@4.4.3) retry@0.13.1: {} @@ -21056,12 +21050,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: @@ -21098,32 +21092,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: {} @@ -21313,14 +21307,14 @@ snapshots: shell-quote@1.8.3: {} - shiki@3.13.0: + shiki@3.14.0: dependencies: - '@shikijs/core': 3.13.0 - '@shikijs/engine-javascript': 3.13.0 - '@shikijs/engine-oniguruma': 3.13.0 - '@shikijs/langs': 3.13.0 - '@shikijs/themes': 3.13.0 - '@shikijs/types': 3.13.0 + '@shikijs/core': 3.14.0 + '@shikijs/engine-javascript': 3.14.0 + '@shikijs/engine-oniguruma': 3.14.0 + '@shikijs/langs': 3.14.0 + '@shikijs/themes': 3.14.0 + '@shikijs/types': 3.14.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -21369,8 +21363,6 @@ snapshots: slash@3.0.0: {} - slow-redact@0.3.2: {} - sonic-boom@4.2.0: dependencies: atomic-sleep: 1.0.0 @@ -21425,7 +21417,7 @@ snapshots: katex: 0.16.25 lucide-react: 0.542.0(react@19.2.0) marked: 16.4.1 - mermaid: 11.12.0 + mermaid: 11.12.1 react: 19.2.0 react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0) rehype-harden: 1.1.5 @@ -21433,7 +21425,7 @@ snapshots: rehype-raw: 7.0.0 remark-gfm: 4.0.1 remark-math: 6.0.0 - shiki: 3.13.0 + shiki: 3.14.0 tailwind-merge: 3.3.1 transitivePeerDependencies: - '@types/react' @@ -21591,26 +21583,18 @@ snapshots: 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 @@ -21695,33 +21679,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 @@ -21730,10 +21693,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: @@ -21742,11 +21705,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 @@ -21762,18 +21725,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 @@ -21790,8 +21753,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 @@ -21834,14 +21797,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': 20.19.24 '@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: @@ -21919,6 +21882,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.16.0: {} + unicorn-magic@0.3.0: {} unified@10.1.2: @@ -21944,7 +21909,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: {} @@ -21952,7 +21917,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 @@ -21986,10 +21951,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: @@ -22000,8 +21965,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: {} @@ -22040,9 +22005,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 @@ -22109,7 +22074,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: {} @@ -22303,8 +22268,6 @@ snapshots: yallist@4.0.0: {} - yallist@5.0.0: {} - yaml@2.8.1: {} yargs-parser@21.1.1: {} @@ -22333,7 +22296,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/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/package.json b/sdks/typescript/packages/client/package.json index c963ffe1a..68577739a 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -25,21 +25,21 @@ }, "dependencies": { "@ag-ui/core": "workspace:*", - "@ag-ui/proto": "workspace:*", "@ag-ui/encoder": "workspace:*", + "@ag-ui/proto": "workspace:*", "@types/uuid": "^10.0.0", "fast-json-patch": "^3.1.1", "rxjs": "7.8.1", "untruncate-json": "^0.0.1", "uuid": "^11.1.0", - "zod": "^3.22.4" + "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/core/package.json b/sdks/typescript/packages/core/package.json index d3626f998..79bd6ef77 100644 --- a/sdks/typescript/packages/core/package.json +++ b/sdks/typescript/packages/core/package.json @@ -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/encoder/package.json b/sdks/typescript/packages/encoder/package.json index b95c5ee70..835e7c400 100644 --- a/sdks/typescript/packages/encoder/package.json +++ b/sdks/typescript/packages/encoder/package.json @@ -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 7c1fed72b..ec61c27a5 100644 --- a/sdks/typescript/packages/proto/package.json +++ b/sdks/typescript/packages/proto/package.json @@ -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" } } From ce1f29935d97650ef2c0e223096b5b2f5f3670ad Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 30 Oct 2025 09:37:19 +0100 Subject: [PATCH 081/113] Ensure that we retain activity messages --- .../__tests__/agent-multiple-runs.test.ts | 67 ++++++++++++++++++- .../apply/__tests__/default.activity.test.ts | 39 ++++++++--- .../__tests__/default.concurrent.test.ts | 30 +++++---- .../src/apply/__tests__/default.state.test.ts | 23 +++++-- .../__tests__/default.text-message.test.ts | 13 +++- .../__tests__/default.tool-calls.test.ts | 28 +++++--- .../packages/client/src/apply/default.ts | 2 +- 7 files changed, 157 insertions(+), 45 deletions(-) diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts index 4f3633d6a..009df2cb7 100644 --- a/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts +++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-multiple-runs.test.ts @@ -1,5 +1,5 @@ -import { AbstractAgent, RunAgentResult } from "../agent"; -import { BaseEvent, EventType, Message, RunAgentInput, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, RunStartedEvent, RunFinishedEvent } from "@ag-ui/core"; +import { AbstractAgent } from "../agent"; +import { BaseEvent, EventType, Message, RunAgentInput, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, RunStartedEvent, RunFinishedEvent, ActivitySnapshotEvent } from "@ag-ui/core"; import { Observable, of } from "rxjs"; describe("AbstractAgent multiple runs", () => { @@ -273,4 +273,65 @@ describe("AbstractAgent multiple runs", () => { expect(agent.messages[0].content).toBe("Initial message"); expect(agent.messages[1].content).toBe("Response message"); }); -}); \ No newline at end of file + + it("should retain activity messages across runs", async () => { + const agent = new TestAgent({ + threadId: "test-thread", + initialMessages: [], + }); + + const firstRunEvents: BaseEvent[] = [ + { + type: EventType.RUN_STARTED, + threadId: "test-thread", + runId: "run-1", + } as RunStartedEvent, + { + type: EventType.ACTIVITY_SNAPSHOT, + messageId: "activity-1", + activityType: "PLAN", + content: { tasks: ["task 1"] }, + } as ActivitySnapshotEvent, + { + type: EventType.RUN_FINISHED, + } as RunFinishedEvent, + ]; + + agent.setEvents(firstRunEvents); + await agent.runAgent({ runId: "run-1" }); + + expect(agent.messages.length).toBe(1); + expect(agent.messages[0].role).toBe("activity"); + + const secondRunEvents: BaseEvent[] = [ + { + type: EventType.RUN_STARTED, + threadId: "test-thread", + runId: "run-2", + } as RunStartedEvent, + { + type: EventType.TEXT_MESSAGE_START, + messageId: "msg-2", + role: "assistant", + } as TextMessageStartEvent, + { + type: EventType.TEXT_MESSAGE_CONTENT, + messageId: "msg-2", + delta: "Hello from run 2", + } as TextMessageContentEvent, + { + type: EventType.TEXT_MESSAGE_END, + messageId: "msg-2", + } as TextMessageEndEvent, + { + type: EventType.RUN_FINISHED, + } as RunFinishedEvent, + ]; + + agent.setEvents(secondRunEvents); + await agent.runAgent({ runId: "run-2" }); + + expect(agent.messages.length).toBe(2); + expect(agent.messages.some((message) => message.role === "activity" && message.id === "activity-1")).toBe(true); + }); +}); diff --git a/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts index 76f83da9e..e6d0c8263 100644 --- a/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts +++ b/sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts @@ -6,12 +6,17 @@ import { ActivitySnapshotEvent, BaseEvent, EventType, + Message, RunAgentInput, } from "@ag-ui/core"; import { defaultApplyEvents } from "../default"; import { AbstractAgent } from "@/agent"; -const FAKE_AGENT = null as unknown as AbstractAgent; +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 () => { @@ -25,7 +30,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); events$.next({ @@ -68,7 +74,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); const firstOperation = { id: "op-1", status: "PENDING" }; @@ -138,7 +145,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages as Message[]); + const result$ = defaultApplyEvents(initialState, events$, agent, []); const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); events$.next({ @@ -168,7 +176,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages as Message[]); + const result$ = defaultApplyEvents(initialState, events$, agent, []); const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); events$.next({ @@ -206,7 +215,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages as Message[]); + const result$ = defaultApplyEvents(initialState, events$, agent, []); const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); events$.next({ @@ -242,7 +252,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages as Message[]); + const result$ = defaultApplyEvents(initialState, events$, agent, []); const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); events$.next({ @@ -279,7 +290,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages as Message[]); + const result$ = defaultApplyEvents(initialState, events$, agent, []); const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); events$.next({ @@ -310,7 +322,8 @@ describe("defaultApplyEvents with activity events", () => { context: [], }; - const firstResult$ = defaultApplyEvents(baseInput, firstRunEvents$, FAKE_AGENT, []); + const baseAgent = createAgent(baseInput.messages); + const firstResult$ = defaultApplyEvents(baseInput, firstRunEvents$, baseAgent, []); const firstUpdatesPromise = firstValueFrom(firstResult$.pipe(toArray())); firstRunEvents$.next({ @@ -331,7 +344,13 @@ describe("defaultApplyEvents with activity events", () => { messages: nextMessages, }; - const secondResult$ = defaultApplyEvents(secondInput, secondRunEvents$, FAKE_AGENT, []); + const secondAgent = createAgent(secondInput.messages); + const secondResult$ = defaultApplyEvents( + secondInput, + secondRunEvents$, + secondAgent, + [], + ); const secondUpdatesPromise = firstValueFrom(secondResult$.pipe(toArray())); secondRunEvents$.next({ 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 49cad4552..322ada5e8 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"; -// Mock agent for testing -const FAKE_AGENT = { - messages: [], - state: {}, - agentId: "test-agent", -} as unknown as AbstractAgent; +const createAgent = (messages: Message[] = []) => + ({ + messages: messages.map((message) => ({ ...message })), + state: {}, + agentId: "test-agent", + } as unknown as AbstractAgent); describe("defaultApplyEvents concurrent operations", () => { // Test: Concurrent text messages should create separate messages @@ -41,7 +41,8 @@ describe("defaultApplyEvents concurrent operations", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -125,7 +126,8 @@ describe("defaultApplyEvents concurrent operations", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -218,7 +220,8 @@ describe("defaultApplyEvents concurrent operations", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -333,7 +336,8 @@ describe("defaultApplyEvents concurrent operations", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -444,7 +448,8 @@ describe("defaultApplyEvents concurrent operations", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -552,7 +557,8 @@ describe("defaultApplyEvents concurrent operations", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, 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 71e64efc1..41627ee2e 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,10 +1,14 @@ import { AbstractAgent } from "@/agent"; import { defaultApplyEvents } from "../default"; -import { EventType, StateDeltaEvent } from "@ag-ui/core"; +import { EventType, Message, StateDeltaEvent } from "@ag-ui/core"; import { of } from "rxjs"; import { AgentStateMutation } from "@/agent/subscriber"; -const FAKE_AGENT = null as unknown as AbstractAgent; +const createAgent = (messages: Message[] = []) => + ({ + messages: messages.map((message) => ({ ...message })), + state: {}, + } as unknown as AbstractAgent); describe("defaultApplyEvents - State Patching", () => { it("should apply state delta patch correctly", (done) => { @@ -30,7 +34,8 @@ describe("defaultApplyEvents - State Patching", () => { const events$ = of(stateDelta); - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages as Message[]); + const result$ = defaultApplyEvents(initialState, events$, agent, []); result$.subscribe((update: AgentStateMutation) => { expect(update.state).toEqual({ @@ -65,7 +70,8 @@ describe("defaultApplyEvents - State Patching", () => { const events$ = of(stateDelta); // Cast to any to bypass strict type checking - const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []); + const agent = createAgent((initialState as any).messages as Message[]); + const result$ = defaultApplyEvents(initialState as any, events$, agent, []); result$.subscribe((update: AgentStateMutation) => { expect(update.state).toEqual({ @@ -102,7 +108,8 @@ describe("defaultApplyEvents - State Patching", () => { const events$ = of(stateDelta); // Cast to any to bypass strict type checking - const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []); + const agent = createAgent((initialState as any).messages as Message[]); + const result$ = defaultApplyEvents(initialState as any, events$, agent, []); result$.subscribe((update: AgentStateMutation) => { expect(update.state).toEqual({ @@ -137,7 +144,8 @@ describe("defaultApplyEvents - State Patching", () => { const events$ = of(...stateDeltas); // Cast to any to bypass strict type checking - const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []); + const agent = createAgent((initialState as any).messages as Message[]); + const result$ = defaultApplyEvents(initialState as any, events$, agent, []); let updateCount = 0; result$.subscribe((update: AgentStateMutation) => { @@ -176,7 +184,8 @@ describe("defaultApplyEvents - State Patching", () => { const events$ = of(stateDelta); // Cast to any to bypass strict type checking - const result$ = defaultApplyEvents(initialState as any, events$, FAKE_AGENT, []); + const agent = createAgent((initialState as any).messages as Message[]); + const result$ = defaultApplyEvents(initialState as any, events$, 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 581f418df..031713f29 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,6 +4,7 @@ import { firstValueFrom } from "rxjs"; import { BaseEvent, EventType, + Message, RunStartedEvent, TextMessageStartEvent, TextMessageContentEvent, @@ -13,7 +14,11 @@ import { import { defaultApplyEvents } from "../default"; import { AbstractAgent } from "@/agent"; -const FAKE_AGENT = null as unknown as AbstractAgent; +const createAgent = (messages: Message[] = []) => + ({ + messages: messages.map((message) => ({ ...message })), + state: {}, + } as unknown as AbstractAgent); describe("defaultApplyEvents with text messages", () => { it("should handle text message events correctly", async () => { @@ -29,7 +34,8 @@ describe("defaultApplyEvents with text messages", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -102,7 +108,8 @@ describe("defaultApplyEvents with text messages", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, 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 bcce0ab40..261057677 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,19 +2,24 @@ import { Subject } from "rxjs"; import { toArray } from "rxjs/operators"; import { firstValueFrom } from "rxjs"; import { + AssistantMessage, BaseEvent, EventType, + Message, + RunAgentInput, RunStartedEvent, - ToolCallStartEvent, ToolCallArgsEvent, ToolCallEndEvent, - RunAgentInput, - AssistantMessage, + ToolCallStartEvent, } from "@ag-ui/core"; import { defaultApplyEvents } from "../default"; import { AbstractAgent } from "@/agent"; -const FAKE_AGENT = null as unknown as AbstractAgent; +const createAgent = (messages: Message[] = []) => + ({ + messages: messages.map((message) => ({ ...message })), + state: {}, + } as unknown as AbstractAgent); describe("defaultApplyEvents with tool calls", () => { it("should handle a single tool call correctly", async () => { @@ -33,7 +38,8 @@ describe("defaultApplyEvents with tool calls", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -120,7 +126,8 @@ describe("defaultApplyEvents with tool calls", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -224,7 +231,8 @@ describe("defaultApplyEvents with tool calls", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages as Message[]); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -287,7 +295,8 @@ describe("defaultApplyEvents with tool calls", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); @@ -346,7 +355,8 @@ describe("defaultApplyEvents with tool calls", () => { }; // Create the observable stream - const result$ = defaultApplyEvents(initialState, events$, FAKE_AGENT, []); + const agent = createAgent(initialState.messages); + const result$ = defaultApplyEvents(initialState, events$, agent, []); // Collect all emitted state updates in an array const stateUpdatesPromise = firstValueFrom(result$.pipe(toArray())); diff --git a/sdks/typescript/packages/client/src/apply/default.ts b/sdks/typescript/packages/client/src/apply/default.ts index 1f74efc72..6cd3dcd8b 100644 --- a/sdks/typescript/packages/client/src/apply/default.ts +++ b/sdks/typescript/packages/client/src/apply/default.ts @@ -48,7 +48,7 @@ export const defaultApplyEvents = ( agent: AbstractAgent, subscribers: AgentSubscriber[], ): Observable => { - let messages = structuredClone_(input.messages); + let messages = structuredClone_(agent.messages); let state = structuredClone_(input.state); let currentMutation: AgentStateMutation = {}; From a3e9c7e66916cf47e7569dc80e6a31ea87f3d137 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 30 Oct 2025 09:37:59 +0100 Subject: [PATCH 082/113] v0.0.40-alpha.11 --- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index 5d730101d..b3a480309 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.10", + "version": "0.0.40-alpha.11", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index d258bd0d4..ef6eefbba 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.10", + "version": "0.0.40-alpha.11", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index e309fb82c..5e5aba046 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-alpha.10", + "version": "0.0.40-alpha.11", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index d514a7434..2167df068 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-alpha.10", + "version": "0.0.40-alpha.11", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index abf100c4d..f485dcfea 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-alpha.10", + "version": "0.0.40-alpha.11", "private": false, "publishConfig": { "access": "public" From db4a018b6134e37d0d18c918715d83fbe3ab2f15 Mon Sep 17 00:00:00 2001 From: ran Date: Thu, 30 Oct 2025 15:28:56 +0100 Subject: [PATCH 083/113] try the new coagents state render --- apps/dojo/package.json | 10 +++--- pnpm-lock.yaml | 74 +++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 33f4e61de..32175fad5 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251029153759", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251029153759", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251029153759", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251029153759", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251029153759", + "@copilotkit/react-core": "0.0.0-v1-5-coagent-state-render-20251030142659", + "@copilotkit/react-ui": "0.0.0-v1-5-coagent-state-render-20251030142659", + "@copilotkit/runtime": "0.0.0-v1-5-coagent-state-render-20251030142659", + "@copilotkit/runtime-client-gql": "0.0.0-v1-5-coagent-state-render-20251030142659", + "@copilotkit/shared": "0.0.0-v1-5-coagent-state-render-20251030142659", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 879b2a923..8d80daec6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251029153759 - version: 0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 + version: 0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251029153759 - version: 0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 + version: 0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251029153759 - version: 0.0.0-feat-cpk-1-5-20251029153759(598077099cdaa46f4023ae6f6b0e63e2) + specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 + version: 0.0.0-v1-5-coagent-state-render-20251030142659(598077099cdaa46f4023ae6f6b0e63e2) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251029153759 - version: 0.0.0-feat-cpk-1-5-20251029153759(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 + version: 0.0.0-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251029153759 - version: 0.0.0-feat-cpk-1-5-20251029153759 + specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 + version: 0.0.0-v1-5-coagent-state-render-20251030142659 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1543,28 +1543,28 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251029153759': - resolution: {integrity: sha512-+ztIg5dJpcLhPXE6lCIcZY4mrIpBLs8EbZLi5IpTs6oHJtQOXkfGXId8HOcyoKn4Mfmt0pUkhEoAVYqHfQEjQg==} + '@copilotkit/react-core@0.0.0-v1-5-coagent-state-render-20251030142659': + resolution: {integrity: sha512-yG3GDatSHqF/wd3QfPZ5s2pMJQh3QO0yu/eUijO4XHw+9Ji4wUXHadhbJY+chZjMfN/ogmMXapn8dT4al2QeRA==} peerDependencies: - '@copilotkitnext/core': 0.0.16 - '@copilotkitnext/react': 0.0.16 + '@copilotkitnext/core': 0.0.20 + '@copilotkitnext/react': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251029153759': - resolution: {integrity: sha512-1RvKa2tXfYqqrzOJ+HxKuXIPo9sHMDm8o2hXEOSszoSIeIM0sK52Cpj0kTz2N7NtqlMZvJPVni2SkEwCCgdqJw==} + '@copilotkit/react-ui@0.0.0-v1-5-coagent-state-render-20251030142659': + resolution: {integrity: sha512-vRyIR/PCb8KJ6Lsqlbhdrzof5rElbjfWz97zeWawkeD7E+cFevrzmFjtr//cyfSCSLhP+DjqQEr9zy40OGla7g==} peerDependencies: - '@copilotkitnext/core': 0.0.16 + '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251029153759': - resolution: {integrity: sha512-jVadvwjqj1vlv0eMiiuza2HLecLIuZjp64xwWiyQ6fvoD5GsIO3OEjnqfkQdtn4QEAN2yuUQ085e0EAjhNPXvg==} + '@copilotkit/runtime-client-gql@0.0.0-v1-5-coagent-state-render-20251030142659': + resolution: {integrity: sha512-yaEMbMAheHE5LDZgkjSsgebKGGMETHpKBQZGMjuOwMevQs7fanrUMu58Q3DmZcgay9sVBmHDPNMDDwQyveVUQA==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251029153759': - resolution: {integrity: sha512-qktKcbl7Tdvo25KdWKeKfI0Lmf1tjcBV6P2mX0r0l4vp3tx+b3wmkTlTWvT58t/g+dCJOuHpdz4AdhKlQway8Q==} + '@copilotkit/runtime@0.0.0-v1-5-coagent-state-render-20251030142659': + resolution: {integrity: sha512-rysTRMcg6F33NxJZIgnvAM1e9duMdsKq3JfazR3CYflRtpSOnvEWtR8mnJU9qHZWw4sVm6HGgbXzVuHQiJV+/g==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1581,8 +1581,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251029153759': - resolution: {integrity: sha512-A8RVW40fcNhKzdPPkhsEib+WMvWr4Nij1zheC+c/lc7Z5YITFMisLYM6s3qQakMHR0bM6ieJbGPD5LboqRIEPA==} + '@copilotkit/shared@0.0.0-v1-5-coagent-state-render-20251030142659': + resolution: {integrity: sha512-2aOfoe4DYdKUc7yIiXcJ/IbD3ETfhm6OZDDtwvh0S6HrvbtckfeSEQp1FIVhUPbYTq3MhQ+WGiqxVtTNJV8w2A==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11454,10 +11454,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251029153759(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 + '@copilotkit/runtime-client-gql': 0.0.0-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11472,11 +11472,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251029153759(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251029153759(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 + '@copilotkit/react-core': 0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11494,9 +11494,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251029153759(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 + '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11505,7 +11505,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251029153759(598077099cdaa46f4023ae6f6b0e63e2)': + '@copilotkit/runtime@0.0.0-v1-5-coagent-state-render-20251030142659(598077099cdaa46f4023ae6f6b0e63e2)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11513,7 +11513,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251029153759 + '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11871,7 +11871,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251029153759': + '@copilotkit/shared@0.0.0-v1-5-coagent-state-render-20251030142659': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -18172,7 +18172,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.13.1(debug@4.4.3)) + retry-axios: 2.6.0(axios@1.13.1) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -21040,7 +21040,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.13.1(debug@4.4.3)): + retry-axios@2.6.0(axios@1.13.1): dependencies: axios: 1.13.1(debug@4.4.3) From 7e2d484e592131b9c2b3171f1ede4821870d1347 Mon Sep 17 00:00:00 2001 From: ran Date: Thu, 30 Oct 2025 15:48:34 +0100 Subject: [PATCH 084/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++---- pnpm-lock.yaml | 64 +++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 32175fad5..c2eee8e98 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-v1-5-coagent-state-render-20251030142659", - "@copilotkit/react-ui": "0.0.0-v1-5-coagent-state-render-20251030142659", - "@copilotkit/runtime": "0.0.0-v1-5-coagent-state-render-20251030142659", - "@copilotkit/runtime-client-gql": "0.0.0-v1-5-coagent-state-render-20251030142659", - "@copilotkit/shared": "0.0.0-v1-5-coagent-state-render-20251030142659", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251030144653", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251030144653", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251030144653", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251030144653", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251030144653", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d80daec6..40eff6b92 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 - version: 0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251030144653 + version: 0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-v1-5-coagent-state-render-20251030142659 - version: 0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251030144653 + version: 0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-v1-5-coagent-state-render-20251030142659 - version: 0.0.0-v1-5-coagent-state-render-20251030142659(598077099cdaa46f4023ae6f6b0e63e2) + specifier: 0.0.0-feat-cpk-1-5-20251030144653 + version: 0.0.0-feat-cpk-1-5-20251030144653(598077099cdaa46f4023ae6f6b0e63e2) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 - version: 0.0.0-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251030144653 + version: 0.0.0-feat-cpk-1-5-20251030144653(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-v1-5-coagent-state-render-20251030142659 - version: 0.0.0-v1-5-coagent-state-render-20251030142659 + specifier: 0.0.0-feat-cpk-1-5-20251030144653 + version: 0.0.0-feat-cpk-1-5-20251030144653 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1543,8 +1543,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-v1-5-coagent-state-render-20251030142659': - resolution: {integrity: sha512-yG3GDatSHqF/wd3QfPZ5s2pMJQh3QO0yu/eUijO4XHw+9Ji4wUXHadhbJY+chZjMfN/ogmMXapn8dT4al2QeRA==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251030144653': + resolution: {integrity: sha512-PUSVBNySL/YDSXLyG1NKuEBwtmerCtyIO2j9cpeeYpXBGvE+lHvyjEncVSlqVnD3o4s7YTJIsdWHlwhPrBRxjA==} peerDependencies: '@copilotkitnext/core': 0.0.20 '@copilotkitnext/react': 0.0.20 @@ -1552,19 +1552,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-v1-5-coagent-state-render-20251030142659': - resolution: {integrity: sha512-vRyIR/PCb8KJ6Lsqlbhdrzof5rElbjfWz97zeWawkeD7E+cFevrzmFjtr//cyfSCSLhP+DjqQEr9zy40OGla7g==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251030144653': + resolution: {integrity: sha512-ImlmsxrdMnz6r9nSu3ULU9hydjKDUNX/62btgEpOSEMdgu5NvYe8X21IwXx2A7pDKwGc87AN6qYOIrkTm6J0bw==} peerDependencies: '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-v1-5-coagent-state-render-20251030142659': - resolution: {integrity: sha512-yaEMbMAheHE5LDZgkjSsgebKGGMETHpKBQZGMjuOwMevQs7fanrUMu58Q3DmZcgay9sVBmHDPNMDDwQyveVUQA==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251030144653': + resolution: {integrity: sha512-Uk6ouSJ6U/xe+pgZ42kPpbzOragRX85NMzCm4RD71j9Wi+R05TZz41DPT/1wBwHCv3JrWcsuLuGR6rhC7JwKxw==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-v1-5-coagent-state-render-20251030142659': - resolution: {integrity: sha512-rysTRMcg6F33NxJZIgnvAM1e9duMdsKq3JfazR3CYflRtpSOnvEWtR8mnJU9qHZWw4sVm6HGgbXzVuHQiJV+/g==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251030144653': + resolution: {integrity: sha512-LgFIlVZCJLZjULywrewoBCDRVPYPXkUvxJ2AHTSpjCCOdMRJZrrkn7xNpOwzT7e9WiI93AR68QeszJEnltG7sw==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1581,8 +1581,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-v1-5-coagent-state-render-20251030142659': - resolution: {integrity: sha512-2aOfoe4DYdKUc7yIiXcJ/IbD3ETfhm6OZDDtwvh0S6HrvbtckfeSEQp1FIVhUPbYTq3MhQ+WGiqxVtTNJV8w2A==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251030144653': + resolution: {integrity: sha512-nESR/2xldEoFK5bO0iuD8gDtIjB9WSwQSZmRxLnun29ce40yktuwJ3Tw4D2EbJcCgdC3M3S2fcy/9UVdpwQFCg==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11454,10 +11454,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251030144653(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11472,11 +11472,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-v1-5-coagent-state-render-20251030142659(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251030144653(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11494,9 +11494,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-v1-5-coagent-state-render-20251030142659(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251030144653(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11505,7 +11505,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-v1-5-coagent-state-render-20251030142659(598077099cdaa46f4023ae6f6b0e63e2)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251030144653(598077099cdaa46f4023ae6f6b0e63e2)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11513,7 +11513,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-v1-5-coagent-state-render-20251030142659 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11871,7 +11871,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-v1-5-coagent-state-render-20251030142659': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251030144653': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 From 1ed65d61e87cab9bb65f14f29304fe610a162ce3 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Fri, 31 Oct 2025 15:28:25 +0100 Subject: [PATCH 085/113] fix unit tests --- .../packages/client/src/agent/agent.ts | 20 ++++++++----- .../__tests__/function-middleware.test.ts | 25 ++++++++++------ .../__tests__/middleware-live-events.test.ts | 30 ++++++++++++------- .../__tests__/middleware-with-state.test.ts | 8 +++-- .../middleware/__tests__/middleware.test.ts | 29 ++++++++++-------- 5 files changed, 70 insertions(+), 42 deletions(-) diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 1198bf2d5..acfabc64c 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -30,6 +30,8 @@ export abstract class AbstractAgent { public subscribers: AgentSubscriber[] = []; private middlewares: Middleware[] = []; + public readonly maxVersion: string = "*"; + constructor({ agentId, description, @@ -94,10 +96,11 @@ export abstract class AbstractAgent { } const chainedAgent = this.middlewares.reduceRight( - (nextAgent: AbstractAgent, middleware) => ({ - run: (i: RunAgentInput) => middleware.run(i, nextAgent), - } as AbstractAgent), - this // Original agent is the final 'next' + (nextAgent: AbstractAgent, middleware) => + ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + }) as AbstractAgent, + this, // Original agent is the final 'next' ); return chainedAgent.run(input); @@ -447,10 +450,11 @@ export abstract class AbstractAgent { } const chainedAgent = this.middlewares.reduceRight( - (nextAgent: AbstractAgent, middleware) => ({ - run: (i: RunAgentInput) => middleware.run(i, nextAgent) - } as AbstractAgent), - this + (nextAgent: AbstractAgent, middleware) => + ({ + run: (i: RunAgentInput) => middleware.run(i, nextAgent), + }) as AbstractAgent, + this, ); return chainedAgent.run(input); 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 index 9252030e9..11f94035e 100644 --- a/sdks/typescript/packages/client/src/middleware/__tests__/function-middleware.test.ts +++ b/sdks/typescript/packages/client/src/middleware/__tests__/function-middleware.test.ts @@ -39,25 +39,31 @@ describe("FunctionMiddleware", () => { const middlewareFn: MiddlewareFunction = (middlewareInput, next) => { return new Observable((subscriber) => { - subscriber.next({ - type: EventType.RUN_STARTED, - threadId: middlewareInput.threadId, - runId: middlewareInput.runId, - }); - - next.run(middlewareInput).subscribe({ + 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 }, }); - } else { - subscriber.next(event); + return; } + + subscriber.next(event); }, + error: (error) => subscriber.error(error), complete: () => subscriber.complete(), }); + + return () => subscription.unsubscribe(); }); }; @@ -73,6 +79,7 @@ describe("FunctionMiddleware", () => { 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 index d37f16b9c..bedb8f8c3 100644 --- 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 @@ -42,17 +42,27 @@ describe("Middleware live events", () => { class CustomMiddleware extends Middleware { run(input: RunAgentInput, next: AbstractAgent): Observable { return new Observable((subscriber) => { - subscriber.next({ - type: EventType.RUN_STARTED, - threadId: input.threadId, - runId: input.runId, - metadata: { custom: true }, - } as RunStartedEvent); + 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; + } - next.run(input).subscribe({ - next: (event) => subscriber.next(event), + subscriber.next(event); + }, + error: (error) => subscriber.error(error), complete: () => subscriber.complete(), }); + + return () => subscription.unsubscribe(); }); } } @@ -82,7 +92,7 @@ describe("Middleware live events", () => { 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.RUN_STARTED); - expect(events[2].type).toBe(EventType.TEXT_MESSAGE_CHUNK); + 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-with-state.test.ts b/sdks/typescript/packages/client/src/middleware/__tests__/middleware-with-state.test.ts index 03e2e782c..6ac9573c8 100644 --- 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 @@ -73,9 +73,11 @@ describe("Middleware runNextWithState", () => { }); }); - expect(events.length).toBe(3); + expect(events.length).toBe(5); expect(events[0].type).toBe(EventType.RUN_STARTED); - expect(events[1].type).toBe(EventType.TEXT_MESSAGE_CHUNK); - expect(events[2].type).toBe(EventType.RUN_FINISHED); + 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 index d25e217ae..a07cfb870 100644 --- a/sdks/typescript/packages/client/src/middleware/__tests__/middleware.test.ts +++ b/sdks/typescript/packages/client/src/middleware/__tests__/middleware.test.ts @@ -28,17 +28,23 @@ describe("Middleware", () => { class TestMiddleware extends Middleware { run(input: RunAgentInput, next: AbstractAgent): Observable { return new Observable((subscriber) => { - subscriber.next({ - type: EventType.RUN_STARTED, - threadId: input.threadId, - runId: input.runId, - metadata: { middleware: true }, - }); + 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; + } - next.run(input).subscribe({ - next: (event) => subscriber.next(event), + subscriber.next(event); + }, + error: (error) => subscriber.error(error), complete: () => subscriber.complete(), }); + + return () => subscription.unsubscribe(); }); } } @@ -65,11 +71,10 @@ describe("Middleware", () => { }); }); - expect(events.length).toBe(3); + 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_STARTED); - expect(events[2].type).toBe(EventType.RUN_FINISHED); - expect((events[2] as any).result).toEqual({ success: true }); + expect(events[1].type).toBe(EventType.RUN_FINISHED); + expect((events[1] as any).result).toEqual({ success: true }); }); }); From 6986179afa357d32c5f4da2a85896e67450bc9c4 Mon Sep 17 00:00:00 2001 From: ran Date: Fri, 31 Oct 2025 17:55:39 +0100 Subject: [PATCH 086/113] latest 1.5 alpha --- apps/dojo/package.json | 10 +++--- pnpm-lock.yaml | 70 +++++++++++++++++++++--------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index c2eee8e98..0f3e97811 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251030144653", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251030144653", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251030144653", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251030144653", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251030144653", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251031165308", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251031165308", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251031165308", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251031165308", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251031165308", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 40eff6b92..64c82f041 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,20 +121,20 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251030144653 - version: 0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251031165308 + version: 0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251030144653 - version: 0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251031165308 + version: 0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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: 0.0.0-feat-cpk-1-5-20251030144653 - version: 0.0.0-feat-cpk-1-5-20251030144653(598077099cdaa46f4023ae6f6b0e63e2) + specifier: 0.0.0-feat-cpk-1-5-20251031165308 + version: 0.0.0-feat-cpk-1-5-20251031165308(598077099cdaa46f4023ae6f6b0e63e2) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251030144653 - version: 0.0.0-feat-cpk-1-5-20251030144653(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251031165308 + version: 0.0.0-feat-cpk-1-5-20251031165308(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251030144653 - version: 0.0.0-feat-cpk-1-5-20251030144653 + specifier: 0.0.0-feat-cpk-1-5-20251031165308 + version: 0.0.0-feat-cpk-1-5-20251031165308 '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -1543,8 +1543,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251030144653': - resolution: {integrity: sha512-PUSVBNySL/YDSXLyG1NKuEBwtmerCtyIO2j9cpeeYpXBGvE+lHvyjEncVSlqVnD3o4s7YTJIsdWHlwhPrBRxjA==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251031165308': + resolution: {integrity: sha512-Ihy5GDUzuqHl6UCYNFquW3lVQmMfz2TyzBwcz729hpAffvC3pLOqSxu/D/uYS9eEqDCQ4EaRfM2CWgDXtiGWpw==} peerDependencies: '@copilotkitnext/core': 0.0.20 '@copilotkitnext/react': 0.0.20 @@ -1552,19 +1552,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251030144653': - resolution: {integrity: sha512-ImlmsxrdMnz6r9nSu3ULU9hydjKDUNX/62btgEpOSEMdgu5NvYe8X21IwXx2A7pDKwGc87AN6qYOIrkTm6J0bw==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251031165308': + resolution: {integrity: sha512-ANxaFzhT4GAAVV7x/SStdFMmd+cFPT+t19nMkAoSVuEQ8hOLgRSSXQejIaRpE7gFgagcCyq4LKOMyr3IGg9NAA==} peerDependencies: '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251030144653': - resolution: {integrity: sha512-Uk6ouSJ6U/xe+pgZ42kPpbzOragRX85NMzCm4RD71j9Wi+R05TZz41DPT/1wBwHCv3JrWcsuLuGR6rhC7JwKxw==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251031165308': + resolution: {integrity: sha512-5o+e2c4YLPcUPUjxx4iNL6HgiuRKKeNFVpgE7cbKP8aC7TWXU+s8q9ife1cJkJZmcdu7OWffEkWy3jDVa1pwYA==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251030144653': - resolution: {integrity: sha512-LgFIlVZCJLZjULywrewoBCDRVPYPXkUvxJ2AHTSpjCCOdMRJZrrkn7xNpOwzT7e9WiI93AR68QeszJEnltG7sw==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251031165308': + resolution: {integrity: sha512-AcTxYB+dOVS6WgG5DgIsRL8Iww5cZDVZqW22p5binqzjsRWjMwfnpKHWWR31BwW5HHU89IwOIolvfVV/unVRZQ==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1581,8 +1581,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251030144653': - resolution: {integrity: sha512-nESR/2xldEoFK5bO0iuD8gDtIjB9WSwQSZmRxLnun29ce40yktuwJ3Tw4D2EbJcCgdC3M3S2fcy/9UVdpwQFCg==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251031165308': + resolution: {integrity: sha512-puLX3XikWpgKI1ZWr2xYsdZNLqOuXHoeR+W4wZMNOHxWu7ezE+jQsX9H7rN1BWA7VSr8Qtvihk+PiYmqZBafkw==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11454,10 +11454,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251030144653(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251031165308(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 '@copilotkitnext/core': 0.0.16 '@copilotkitnext/react': 0.0.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) '@scarf/scarf': 1.4.0 @@ -11472,11 +11472,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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': 0.0.0-feat-cpk-1-5-20251030144653(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251030144653(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251031165308(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 '@copilotkitnext/core': 0.0.16 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react: 19.2.0 @@ -11494,9 +11494,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251030144653(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251031165308(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11505,7 +11505,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251030144653(598077099cdaa46f4023ae6f6b0e63e2)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251031165308(598077099cdaa46f4023ae6f6b0e63e2)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11513,7 +11513,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251030144653 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 '@copilotkitnext/agent': 0.0.17 '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(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) @@ -11871,7 +11871,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251030144653': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251031165308': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -18172,7 +18172,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.13.1) + retry-axios: 2.6.0(axios@1.13.1(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -21040,7 +21040,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.13.1): + retry-axios@2.6.0(axios@1.13.1(debug@4.4.3)): dependencies: axios: 1.13.1(debug@4.4.3) @@ -21800,7 +21800,7 @@ snapshots: 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.24 + '@types/node': 22.18.13 '@types/semver': 7.7.1 graphql: 16.11.0 graphql-query-complexity: 0.12.0(graphql@16.11.0) From c934b35be5a1036e114633564264fc9fa2bbeb15 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 3 Nov 2025 11:50:47 +0100 Subject: [PATCH 087/113] add maxVersion --- .../agent/__tests__/agent-mutations.test.ts | 20 ++++---- .../src/agent/__tests__/agent-result.test.ts | 20 ++++---- .../src/agent/__tests__/subscriber.test.ts | 20 ++++---- .../packages/client/src/agent/agent.ts | 7 +-- sdks/typescript/packages/client/src/utils.ts | 48 ++++++++++++++++++- 5 files changed, 87 insertions(+), 28 deletions(-) diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts index 55d50ddd1..e6e7c0fbc 100644 --- a/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts +++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-mutations.test.ts @@ -17,14 +17,18 @@ jest.mock("uuid", () => ({ })); // Mock utils -jest.mock("@/utils", () => ({ - structuredClone_: (obj: any) => { - if (obj === undefined) return undefined; - const jsonString = JSON.stringify(obj); - if (jsonString === undefined || jsonString === "undefined") return undefined; - return JSON.parse(jsonString); - }, -})); +jest.mock("@/utils", () => { + const actual = jest.requireActual("@/utils"); + return { + ...actual, + structuredClone_: (obj: any) => { + if (obj === undefined) return undefined; + const jsonString = JSON.stringify(obj); + if (jsonString === undefined || jsonString === "undefined") return undefined; + return JSON.parse(jsonString); + }, + }; +}); // Helper function to wait for async notifications to complete const waitForAsyncNotifications = async () => { diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-result.test.ts index 5df3a5cf1..19a718177 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 @@ -18,14 +18,18 @@ jest.mock("uuid", () => ({ })); // Mock utils -jest.mock("@/utils", () => ({ - structuredClone_: (obj: any) => { - if (obj === undefined) return undefined; - const jsonString = JSON.stringify(obj); - if (jsonString === undefined || jsonString === "undefined") return undefined; - return JSON.parse(jsonString); - }, -})); +jest.mock("@/utils", () => { + const actual = jest.requireActual("@/utils"); + return { + ...actual, + structuredClone_: (obj: any) => { + if (obj === undefined) return undefined; + const jsonString = JSON.stringify(obj); + if (jsonString === undefined || jsonString === "undefined") return undefined; + return JSON.parse(jsonString); + }, + }; +}); // Mock the verify and chunks modules jest.mock("@/verify", () => ({ diff --git a/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts index 6dee07da1..f6305a1a9 100644 --- a/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts +++ b/sdks/typescript/packages/client/src/agent/__tests__/subscriber.test.ts @@ -28,14 +28,18 @@ jest.mock("uuid", () => ({ })); // Mock utils with handling for undefined values -jest.mock("@/utils", () => ({ - structuredClone_: (obj: any) => { - if (obj === undefined) return undefined; - const jsonString = JSON.stringify(obj); - if (jsonString === undefined || jsonString === "undefined") return undefined; - return JSON.parse(jsonString); - }, -})); +jest.mock("@/utils", () => { + const actual = jest.requireActual("@/utils"); + return { + ...actual, + structuredClone_: (obj: any) => { + if (obj === undefined) return undefined; + const jsonString = JSON.stringify(obj); + if (jsonString === undefined || jsonString === "undefined") return undefined; + return JSON.parse(jsonString); + }, + }; +}); // Mock the verify modules but NOT apply - we want to test against real defaultApplyEvents jest.mock("@/verify", () => ({ diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index acfabc64c..c99268f49 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -3,7 +3,7 @@ import { Message, State, RunAgentInput, BaseEvent, ToolCall, AssistantMessage } import { AgentConfig, RunAgentParameters } from "./types"; import { v4 as uuidv4 } from "uuid"; -import { structuredClone_ } from "@/utils"; +import { structuredClone_, parseSemanticVersion } from "@/utils"; import { catchError, map, tap } from "rxjs/operators"; import { finalize } from "rxjs/operators"; import { pipe, Observable, from, of } from "rxjs"; @@ -14,6 +14,7 @@ import { lastValueFrom } from "rxjs"; import { transformChunks } from "@/chunks"; import { AgentStateMutation, AgentSubscriber, runSubscribersWithMutation } from "./subscriber"; import { Middleware, MiddlewareFunction, FunctionMiddleware } from "@/middleware"; +import packageJson from "../../package.json"; export interface RunAgentResult { result: any; @@ -29,8 +30,7 @@ export abstract class AbstractAgent { public debug: boolean = false; public subscribers: AgentSubscriber[] = []; private middlewares: Middleware[] = []; - - public readonly maxVersion: string = "*"; + public maxVersion = packageJson.version; constructor({ agentId, @@ -46,6 +46,7 @@ export abstract class AbstractAgent { this.messages = structuredClone_(initialMessages ?? []); this.state = structuredClone_(initialState ?? {}); this.debug = debug ?? false; + parseSemanticVersion(this.maxVersion); } public subscribe(subscriber: AgentSubscriber) { diff --git a/sdks/typescript/packages/client/src/utils.ts b/sdks/typescript/packages/client/src/utils.ts index 7c03e8064..b1ed1d9c9 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,3 +19,49 @@ export const structuredClone_ = (obj: T): T => { export function randomUUID(): string { return uuidv4(); } + +export interface ParsedSemanticVersion { + major: number; + minor: number; + patch: number; + prerelease: string[]; + build: string[]; + source: string; +} + +const SEMVER_PATTERN = + /^(?0|[1-9]\d*)(?:\.(?0|[1-9]\d*)(?:\.(?0|[1-9]\d*))?)?(?:-(?(?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\+(?[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/; + +/** + * 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. + */ +export function parseSemanticVersion(version: string): ParsedSemanticVersion { + const trimmed = version.trim(); + + if (trimmed.length === 0) { + throw new Error("Semantic version cannot be empty"); + } + + const match = SEMVER_PATTERN.exec(trimmed); + if (!match || !match.groups?.major) { + throw new Error(`Invalid semantic version: "${version}"`); + } + + const major = Number.parseInt(match.groups.major, 10); + const minor = match.groups.minor ? Number.parseInt(match.groups.minor, 10) : 0; + const patch = match.groups.patch ? Number.parseInt(match.groups.patch, 10) : 0; + const prerelease = match.groups.prerelease ? match.groups.prerelease.split(".") : []; + const build = match.groups.build ? match.groups.build.split(".") : []; + + return { + major, + minor, + patch, + prerelease, + build, + source: version, + }; +} From 2b474d6b53c1606a0ead179ca264dff8781bd87f Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 3 Nov 2025 11:50:56 +0100 Subject: [PATCH 088/113] add versioning tests --- .../client/src/__tests__/parse-semver.test.ts | 42 +++++++++++++++++++ .../src/agent/__tests__/agent-version.test.ts | 19 +++++++++ 2 files changed, 61 insertions(+) create mode 100644 sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts create mode 100644 sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts diff --git a/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts b/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts new file mode 100644 index 000000000..79cae46ef --- /dev/null +++ b/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts @@ -0,0 +1,42 @@ +import { parseSemanticVersion } from "../utils"; + +describe("parseSemanticVersion", () => { + it("parses full semantic versions", () => { + const parsed = parseSemanticVersion("1.2.3"); + expect(parsed).toEqual({ + major: 1, + minor: 2, + patch: 3, + prerelease: [], + build: [], + source: "1.2.3", + }); + }); + + it("defaults missing segments to zero", () => { + expect(parseSemanticVersion("4")).toMatchObject({ major: 4, minor: 0, patch: 0 }); + expect(parseSemanticVersion("4.5")).toMatchObject({ major: 4, minor: 5, patch: 0 }); + }); + + it("parses prerelease and build metadata", () => { + const parsed = parseSemanticVersion("2.0.1-alpha.1+build.5"); + expect(parsed).toEqual({ + major: 2, + minor: 0, + patch: 1, + prerelease: ["alpha", "1"], + build: ["build", "5"], + source: "2.0.1-alpha.1+build.5", + }); + }); + + it("rejects non-semantic labels like latest", () => { + expect(() => parseSemanticVersion("latest")).toThrow(); + expect(() => parseSemanticVersion("LaTeSt")).toThrow(); + }); + + it("throws on invalid versions", () => { + expect(() => parseSemanticVersion("not-a-version")).toThrow(); + expect(() => parseSemanticVersion("")).toThrow(); + }); +}); diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts new file mode 100644 index 000000000..382cc9733 --- /dev/null +++ b/sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts @@ -0,0 +1,19 @@ +import { AbstractAgent } from "@/agent"; +import { BaseEvent, RunAgentInput } from "@ag-ui/core"; +import { Observable } from "rxjs"; +import packageJson from "../../../package.json"; + +describe("AbstractAgent maxVersion default", () => { + class VersionAgent extends AbstractAgent { + run(input: RunAgentInput): Observable { + return new Observable((subscriber) => { + subscriber.complete(); + }); + } + } + + it("uses the package.json version by default", () => { + const agent = new VersionAgent(); + expect(agent.maxVersion).toBe(packageJson.version); + }); +}); From 45ff2ca42ec30af00743aaebae81fb9c5a99b51a Mon Sep 17 00:00:00 2001 From: ran Date: Mon, 3 Nov 2025 12:33:37 +0100 Subject: [PATCH 089/113] chore: langgraph python example latest everything --- .../langgraph/python/examples/pyproject.toml | 15 +- .../langgraph/python/examples/uv.lock | 874 +++++++++--------- 2 files changed, 458 insertions(+), 431 deletions(-) diff --git a/integrations/langgraph/python/examples/pyproject.toml b/integrations/langgraph/python/examples/pyproject.toml index 0e6841203..218f05e09 100644 --- a/integrations/langgraph/python/examples/pyproject.toml +++ b/integrations/langgraph/python/examples/pyproject.toml @@ -13,14 +13,13 @@ version = "0.0.1" python = ">=3.12,<3.14" uvicorn = "^0.34.0" dotenv = "^0.9.9" -langchain = ">=0.1.0" -langchain-anthropic = ">=0.3.18" -langchain-core = ">=0.1.5" -langchain-community = ">=0.0.1" -langchain-experimental = ">=0.0.11" -langchain-google-genai = ">=2.1.9" -langchain-openai = ">=0.0.1" -langgraph = "^0.6.1" +langchain = ">=1.0.3" +langchain-anthropic = ">=1.0.1" +langchain-core = ">=1.0.2" +langchain-community = ">=0.0.36" +langchain-google-genai = ">=2.1.12" +langchain-openai = ">=1.0.1" +langgraph = ">=1.0.0" ag-ui-langgraph = { path = "../" } python-dotenv = "^1.0.0" fastapi = "^0.115.12" diff --git a/integrations/langgraph/python/examples/uv.lock b/integrations/langgraph/python/examples/uv.lock index d3d4eecac..27ef7c382 100644 --- a/integrations/langgraph/python/examples/uv.lock +++ b/integrations/langgraph/python/examples/uv.lock @@ -50,7 +50,6 @@ dependencies = [ { name = "langchain-anthropic" }, { name = "langchain-community" }, { name = "langchain-core" }, - { name = "langchain-experimental" }, { name = "langchain-google-genai" }, { name = "langchain-openai" }, { name = "langgraph" }, @@ -63,14 +62,13 @@ requires-dist = [ { name = "ag-ui-langgraph", directory = "../" }, { name = "dotenv", specifier = ">=0.9.9,<0.10.0" }, { name = "fastapi", specifier = ">=0.115.12,<0.116.0" }, - { name = "langchain", specifier = ">=0.1.0" }, - { name = "langchain-anthropic", specifier = ">=0.3.18" }, - { name = "langchain-community", specifier = ">=0.0.1" }, - { name = "langchain-core", specifier = ">=0.1.5" }, - { name = "langchain-experimental", specifier = ">=0.0.11" }, - { name = "langchain-google-genai", specifier = ">=2.1.9" }, - { name = "langchain-openai", specifier = ">=0.0.1" }, - { name = "langgraph", specifier = ">=0.6.1,<0.7.0" }, + { name = "langchain", specifier = ">=1.0.3" }, + { name = "langchain-anthropic", specifier = ">=1.0.1" }, + { name = "langchain-community", specifier = ">=0.0.36" }, + { name = "langchain-core", specifier = ">=1.0.2" }, + { name = "langchain-google-genai", specifier = ">=2.1.12" }, + { name = "langchain-openai", specifier = ">=1.0.1" }, + { name = "langgraph", specifier = ">=1.0.0" }, { name = "python-dotenv", specifier = ">=1.0.0,<2.0.0" }, { name = "uvicorn", specifier = ">=0.34.0,<0.35.0" }, ] @@ -86,7 +84,7 @@ wheels = [ [[package]] name = "aiohttp" -version = "3.13.0" +version = "3.13.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs" }, @@ -97,76 +95,76 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/62/f1/8515650ac3121a9e55c7b217c60e7fae3e0134b5acfe65691781b5356929/aiohttp-3.13.0.tar.gz", hash = "sha256:378dbc57dd8cf341ce243f13fa1fa5394d68e2e02c15cd5f28eae35a70ec7f67", size = 7832348 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/95/7e8bdfa6e79099a086d59d42589492f1fe9d29aae3cefb58b676015ce278/aiohttp-3.13.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1c272a9a18a5ecc48a7101882230046b83023bb2a662050ecb9bfcb28d9ab53a", size = 735585 }, - { url = "https://files.pythonhosted.org/packages/9f/20/2f1d3ee06ee94eafe516810705219bff234d09f135d6951661661d5595ae/aiohttp-3.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:97891a23d7fd4e1afe9c2f4473e04595e4acb18e4733b910b6577b74e7e21985", size = 490613 }, - { url = "https://files.pythonhosted.org/packages/74/15/ab8600ef6dc1dcd599009a81acfed2ea407037e654d32e47e344e0b08c34/aiohttp-3.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:475bd56492ce5f4cffe32b5533c6533ee0c406d1d0e6924879f83adcf51da0ae", size = 489750 }, - { url = "https://files.pythonhosted.org/packages/33/59/752640c2b86ca987fe5703a01733b00d375e6cd2392bc7574489934e64e5/aiohttp-3.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c32ada0abb4bc94c30be2b681c42f058ab104d048da6f0148280a51ce98add8c", size = 1736812 }, - { url = "https://files.pythonhosted.org/packages/3d/c6/dd6b86ddb852a7fdbcdc7a45b6bdc80178aef713c08279afcaee7a5a9f07/aiohttp-3.13.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4af1f8877ca46ecdd0bc0d4a6b66d4b2bddc84a79e2e8366bc0d5308e76bceb8", size = 1698535 }, - { url = "https://files.pythonhosted.org/packages/33/e2/27c92d205b9e8cee7661670e8e9f187931b71e26d42796b153d2a0ba6949/aiohttp-3.13.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e04ab827ec4f775817736b20cdc8350f40327f9b598dec4e18c9ffdcbea88a93", size = 1766573 }, - { url = "https://files.pythonhosted.org/packages/df/6a/1fc1ad71d130a30f7a207d8d958a41224c29b834463b5185efb2dbff6ad4/aiohttp-3.13.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a6d9487b9471ec36b0faedf52228cd732e89be0a2bbd649af890b5e2ce422353", size = 1865229 }, - { url = "https://files.pythonhosted.org/packages/14/51/d0c1701a79fcb0109cff5304da16226581569b89a282d8e7f1549a7e3ec0/aiohttp-3.13.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e66c57416352f36bf98f6641ddadd47c93740a22af7150d3e9a1ef6e983f9a8", size = 1750379 }, - { url = "https://files.pythonhosted.org/packages/ae/3d/2ec4b934f85856de1c0c18e90adc8902adadbfac2b3c0b831bfeb7214fc8/aiohttp-3.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:469167d5372f5bb3aedff4fc53035d593884fff2617a75317740e885acd48b04", size = 1560798 }, - { url = "https://files.pythonhosted.org/packages/38/56/e23d9c3e13006e599fdce3851517c70279e177871e3e567d22cf3baf5d6c/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a9f3546b503975a69b547c9fd1582cad10ede1ce6f3e313a2f547c73a3d7814f", size = 1697552 }, - { url = "https://files.pythonhosted.org/packages/56/cb/caa32c2ccaeca0a3dc39129079fd2ad02f9406c3a5f7924340435b87d4cd/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6b4174fcec98601f0cfdf308ee29a6ae53c55f14359e848dab4e94009112ee7d", size = 1718609 }, - { url = "https://files.pythonhosted.org/packages/fb/c0/5911856fef9e40fd1ccbb8c54a90116875d5753a92c1cac66ce2059b390d/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a533873a7a4ec2270fb362ee5a0d3b98752e4e1dc9042b257cd54545a96bd8ed", size = 1735887 }, - { url = "https://files.pythonhosted.org/packages/0e/48/8d6f4757a24c02f0a454c043556593a00645d10583859f7156db44d8b7d3/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ce887c5e54411d607ee0959cac15bb31d506d86a9bcaddf0b7e9d63325a7a802", size = 1553079 }, - { url = "https://files.pythonhosted.org/packages/39/fa/e82c9445e40b50e46770702b5b6ca2f767966d53e1a5eef03583ceac6df6/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d871f6a30d43e32fc9252dc7b9febe1a042b3ff3908aa83868d7cf7c9579a59b", size = 1762750 }, - { url = "https://files.pythonhosted.org/packages/3d/e6/9d30554e7f1e700bfeae4ab6b153d5dc7441606a9ec5e929288fa93a1477/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:222c828243b4789d79a706a876910f656fad4381661691220ba57b2ab4547865", size = 1717461 }, - { url = "https://files.pythonhosted.org/packages/1f/e5/29cca547990a59ea54f0674fc01de98519fc628cfceeab6175711750eca7/aiohttp-3.13.0-cp312-cp312-win32.whl", hash = "sha256:682d2e434ff2f1108314ff7f056ce44e457f12dbed0249b24e106e385cf154b9", size = 424633 }, - { url = "https://files.pythonhosted.org/packages/8b/68/46dd042d7bc62eab30bafdb8569f55ef125c3a88bb174270324224f8df56/aiohttp-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:0a2be20eb23888df130214b91c262a90e2de1553d6fb7de9e9010cec994c0ff2", size = 451401 }, - { url = "https://files.pythonhosted.org/packages/86/2c/ac53efdc9c10e41399acc2395af98f835b86d0141d5c3820857eb9f6a14a/aiohttp-3.13.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:00243e51f16f6ec0fb021659d4af92f675f3cf9f9b39efd142aa3ad641d8d1e6", size = 730090 }, - { url = "https://files.pythonhosted.org/packages/13/18/1ac95683e1c1d48ef4503965c96f5401618a04c139edae12e200392daae8/aiohttp-3.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:059978d2fddc462e9211362cbc8446747ecd930537fa559d3d25c256f032ff54", size = 488041 }, - { url = "https://files.pythonhosted.org/packages/fd/79/ef0d477c771a642d1a881b92d226314c43d3c74bc674c93e12e679397a97/aiohttp-3.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:564b36512a7da3b386143c611867e3f7cfb249300a1bf60889bd9985da67ab77", size = 486989 }, - { url = "https://files.pythonhosted.org/packages/37/b4/0e440481a0e77a551d6c5dcab5d11f1ff6b2b2ddb8dedc24f54f5caad732/aiohttp-3.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4aa995b9156ae499393d949a456a7ab0b994a8241a96db73a3b73c7a090eff6a", size = 1718331 }, - { url = "https://files.pythonhosted.org/packages/e6/59/76c421cc4a75bb1aceadb92f20ee6f05a990aa6960c64b59e8e0d340e3f5/aiohttp-3.13.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55ca0e95a3905f62f00900255ed807c580775174252999286f283e646d675a49", size = 1686263 }, - { url = "https://files.pythonhosted.org/packages/ec/ac/5095f12a79c7775f402cfc3e83651b6e0a92ade10ddf7f2c78c4fed79f71/aiohttp-3.13.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:49ce7525853a981fc35d380aa2353536a01a9ec1b30979ea4e35966316cace7e", size = 1754265 }, - { url = "https://files.pythonhosted.org/packages/05/d7/a48e4989bd76cc70600c505bbdd0d90ca1ad7f9053eceeb9dbcf9345a9ec/aiohttp-3.13.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2117be9883501eaf95503bd313eb4c7a23d567edd44014ba15835a1e9ec6d852", size = 1856486 }, - { url = "https://files.pythonhosted.org/packages/1e/02/45b388b49e37933f316e1fb39c0de6fb1d77384b0c8f4cf6af5f2cbe3ea6/aiohttp-3.13.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d169c47e40c911f728439da853b6fd06da83761012e6e76f11cb62cddae7282b", size = 1737545 }, - { url = "https://files.pythonhosted.org/packages/6c/a7/4fde058f1605c34a219348a83a99f14724cc64e68a42480fc03cf40f9ea3/aiohttp-3.13.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:703ad3f742fc81e543638a7bebddd35acadaa0004a5e00535e795f4b6f2c25ca", size = 1552958 }, - { url = "https://files.pythonhosted.org/packages/d1/12/0bac4d29231981e3aa234e88d1931f6ba38135ff4c2cf3afbb7895527630/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5bf635c3476f4119b940cc8d94ad454cbe0c377e61b4527f0192aabeac1e9370", size = 1681166 }, - { url = "https://files.pythonhosted.org/packages/71/95/b829eb5f8ac1ca1d8085bb8df614c8acf3ff32e23ad5ad1173c7c9761daa/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:cfe6285ef99e7ee51cef20609be2bc1dd0e8446462b71c9db8bb296ba632810a", size = 1710516 }, - { url = "https://files.pythonhosted.org/packages/47/6d/15ccf4ef3c254d899f62580e0c7fc717014f4d14a3ac31771e505d2c736c/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8af6391c5f2e69749d7f037b614b8c5c42093c251f336bdbfa4b03c57d6c4", size = 1731354 }, - { url = "https://files.pythonhosted.org/packages/46/6a/8acf6c57e03b6fdcc8b4c06392e66abaff3213ea275e41db3edb20738d91/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:12f5d820fadc5848d4559ea838aef733cf37ed2a1103bba148ac2f5547c14c29", size = 1548040 }, - { url = "https://files.pythonhosted.org/packages/75/7d/fbfd59ab2a83fe2578ce79ac3db49727b81e9f4c3376217ad09c03c6d279/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f1338b61ea66f4757a0544ed8a02ccbf60e38d9cfb3225888888dd4475ebb96", size = 1756031 }, - { url = "https://files.pythonhosted.org/packages/99/e7/cc9f0fdf06cab3ca61e6b62bff9a4b978b8ca736e9d76ddf54365673ab19/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:582770f82513419512da096e8df21ca44f86a2e56e25dc93c5ab4df0fe065bf0", size = 1714933 }, - { url = "https://files.pythonhosted.org/packages/db/43/7abbe1de94748a58a71881163ee280fd3217db36e8344d109f63638fe16a/aiohttp-3.13.0-cp313-cp313-win32.whl", hash = "sha256:3194b8cab8dbc882f37c13ef1262e0a3d62064fa97533d3aa124771f7bf1ecee", size = 423799 }, - { url = "https://files.pythonhosted.org/packages/c9/58/afab7f2b9e7df88c995995172eb78cae8a3d5a62d5681abaade86b3f0089/aiohttp-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:7897298b3eedc790257fef8a6ec582ca04e9dbe568ba4a9a890913b925b8ea21", size = 450138 }, - { url = "https://files.pythonhosted.org/packages/fe/c1/93bb1e35cd0c4665bb422b1ca3d87b588f4bca2656bbe9292b963d5b76a9/aiohttp-3.13.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c417f8c2e1137775569297c584a8a7144e5d1237789eae56af4faf1894a0b861", size = 733187 }, - { url = "https://files.pythonhosted.org/packages/5e/36/2d50eba91992d3fe7a6452506ccdab45d03685ee8d8acaa5b289384a7d4c/aiohttp-3.13.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f84b53326abf8e56ebc28a35cebf4a0f396a13a76300f500ab11fe0573bf0b52", size = 488684 }, - { url = "https://files.pythonhosted.org/packages/82/93/fa4b1d5ecdc7805bdf0815ef00257db4632ccf0a8bffd44f9fc4657b1677/aiohttp-3.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:990a53b9d6a30b2878789e490758e568b12b4a7fb2527d0c89deb9650b0e5813", size = 489255 }, - { url = "https://files.pythonhosted.org/packages/05/0f/85241f0d158da5e24e8ac9d50c0849ed24f882cafc53dc95749ef85eef09/aiohttp-3.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c811612711e01b901e18964b3e5dec0d35525150f5f3f85d0aee2935f059910a", size = 1715914 }, - { url = "https://files.pythonhosted.org/packages/ab/fc/c755590d6f6d2b5d1565c72d6ee658d3c30ec61acb18964d1e9bf991d9b5/aiohttp-3.13.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ee433e594d7948e760b5c2a78cc06ac219df33b0848793cf9513d486a9f90a52", size = 1665171 }, - { url = "https://files.pythonhosted.org/packages/3a/de/caa61e213ff546b8815aef5e931d7eae1dbe8c840a3f11ec5aa41c5ae462/aiohttp-3.13.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:19bb08e56f57c215e9572cd65cb6f8097804412c54081d933997ddde3e5ac579", size = 1755124 }, - { url = "https://files.pythonhosted.org/packages/fb/b7/40c3219dd2691aa35cf889b4fbb0c00e48a19092928707044bfe92068e01/aiohttp-3.13.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f27b7488144eb5dd9151cf839b195edd1569629d90ace4c5b6b18e4e75d1e63a", size = 1835949 }, - { url = "https://files.pythonhosted.org/packages/57/e8/66e3c32841fc0e26a09539c377aa0f3bbf6deac1957ac5182cf276c5719c/aiohttp-3.13.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d812838c109757a11354a161c95708ae4199c4fd4d82b90959b20914c1d097f6", size = 1714276 }, - { url = "https://files.pythonhosted.org/packages/6b/a5/c68e5b46ff0410fe3abfa508651b09372428f27036138beacf4ff6b7cb8c/aiohttp-3.13.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7c20db99da682f9180fa5195c90b80b159632fb611e8dbccdd99ba0be0970620", size = 1545929 }, - { url = "https://files.pythonhosted.org/packages/7a/a6/4c97dc27f9935c0c0aa6e3e10e5b4548823ab5d056636bde374fcd297256/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:cf8b0870047900eb1f17f453b4b3953b8ffbf203ef56c2f346780ff930a4d430", size = 1679988 }, - { url = "https://files.pythonhosted.org/packages/8e/1b/11f9c52fd72b786a47e796e6794883417280cdca8eb1032d8d0939928dfa/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5b8a5557d5af3f4e3add52a58c4cf2b8e6e59fc56b261768866f5337872d596d", size = 1678031 }, - { url = "https://files.pythonhosted.org/packages/ea/eb/948903d40505f3a25e53e051488d2714ded3afac1f961df135f2936680f9/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:052bcdd80c1c54b8a18a9ea0cd5e36f473dc8e38d51b804cea34841f677a9971", size = 1726184 }, - { url = "https://files.pythonhosted.org/packages/44/14/c8ced38c7dfe80804dec17a671963ccf3cb282f12700ec70b1f689d8de7d/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:76484ba17b2832776581b7ab466d094e48eba74cb65a60aea20154dae485e8bd", size = 1542344 }, - { url = "https://files.pythonhosted.org/packages/a4/6e/f2e6bff550a51fd7c45fdab116a1dab7cc502e5d942956f10fc5c626bb15/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:62d8a0adcdaf62ee56bfb37737153251ac8e4b27845b3ca065862fb01d99e247", size = 1740913 }, - { url = "https://files.pythonhosted.org/packages/da/00/8f057300d9b598a706348abb375b3de9a253195fb615f17c0b2be2a72836/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5004d727499ecb95f7c9147dd0bfc5b5670f71d355f0bd26d7af2d3af8e07d2f", size = 1695535 }, - { url = "https://files.pythonhosted.org/packages/8a/ab/6919d584d8f053a14b15f0bfa3f315b3f548435c2142145459da2efa8673/aiohttp-3.13.0-cp314-cp314-win32.whl", hash = "sha256:a1c20c26af48aea984f63f96e5d7af7567c32cb527e33b60a0ef0a6313cf8b03", size = 429548 }, - { url = "https://files.pythonhosted.org/packages/c5/59/5d9e78de6132079066f5077d9687bf524f764a2f8207e04d8d68790060c6/aiohttp-3.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:56f7d230ec66e799fbfd8350e9544f8a45a4353f1cf40c1fea74c1780f555b8f", size = 455548 }, - { url = "https://files.pythonhosted.org/packages/7c/ea/7d98da03d1e9798bb99c3ca4963229150d45c9b7a3a16210c5b4a5f89e07/aiohttp-3.13.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:2fd35177dc483ae702f07b86c782f4f4b100a8ce4e7c5778cea016979023d9fd", size = 765319 }, - { url = "https://files.pythonhosted.org/packages/5c/02/37f29beced8213bb467c52ad509a5e3b41e6e967de2f6eaf7f8db63bea54/aiohttp-3.13.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:4df1984c8804ed336089e88ac81a9417b1fd0db7c6f867c50a9264488797e778", size = 502567 }, - { url = "https://files.pythonhosted.org/packages/e7/22/b0afcafcfe3637bc8d7992abf08ee9452018366c0801e4e7d4efda2ed839/aiohttp-3.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e68c0076052dd911a81d3acc4ef2911cc4ef65bf7cadbfbc8ae762da24da858f", size = 507078 }, - { url = "https://files.pythonhosted.org/packages/49/4c/046c847b7a1993b49f3855cc3b97872d5df193d9240de835d0dc6a97b164/aiohttp-3.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc95c49853cd29613e4fe4ff96d73068ff89b89d61e53988442e127e8da8e7ba", size = 1862115 }, - { url = "https://files.pythonhosted.org/packages/1a/25/1449a59e3c6405da5e47b0138ee0855414dc12a8c306685d7fc3dd300e1f/aiohttp-3.13.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3b3bdc89413117b40cc39baae08fd09cbdeb839d421c4e7dce6a34f6b54b3ac1", size = 1717147 }, - { url = "https://files.pythonhosted.org/packages/23/8f/50cc34ad267b38608f21c6a74327015dd08a66f1dd8e7ceac954d0953191/aiohttp-3.13.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3e77a729df23be2116acc4e9de2767d8e92445fbca68886dd991dc912f473755", size = 1841443 }, - { url = "https://files.pythonhosted.org/packages/df/b9/b3ab1278faa0d1b8f434c85f9cf34eeb0a25016ffe1ee6bc361d09fef0ec/aiohttp-3.13.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e88ab34826d6eeb6c67e6e92400b9ec653faf5092a35f07465f44c9f1c429f82", size = 1933652 }, - { url = "https://files.pythonhosted.org/packages/88/e2/86050aaa3bd7021b115cdfc88477b754e8cf93ef0079867840eee22d3c34/aiohttp-3.13.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:019dbef24fe28ce2301419dd63a2b97250d9760ca63ee2976c2da2e3f182f82e", size = 1790682 }, - { url = "https://files.pythonhosted.org/packages/78/8d/9af903324c2ba24a0c4778e9bcc738b773c98dded3a4fcf8041d5211769f/aiohttp-3.13.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2c4aeaedd20771b7b4bcdf0ae791904445df6d856c02fc51d809d12d17cffdc7", size = 1622011 }, - { url = "https://files.pythonhosted.org/packages/84/97/5174971ba4986d913554ceb248b0401eb5358cb60672ea0166f9f596cd08/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b3a8e6a2058a0240cfde542b641d0e78b594311bc1a710cbcb2e1841417d5cb3", size = 1787148 }, - { url = "https://files.pythonhosted.org/packages/dd/ae/8b397e980ac613ef3ddd8e996aa7a40a1828df958257800d4bb325657db3/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:f8e38d55ca36c15f36d814ea414ecb2401d860de177c49f84a327a25b3ee752b", size = 1774816 }, - { url = "https://files.pythonhosted.org/packages/c7/54/0e8e2111dd92051c787e934b6bbf30c213daaa5e7ee5f51bca8913607492/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a921edbe971aade1bf45bcbb3494e30ba6863a5c78f28be992c42de980fd9108", size = 1788610 }, - { url = "https://files.pythonhosted.org/packages/fa/dd/c9283dbfd9325ed6fa6c91f009db6344d8d370a7bcf09f36e7b2fcbfae02/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:474cade59a447cb4019c0dce9f0434bf835fb558ea932f62c686fe07fe6db6a1", size = 1615498 }, - { url = "https://files.pythonhosted.org/packages/8c/f6/da76230679bd9ef175d876093f89e7fd6d6476c18505e115e3026fe5ef95/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:99a303ad960747c33b65b1cb65d01a62ac73fa39b72f08a2e1efa832529b01ed", size = 1815187 }, - { url = "https://files.pythonhosted.org/packages/d5/78/394003ac738703822616f4f922705b54e5b3d8e7185831ecc1c97904174d/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bb34001fc1f05f6b323e02c278090c07a47645caae3aa77ed7ed8a3ce6abcce9", size = 1760281 }, - { url = "https://files.pythonhosted.org/packages/bd/b0/4bad0a9dd5910bd01c3119f8bd3d71887cd412d4105e4acddcdacf3cfa76/aiohttp-3.13.0-cp314-cp314t-win32.whl", hash = "sha256:dea698b64235d053def7d2f08af9302a69fcd760d1c7bd9988fd5d3b6157e657", size = 462608 }, - { url = "https://files.pythonhosted.org/packages/bd/af/ad12d592f623aae2bd1d3463201dc39c201ea362f9ddee0d03efd9e83720/aiohttp-3.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1f164699a060c0b3616459d13c1464a981fddf36f892f0a5027cbd45121fb14b", size = 496010 }, +sdist = { url = "https://files.pythonhosted.org/packages/1c/ce/3b83ebba6b3207a7135e5fcaba49706f8a4b6008153b4e30540c982fae26/aiohttp-3.13.2.tar.gz", hash = "sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca", size = 7837994 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/d2/04/db5279e38471b7ac801d7d36a57d1230feeee130bbe2a74f72731b23c2b1/aiohttp-3.13.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811", size = 1720387 }, + { url = "https://files.pythonhosted.org/packages/31/07/8ea4326bd7dae2bd59828f69d7fdc6e04523caa55e4a70f4a8725a7e4ed2/aiohttp-3.13.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a", size = 1688314 }, + { url = "https://files.pythonhosted.org/packages/48/ab/3d98007b5b87ffd519d065225438cc3b668b2f245572a8cb53da5dd2b1bc/aiohttp-3.13.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4", size = 1756317 }, + { url = "https://files.pythonhosted.org/packages/97/3d/801ca172b3d857fafb7b50c7c03f91b72b867a13abca982ed6b3081774ef/aiohttp-3.13.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a", size = 1858539 }, + { url = "https://files.pythonhosted.org/packages/f7/0d/4764669bdf47bd472899b3d3db91fffbe925c8e3038ec591a2fd2ad6a14d/aiohttp-3.13.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e", size = 1739597 }, + { url = "https://files.pythonhosted.org/packages/c4/52/7bd3c6693da58ba16e657eb904a5b6decfc48ecd06e9ac098591653b1566/aiohttp-3.13.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb", size = 1555006 }, + { url = "https://files.pythonhosted.org/packages/48/30/9586667acec5993b6f41d2ebcf96e97a1255a85f62f3c653110a5de4d346/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded", size = 1683220 }, + { url = "https://files.pythonhosted.org/packages/71/01/3afe4c96854cfd7b30d78333852e8e851dceaec1c40fd00fec90c6402dd2/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b", size = 1712570 }, + { url = "https://files.pythonhosted.org/packages/11/2c/22799d8e720f4697a9e66fd9c02479e40a49de3de2f0bbe7f9f78a987808/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8", size = 1733407 }, + { url = "https://files.pythonhosted.org/packages/34/cb/90f15dd029f07cebbd91f8238a8b363978b530cd128488085b5703683594/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04", size = 1550093 }, + { url = "https://files.pythonhosted.org/packages/69/46/12dce9be9d3303ecbf4d30ad45a7683dc63d90733c2d9fe512be6716cd40/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476", size = 1758084 }, + { url = "https://files.pythonhosted.org/packages/f9/c8/0932b558da0c302ffd639fc6362a313b98fdf235dc417bc2493da8394df7/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23", size = 1716987 }, + { url = "https://files.pythonhosted.org/packages/5d/8b/f5bd1a75003daed099baec373aed678f2e9b34f2ad40d85baa1368556396/aiohttp-3.13.2-cp313-cp313-win32.whl", hash = "sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254", size = 425859 }, + { url = "https://files.pythonhosted.org/packages/5d/28/a8a9fc6957b2cee8902414e41816b5ab5536ecf43c3b1843c10e82c559b2/aiohttp-3.13.2-cp313-cp313-win_amd64.whl", hash = "sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a", size = 452192 }, + { url = "https://files.pythonhosted.org/packages/9b/36/e2abae1bd815f01c957cbf7be817b3043304e1c87bad526292a0410fdcf9/aiohttp-3.13.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b", size = 735234 }, + { url = "https://files.pythonhosted.org/packages/ca/e3/1ee62dde9b335e4ed41db6bba02613295a0d5b41f74a783c142745a12763/aiohttp-3.13.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61", size = 490733 }, + { url = "https://files.pythonhosted.org/packages/1a/aa/7a451b1d6a04e8d15a362af3e9b897de71d86feac3babf8894545d08d537/aiohttp-3.13.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4", size = 491303 }, + { url = "https://files.pythonhosted.org/packages/57/1e/209958dbb9b01174870f6a7538cd1f3f28274fdbc88a750c238e2c456295/aiohttp-3.13.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b", size = 1717965 }, + { url = "https://files.pythonhosted.org/packages/08/aa/6a01848d6432f241416bc4866cae8dc03f05a5a884d2311280f6a09c73d6/aiohttp-3.13.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694", size = 1667221 }, + { url = "https://files.pythonhosted.org/packages/87/4f/36c1992432d31bbc789fa0b93c768d2e9047ec8c7177e5cd84ea85155f36/aiohttp-3.13.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906", size = 1757178 }, + { url = "https://files.pythonhosted.org/packages/ac/b4/8e940dfb03b7e0f68a82b88fd182b9be0a65cb3f35612fe38c038c3112cf/aiohttp-3.13.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9", size = 1838001 }, + { url = "https://files.pythonhosted.org/packages/d7/ef/39f3448795499c440ab66084a9db7d20ca7662e94305f175a80f5b7e0072/aiohttp-3.13.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011", size = 1716325 }, + { url = "https://files.pythonhosted.org/packages/d7/51/b311500ffc860b181c05d91c59a1313bdd05c82960fdd4035a15740d431e/aiohttp-3.13.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6", size = 1547978 }, + { url = "https://files.pythonhosted.org/packages/31/64/b9d733296ef79815226dab8c586ff9e3df41c6aff2e16c06697b2d2e6775/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213", size = 1682042 }, + { url = "https://files.pythonhosted.org/packages/3f/30/43d3e0f9d6473a6db7d472104c4eff4417b1e9df01774cb930338806d36b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49", size = 1680085 }, + { url = "https://files.pythonhosted.org/packages/16/51/c709f352c911b1864cfd1087577760ced64b3e5bee2aa88b8c0c8e2e4972/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae", size = 1728238 }, + { url = "https://files.pythonhosted.org/packages/19/e2/19bd4c547092b773caeb48ff5ae4b1ae86756a0ee76c16727fcfd281404b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa", size = 1544395 }, + { url = "https://files.pythonhosted.org/packages/cf/87/860f2803b27dfc5ed7be532832a3498e4919da61299b4a1f8eb89b8ff44d/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4", size = 1742965 }, + { url = "https://files.pythonhosted.org/packages/67/7f/db2fc7618925e8c7a601094d5cbe539f732df4fb570740be88ed9e40e99a/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a", size = 1697585 }, + { url = "https://files.pythonhosted.org/packages/0c/07/9127916cb09bb38284db5036036042b7b2c514c8ebaeee79da550c43a6d6/aiohttp-3.13.2-cp314-cp314-win32.whl", hash = "sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940", size = 431621 }, + { url = "https://files.pythonhosted.org/packages/fb/41/554a8a380df6d3a2bba8a7726429a23f4ac62aaf38de43bb6d6cde7b4d4d/aiohttp-3.13.2-cp314-cp314-win_amd64.whl", hash = "sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4", size = 457627 }, + { url = "https://files.pythonhosted.org/packages/c7/8e/3824ef98c039d3951cb65b9205a96dd2b20f22241ee17d89c5701557c826/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673", size = 767360 }, + { url = "https://files.pythonhosted.org/packages/a4/0f/6a03e3fc7595421274fa34122c973bde2d89344f8a881b728fa8c774e4f1/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd", size = 504616 }, + { url = "https://files.pythonhosted.org/packages/c6/aa/ed341b670f1bc8a6f2c6a718353d13b9546e2cef3544f573c6a1ff0da711/aiohttp-3.13.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3", size = 509131 }, + { url = "https://files.pythonhosted.org/packages/7f/f0/c68dac234189dae5c4bbccc0f96ce0cc16b76632cfc3a08fff180045cfa4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf", size = 1864168 }, + { url = "https://files.pythonhosted.org/packages/8f/65/75a9a76db8364b5d0e52a0c20eabc5d52297385d9af9c35335b924fafdee/aiohttp-3.13.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e", size = 1719200 }, + { url = "https://files.pythonhosted.org/packages/f5/55/8df2ed78d7f41d232f6bd3ff866b6f617026551aa1d07e2f03458f964575/aiohttp-3.13.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5", size = 1843497 }, + { url = "https://files.pythonhosted.org/packages/e9/e0/94d7215e405c5a02ccb6a35c7a3a6cfff242f457a00196496935f700cde5/aiohttp-3.13.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad", size = 1935703 }, + { url = "https://files.pythonhosted.org/packages/0b/78/1eeb63c3f9b2d1015a4c02788fb543141aad0a03ae3f7a7b669b2483f8d4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e", size = 1792738 }, + { url = "https://files.pythonhosted.org/packages/41/75/aaf1eea4c188e51538c04cc568040e3082db263a57086ea74a7d38c39e42/aiohttp-3.13.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61", size = 1624061 }, + { url = "https://files.pythonhosted.org/packages/9b/c2/3b6034de81fbcc43de8aeb209073a2286dfb50b86e927b4efd81cf848197/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661", size = 1789201 }, + { url = "https://files.pythonhosted.org/packages/c9/38/c15dcf6d4d890217dae79d7213988f4e5fe6183d43893a9cf2fe9e84ca8d/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98", size = 1776868 }, + { url = "https://files.pythonhosted.org/packages/04/75/f74fd178ac81adf4f283a74847807ade5150e48feda6aef024403716c30c/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693", size = 1790660 }, + { url = "https://files.pythonhosted.org/packages/e7/80/7368bd0d06b16b3aba358c16b919e9c46cf11587dc572091031b0e9e3ef0/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a", size = 1617548 }, + { url = "https://files.pythonhosted.org/packages/7d/4b/a6212790c50483cb3212e507378fbe26b5086d73941e1ec4b56a30439688/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be", size = 1817240 }, + { url = "https://files.pythonhosted.org/packages/ff/f7/ba5f0ba4ea8d8f3c32850912944532b933acbf0f3a75546b89269b9b7dde/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c", size = 1762334 }, + { url = "https://files.pythonhosted.org/packages/7e/83/1a5a1856574588b1cad63609ea9ad75b32a8353ac995d830bf5da9357364/aiohttp-3.13.2-cp314-cp314t-win32.whl", hash = "sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734", size = 464685 }, + { url = "https://files.pythonhosted.org/packages/9f/4d/d22668674122c08f4d56972297c51a624e64b3ed1efaa40187607a7cb66e/aiohttp-3.13.2-cp314-cp314t-win_amd64.whl", hash = "sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f", size = 498093 }, ] [[package]] @@ -193,7 +191,7 @@ wheels = [ [[package]] name = "anthropic" -version = "0.69.0" +version = "0.72.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -205,9 +203,9 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c8/9d/9ad1778b95f15c5b04e7d328c1b5f558f1e893857b7c33cd288c19c0057a/anthropic-0.69.0.tar.gz", hash = "sha256:c604d287f4d73640f40bd2c0f3265a2eb6ce034217ead0608f6b07a8bc5ae5f2", size = 480622 } +sdist = { url = "https://files.pythonhosted.org/packages/49/07/61f3ca8e69c5dcdaec31b36b79a53ea21c5b4ca5e93c7df58c71f43bf8d8/anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a", size = 493721 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/38/75129688de5637eb5b383e5f2b1570a5cc3aecafa4de422da8eea4b90a6c/anthropic-0.69.0-py3-none-any.whl", hash = "sha256:1f73193040f33f11e27c2cd6ec25f24fe7c3f193dc1c5cde6b7a08b18a16bcc5", size = 337265 }, + { url = "https://files.pythonhosted.org/packages/7b/b7/160d4fb30080395b4143f1d1a4f6c646ba9105561108d2a434b606c03579/anthropic-0.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d", size = 357464 }, ] [[package]] @@ -485,22 +483,23 @@ wheels = [ [[package]] name = "google-ai-generativelanguage" -version = "0.7.0" +version = "0.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-api-core", extra = ["grpc"] }, { name = "google-auth" }, + { name = "grpcio" }, { name = "proto-plus" }, { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c5/35/af6c759bfde70386c741309df0cba6a1cb09b8bbd1d02c841df51f4c672d/google_ai_generativelanguage-0.7.0.tar.gz", hash = "sha256:207fed3089949e2e99f7cbd513e2d0ea5f2babdfa5a8f2f239c3ddffe6bd4297", size = 1475859 } +sdist = { url = "https://files.pythonhosted.org/packages/ad/7e/67fdc46187541ead599e77f259d915f129c2f49568ebf5cadb322130712b/google_ai_generativelanguage-0.9.0.tar.gz", hash = "sha256:2524748f413917446febc8e0879dc0d4f026a064f89f17c42b81bea77ab76c84", size = 1481662 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/e7/b670b2d5b53f18ae51d331283278595fea93a156ea79baf59d4098effaec/google_ai_generativelanguage-0.7.0-py3-none-any.whl", hash = "sha256:3241215c16e669f37054f6111c84cca50fdb7a8e10a62933b9e68086ce71eefe", size = 1394333 }, + { url = "https://files.pythonhosted.org/packages/5d/91/c2d39ad5d77813afadb0f0b8789d882d15c191710b6b6f7cb158376342ff/google_ai_generativelanguage-0.9.0-py3-none-any.whl", hash = "sha256:59f61e54cb341e602073098389876594c4d12e458617727558bb2628a86f3eb2", size = 1401288 }, ] [[package]] name = "google-api-core" -version = "2.26.0" +version = "2.28.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-auth" }, @@ -509,9 +508,9 @@ dependencies = [ { name = "protobuf" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/32/ea/e7b6ac3c7b557b728c2d0181010548cbbdd338e9002513420c5a354fa8df/google_api_core-2.26.0.tar.gz", hash = "sha256:e6e6d78bd6cf757f4aee41dcc85b07f485fbb069d5daa3afb126defba1e91a62", size = 166369 } +sdist = { url = "https://files.pythonhosted.org/packages/61/da/83d7043169ac2c8c7469f0e375610d78ae2160134bf1b80634c482fa079c/google_api_core-2.28.1.tar.gz", hash = "sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8", size = 176759 } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/ad/f73cf9fe9bd95918502b270e3ddb8764e4c900b3bbd7782b90c56fac14bb/google_api_core-2.26.0-py3-none-any.whl", hash = "sha256:2b204bd0da2c81f918e3582c48458e24c11771f987f6258e6e227212af78f3ed", size = 162505 }, + { url = "https://files.pythonhosted.org/packages/ed/d4/90197b416cb61cefd316964fd9e7bd8324bcbafabf40eef14a9f20b81974/google_api_core-2.28.1-py3-none-any.whl", hash = "sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c", size = 173706 }, ] [package.optional-dependencies] @@ -522,28 +521,28 @@ grpc = [ [[package]] name = "google-auth" -version = "2.41.1" +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/a8/af/5129ce5b2f9688d2fa49b463e544972a7c82b0fdb50980dafee92e121d9f/google_auth-2.41.1.tar.gz", hash = "sha256:b76b7b1f9e61f0cb7e88870d14f6a94aeef248959ef6992670efee37709cbfd2", size = 292284 } +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/be/a4/7319a2a8add4cc352be9e3efeff5e2aacee917c85ca2fa1647e29089983c/google_auth-2.41.1-py2.py3-none-any.whl", hash = "sha256:754843be95575b9a19c604a848a41be03f7f2afd8c019f716dc1f51ee41c639d", size = 221302 }, + { 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]] name = "googleapis-common-protos" -version = "1.70.0" +version = "1.71.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/39/24/33db22342cf4a2ea27c9955e6713140fedd51e8b141b5ce5260897020f1a/googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257", size = 145903 } +sdist = { url = "https://files.pythonhosted.org/packages/30/43/b25abe02db2911397819003029bef768f68a974f2ece483e6084d1a5f754/googleapis_common_protos-1.71.0.tar.gz", hash = "sha256:1aec01e574e29da63c80ba9f7bbf1ccfaacf1da877f23609fe236ca7c72a2e2e", size = 146454 } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/f1/62a193f0227cf15a920390abe675f386dec35f7ae3ffe6da582d3ade42c7/googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8", size = 294530 }, + { url = "https://files.pythonhosted.org/packages/25/e8/eba9fece11d57a71e3e22ea672742c8f3cf23b35730c9e96db768b295216/googleapis_common_protos-1.71.0-py3-none-any.whl", hash = "sha256:59034a1d849dc4d18971997a72ac56246570afdd17f9369a0ff68218d50ab78c", size = 294576 }, ] [[package]] @@ -581,57 +580,57 @@ wheels = [ [[package]] name = "grpcio" -version = "1.75.1" +version = "1.76.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/f7/8963848164c7604efb3a3e6ee457fdb3a469653e19002bd24742473254f8/grpcio-1.75.1.tar.gz", hash = "sha256:3e81d89ece99b9ace23a6916880baca613c03a799925afb2857887efa8b1b3d2", size = 12731327 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/81/42be79e73a50aaa20af66731c2defeb0e8c9008d9935a64dd8ea8e8c44eb/grpcio-1.75.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:7b888b33cd14085d86176b1628ad2fcbff94cfbbe7809465097aa0132e58b018", size = 5668314 }, - { url = "https://files.pythonhosted.org/packages/c5/a7/3686ed15822fedc58c22f82b3a7403d9faf38d7c33de46d4de6f06e49426/grpcio-1.75.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8775036efe4ad2085975531d221535329f5dac99b6c2a854a995456098f99546", size = 11476125 }, - { url = "https://files.pythonhosted.org/packages/14/85/21c71d674f03345ab183c634ecd889d3330177e27baea8d5d247a89b6442/grpcio-1.75.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb658f703468d7fbb5dcc4037c65391b7dc34f808ac46ed9136c24fc5eeb041d", size = 6246335 }, - { url = "https://files.pythonhosted.org/packages/fd/db/3beb661bc56a385ae4fa6b0e70f6b91ac99d47afb726fe76aaff87ebb116/grpcio-1.75.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4b7177a1cdb3c51b02b0c0a256b0a72fdab719600a693e0e9037949efffb200b", size = 6916309 }, - { url = "https://files.pythonhosted.org/packages/1e/9c/eda9fe57f2b84343d44c1b66cf3831c973ba29b078b16a27d4587a1fdd47/grpcio-1.75.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d4fa6ccc3ec2e68a04f7b883d354d7fea22a34c44ce535a2f0c0049cf626ddf", size = 6435419 }, - { url = "https://files.pythonhosted.org/packages/c3/b8/090c98983e0a9d602e3f919a6e2d4e470a8b489452905f9a0fa472cac059/grpcio-1.75.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3d86880ecaeb5b2f0a8afa63824de93adb8ebe4e49d0e51442532f4e08add7d6", size = 7064893 }, - { url = "https://files.pythonhosted.org/packages/ec/c0/6d53d4dbbd00f8bd81571f5478d8a95528b716e0eddb4217cc7cb45aae5f/grpcio-1.75.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a8041d2f9e8a742aeae96f4b047ee44e73619f4f9d24565e84d5446c623673b6", size = 8011922 }, - { url = "https://files.pythonhosted.org/packages/f2/7c/48455b2d0c5949678d6982c3e31ea4d89df4e16131b03f7d5c590811cbe9/grpcio-1.75.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3652516048bf4c314ce12be37423c79829f46efffb390ad64149a10c6071e8de", size = 7466181 }, - { url = "https://files.pythonhosted.org/packages/fd/12/04a0e79081e3170b6124f8cba9b6275871276be06c156ef981033f691880/grpcio-1.75.1-cp312-cp312-win32.whl", hash = "sha256:44b62345d8403975513af88da2f3d5cc76f73ca538ba46596f92a127c2aea945", size = 3938543 }, - { url = "https://files.pythonhosted.org/packages/5f/d7/11350d9d7fb5adc73d2b0ebf6ac1cc70135577701e607407fe6739a90021/grpcio-1.75.1-cp312-cp312-win_amd64.whl", hash = "sha256:b1e191c5c465fa777d4cafbaacf0c01e0d5278022082c0abbd2ee1d6454ed94d", size = 4641938 }, - { url = "https://files.pythonhosted.org/packages/46/74/bac4ab9f7722164afdf263ae31ba97b8174c667153510322a5eba4194c32/grpcio-1.75.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:3bed22e750d91d53d9e31e0af35a7b0b51367e974e14a4ff229db5b207647884", size = 5672779 }, - { url = "https://files.pythonhosted.org/packages/a6/52/d0483cfa667cddaa294e3ab88fd2c2a6e9dc1a1928c0e5911e2e54bd5b50/grpcio-1.75.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:5b8f381eadcd6ecaa143a21e9e80a26424c76a0a9b3d546febe6648f3a36a5ac", size = 11470623 }, - { url = "https://files.pythonhosted.org/packages/cf/e4/d1954dce2972e32384db6a30273275e8c8ea5a44b80347f9055589333b3f/grpcio-1.75.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5bf4001d3293e3414d0cf99ff9b1139106e57c3a66dfff0c5f60b2a6286ec133", size = 6248838 }, - { url = "https://files.pythonhosted.org/packages/06/43/073363bf63826ba8077c335d797a8d026f129dc0912b69c42feaf8f0cd26/grpcio-1.75.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:9f82ff474103e26351dacfe8d50214e7c9322960d8d07ba7fa1d05ff981c8b2d", size = 6922663 }, - { url = "https://files.pythonhosted.org/packages/c2/6f/076ac0df6c359117676cacfa8a377e2abcecec6a6599a15a672d331f6680/grpcio-1.75.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ee119f4f88d9f75414217823d21d75bfe0e6ed40135b0cbbfc6376bc9f7757d", size = 6436149 }, - { url = "https://files.pythonhosted.org/packages/6b/27/1d08824f1d573fcb1fa35ede40d6020e68a04391709939e1c6f4193b445f/grpcio-1.75.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:664eecc3abe6d916fa6cf8dd6b778e62fb264a70f3430a3180995bf2da935446", size = 7067989 }, - { url = "https://files.pythonhosted.org/packages/c6/98/98594cf97b8713feb06a8cb04eeef60b4757e3e2fb91aa0d9161da769843/grpcio-1.75.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c32193fa08b2fbebf08fe08e84f8a0aad32d87c3ad42999c65e9449871b1c66e", size = 8010717 }, - { url = "https://files.pythonhosted.org/packages/8c/7e/bb80b1bba03c12158f9254762cdf5cced4a9bc2e8ed51ed335915a5a06ef/grpcio-1.75.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5cebe13088b9254f6e615bcf1da9131d46cfa4e88039454aca9cb65f639bd3bc", size = 7463822 }, - { url = "https://files.pythonhosted.org/packages/23/1c/1ea57fdc06927eb5640f6750c697f596f26183573069189eeaf6ef86ba2d/grpcio-1.75.1-cp313-cp313-win32.whl", hash = "sha256:4b4c678e7ed50f8ae8b8dbad15a865ee73ce12668b6aaf411bf3258b5bc3f970", size = 3938490 }, - { url = "https://files.pythonhosted.org/packages/4b/24/fbb8ff1ccadfbf78ad2401c41aceaf02b0d782c084530d8871ddd69a2d49/grpcio-1.75.1-cp313-cp313-win_amd64.whl", hash = "sha256:5573f51e3f296a1bcf71e7a690c092845fb223072120f4bdb7a5b48e111def66", size = 4642538 }, - { url = "https://files.pythonhosted.org/packages/f2/1b/9a0a5cecd24302b9fdbcd55d15ed6267e5f3d5b898ff9ac8cbe17ee76129/grpcio-1.75.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:c05da79068dd96723793bffc8d0e64c45f316248417515f28d22204d9dae51c7", size = 5673319 }, - { url = "https://files.pythonhosted.org/packages/c6/ec/9d6959429a83fbf5df8549c591a8a52bb313976f6646b79852c4884e3225/grpcio-1.75.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:06373a94fd16ec287116a825161dca179a0402d0c60674ceeec8c9fba344fe66", size = 11480347 }, - { url = "https://files.pythonhosted.org/packages/09/7a/26da709e42c4565c3d7bf999a9569da96243ce34a8271a968dee810a7cf1/grpcio-1.75.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4484f4b7287bdaa7a5b3980f3c7224c3c622669405d20f69549f5fb956ad0421", size = 6254706 }, - { url = "https://files.pythonhosted.org/packages/f1/08/dcb26a319d3725f199c97e671d904d84ee5680de57d74c566a991cfab632/grpcio-1.75.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2720c239c1180eee69f7883c1d4c83fc1a495a2535b5fa322887c70bf02b16e8", size = 6922501 }, - { url = "https://files.pythonhosted.org/packages/78/66/044d412c98408a5e23cb348845979a2d17a2e2b6c3c34c1ec91b920f49d0/grpcio-1.75.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:07a554fa31c668cf0e7a188678ceeca3cb8fead29bbe455352e712ec33ca701c", size = 6437492 }, - { url = "https://files.pythonhosted.org/packages/4e/9d/5e3e362815152aa1afd8b26ea613effa005962f9da0eec6e0e4527e7a7d1/grpcio-1.75.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3e71a2105210366bfc398eef7f57a664df99194f3520edb88b9c3a7e46ee0d64", size = 7081061 }, - { url = "https://files.pythonhosted.org/packages/1e/1a/46615682a19e100f46e31ddba9ebc297c5a5ab9ddb47b35443ffadb8776c/grpcio-1.75.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8679aa8a5b67976776d3c6b0521e99d1c34db8a312a12bcfd78a7085cb9b604e", size = 8010849 }, - { url = "https://files.pythonhosted.org/packages/67/8e/3204b94ac30b0f675ab1c06540ab5578660dc8b690db71854d3116f20d00/grpcio-1.75.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:aad1c774f4ebf0696a7f148a56d39a3432550612597331792528895258966dc0", size = 7464478 }, - { url = "https://files.pythonhosted.org/packages/b7/97/2d90652b213863b2cf466d9c1260ca7e7b67a16780431b3eb1d0420e3d5b/grpcio-1.75.1-cp314-cp314-win32.whl", hash = "sha256:62ce42d9994446b307649cb2a23335fa8e927f7ab2cbf5fcb844d6acb4d85f9c", size = 4012672 }, - { url = "https://files.pythonhosted.org/packages/f9/df/e2e6e9fc1c985cd1a59e6996a05647c720fe8a03b92f5ec2d60d366c531e/grpcio-1.75.1-cp314-cp314-win_amd64.whl", hash = "sha256:f86e92275710bea3000cb79feca1762dc0ad3b27830dd1a74e82ab321d4ee464", size = 4772475 }, +sdist = { url = "https://files.pythonhosted.org/packages/b6/e0/318c1ce3ae5a17894d5791e87aea147587c9e702f24122cc7a5c8bbaeeb1/grpcio-1.76.0.tar.gz", hash = "sha256:7be78388d6da1a25c0d5ec506523db58b18be22d9c37d8d3a32c08be4987bd73", size = 12785182 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/bd/64/9784eab483358e08847498ee56faf8ff6ea8e0a4592568d9f68edc97e9e9/grpcio-1.76.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3e2a27c89eb9ac3d81ec8835e12414d73536c6e620355d65102503064a4ed6eb", size = 7049990 }, + { url = "https://files.pythonhosted.org/packages/2b/94/8c12319a6369434e7a184b987e8e9f3b49a114c489b8315f029e24de4837/grpcio-1.76.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61f69297cba3950a524f61c7c8ee12e55c486cb5f7db47ff9dcee33da6f0d3ae", size = 6575387 }, + { url = "https://files.pythonhosted.org/packages/15/0f/f12c32b03f731f4a6242f771f63039df182c8b8e2cf8075b245b409259d4/grpcio-1.76.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6a15c17af8839b6801d554263c546c69c4d7718ad4321e3166175b37eaacca77", size = 7166668 }, + { url = "https://files.pythonhosted.org/packages/ff/2d/3ec9ce0c2b1d92dd59d1c3264aaec9f0f7c817d6e8ac683b97198a36ed5a/grpcio-1.76.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:25a18e9810fbc7e7f03ec2516addc116a957f8cbb8cbc95ccc80faa072743d03", size = 8124928 }, + { url = "https://files.pythonhosted.org/packages/1a/74/fd3317be5672f4856bcdd1a9e7b5e17554692d3db9a3b273879dc02d657d/grpcio-1.76.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:931091142fd8cc14edccc0845a79248bc155425eee9a98b2db2ea4f00a235a42", size = 7589983 }, + { url = "https://files.pythonhosted.org/packages/45/bb/ca038cf420f405971f19821c8c15bcbc875505f6ffadafe9ffd77871dc4c/grpcio-1.76.0-cp313-cp313-win32.whl", hash = "sha256:5e8571632780e08526f118f74170ad8d50fb0a48c23a746bef2a6ebade3abd6f", size = 3984727 }, + { url = "https://files.pythonhosted.org/packages/41/80/84087dc56437ced7cdd4b13d7875e7439a52a261e3ab4e06488ba6173b0a/grpcio-1.76.0-cp313-cp313-win_amd64.whl", hash = "sha256:f9f7bd5faab55f47231ad8dba7787866b69f5e93bc306e3915606779bbfb4ba8", size = 4702799 }, + { url = "https://files.pythonhosted.org/packages/b4/46/39adac80de49d678e6e073b70204091e76631e03e94928b9ea4ecf0f6e0e/grpcio-1.76.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:ff8a59ea85a1f2191a0ffcc61298c571bc566332f82e5f5be1b83c9d8e668a62", size = 5808417 }, + { url = "https://files.pythonhosted.org/packages/9c/f5/a4531f7fb8b4e2a60b94e39d5d924469b7a6988176b3422487be61fe2998/grpcio-1.76.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:06c3d6b076e7b593905d04fdba6a0525711b3466f43b3400266f04ff735de0cd", size = 11828219 }, + { url = "https://files.pythonhosted.org/packages/4b/1c/de55d868ed7a8bd6acc6b1d6ddc4aa36d07a9f31d33c912c804adb1b971b/grpcio-1.76.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fd5ef5932f6475c436c4a55e4336ebbe47bd3272be04964a03d316bbf4afbcbc", size = 6367826 }, + { url = "https://files.pythonhosted.org/packages/59/64/99e44c02b5adb0ad13ab3adc89cb33cb54bfa90c74770f2607eea629b86f/grpcio-1.76.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b331680e46239e090f5b3cead313cc772f6caa7d0fc8de349337563125361a4a", size = 7049550 }, + { url = "https://files.pythonhosted.org/packages/43/28/40a5be3f9a86949b83e7d6a2ad6011d993cbe9b6bd27bea881f61c7788b6/grpcio-1.76.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2229ae655ec4e8999599469559e97630185fdd53ae1e8997d147b7c9b2b72cba", size = 6575564 }, + { url = "https://files.pythonhosted.org/packages/4b/a9/1be18e6055b64467440208a8559afac243c66a8b904213af6f392dc2212f/grpcio-1.76.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:490fa6d203992c47c7b9e4a9d39003a0c2bcc1c9aa3c058730884bbbb0ee9f09", size = 7176236 }, + { url = "https://files.pythonhosted.org/packages/0f/55/dba05d3fcc151ce6e81327541d2cc8394f442f6b350fead67401661bf041/grpcio-1.76.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:479496325ce554792dba6548fae3df31a72cef7bad71ca2e12b0e58f9b336bfc", size = 8125795 }, + { url = "https://files.pythonhosted.org/packages/4a/45/122df922d05655f63930cf42c9e3f72ba20aadb26c100ee105cad4ce4257/grpcio-1.76.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1c9b93f79f48b03ada57ea24725d83a30284a012ec27eab2cf7e50a550cbbbcc", size = 7592214 }, + { url = "https://files.pythonhosted.org/packages/4a/6e/0b899b7f6b66e5af39e377055fb4a6675c9ee28431df5708139df2e93233/grpcio-1.76.0-cp314-cp314-win32.whl", hash = "sha256:747fa73efa9b8b1488a95d0ba1039c8e2dca0f741612d80415b1e1c560febf4e", size = 4062961 }, + { url = "https://files.pythonhosted.org/packages/19/41/0b430b01a2eb38ee887f88c1f07644a1df8e289353b78e82b37ef988fb64/grpcio-1.76.0-cp314-cp314-win_amd64.whl", hash = "sha256:922fa70ba549fce362d2e2871ab542082d66e2aaf0c19480ea453905b01f384e", size = 4834462 }, ] [[package]] name = "grpcio-status" -version = "1.75.1" +version = "1.76.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "googleapis-common-protos" }, { name = "grpcio" }, { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/5b/1ce0e3eedcdc08b4739b3da5836f31142ec8bee1a9ae0ad8dc0dc39a14bf/grpcio_status-1.75.1.tar.gz", hash = "sha256:8162afa21833a2085c91089cc395ad880fac1378a1d60233d976649ed724cbf8", size = 13671 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/46/e9f19d5be65e8423f886813a2a9d0056ba94757b0c5007aa59aed1a961fa/grpcio_status-1.76.0.tar.gz", hash = "sha256:25fcbfec74c15d1a1cb5da3fab8ee9672852dc16a5a9eeb5baf7d7a9952943cd", size = 13679 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/ad/6f414bb0b36eee20d93af6907256f208ffcda992ae6d3d7b6a778afe31e6/grpcio_status-1.75.1-py3-none-any.whl", hash = "sha256:f681b301be26dcf7abf5c765d4a22e4098765e1a65cbdfa3efca384edf8e4e3c", size = 14428 }, + { url = "https://files.pythonhosted.org/packages/8c/cc/27ba60ad5a5f2067963e6a858743500df408eb5855e98be778eaef8c9b02/grpcio_status-1.76.0-py3-none-any.whl", hash = "sha256:380568794055a8efbbd8871162df92012e0228a5f6dffaf57f2a00c534103b18", size = 14425 }, ] [[package]] @@ -691,51 +690,74 @@ wheels = [ [[package]] name = "jiter" -version = "0.11.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9d/c0/a3bb4cc13aced219dd18191ea66e874266bd8aa7b96744e495e1c733aa2d/jiter-0.11.0.tar.gz", hash = "sha256:1d9637eaf8c1d6a63d6562f2a6e5ab3af946c66037eb1b894e8fad75422266e4", size = 167094 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/b5/3009b112b8f673e568ef79af9863d8309a15f0a8cdcc06ed6092051f377e/jiter-0.11.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:2fb7b377688cc3850bbe5c192a6bd493562a0bc50cbc8b047316428fbae00ada", size = 305510 }, - { url = "https://files.pythonhosted.org/packages/fe/82/15514244e03b9e71e086bbe2a6de3e4616b48f07d5f834200c873956fb8c/jiter-0.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a1b7cbe3f25bd0d8abb468ba4302a5d45617ee61b2a7a638f63fee1dc086be99", size = 316521 }, - { url = "https://files.pythonhosted.org/packages/92/94/7a2e905f40ad2d6d660e00b68d818f9e29fb87ffe82774f06191e93cbe4a/jiter-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0a7f0ec81d5b7588c5cade1eb1925b91436ae6726dc2df2348524aeabad5de6", size = 338214 }, - { url = "https://files.pythonhosted.org/packages/a8/9c/5791ed5bdc76f12110158d3316a7a3ec0b1413d018b41c5ed399549d3ad5/jiter-0.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07630bb46ea2a6b9c6ed986c6e17e35b26148cce2c535454b26ee3f0e8dcaba1", size = 361280 }, - { url = "https://files.pythonhosted.org/packages/d4/7f/b7d82d77ff0d2cb06424141000176b53a9e6b16a1125525bb51ea4990c2e/jiter-0.11.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7764f27d28cd4a9cbc61704dfcd80c903ce3aad106a37902d3270cd6673d17f4", size = 487895 }, - { url = "https://files.pythonhosted.org/packages/42/44/10a1475d46f1fc1fd5cc2e82c58e7bca0ce5852208e0fa5df2f949353321/jiter-0.11.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d4a6c4a737d486f77f842aeb22807edecb4a9417e6700c7b981e16d34ba7c72", size = 378421 }, - { url = "https://files.pythonhosted.org/packages/9a/5f/0dc34563d8164d31d07bc09d141d3da08157a68dcd1f9b886fa4e917805b/jiter-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf408d2a0abd919b60de8c2e7bc5eeab72d4dafd18784152acc7c9adc3291591", size = 347932 }, - { url = "https://files.pythonhosted.org/packages/f7/de/b68f32a4fcb7b4a682b37c73a0e5dae32180140cd1caf11aef6ad40ddbf2/jiter-0.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cdef53eda7d18e799625023e1e250dbc18fbc275153039b873ec74d7e8883e09", size = 386959 }, - { url = "https://files.pythonhosted.org/packages/76/0a/c08c92e713b6e28972a846a81ce374883dac2f78ec6f39a0dad9f2339c3a/jiter-0.11.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:53933a38ef7b551dd9c7f1064f9d7bb235bb3168d0fa5f14f0798d1b7ea0d9c5", size = 517187 }, - { url = "https://files.pythonhosted.org/packages/89/b5/4a283bec43b15aad54fcae18d951f06a2ec3f78db5708d3b59a48e9c3fbd/jiter-0.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11840d2324c9ab5162fc1abba23bc922124fedcff0d7b7f85fffa291e2f69206", size = 509461 }, - { url = "https://files.pythonhosted.org/packages/34/a5/f8bad793010534ea73c985caaeef8cc22dfb1fedb15220ecdf15c623c07a/jiter-0.11.0-cp312-cp312-win32.whl", hash = "sha256:4f01a744d24a5f2bb4a11657a1b27b61dc038ae2e674621a74020406e08f749b", size = 206664 }, - { url = "https://files.pythonhosted.org/packages/ed/42/5823ec2b1469395a160b4bf5f14326b4a098f3b6898fbd327366789fa5d3/jiter-0.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:29fff31190ab3a26de026da2f187814f4b9c6695361e20a9ac2123e4d4378a4c", size = 203520 }, - { url = "https://files.pythonhosted.org/packages/97/c4/d530e514d0f4f29b2b68145e7b389cbc7cac7f9c8c23df43b04d3d10fa3e/jiter-0.11.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4441a91b80a80249f9a6452c14b2c24708f139f64de959943dfeaa6cb915e8eb", size = 305021 }, - { url = "https://files.pythonhosted.org/packages/7a/77/796a19c567c5734cbfc736a6f987affc0d5f240af8e12063c0fb93990ffa/jiter-0.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ff85fc6d2a431251ad82dbd1ea953affb5a60376b62e7d6809c5cd058bb39471", size = 314384 }, - { url = "https://files.pythonhosted.org/packages/14/9c/824334de0b037b91b6f3fa9fe5a191c83977c7ec4abe17795d3cb6d174cf/jiter-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5e86126d64706fd28dfc46f910d496923c6f95b395138c02d0e252947f452bd", size = 337389 }, - { url = "https://files.pythonhosted.org/packages/a2/95/ed4feab69e6cf9b2176ea29d4ef9d01a01db210a3a2c8a31a44ecdc68c38/jiter-0.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4ad8bd82165961867a10f52010590ce0b7a8c53da5ddd8bbb62fef68c181b921", size = 360519 }, - { url = "https://files.pythonhosted.org/packages/b5/0c/2ad00f38d3e583caba3909d95b7da1c3a7cd82c0aa81ff4317a8016fb581/jiter-0.11.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b42c2cd74273455ce439fd9528db0c6e84b5623cb74572305bdd9f2f2961d3df", size = 487198 }, - { url = "https://files.pythonhosted.org/packages/ea/8b/919b64cf3499b79bdfba6036da7b0cac5d62d5c75a28fb45bad7819e22f0/jiter-0.11.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0062dab98172dd0599fcdbf90214d0dcde070b1ff38a00cc1b90e111f071982", size = 377835 }, - { url = "https://files.pythonhosted.org/packages/29/7f/8ebe15b6e0a8026b0d286c083b553779b4dd63db35b43a3f171b544de91d/jiter-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb948402821bc76d1f6ef0f9e19b816f9b09f8577844ba7140f0b6afe994bc64", size = 347655 }, - { url = "https://files.pythonhosted.org/packages/8e/64/332127cef7e94ac75719dda07b9a472af6158ba819088d87f17f3226a769/jiter-0.11.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25a5b1110cca7329fd0daf5060faa1234be5c11e988948e4f1a1923b6a457fe1", size = 386135 }, - { url = "https://files.pythonhosted.org/packages/20/c8/557b63527442f84c14774159948262a9d4fabb0d61166f11568f22fc60d2/jiter-0.11.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:bf11807e802a214daf6c485037778843fadd3e2ec29377ae17e0706ec1a25758", size = 516063 }, - { url = "https://files.pythonhosted.org/packages/86/13/4164c819df4a43cdc8047f9a42880f0ceef5afeb22e8b9675c0528ebdccd/jiter-0.11.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:dbb57da40631c267861dd0090461222060960012d70fd6e4c799b0f62d0ba166", size = 508139 }, - { url = "https://files.pythonhosted.org/packages/fa/70/6e06929b401b331d41ddb4afb9f91cd1168218e3371972f0afa51c9f3c31/jiter-0.11.0-cp313-cp313-win32.whl", hash = "sha256:8e36924dad32c48d3c5e188d169e71dc6e84d6cb8dedefea089de5739d1d2f80", size = 206369 }, - { url = "https://files.pythonhosted.org/packages/f4/0d/8185b8e15de6dce24f6afae63380e16377dd75686d56007baa4f29723ea1/jiter-0.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:452d13e4fd59698408087235259cebe67d9d49173b4dacb3e8d35ce4acf385d6", size = 202538 }, - { url = "https://files.pythonhosted.org/packages/13/3a/d61707803260d59520721fa326babfae25e9573a88d8b7b9cb54c5423a59/jiter-0.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:089f9df9f69532d1339e83142438668f52c97cd22ee2d1195551c2b1a9e6cf33", size = 313737 }, - { url = "https://files.pythonhosted.org/packages/cd/cc/c9f0eec5d00f2a1da89f6bdfac12b8afdf8d5ad974184863c75060026457/jiter-0.11.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29ed1fe69a8c69bf0f2a962d8d706c7b89b50f1332cd6b9fbda014f60bd03a03", size = 346183 }, - { url = "https://files.pythonhosted.org/packages/a6/87/fc632776344e7aabbab05a95a0075476f418c5d29ab0f2eec672b7a1f0ac/jiter-0.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:a4d71d7ea6ea8786291423fe209acf6f8d398a0759d03e7f24094acb8ab686ba", size = 204225 }, - { url = "https://files.pythonhosted.org/packages/ee/3b/e7f45be7d3969bdf2e3cd4b816a7a1d272507cd0edd2d6dc4b07514f2d9a/jiter-0.11.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9a6dff27eca70930bdbe4cbb7c1a4ba8526e13b63dc808c0670083d2d51a4a72", size = 304414 }, - { url = "https://files.pythonhosted.org/packages/06/32/13e8e0d152631fcc1907ceb4943711471be70496d14888ec6e92034e2caf/jiter-0.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b1ae2a7593a62132c7d4c2abbee80bbbb94fdc6d157e2c6cc966250c564ef774", size = 314223 }, - { url = "https://files.pythonhosted.org/packages/0c/7e/abedd5b5a20ca083f778d96bba0d2366567fcecb0e6e34ff42640d5d7a18/jiter-0.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b13a431dba4b059e9e43019d3022346d009baf5066c24dcdea321a303cde9f0", size = 337306 }, - { url = "https://files.pythonhosted.org/packages/ac/e2/30d59bdc1204c86aa975ec72c48c482fee6633120ee9c3ab755e4dfefea8/jiter-0.11.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:af62e84ca3889604ebb645df3b0a3f3bcf6b92babbff642bd214616f57abb93a", size = 360565 }, - { url = "https://files.pythonhosted.org/packages/fe/88/567288e0d2ed9fa8f7a3b425fdaf2cb82b998633c24fe0d98f5417321aa8/jiter-0.11.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6f3b32bb723246e6b351aecace52aba78adb8eeb4b2391630322dc30ff6c773", size = 486465 }, - { url = "https://files.pythonhosted.org/packages/18/6e/7b72d09273214cadd15970e91dd5ed9634bee605176107db21e1e4205eb1/jiter-0.11.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:adcab442f4a099a358a7f562eaa54ed6456fb866e922c6545a717be51dbed7d7", size = 377581 }, - { url = "https://files.pythonhosted.org/packages/58/52/4db456319f9d14deed325f70102577492e9d7e87cf7097bda9769a1fcacb/jiter-0.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9967c2ab338ee2b2c0102fd379ec2693c496abf71ffd47e4d791d1f593b68e2", size = 347102 }, - { url = "https://files.pythonhosted.org/packages/ce/b4/433d5703c38b26083aec7a733eb5be96f9c6085d0e270a87ca6482cbf049/jiter-0.11.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e7d0bed3b187af8b47a981d9742ddfc1d9b252a7235471ad6078e7e4e5fe75c2", size = 386477 }, - { url = "https://files.pythonhosted.org/packages/c8/7a/a60bfd9c55b55b07c5c441c5085f06420b6d493ce9db28d069cc5b45d9f3/jiter-0.11.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:f6fe0283e903ebc55f1a6cc569b8c1f3bf4abd026fed85e3ff8598a9e6f982f0", size = 516004 }, - { url = "https://files.pythonhosted.org/packages/2e/46/f8363e5ecc179b4ed0ca6cb0a6d3bfc266078578c71ff30642ea2ce2f203/jiter-0.11.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:4ee5821e3d66606b29ae5b497230b304f1376f38137d69e35f8d2bd5f310ff73", size = 507855 }, - { url = "https://files.pythonhosted.org/packages/90/33/396083357d51d7ff0f9805852c288af47480d30dd31d8abc74909b020761/jiter-0.11.0-cp314-cp314-win32.whl", hash = "sha256:c2d13ba7567ca8799f17c76ed56b1d49be30df996eb7fa33e46b62800562a5e2", size = 205802 }, - { url = "https://files.pythonhosted.org/packages/e7/ab/eb06ca556b2551d41de7d03bf2ee24285fa3d0c58c5f8d95c64c9c3281b1/jiter-0.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fb4790497369d134a07fc763cc88888c46f734abdd66f9fdf7865038bf3a8f40", size = 313405 }, - { url = "https://files.pythonhosted.org/packages/af/22/7ab7b4ec3a1c1f03aef376af11d23b05abcca3fb31fbca1e7557053b1ba2/jiter-0.11.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e2bbf24f16ba5ad4441a9845e40e4ea0cb9eed00e76ba94050664ef53ef4406", size = 347102 }, - { url = "https://files.pythonhosted.org/packages/70/f3/ce100253c80063a7b8b406e1d1562657fd4b9b4e1b562db40e68645342fb/jiter-0.11.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:902b43386c04739229076bd1c4c69de5d115553d982ab442a8ae82947c72ede7", size = 336380 }, +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/68/0357982493a7b20925aece061f7fb7a2678e3b232f8d73a6edb7e5304443/jiter-0.11.1.tar.gz", hash = "sha256:849dcfc76481c0ea0099391235b7ca97d7279e0fa4c86005457ac7c88e8b76dc", size = 168385 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/8d/a5/489ce64d992c29bccbffabb13961bbb0435e890d7f2d266d1f3df5e917d2/jiter-0.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d58faaa936743cd1464540562f60b7ce4fd927e695e8bc31b3da5b914baa9abd", size = 364503 }, + { url = "https://files.pythonhosted.org/packages/d4/c0/e321dd83ee231d05c8fe4b1a12caf1f0e8c7a949bf4724d58397104f10f2/jiter-0.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:902640c3103625317291cb73773413b4d71847cdf9383ba65528745ff89f1d14", size = 487092 }, + { url = "https://files.pythonhosted.org/packages/f9/5e/8f24ec49c8d37bd37f34ec0112e0b1a3b4b5a7b456c8efff1df5e189ad43/jiter-0.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30405f726e4c2ed487b176c09f8b877a957f535d60c1bf194abb8dadedb5836f", size = 376328 }, + { url = "https://files.pythonhosted.org/packages/7f/70/ded107620e809327cf7050727e17ccfa79d6385a771b7fe38fb31318ef00/jiter-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3217f61728b0baadd2551844870f65219ac4a1285d5e1a4abddff3d51fdabe96", size = 356632 }, + { url = "https://files.pythonhosted.org/packages/19/53/c26f7251613f6a9079275ee43c89b8a973a95ff27532c421abc2a87afb04/jiter-0.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1364cc90c03a8196f35f396f84029f12abe925415049204446db86598c8b72c", size = 384358 }, + { url = "https://files.pythonhosted.org/packages/84/16/e0f2cc61e9c4d0b62f6c1bd9b9781d878a427656f88293e2a5335fa8ff07/jiter-0.11.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:53a54bf8e873820ab186b2dca9f6c3303f00d65ae5e7b7d6bda1b95aa472d646", size = 517279 }, + { url = "https://files.pythonhosted.org/packages/60/5c/4cd095eaee68961bca3081acbe7c89e12ae24a5dae5fd5d2a13e01ed2542/jiter-0.11.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7e29aca023627b0e0c2392d4248f6414d566ff3974fa08ff2ac8dbb96dfee92a", size = 508276 }, + { url = "https://files.pythonhosted.org/packages/4f/25/f459240e69b0e09a7706d96ce203ad615ca36b0fe832308d2b7123abf2d0/jiter-0.11.1-cp313-cp313-win32.whl", hash = "sha256:f153e31d8bca11363751e875c0a70b3d25160ecbaee7b51e457f14498fb39d8b", size = 205593 }, + { url = "https://files.pythonhosted.org/packages/7c/16/461bafe22bae79bab74e217a09c907481a46d520c36b7b9fe71ee8c9e983/jiter-0.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:f773f84080b667c69c4ea0403fc67bb08b07e2b7ce1ef335dea5868451e60fed", size = 203518 }, + { url = "https://files.pythonhosted.org/packages/7b/72/c45de6e320edb4fa165b7b1a414193b3cae302dd82da2169d315dcc78b44/jiter-0.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:635ecd45c04e4c340d2187bcb1cea204c7cc9d32c1364d251564bf42e0e39c2d", size = 188062 }, + { url = "https://files.pythonhosted.org/packages/65/9b/4a57922437ca8753ef823f434c2dec5028b237d84fa320f06a3ba1aec6e8/jiter-0.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d892b184da4d94d94ddb4031296931c74ec8b325513a541ebfd6dfb9ae89904b", size = 313814 }, + { url = "https://files.pythonhosted.org/packages/76/50/62a0683dadca25490a4bedc6a88d59de9af2a3406dd5a576009a73a1d392/jiter-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa22c223a3041dacb2fcd37c70dfd648b44662b4a48e242592f95bda5ab09d58", size = 344987 }, + { url = "https://files.pythonhosted.org/packages/da/00/2355dbfcbf6cdeaddfdca18287f0f38ae49446bb6378e4a5971e9356fc8a/jiter-0.11.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330e8e6a11ad4980cd66a0f4a3e0e2e0f646c911ce047014f984841924729789", size = 356399 }, + { url = "https://files.pythonhosted.org/packages/c9/07/c2bd748d578fa933d894a55bff33f983bc27f75fc4e491b354bef7b78012/jiter-0.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:09e2e386ebf298547ca3a3704b729471f7ec666c2906c5c26c1a915ea24741ec", size = 203289 }, + { url = "https://files.pythonhosted.org/packages/e6/ee/ace64a853a1acbd318eb0ca167bad1cf5ee037207504b83a868a5849747b/jiter-0.11.1-cp313-cp313t-win_arm64.whl", hash = "sha256:fe4a431c291157e11cee7c34627990ea75e8d153894365a3bc84b7a959d23ca8", size = 188284 }, + { url = "https://files.pythonhosted.org/packages/8d/00/d6006d069e7b076e4c66af90656b63da9481954f290d5eca8c715f4bf125/jiter-0.11.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:0fa1f70da7a8a9713ff8e5f75ec3f90c0c870be6d526aa95e7c906f6a1c8c676", size = 304624 }, + { url = "https://files.pythonhosted.org/packages/fc/45/4a0e31eb996b9ccfddbae4d3017b46f358a599ccf2e19fbffa5e531bd304/jiter-0.11.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:569ee559e5046a42feb6828c55307cf20fe43308e3ae0d8e9e4f8d8634d99944", size = 315042 }, + { url = "https://files.pythonhosted.org/packages/e7/91/22f5746f5159a28c76acdc0778801f3c1181799aab196dbea2d29e064968/jiter-0.11.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f69955fa1d92e81987f092b233f0be49d4c937da107b7f7dcf56306f1d3fcce9", size = 346357 }, + { url = "https://files.pythonhosted.org/packages/f5/4f/57620857d4e1dc75c8ff4856c90cb6c135e61bff9b4ebfb5dc86814e82d7/jiter-0.11.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:090f4c9d4a825e0fcbd0a2647c9a88a0f366b75654d982d95a9590745ff0c48d", size = 365057 }, + { url = "https://files.pythonhosted.org/packages/ce/34/caf7f9cc8ae0a5bb25a5440cc76c7452d264d1b36701b90fdadd28fe08ec/jiter-0.11.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf3d8cedf9e9d825233e0dcac28ff15c47b7c5512fdfe2e25fd5bbb6e6b0cee", size = 487086 }, + { url = "https://files.pythonhosted.org/packages/50/17/85b5857c329d533d433fedf98804ebec696004a1f88cabad202b2ddc55cf/jiter-0.11.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa9b1958f9c30d3d1a558b75f0626733c60eb9b7774a86b34d88060be1e67fe", size = 376083 }, + { url = "https://files.pythonhosted.org/packages/85/d3/2d9f973f828226e6faebdef034097a2918077ea776fb4d88489949024787/jiter-0.11.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42d1ca16590b768c5e7d723055acd2633908baacb3628dd430842e2e035aa90", size = 357825 }, + { url = "https://files.pythonhosted.org/packages/f4/55/848d4dabf2c2c236a05468c315c2cb9dc736c5915e65449ccecdba22fb6f/jiter-0.11.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5db4c2486a023820b701a17aec9c5a6173c5ba4393f26662f032f2de9c848b0f", size = 383933 }, + { url = "https://files.pythonhosted.org/packages/0b/6c/204c95a4fbb0e26dfa7776c8ef4a878d0c0b215868011cc904bf44f707e2/jiter-0.11.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:4573b78777ccfac954859a6eff45cbd9d281d80c8af049d0f1a3d9fc323d5c3a", size = 517118 }, + { url = "https://files.pythonhosted.org/packages/88/25/09956644ea5a2b1e7a2a0f665cb69a973b28f4621fa61fc0c0f06ff40a31/jiter-0.11.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7593ac6f40831d7961cb67633c39b9fef6689a211d7919e958f45710504f52d3", size = 508194 }, + { url = "https://files.pythonhosted.org/packages/09/49/4d1657355d7f5c9e783083a03a3f07d5858efa6916a7d9634d07db1c23bd/jiter-0.11.1-cp314-cp314-win32.whl", hash = "sha256:87202ec6ff9626ff5f9351507def98fcf0df60e9a146308e8ab221432228f4ea", size = 203961 }, + { url = "https://files.pythonhosted.org/packages/76/bd/f063bd5cc2712e7ca3cf6beda50894418fc0cfeb3f6ff45a12d87af25996/jiter-0.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:a5dd268f6531a182c89d0dd9a3f8848e86e92dfff4201b77a18e6b98aa59798c", size = 202804 }, + { url = "https://files.pythonhosted.org/packages/52/ca/4d84193dfafef1020bf0bedd5e1a8d0e89cb67c54b8519040effc694964b/jiter-0.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:5d761f863f912a44748a21b5c4979c04252588ded8d1d2760976d2e42cd8d991", size = 188001 }, + { url = "https://files.pythonhosted.org/packages/d5/fa/3b05e5c9d32efc770a8510eeb0b071c42ae93a5b576fd91cee9af91689a1/jiter-0.11.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2cc5a3965285ddc33e0cab933e96b640bc9ba5940cea27ebbbf6695e72d6511c", size = 312561 }, + { url = "https://files.pythonhosted.org/packages/50/d3/335822eb216154ddb79a130cbdce88fdf5c3e2b43dc5dba1fd95c485aaf5/jiter-0.11.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b572b3636a784c2768b2342f36a23078c8d3aa6d8a30745398b1bab58a6f1a8", size = 344551 }, + { url = "https://files.pythonhosted.org/packages/31/6d/a0bed13676b1398f9b3ba61f32569f20a3ff270291161100956a577b2dd3/jiter-0.11.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad93e3d67a981f96596d65d2298fe8d1aa649deb5374a2fb6a434410ee11915e", size = 363051 }, + { url = "https://files.pythonhosted.org/packages/a4/03/313eda04aa08545a5a04ed5876e52f49ab76a4d98e54578896ca3e16313e/jiter-0.11.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a83097ce379e202dcc3fe3fc71a16d523d1ee9192c8e4e854158f96b3efe3f2f", size = 485897 }, + { url = "https://files.pythonhosted.org/packages/5f/13/a1011b9d325e40b53b1b96a17c010b8646013417f3902f97a86325b19299/jiter-0.11.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7042c51e7fbeca65631eb0c332f90c0c082eab04334e7ccc28a8588e8e2804d9", size = 375224 }, + { url = "https://files.pythonhosted.org/packages/92/da/1b45026b19dd39b419e917165ff0ea629dbb95f374a3a13d2df95e40a6ac/jiter-0.11.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a68d679c0e47649a61df591660507608adc2652442de7ec8276538ac46abe08", size = 356606 }, + { url = "https://files.pythonhosted.org/packages/7a/0c/9acb0e54d6a8ba59ce923a180ebe824b4e00e80e56cefde86cc8e0a948be/jiter-0.11.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1b0da75dbf4b6ec0b3c9e604d1ee8beaf15bc046fff7180f7d89e3cdbd3bb51", size = 384003 }, + { url = "https://files.pythonhosted.org/packages/3f/2b/e5a5fe09d6da2145e4eed651e2ce37f3c0cf8016e48b1d302e21fb1628b7/jiter-0.11.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:69dd514bf0fa31c62147d6002e5ca2b3e7ef5894f5ac6f0a19752385f4e89437", size = 516946 }, + { url = "https://files.pythonhosted.org/packages/5f/fe/db936e16e0228d48eb81f9934e8327e9fde5185e84f02174fcd22a01be87/jiter-0.11.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:bb31ac0b339efa24c0ca606febd8b77ef11c58d09af1b5f2be4c99e907b11111", size = 507614 }, + { url = "https://files.pythonhosted.org/packages/86/db/c4438e8febfb303486d13c6b72f5eb71cf851e300a0c1f0b4140018dd31f/jiter-0.11.1-cp314-cp314t-win32.whl", hash = "sha256:b2ce0d6156a1d3ad41da3eec63b17e03e296b78b0e0da660876fccfada86d2f7", size = 204043 }, + { url = "https://files.pythonhosted.org/packages/36/59/81badb169212f30f47f817dfaabf965bc9b8204fed906fab58104ee541f9/jiter-0.11.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f4db07d127b54c4a2d43b4cf05ff0193e4f73e0dd90c74037e16df0b29f666e1", size = 204046 }, + { url = "https://files.pythonhosted.org/packages/dd/01/43f7b4eb61db3e565574c4c5714685d042fb652f9eef7e5a3de6aafa943a/jiter-0.11.1-cp314-cp314t-win_arm64.whl", hash = "sha256:28e4fdf2d7ebfc935523e50d1efa3970043cfaa161674fe66f9642409d001dfe", size = 188069 }, + { url = "https://files.pythonhosted.org/packages/9d/51/bd41562dd284e2a18b6dc0a99d195fd4a3560d52ab192c42e56fe0316643/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:e642b5270e61dd02265866398707f90e365b5db2eb65a4f30c789d826682e1f6", size = 306871 }, + { url = "https://files.pythonhosted.org/packages/ba/cb/64e7f21dd357e8cd6b3c919c26fac7fc198385bbd1d85bb3b5355600d787/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:464ba6d000585e4e2fd1e891f31f1231f497273414f5019e27c00a4b8f7a24ad", size = 301454 }, + { url = "https://files.pythonhosted.org/packages/55/b0/54bdc00da4ef39801b1419a01035bd8857983de984fd3776b0be6b94add7/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:055568693ab35e0bf3a171b03bb40b2dcb10352359e0ab9b5ed0da2bf1eb6f6f", size = 336801 }, + { url = "https://files.pythonhosted.org/packages/de/8f/87176ed071d42e9db415ed8be787ef4ef31a4fa27f52e6a4fbf34387bd28/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c69ea798d08a915ba4478113efa9e694971e410056392f4526d796f136d3fa", size = 343452 }, + { url = "https://files.pythonhosted.org/packages/a6/bc/950dd7f170c6394b6fdd73f989d9e729bd98907bcc4430ef080a72d06b77/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:0d4d6993edc83cf75e8c6828a8d6ce40a09ee87e38c7bfba6924f39e1337e21d", size = 302626 }, + { url = "https://files.pythonhosted.org/packages/3a/65/43d7971ca82ee100b7b9b520573eeef7eabc0a45d490168ebb9a9b5bb8b2/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f78d151c83a87a6cf5461d5ee55bc730dd9ae227377ac6f115b922989b95f838", size = 297034 }, + { url = "https://files.pythonhosted.org/packages/19/4c/000e1e0c0c67e96557a279f8969487ea2732d6c7311698819f977abae837/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9022974781155cd5521d5cb10997a03ee5e31e8454c9d999dcdccd253f2353f", size = 337328 }, + { url = "https://files.pythonhosted.org/packages/d9/71/71408b02c6133153336d29fa3ba53000f1e1a3f78bb2fc2d1a1865d2e743/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18c77aaa9117510d5bdc6a946baf21b1f0cfa58ef04d31c8d016f206f2118960", size = 343697 }, ] [[package]] @@ -761,45 +783,59 @@ wheels = [ [[package]] name = "langchain" -version = "0.3.27" +version = "1.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, - { name = "langchain-text-splitters" }, - { name = "langsmith" }, + { name = "langgraph" }, { name = "pydantic" }, - { name = "pyyaml" }, - { name = "requests" }, - { name = "sqlalchemy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/f6/f4f7f3a56626fe07e2bb330feb61254dbdf06c506e6b59a536a337da51cf/langchain-0.3.27.tar.gz", hash = "sha256:aa6f1e6274ff055d0fd36254176770f356ed0a8994297d1df47df341953cec62", size = 10233809 } +sdist = { url = "https://files.pythonhosted.org/packages/37/08/1708495e03eadbeef5d51e6b7cdcae4752a113a9b6313f46c70e165149c4/langchain-1.0.3.tar.gz", hash = "sha256:f96d8d185cb8cbba9793f5c648e7d5eeec688f8e3778f700d75d89d6570ae11e", size = 444810 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/d5/4861816a95b2f6993f1360cfb605aacb015506ee2090433a71de9cca8477/langchain-0.3.27-py3-none-any.whl", hash = "sha256:7b20c4f338826acb148d885b20a73a16e410ede9ee4f19bb02011852d5f98798", size = 1018194 }, + { url = "https://files.pythonhosted.org/packages/68/c8/b5dcfdde8b96369e5445f0fbac52fe8495bbd11b23ca83691d90d464eb15/langchain-1.0.3-py3-none-any.whl", hash = "sha256:a7d57964ed16278c991de4ab15516a81937a58c5ac7d7aadccb18431ad8179b2", size = 91970 }, ] [[package]] name = "langchain-anthropic" -version = "0.3.22" +version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, { name = "langchain-core" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b8/ac/4791e4451e1972f80cb517e19d003678239921fc0685a4c4b265fe47e216/langchain_anthropic-0.3.22.tar.gz", hash = "sha256:6c440278bd8012bc94ae341f416bfc724fdc5d2d2b69630fe6e82fa6ee9682ac", size = 471312 } +sdist = { url = "https://files.pythonhosted.org/packages/7e/12/f622dccb2886a9a016e149b74df2a2d9f7f6d6fafee087a010aa7415227e/langchain_anthropic-1.0.1.tar.gz", hash = "sha256:cd4c2f5d5d85d3aba290ea7b9976371d3e25fd58f6d70cfd0ef3323787862edc", size = 667647 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/ac/019fd9d45716a4d74c154f160665074ae49885ff4764c8313737f5fda348/langchain_anthropic-0.3.22-py3-none-any.whl", hash = "sha256:17721b240342a1a3f70bf0b2ff33520ba60d69008e3b9433190a62a52ff87cf6", size = 32592 }, + { url = "https://files.pythonhosted.org/packages/46/2c/2dcbf58526fa59b5464f79b5369a3abd81460ad3b737399cc3fd55bfb0cb/langchain_anthropic-1.0.1-py3-none-any.whl", hash = "sha256:a883f1030c50c2422a57985c0a89b1f49e9e0abe3117d212e510e3b838df7417", size = 46421 }, +] + +[[package]] +name = "langchain-classic" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langchain-text-splitters" }, + { name = "langsmith" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/b1/a66babeccb2c05ed89690a534296688c0349bee7a71641e91ecc2afd72fd/langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5", size = 10514930 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/74/246f809a3741c21982f985ca0113ec92d3c84896308561cc4414823f6951/langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33", size = 1040701 }, ] [[package]] name = "langchain-community" -version = "0.3.31" +version = "0.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, { name = "dataclasses-json" }, { name = "httpx-sse" }, - { name = "langchain" }, + { name = "langchain-classic" }, { name = "langchain-core" }, { name = "langsmith" }, { name = "numpy" }, @@ -809,14 +845,14 @@ dependencies = [ { name = "sqlalchemy" }, { name = "tenacity" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/49/2ff5354273809e9811392bc24bcffda545a196070666aef27bc6aacf1c21/langchain_community-0.3.31.tar.gz", hash = "sha256:250e4c1041539130f6d6ac6f9386cb018354eafccd917b01a4cff1950b80fd81", size = 33241237 } +sdist = { url = "https://files.pythonhosted.org/packages/53/97/a03585d42b9bdb6fbd935282d6e3348b10322a24e6ce12d0c99eb461d9af/langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85", size = 33241144 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/0a/b8848db67ad7c8d4652cb6f4cb78d49b5b5e6e8e51d695d62025aa3f7dbc/langchain_community-0.3.31-py3-none-any.whl", hash = "sha256:1c727e3ebbacd4d891b07bd440647668001cea3e39cbe732499ad655ec5cb569", size = 2532920 }, + { url = "https://files.pythonhosted.org/packages/f0/a4/c4fde67f193401512337456cabc2148f2c43316e445f5decd9f8806e2992/langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a", size = 2533285 }, ] [[package]] name = "langchain-core" -version = "0.3.79" +version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonpatch" }, @@ -827,27 +863,14 @@ dependencies = [ { name = "tenacity" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c8/99/f926495f467e0f43289f12e951655d267d1eddc1136c3cf4dd907794a9a7/langchain_core-0.3.79.tar.gz", hash = "sha256:024ba54a346dd9b13fb8b2342e0c83d0111e7f26fa01f545ada23ad772b55a60", size = 580895 } +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/fc/71/46b0efaf3fc6ad2c2bd600aef500f1cb2b7038a4042f58905805630dd29d/langchain_core-0.3.79-py3-none-any.whl", hash = "sha256:92045bfda3e741f8018e1356f83be203ec601561c6a7becfefe85be5ddc58fdb", size = 449779 }, -] - -[[package]] -name = "langchain-experimental" -version = "0.3.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "langchain-community" }, - { name = "langchain-core" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/27/56/a8acbb08a03383c28875b3b151e4cefea5612266917fbd6fc3c14c21e172/langchain_experimental-0.3.4.tar.gz", hash = "sha256:937c4259ee4a639c618d19acf0e2c5c2898ef127050346edc5655259aa281a21", size = 140532 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/27/fe8caa4884611286b1f7d6c5cfd76e1fef188faaa946db4fde6daa1cd2cd/langchain_experimental-0.3.4-py3-none-any.whl", hash = "sha256:2e587306aea36b60fa5e5fc05dc7281bee9f60a806f0bf9d30916e0ee096af80", size = 209154 }, + { url = "https://files.pythonhosted.org/packages/52/54/3aed89938a42cf7115575c333647551e35adc380feed651105d2d86c22f5/langchain_core-1.0.2-py3-none-any.whl", hash = "sha256:1f4ab4a41fc2e135e5dd4b97a89af123bbdc535af8f1f0644e8e8801bc288a12", size = 469251 }, ] [[package]] name = "langchain-google-genai" -version = "2.1.12" +version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filetype" }, @@ -855,40 +878,40 @@ dependencies = [ { name = "langchain-core" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/09/38/8b3a71c729bd03e9eb0fd8bdb19e06a074c35bc2eaa61b1b9edfa863f38d/langchain_google_genai-2.1.12.tar.gz", hash = "sha256:4a98371e545eb97fcdf483086a4aebbb8eceeb9597ca5a9c4c35e92f4fbbd271", size = 77566 } +sdist = { url = "https://files.pythonhosted.org/packages/43/31/d8da49fe51fffb44b2359691d1677f449ccdb01d30d03b441dca80a00b8d/langchain_google_genai-3.0.0.tar.gz", hash = "sha256:31331acd6fd90fcb466da7f79c6eb0d5335ec11aea99c97022ac329a735db4a7", size = 91632 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/8d/9dd9653e5414e73cae3480e5947bbbbd94ba7fa824efdf46e7ff2c0faef2/langchain_google_genai-2.1.12-py3-none-any.whl", hash = "sha256:4c07630419a8fbe7a2ec512c6dea68289663bfe7d5fae0ba431d2cd59a0d0880", size = 50746 }, + { url = "https://files.pythonhosted.org/packages/ec/9d/bf0a4335f9df912e722fce34fb83aeb2c44e937dcb1d60afaae959b9abfc/langchain_google_genai-3.0.0-py3-none-any.whl", hash = "sha256:b26909a30c5c4cd8b5d634d8feafc1ec0c2583726b4cf747d732d7ad2c080ee7", size = 57783 }, ] [[package]] name = "langchain-openai" -version = "0.3.35" +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/fb/96/06d0d25a37e05a0ff2d918f0a4b0bf0732aed6a43b472b0b68426ce04ef8/langchain_openai-0.3.35.tar.gz", hash = "sha256:fa985fd041c3809da256a040c98e8a43e91c6d165b96dcfeb770d8bd457bf76f", size = 786635 } +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/d8/d5/c90c5478215c20ee71d8feaf676f7ffd78d0568f8c98bd83f81ce7562ed7/langchain_openai-0.3.35-py3-none-any.whl", hash = "sha256:76d5707e6e81fd461d33964ad618bd326cb661a1975cef7c1cb0703576bdada5", size = 75952 }, + { url = "https://files.pythonhosted.org/packages/62/c0/06d74093e3e798eb464ef76f53d031235b87feccdadbbf6f7b8409043e4d/langchain_openai-1.0.1-py3-none-any.whl", hash = "sha256:9b61309a7268e7c1c614c554cfd66401519e7434aaefc52de7e251887aceb5f7", size = 81898 }, ] [[package]] name = "langchain-text-splitters" -version = "0.3.11" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/11/43/dcda8fd25f0b19cb2835f2f6bb67f26ad58634f04ac2d8eae00526b0fa55/langchain_text_splitters-0.3.11.tar.gz", hash = "sha256:7a50a04ada9a133bbabb80731df7f6ddac51bc9f1b9cab7fa09304d71d38a6cc", size = 46458 } +sdist = { url = "https://files.pythonhosted.org/packages/fa/2e/c833dcc379c1c086453708ef5eef7d4d1f808559ca4458bd6569d5d83ad7/langchain_text_splitters-1.0.0.tar.gz", hash = "sha256:d8580a20ad7ed10b432feb273e5758b2cc0902d094919629cec0e1ad691a6744", size = 264257 } wheels = [ - { url = "https://files.pythonhosted.org/packages/58/0d/41a51b40d24ff0384ec4f7ab8dd3dcea8353c05c973836b5e289f1465d4f/langchain_text_splitters-0.3.11-py3-none-any.whl", hash = "sha256:cf079131166a487f1372c8ab5d0bfaa6c0a4291733d9c43a34a16ac9bcd6a393", size = 33845 }, + { url = "https://files.pythonhosted.org/packages/1e/97/d362353ab04f865af6f81d4d46e7aa428734aa032de0017934b771fc34b7/langchain_text_splitters-1.0.0-py3-none-any.whl", hash = "sha256:f00c8219d3468f2c5bd951b708b6a7dd9bc3c62d0cfb83124c377f7170f33b2e", size = 33851 }, ] [[package]] name = "langgraph" -version = "0.6.10" +version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, @@ -898,35 +921,35 @@ dependencies = [ { name = "pydantic" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/9c/bc34cf47e7a8845f9abe5a09cf6ed892162b899708fae5c59252fa44ed24/langgraph-0.6.10.tar.gz", hash = "sha256:37457595ef3becebca94b3c4711a8bcd539b5eae7560f2cec409eae0d8113c59", size = 492079 } +sdist = { url = "https://files.pythonhosted.org/packages/0e/25/18e6e056ee1a8af64fcab441b4a3f2e158399935b08f148c7718fc42ecdb/langgraph-1.0.2.tar.gz", hash = "sha256:dae1af08d6025cb1fcaed68f502c01af7d634d9044787c853a46c791cfc52f67", size = 482660 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/75/c2972a484581389b5c193f16e8e36531e6574b280f23700735b0d6729365/langgraph-0.6.10-py3-none-any.whl", hash = "sha256:b16baacd38895f6f4aa51e03b8a5b5f8695cff96fd0e8b637b725186ea27237c", size = 155422 }, + { url = "https://files.pythonhosted.org/packages/d7/b1/9f4912e13d4ed691f2685c8a4b764b5a9237a30cca0c5782bc213d9f0a9a/langgraph-1.0.2-py3-none-any.whl", hash = "sha256:b3d56b8c01de857b5fb1da107e8eab6e30512a377685eeedb4f76456724c9729", size = 156751 }, ] [[package]] name = "langgraph-checkpoint" -version = "2.1.2" +version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "ormsgpack" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/29/83/6404f6ed23a91d7bc63d7df902d144548434237d017820ceaa8d014035f2/langgraph_checkpoint-2.1.2.tar.gz", hash = "sha256:112e9d067a6eff8937caf198421b1ffba8d9207193f14ac6f89930c1260c06f9", size = 142420 } +sdist = { url = "https://files.pythonhosted.org/packages/b7/cb/2a6dad2f0a14317580cc122e2a60e7f0ecabb50aaa6dc5b7a6a2c94cead7/langgraph_checkpoint-3.0.0.tar.gz", hash = "sha256:f738695ad938878d8f4775d907d9629e9fcd345b1950196effb08f088c52369e", size = 132132 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/f2/06bf5addf8ee664291e1b9ffa1f28fc9d97e59806dc7de5aea9844cbf335/langgraph_checkpoint-2.1.2-py3-none-any.whl", hash = "sha256:911ebffb069fd01775d4b5184c04aaafc2962fcdf50cf49d524cd4367c4d0c60", size = 45763 }, + { url = "https://files.pythonhosted.org/packages/85/2a/2efe0b5a72c41e3a936c81c5f5d8693987a1b260287ff1bbebaae1b7b888/langgraph_checkpoint-3.0.0-py3-none-any.whl", hash = "sha256:560beb83e629784ab689212a3d60834fb3196b4bbe1d6ac18e5cad5d85d46010", size = 46060 }, ] [[package]] name = "langgraph-prebuilt" -version = "0.6.4" +version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "langgraph-checkpoint" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/21/9b198d11732101ee8cdf30af98d0b4f11254c768de15173e57f5260fd14b/langgraph_prebuilt-0.6.4.tar.gz", hash = "sha256:e9e53b906ee5df46541d1dc5303239e815d3ec551e52bb03dd6463acc79ec28f", size = 125695 } +sdist = { url = "https://files.pythonhosted.org/packages/33/2f/b940590436e07b3450fe6d791aad5e581363ad536c4f1771e3ba46530268/langgraph_prebuilt-1.0.2.tar.gz", hash = "sha256:9896dbabf04f086eb59df4294f54ab5bdb21cd78e27e0a10e695dffd1cc6097d", size = 142075 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/7f/973b0d9729d9693d6e5b4bc5f3ae41138d194cb7b16b0ed230020beeb13a/langgraph_prebuilt-0.6.4-py3-none-any.whl", hash = "sha256:819f31d88b84cb2729ff1b79db2d51e9506b8fb7aaacfc0d359d4fe16e717344", size = 28025 }, + { url = "https://files.pythonhosted.org/packages/27/2f/9a7d00d4afa036e65294059c7c912002fb72ba5dbbd5c2a871ca06360278/langgraph_prebuilt-1.0.2-py3-none-any.whl", hash = "sha256:d9499f7c449fb637ee7b87e3f6a3b74095f4202053c74d33894bd839ea4c57c7", size = 34286 }, ] [[package]] @@ -944,7 +967,7 @@ wheels = [ [[package]] name = "langsmith" -version = "0.4.35" +version = "0.4.39" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx" }, @@ -955,9 +978,9 @@ dependencies = [ { name = "requests-toolbelt" }, { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f4/e4/937e20de425eea337c275475d5283402c31284f79c37016c8d6e8a08c5bd/langsmith-0.4.35.tar.gz", hash = "sha256:de589346911ed2bfeb92de9f634a7090efb8961a0c842fd1fb17c75ceefa5be7", size = 966172 } +sdist = { url = "https://files.pythonhosted.org/packages/a7/67/cf7c22d2744286f872aacee2ac13928c46e2ba5d486514d60cd4ab59f58d/langsmith-0.4.39.tar.gz", hash = "sha256:8f2e6bae5cba88f86d8df2a4f95b20a319c65e9945be639302876ab6ef2f13e0", size = 943095 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/a9/40cfd19ab7f2c2737d94d1bd6cb3dc3da85232705d7a563044397d0479e8/langsmith-0.4.35-py3-none-any.whl", hash = "sha256:3c3e6ec236e31099c0be175918d21a342cdb87df35138051205da726b9058b8e", size = 387139 }, + { url = "https://files.pythonhosted.org/packages/1f/38/9a97f650b8cdb2ba0356d65aef9239f4a30db69ae44c30daa2cf8dd3f350/langsmith-0.4.39-py3-none-any.whl", hash = "sha256:48872eaaa449fc10781b5251f4fc05bc7d5c2d1d733a734566a96dd9166108b4", size = 397767 }, ] [[package]] @@ -1082,70 +1105,70 @@ wheels = [ [[package]] name = "numpy" -version = "2.3.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/19/95b3d357407220ed24c139018d2518fab0a61a948e68286a25f1a4d049ff/numpy-2.3.3.tar.gz", hash = "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", size = 20576648 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/5d/bb7fc075b762c96329147799e1bcc9176ab07ca6375ea976c475482ad5b3/numpy-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cfdd09f9c84a1a934cde1eec2267f0a43a7cd44b2cca4ff95b7c0d14d144b0bf", size = 20957014 }, - { url = "https://files.pythonhosted.org/packages/6b/0e/c6211bb92af26517acd52125a237a92afe9c3124c6a68d3b9f81b62a0568/numpy-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb32e3cf0f762aee47ad1ddc6672988f7f27045b0783c887190545baba73aa25", size = 14185220 }, - { url = "https://files.pythonhosted.org/packages/22/f2/07bb754eb2ede9073f4054f7c0286b0d9d2e23982e090a80d478b26d35ca/numpy-2.3.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:396b254daeb0a57b1fe0ecb5e3cff6fa79a380fa97c8f7781a6d08cd429418fe", size = 5113918 }, - { url = "https://files.pythonhosted.org/packages/81/0a/afa51697e9fb74642f231ea36aca80fa17c8fb89f7a82abd5174023c3960/numpy-2.3.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:067e3d7159a5d8f8a0b46ee11148fc35ca9b21f61e3c49fbd0a027450e65a33b", size = 6647922 }, - { url = "https://files.pythonhosted.org/packages/5d/f5/122d9cdb3f51c520d150fef6e87df9279e33d19a9611a87c0d2cf78a89f4/numpy-2.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c02d0629d25d426585fb2e45a66154081b9fa677bc92a881ff1d216bc9919a8", size = 14281991 }, - { url = "https://files.pythonhosted.org/packages/51/64/7de3c91e821a2debf77c92962ea3fe6ac2bc45d0778c1cbe15d4fce2fd94/numpy-2.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20", size = 16641643 }, - { url = "https://files.pythonhosted.org/packages/30/e4/961a5fa681502cd0d68907818b69f67542695b74e3ceaa513918103b7e80/numpy-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cd7de500a5b66319db419dc3c345244404a164beae0d0937283b907d8152e6ea", size = 16056787 }, - { url = "https://files.pythonhosted.org/packages/99/26/92c912b966e47fbbdf2ad556cb17e3a3088e2e1292b9833be1dfa5361a1a/numpy-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93d4962d8f82af58f0b2eb85daaf1b3ca23fe0a85d0be8f1f2b7bb46034e56d7", size = 18579598 }, - { url = "https://files.pythonhosted.org/packages/17/b6/fc8f82cb3520768718834f310c37d96380d9dc61bfdaf05fe5c0b7653e01/numpy-2.3.3-cp312-cp312-win32.whl", hash = "sha256:5534ed6b92f9b7dca6c0a19d6df12d41c68b991cef051d108f6dbff3babc4ebf", size = 6320800 }, - { url = "https://files.pythonhosted.org/packages/32/ee/de999f2625b80d043d6d2d628c07d0d5555a677a3cf78fdf868d409b8766/numpy-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:497d7cad08e7092dba36e3d296fe4c97708c93daf26643a1ae4b03f6294d30eb", size = 12786615 }, - { url = "https://files.pythonhosted.org/packages/49/6e/b479032f8a43559c383acb20816644f5f91c88f633d9271ee84f3b3a996c/numpy-2.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:ca0309a18d4dfea6fc6262a66d06c26cfe4640c3926ceec90e57791a82b6eee5", size = 10195936 }, - { url = "https://files.pythonhosted.org/packages/7d/b9/984c2b1ee61a8b803bf63582b4ac4242cf76e2dbd663efeafcb620cc0ccb/numpy-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f5415fb78995644253370985342cd03572ef8620b934da27d77377a2285955bf", size = 20949588 }, - { url = "https://files.pythonhosted.org/packages/a6/e4/07970e3bed0b1384d22af1e9912527ecbeb47d3b26e9b6a3bced068b3bea/numpy-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7", size = 14177802 }, - { url = "https://files.pythonhosted.org/packages/35/c7/477a83887f9de61f1203bad89cf208b7c19cc9fef0cebef65d5a1a0619f2/numpy-2.3.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9dc13c6a5829610cc07422bc74d3ac083bd8323f14e2827d992f9e52e22cd6a6", size = 5106537 }, - { url = "https://files.pythonhosted.org/packages/52/47/93b953bd5866a6f6986344d045a207d3f1cfbad99db29f534ea9cee5108c/numpy-2.3.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d79715d95f1894771eb4e60fb23f065663b2298f7d22945d66877aadf33d00c7", size = 6640743 }, - { url = "https://files.pythonhosted.org/packages/23/83/377f84aaeb800b64c0ef4de58b08769e782edcefa4fea712910b6f0afd3c/numpy-2.3.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952cfd0748514ea7c3afc729a0fc639e61655ce4c55ab9acfab14bda4f402b4c", size = 14278881 }, - { url = "https://files.pythonhosted.org/packages/9a/a5/bf3db6e66c4b160d6ea10b534c381a1955dfab34cb1017ea93aa33c70ed3/numpy-2.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b83648633d46f77039c29078751f80da65aa64d5622a3cd62aaef9d835b6c93", size = 16636301 }, - { url = "https://files.pythonhosted.org/packages/a2/59/1287924242eb4fa3f9b3a2c30400f2e17eb2707020d1c5e3086fe7330717/numpy-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b001bae8cea1c7dfdb2ae2b017ed0a6f2102d7a70059df1e338e307a4c78a8ae", size = 16053645 }, - { url = "https://files.pythonhosted.org/packages/e6/93/b3d47ed882027c35e94ac2320c37e452a549f582a5e801f2d34b56973c97/numpy-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e9aced64054739037d42fb84c54dd38b81ee238816c948c8f3ed134665dcd86", size = 18578179 }, - { url = "https://files.pythonhosted.org/packages/20/d9/487a2bccbf7cc9d4bfc5f0f197761a5ef27ba870f1e3bbb9afc4bbe3fcc2/numpy-2.3.3-cp313-cp313-win32.whl", hash = "sha256:9591e1221db3f37751e6442850429b3aabf7026d3b05542d102944ca7f00c8a8", size = 6312250 }, - { url = "https://files.pythonhosted.org/packages/1b/b5/263ebbbbcede85028f30047eab3d58028d7ebe389d6493fc95ae66c636ab/numpy-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f0dadeb302887f07431910f67a14d57209ed91130be0adea2f9793f1a4f817cf", size = 12783269 }, - { url = "https://files.pythonhosted.org/packages/fa/75/67b8ca554bbeaaeb3fac2e8bce46967a5a06544c9108ec0cf5cece559b6c/numpy-2.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:3c7cf302ac6e0b76a64c4aecf1a09e51abd9b01fc7feee80f6c43e3ab1b1dbc5", size = 10195314 }, - { url = "https://files.pythonhosted.org/packages/11/d0/0d1ddec56b162042ddfafeeb293bac672de9b0cfd688383590090963720a/numpy-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:eda59e44957d272846bb407aad19f89dc6f58fecf3504bd144f4c5cf81a7eacc", size = 21048025 }, - { url = "https://files.pythonhosted.org/packages/36/9e/1996ca6b6d00415b6acbdd3c42f7f03ea256e2c3f158f80bd7436a8a19f3/numpy-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:823d04112bc85ef5c4fda73ba24e6096c8f869931405a80aa8b0e604510a26bc", size = 14301053 }, - { url = "https://files.pythonhosted.org/packages/05/24/43da09aa764c68694b76e84b3d3f0c44cb7c18cdc1ba80e48b0ac1d2cd39/numpy-2.3.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:40051003e03db4041aa325da2a0971ba41cf65714e65d296397cc0e32de6018b", size = 5229444 }, - { url = "https://files.pythonhosted.org/packages/bc/14/50ffb0f22f7218ef8af28dd089f79f68289a7a05a208db9a2c5dcbe123c1/numpy-2.3.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ee9086235dd6ab7ae75aba5662f582a81ced49f0f1c6de4260a78d8f2d91a19", size = 6738039 }, - { url = "https://files.pythonhosted.org/packages/55/52/af46ac0795e09657d45a7f4db961917314377edecf66db0e39fa7ab5c3d3/numpy-2.3.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94fcaa68757c3e2e668ddadeaa86ab05499a70725811e582b6a9858dd472fb30", size = 14352314 }, - { url = "https://files.pythonhosted.org/packages/a7/b1/dc226b4c90eb9f07a3fff95c2f0db3268e2e54e5cce97c4ac91518aee71b/numpy-2.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da1a74b90e7483d6ce5244053399a614b1d6b7bc30a60d2f570e5071f8959d3e", size = 16701722 }, - { url = "https://files.pythonhosted.org/packages/9d/9d/9d8d358f2eb5eced14dba99f110d83b5cd9a4460895230f3b396ad19a323/numpy-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2990adf06d1ecee3b3dcbb4977dfab6e9f09807598d647f04d385d29e7a3c3d3", size = 16132755 }, - { url = "https://files.pythonhosted.org/packages/b6/27/b3922660c45513f9377b3fb42240bec63f203c71416093476ec9aa0719dc/numpy-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ed635ff692483b8e3f0fcaa8e7eb8a75ee71aa6d975388224f70821421800cea", size = 18651560 }, - { url = "https://files.pythonhosted.org/packages/5b/8e/3ab61a730bdbbc201bb245a71102aa609f0008b9ed15255500a99cd7f780/numpy-2.3.3-cp313-cp313t-win32.whl", hash = "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", size = 6442776 }, - { url = "https://files.pythonhosted.org/packages/1c/3a/e22b766b11f6030dc2decdeff5c2fb1610768055603f9f3be88b6d192fb2/numpy-2.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", size = 12927281 }, - { url = "https://files.pythonhosted.org/packages/7b/42/c2e2bc48c5e9b2a83423f99733950fbefd86f165b468a3d85d52b30bf782/numpy-2.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", size = 10265275 }, - { url = "https://files.pythonhosted.org/packages/6b/01/342ad585ad82419b99bcf7cebe99e61da6bedb89e213c5fd71acc467faee/numpy-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", size = 20951527 }, - { url = "https://files.pythonhosted.org/packages/ef/d8/204e0d73fc1b7a9ee80ab1fe1983dd33a4d64a4e30a05364b0208e9a241a/numpy-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", size = 14186159 }, - { url = "https://files.pythonhosted.org/packages/22/af/f11c916d08f3a18fb8ba81ab72b5b74a6e42ead4c2846d270eb19845bf74/numpy-2.3.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", size = 5114624 }, - { url = "https://files.pythonhosted.org/packages/fb/11/0ed919c8381ac9d2ffacd63fd1f0c34d27e99cab650f0eb6f110e6ae4858/numpy-2.3.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", size = 6642627 }, - { url = "https://files.pythonhosted.org/packages/ee/83/deb5f77cb0f7ba6cb52b91ed388b47f8f3c2e9930d4665c600408d9b90b9/numpy-2.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", size = 14296926 }, - { url = "https://files.pythonhosted.org/packages/77/cc/70e59dcb84f2b005d4f306310ff0a892518cc0c8000a33d0e6faf7ca8d80/numpy-2.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", size = 16638958 }, - { url = "https://files.pythonhosted.org/packages/b6/5a/b2ab6c18b4257e099587d5b7f903317bd7115333ad8d4ec4874278eafa61/numpy-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", size = 16071920 }, - { url = "https://files.pythonhosted.org/packages/b8/f1/8b3fdc44324a259298520dd82147ff648979bed085feeacc1250ef1656c0/numpy-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", size = 18577076 }, - { url = "https://files.pythonhosted.org/packages/f0/a1/b87a284fb15a42e9274e7fcea0dad259d12ddbf07c1595b26883151ca3b4/numpy-2.3.3-cp314-cp314-win32.whl", hash = "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", size = 6366952 }, - { url = "https://files.pythonhosted.org/packages/70/5f/1816f4d08f3b8f66576d8433a66f8fa35a5acfb3bbd0bf6c31183b003f3d/numpy-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", size = 12919322 }, - { url = "https://files.pythonhosted.org/packages/8c/de/072420342e46a8ea41c324a555fa90fcc11637583fb8df722936aed1736d/numpy-2.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", size = 10478630 }, - { url = "https://files.pythonhosted.org/packages/d5/df/ee2f1c0a9de7347f14da5dd3cd3c3b034d1b8607ccb6883d7dd5c035d631/numpy-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", size = 21047987 }, - { url = "https://files.pythonhosted.org/packages/d6/92/9453bdc5a4e9e69cf4358463f25e8260e2ffc126d52e10038b9077815989/numpy-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", size = 14301076 }, - { url = "https://files.pythonhosted.org/packages/13/77/1447b9eb500f028bb44253105bd67534af60499588a5149a94f18f2ca917/numpy-2.3.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", size = 5229491 }, - { url = "https://files.pythonhosted.org/packages/3d/f9/d72221b6ca205f9736cb4b2ce3b002f6e45cd67cd6a6d1c8af11a2f0b649/numpy-2.3.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", size = 6737913 }, - { url = "https://files.pythonhosted.org/packages/3c/5f/d12834711962ad9c46af72f79bb31e73e416ee49d17f4c797f72c96b6ca5/numpy-2.3.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", size = 14352811 }, - { url = "https://files.pythonhosted.org/packages/a1/0d/fdbec6629d97fd1bebed56cd742884e4eead593611bbe1abc3eb40d304b2/numpy-2.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", size = 16702689 }, - { url = "https://files.pythonhosted.org/packages/9b/09/0a35196dc5575adde1eb97ddfbc3e1687a814f905377621d18ca9bc2b7dd/numpy-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", size = 16133855 }, - { url = "https://files.pythonhosted.org/packages/7a/ca/c9de3ea397d576f1b6753eaa906d4cdef1bf97589a6d9825a349b4729cc2/numpy-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", size = 18652520 }, - { url = "https://files.pythonhosted.org/packages/fd/c2/e5ed830e08cd0196351db55db82f65bc0ab05da6ef2b72a836dcf1936d2f/numpy-2.3.3-cp314-cp314t-win32.whl", hash = "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", size = 6515371 }, - { url = "https://files.pythonhosted.org/packages/47/c7/b0f6b5b67f6788a0725f744496badbb604d226bf233ba716683ebb47b570/numpy-2.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", size = 13112576 }, - { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953 }, +version = "2.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/098d2270d52b41f1bd7db9fc288aaa0400cb48c2a3e2af6fa365d9720947/numpy-2.3.4.tar.gz", hash = "sha256:a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a", size = 20582187 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/c2/cd/8428e23a9fcebd33988f4cb61208fda832800ca03781f471f3727a820704/numpy-2.3.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:043885b4f7e6e232d7df4f51ffdef8c36320ee9d5f227b380ea636722c7ed12e", size = 6641438 }, + { url = "https://files.pythonhosted.org/packages/3e/d1/913fe563820f3c6b079f992458f7331278dcd7ba8427e8e745af37ddb44f/numpy-2.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ee6a571d1e4f0ea6d5f22d6e5fbd6ed1dc2b18542848e1e7301bd190500c9d7", size = 14281290 }, + { url = "https://files.pythonhosted.org/packages/9e/7e/7d306ff7cb143e6d975cfa7eb98a93e73495c4deabb7d1b5ecf09ea0fd69/numpy-2.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc8a63918b04b8571789688b2780ab2b4a33ab44bfe8ccea36d3eba51228c953", size = 16636543 }, + { url = "https://files.pythonhosted.org/packages/47/6a/8cfc486237e56ccfb0db234945552a557ca266f022d281a2f577b98e955c/numpy-2.3.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:40cc556d5abbc54aabe2b1ae287042d7bdb80c08edede19f0c0afb36ae586f37", size = 16056117 }, + { url = "https://files.pythonhosted.org/packages/b1/0e/42cb5e69ea901e06ce24bfcc4b5664a56f950a70efdcf221f30d9615f3f3/numpy-2.3.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ecb63014bb7f4ce653f8be7f1df8cbc6093a5a2811211770f6606cc92b5a78fd", size = 18577788 }, + { url = "https://files.pythonhosted.org/packages/86/92/41c3d5157d3177559ef0a35da50f0cda7fa071f4ba2306dd36818591a5bc/numpy-2.3.4-cp313-cp313-win32.whl", hash = "sha256:e8370eb6925bb8c1c4264fec52b0384b44f675f191df91cbe0140ec9f0955646", size = 6282620 }, + { url = "https://files.pythonhosted.org/packages/09/97/fd421e8bc50766665ad35536c2bb4ef916533ba1fdd053a62d96cc7c8b95/numpy-2.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:56209416e81a7893036eea03abcb91c130643eb14233b2515c90dcac963fe99d", size = 12784672 }, + { url = "https://files.pythonhosted.org/packages/ad/df/5474fb2f74970ca8eb978093969b125a84cc3d30e47f82191f981f13a8a0/numpy-2.3.4-cp313-cp313-win_arm64.whl", hash = "sha256:a700a4031bc0fd6936e78a752eefb79092cecad2599ea9c8039c548bc097f9bc", size = 10196702 }, + { url = "https://files.pythonhosted.org/packages/11/83/66ac031464ec1767ea3ed48ce40f615eb441072945e98693bec0bcd056cc/numpy-2.3.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:86966db35c4040fdca64f0816a1c1dd8dbd027d90fca5a57e00e1ca4cd41b879", size = 21049003 }, + { url = "https://files.pythonhosted.org/packages/5f/99/5b14e0e686e61371659a1d5bebd04596b1d72227ce36eed121bb0aeab798/numpy-2.3.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:838f045478638b26c375ee96ea89464d38428c69170360b23a1a50fa4baa3562", size = 14302980 }, + { url = "https://files.pythonhosted.org/packages/2c/44/e9486649cd087d9fc6920e3fc3ac2aba10838d10804b1e179fb7cbc4e634/numpy-2.3.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d7315ed1dab0286adca467377c8381cd748f3dc92235f22a7dfc42745644a96a", size = 5231472 }, + { url = "https://files.pythonhosted.org/packages/3e/51/902b24fa8887e5fe2063fd61b1895a476d0bbf46811ab0c7fdf4bd127345/numpy-2.3.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:84f01a4d18b2cc4ade1814a08e5f3c907b079c847051d720fad15ce37aa930b6", size = 6739342 }, + { url = "https://files.pythonhosted.org/packages/34/f1/4de9586d05b1962acdcdb1dc4af6646361a643f8c864cef7c852bf509740/numpy-2.3.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:817e719a868f0dacde4abdfc5c1910b301877970195db9ab6a5e2c4bd5b121f7", size = 14354338 }, + { url = "https://files.pythonhosted.org/packages/1f/06/1c16103b425de7969d5a76bdf5ada0804b476fed05d5f9e17b777f1cbefd/numpy-2.3.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85e071da78d92a214212cacea81c6da557cab307f2c34b5f85b628e94803f9c0", size = 16702392 }, + { url = "https://files.pythonhosted.org/packages/34/b2/65f4dc1b89b5322093572b6e55161bb42e3e0487067af73627f795cc9d47/numpy-2.3.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2ec646892819370cf3558f518797f16597b4e4669894a2ba712caccc9da53f1f", size = 16134998 }, + { url = "https://files.pythonhosted.org/packages/d4/11/94ec578896cdb973aaf56425d6c7f2aff4186a5c00fac15ff2ec46998b46/numpy-2.3.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:035796aaaddfe2f9664b9a9372f089cfc88bd795a67bd1bfe15e6e770934cf64", size = 18651574 }, + { url = "https://files.pythonhosted.org/packages/62/b7/7efa763ab33dbccf56dade36938a77345ce8e8192d6b39e470ca25ff3cd0/numpy-2.3.4-cp313-cp313t-win32.whl", hash = "sha256:fea80f4f4cf83b54c3a051f2f727870ee51e22f0248d3114b8e755d160b38cfb", size = 6413135 }, + { url = "https://files.pythonhosted.org/packages/43/70/aba4c38e8400abcc2f345e13d972fb36c26409b3e644366db7649015f291/numpy-2.3.4-cp313-cp313t-win_amd64.whl", hash = "sha256:15eea9f306b98e0be91eb344a94c0e630689ef302e10c2ce5f7e11905c704f9c", size = 12928582 }, + { url = "https://files.pythonhosted.org/packages/67/63/871fad5f0073fc00fbbdd7232962ea1ac40eeaae2bba66c76214f7954236/numpy-2.3.4-cp313-cp313t-win_arm64.whl", hash = "sha256:b6c231c9c2fadbae4011ca5e7e83e12dc4a5072f1a1d85a0a7b3ed754d145a40", size = 10266691 }, + { url = "https://files.pythonhosted.org/packages/72/71/ae6170143c115732470ae3a2d01512870dd16e0953f8a6dc89525696069b/numpy-2.3.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:81c3e6d8c97295a7360d367f9f8553973651b76907988bb6066376bc2252f24e", size = 20955580 }, + { url = "https://files.pythonhosted.org/packages/af/39/4be9222ffd6ca8a30eda033d5f753276a9c3426c397bb137d8e19dedd200/numpy-2.3.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7c26b0b2bf58009ed1f38a641f3db4be8d960a417ca96d14e5b06df1506d41ff", size = 14188056 }, + { url = "https://files.pythonhosted.org/packages/6c/3d/d85f6700d0a4aa4f9491030e1021c2b2b7421b2b38d01acd16734a2bfdc7/numpy-2.3.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:62b2198c438058a20b6704351b35a1d7db881812d8512d67a69c9de1f18ca05f", size = 5116555 }, + { url = "https://files.pythonhosted.org/packages/bf/04/82c1467d86f47eee8a19a464c92f90a9bb68ccf14a54c5224d7031241ffb/numpy-2.3.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:9d729d60f8d53a7361707f4b68a9663c968882dd4f09e0d58c044c8bf5faee7b", size = 6643581 }, + { url = "https://files.pythonhosted.org/packages/0c/d3/c79841741b837e293f48bd7db89d0ac7a4f2503b382b78a790ef1dc778a5/numpy-2.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd0c630cf256b0a7fd9d0a11c9413b42fef5101219ce6ed5a09624f5a65392c7", size = 14299186 }, + { url = "https://files.pythonhosted.org/packages/e8/7e/4a14a769741fbf237eec5a12a2cbc7a4c4e061852b6533bcb9e9a796c908/numpy-2.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5e081bc082825f8b139f9e9fe42942cb4054524598aaeb177ff476cc76d09d2", size = 16638601 }, + { url = "https://files.pythonhosted.org/packages/93/87/1c1de269f002ff0a41173fe01dcc925f4ecff59264cd8f96cf3b60d12c9b/numpy-2.3.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15fb27364ed84114438fff8aaf998c9e19adbeba08c0b75409f8c452a8692c52", size = 16074219 }, + { url = "https://files.pythonhosted.org/packages/cd/28/18f72ee77408e40a76d691001ae599e712ca2a47ddd2c4f695b16c65f077/numpy-2.3.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:85d9fb2d8cd998c84d13a79a09cc0c1091648e848e4e6249b0ccd7f6b487fa26", size = 18576702 }, + { url = "https://files.pythonhosted.org/packages/c3/76/95650169b465ececa8cf4b2e8f6df255d4bf662775e797ade2025cc51ae6/numpy-2.3.4-cp314-cp314-win32.whl", hash = "sha256:e73d63fd04e3a9d6bc187f5455d81abfad05660b212c8804bf3b407e984cd2bc", size = 6337136 }, + { url = "https://files.pythonhosted.org/packages/dc/89/a231a5c43ede5d6f77ba4a91e915a87dea4aeea76560ba4d2bf185c683f0/numpy-2.3.4-cp314-cp314-win_amd64.whl", hash = "sha256:3da3491cee49cf16157e70f607c03a217ea6647b1cea4819c4f48e53d49139b9", size = 12920542 }, + { url = "https://files.pythonhosted.org/packages/0d/0c/ae9434a888f717c5ed2ff2393b3f344f0ff6f1c793519fa0c540461dc530/numpy-2.3.4-cp314-cp314-win_arm64.whl", hash = "sha256:6d9cd732068e8288dbe2717177320723ccec4fb064123f0caf9bbd90ab5be868", size = 10480213 }, + { url = "https://files.pythonhosted.org/packages/83/4b/c4a5f0841f92536f6b9592694a5b5f68c9ab37b775ff342649eadf9055d3/numpy-2.3.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:22758999b256b595cf0b1d102b133bb61866ba5ceecf15f759623b64c020c9ec", size = 21052280 }, + { url = "https://files.pythonhosted.org/packages/3e/80/90308845fc93b984d2cc96d83e2324ce8ad1fd6efea81b324cba4b673854/numpy-2.3.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9cb177bc55b010b19798dc5497d540dea67fd13a8d9e882b2dae71de0cf09eb3", size = 14302930 }, + { url = "https://files.pythonhosted.org/packages/3d/4e/07439f22f2a3b247cec4d63a713faae55e1141a36e77fb212881f7cda3fb/numpy-2.3.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0f2bcc76f1e05e5ab58893407c63d90b2029908fa41f9f1cc51eecce936c3365", size = 5231504 }, + { url = "https://files.pythonhosted.org/packages/ab/de/1e11f2547e2fe3d00482b19721855348b94ada8359aef5d40dd57bfae9df/numpy-2.3.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8dc20bde86802df2ed8397a08d793da0ad7a5fd4ea3ac85d757bf5dd4ad7c252", size = 6739405 }, + { url = "https://files.pythonhosted.org/packages/3b/40/8cd57393a26cebe2e923005db5134a946c62fa56a1087dc7c478f3e30837/numpy-2.3.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e199c087e2aa71c8f9ce1cb7a8e10677dc12457e7cc1be4798632da37c3e86e", size = 14354866 }, + { url = "https://files.pythonhosted.org/packages/93/39/5b3510f023f96874ee6fea2e40dfa99313a00bf3ab779f3c92978f34aace/numpy-2.3.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85597b2d25ddf655495e2363fe044b0ae999b75bc4d630dc0d886484b03a5eb0", size = 16703296 }, + { url = "https://files.pythonhosted.org/packages/41/0d/19bb163617c8045209c1996c4e427bccbc4bbff1e2c711f39203c8ddbb4a/numpy-2.3.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04a69abe45b49c5955923cf2c407843d1c85013b424ae8a560bba16c92fe44a0", size = 16136046 }, + { url = "https://files.pythonhosted.org/packages/e2/c1/6dba12fdf68b02a21ac411c9df19afa66bed2540f467150ca64d246b463d/numpy-2.3.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e1708fac43ef8b419c975926ce1eaf793b0c13b7356cfab6ab0dc34c0a02ac0f", size = 18652691 }, + { url = "https://files.pythonhosted.org/packages/f8/73/f85056701dbbbb910c51d846c58d29fd46b30eecd2b6ba760fc8b8a1641b/numpy-2.3.4-cp314-cp314t-win32.whl", hash = "sha256:863e3b5f4d9915aaf1b8ec79ae560ad21f0b8d5e3adc31e73126491bb86dee1d", size = 6485782 }, + { url = "https://files.pythonhosted.org/packages/17/90/28fa6f9865181cb817c2471ee65678afa8a7e2a1fb16141473d5fa6bacc3/numpy-2.3.4-cp314-cp314t-win_amd64.whl", hash = "sha256:962064de37b9aef801d33bc579690f8bfe6c5e70e29b61783f60bcba838a14d6", size = 13113301 }, + { url = "https://files.pythonhosted.org/packages/54/23/08c002201a8e7e1f9afba93b97deceb813252d9cfd0d3351caed123dcf97/numpy-2.3.4-cp314-cp314t-win_arm64.whl", hash = "sha256:8b5a9a39c45d852b62693d9b3f3e0fe052541f804296ff401a72a1b60edafb29", size = 10547532 }, ] [[package]] name = "openai" -version = "2.3.0" +version = "2.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -1157,58 +1180,62 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/90/8f26554d24d63ed4f94d33c24271559863223a67e624f4d2e65ba8e48dca/openai-2.3.0.tar.gz", hash = "sha256:8d213ee5aaf91737faea2d7fc1cd608657a5367a18966372a3756ceaabfbd812", size = 589616 } +sdist = { url = "https://files.pythonhosted.org/packages/c4/44/303deb97be7c1c9b53118b52825cbd1557aeeff510f3a52566b1fa66f6a2/openai-2.6.1.tar.gz", hash = "sha256:27ae704d190615fca0c0fc2b796a38f8b5879645a3a52c9c453b23f97141bb49", size = 593043 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9c/5b/4be258ff072ed8ee15f6bfd8d5a1a4618aa4704b127c0c5959212ad177d6/openai-2.3.0-py3-none-any.whl", hash = "sha256:a7aa83be6f7b0ab2e4d4d7bcaf36e3d790874c0167380c5d0afd0ed99a86bd7b", size = 999768 }, + { url = "https://files.pythonhosted.org/packages/15/0e/331df43df633e6105ff9cf45e0ce57762bd126a45ac16b25a43f6738d8a2/openai-2.6.1-py3-none-any.whl", hash = "sha256:904e4b5254a8416746a2f05649594fa41b19d799843cd134dac86167e094edef", size = 1005551 }, ] [[package]] name = "orjson" -version = "3.11.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/be/4d/8df5f83256a809c22c4d6792ce8d43bb503be0fb7a8e4da9025754b09658/orjson-3.11.3.tar.gz", hash = "sha256:1c0603b1d2ffcd43a411d64797a19556ef76958aef1c182f22dc30860152a98a", size = 5482394 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/b0/a7edab2a00cdcb2688e1c943401cb3236323e7bfd2839815c6131a3742f4/orjson-3.11.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8c752089db84333e36d754c4baf19c0e1437012242048439c7e80eb0e6426e3b", size = 238259 }, - { url = "https://files.pythonhosted.org/packages/e1/c6/ff4865a9cc398a07a83342713b5932e4dc3cb4bf4bc04e8f83dedfc0d736/orjson-3.11.3-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:9b8761b6cf04a856eb544acdd82fc594b978f12ac3602d6374a7edb9d86fd2c2", size = 127633 }, - { url = "https://files.pythonhosted.org/packages/6e/e6/e00bea2d9472f44fe8794f523e548ce0ad51eb9693cf538a753a27b8bda4/orjson-3.11.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b13974dc8ac6ba22feaa867fc19135a3e01a134b4f7c9c28162fed4d615008a", size = 123061 }, - { url = "https://files.pythonhosted.org/packages/54/31/9fbb78b8e1eb3ac605467cb846e1c08d0588506028b37f4ee21f978a51d4/orjson-3.11.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f83abab5bacb76d9c821fd5c07728ff224ed0e52d7a71b7b3de822f3df04e15c", size = 127956 }, - { url = "https://files.pythonhosted.org/packages/36/88/b0604c22af1eed9f98d709a96302006915cfd724a7ebd27d6dd11c22d80b/orjson-3.11.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6fbaf48a744b94091a56c62897b27c31ee2da93d826aa5b207131a1e13d4064", size = 130790 }, - { url = "https://files.pythonhosted.org/packages/0e/9d/1c1238ae9fffbfed51ba1e507731b3faaf6b846126a47e9649222b0fd06f/orjson-3.11.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc779b4f4bba2847d0d2940081a7b6f7b5877e05408ffbb74fa1faf4a136c424", size = 132385 }, - { url = "https://files.pythonhosted.org/packages/a3/b5/c06f1b090a1c875f337e21dd71943bc9d84087f7cdf8c6e9086902c34e42/orjson-3.11.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd4b909ce4c50faa2192da6bb684d9848d4510b736b0611b6ab4020ea6fd2d23", size = 135305 }, - { url = "https://files.pythonhosted.org/packages/a0/26/5f028c7d81ad2ebbf84414ba6d6c9cac03f22f5cd0d01eb40fb2d6a06b07/orjson-3.11.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:524b765ad888dc5518bbce12c77c2e83dee1ed6b0992c1790cc5fb49bb4b6667", size = 132875 }, - { url = "https://files.pythonhosted.org/packages/fe/d4/b8df70d9cfb56e385bf39b4e915298f9ae6c61454c8154a0f5fd7efcd42e/orjson-3.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:84fd82870b97ae3cdcea9d8746e592b6d40e1e4d4527835fc520c588d2ded04f", size = 130940 }, - { url = "https://files.pythonhosted.org/packages/da/5e/afe6a052ebc1a4741c792dd96e9f65bf3939d2094e8b356503b68d48f9f5/orjson-3.11.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fbecb9709111be913ae6879b07bafd4b0785b44c1eb5cac8ac76da048b3885a1", size = 403852 }, - { url = "https://files.pythonhosted.org/packages/f8/90/7bbabafeb2ce65915e9247f14a56b29c9334003536009ef5b122783fe67e/orjson-3.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9dba358d55aee552bd868de348f4736ca5a4086d9a62e2bfbbeeb5629fe8b0cc", size = 146293 }, - { url = "https://files.pythonhosted.org/packages/27/b3/2d703946447da8b093350570644a663df69448c9d9330e5f1d9cce997f20/orjson-3.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eabcf2e84f1d7105f84580e03012270c7e97ecb1fb1618bda395061b2a84a049", size = 135470 }, - { url = "https://files.pythonhosted.org/packages/38/70/b14dcfae7aff0e379b0119c8a812f8396678919c431efccc8e8a0263e4d9/orjson-3.11.3-cp312-cp312-win32.whl", hash = "sha256:3782d2c60b8116772aea8d9b7905221437fdf53e7277282e8d8b07c220f96cca", size = 136248 }, - { url = "https://files.pythonhosted.org/packages/35/b8/9e3127d65de7fff243f7f3e53f59a531bf6bb295ebe5db024c2503cc0726/orjson-3.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:79b44319268af2eaa3e315b92298de9a0067ade6e6003ddaef72f8e0bedb94f1", size = 131437 }, - { url = "https://files.pythonhosted.org/packages/51/92/a946e737d4d8a7fd84a606aba96220043dcc7d6988b9e7551f7f6d5ba5ad/orjson-3.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:0e92a4e83341ef79d835ca21b8bd13e27c859e4e9e4d7b63defc6e58462a3710", size = 125978 }, - { url = "https://files.pythonhosted.org/packages/fc/79/8932b27293ad35919571f77cb3693b5906cf14f206ef17546052a241fdf6/orjson-3.11.3-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:af40c6612fd2a4b00de648aa26d18186cd1322330bd3a3cc52f87c699e995810", size = 238127 }, - { url = "https://files.pythonhosted.org/packages/1c/82/cb93cd8cf132cd7643b30b6c5a56a26c4e780c7a145db6f83de977b540ce/orjson-3.11.3-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:9f1587f26c235894c09e8b5b7636a38091a9e6e7fe4531937534749c04face43", size = 127494 }, - { url = "https://files.pythonhosted.org/packages/a4/b8/2d9eb181a9b6bb71463a78882bcac1027fd29cf62c38a40cc02fc11d3495/orjson-3.11.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61dcdad16da5bb486d7227a37a2e789c429397793a6955227cedbd7252eb5a27", size = 123017 }, - { url = "https://files.pythonhosted.org/packages/b4/14/a0e971e72d03b509190232356d54c0f34507a05050bd026b8db2bf2c192c/orjson-3.11.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11c6d71478e2cbea0a709e8a06365fa63da81da6498a53e4c4f065881d21ae8f", size = 127898 }, - { url = "https://files.pythonhosted.org/packages/8e/af/dc74536722b03d65e17042cc30ae586161093e5b1f29bccda24765a6ae47/orjson-3.11.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff94112e0098470b665cb0ed06efb187154b63649403b8d5e9aedeb482b4548c", size = 130742 }, - { url = "https://files.pythonhosted.org/packages/62/e6/7a3b63b6677bce089fe939353cda24a7679825c43a24e49f757805fc0d8a/orjson-3.11.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae8b756575aaa2a855a75192f356bbda11a89169830e1439cfb1a3e1a6dde7be", size = 132377 }, - { url = "https://files.pythonhosted.org/packages/fc/cd/ce2ab93e2e7eaf518f0fd15e3068b8c43216c8a44ed82ac2b79ce5cef72d/orjson-3.11.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9416cc19a349c167ef76135b2fe40d03cea93680428efee8771f3e9fb66079d", size = 135313 }, - { url = "https://files.pythonhosted.org/packages/d0/b4/f98355eff0bd1a38454209bbc73372ce351ba29933cb3e2eba16c04b9448/orjson-3.11.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b822caf5b9752bc6f246eb08124c3d12bf2175b66ab74bac2ef3bbf9221ce1b2", size = 132908 }, - { url = "https://files.pythonhosted.org/packages/eb/92/8f5182d7bc2a1bed46ed960b61a39af8389f0ad476120cd99e67182bfb6d/orjson-3.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:414f71e3bdd5573893bf5ecdf35c32b213ed20aa15536fe2f588f946c318824f", size = 130905 }, - { url = "https://files.pythonhosted.org/packages/1a/60/c41ca753ce9ffe3d0f67b9b4c093bdd6e5fdb1bc53064f992f66bb99954d/orjson-3.11.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:828e3149ad8815dc14468f36ab2a4b819237c155ee1370341b91ea4c8672d2ee", size = 403812 }, - { url = "https://files.pythonhosted.org/packages/dd/13/e4a4f16d71ce1868860db59092e78782c67082a8f1dc06a3788aef2b41bc/orjson-3.11.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac9e05f25627ffc714c21f8dfe3a579445a5c392a9c8ae7ba1d0e9fb5333f56e", size = 146277 }, - { url = "https://files.pythonhosted.org/packages/8d/8b/bafb7f0afef9344754a3a0597a12442f1b85a048b82108ef2c956f53babd/orjson-3.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e44fbe4000bd321d9f3b648ae46e0196d21577cf66ae684a96ff90b1f7c93633", size = 135418 }, - { url = "https://files.pythonhosted.org/packages/60/d4/bae8e4f26afb2c23bea69d2f6d566132584d1c3a5fe89ee8c17b718cab67/orjson-3.11.3-cp313-cp313-win32.whl", hash = "sha256:2039b7847ba3eec1f5886e75e6763a16e18c68a63efc4b029ddf994821e2e66b", size = 136216 }, - { url = "https://files.pythonhosted.org/packages/88/76/224985d9f127e121c8cad882cea55f0ebe39f97925de040b75ccd4b33999/orjson-3.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:29be5ac4164aa8bdcba5fa0700a3c9c316b411d8ed9d39ef8a882541bd452fae", size = 131362 }, - { url = "https://files.pythonhosted.org/packages/e2/cf/0dce7a0be94bd36d1346be5067ed65ded6adb795fdbe3abd234c8d576d01/orjson-3.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:18bd1435cb1f2857ceb59cfb7de6f92593ef7b831ccd1b9bfb28ca530e539dce", size = 125989 }, - { url = "https://files.pythonhosted.org/packages/ef/77/d3b1fef1fc6aaeed4cbf3be2b480114035f4df8fa1a99d2dac1d40d6e924/orjson-3.11.3-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:cf4b81227ec86935568c7edd78352a92e97af8da7bd70bdfdaa0d2e0011a1ab4", size = 238115 }, - { url = "https://files.pythonhosted.org/packages/e4/6d/468d21d49bb12f900052edcfbf52c292022d0a323d7828dc6376e6319703/orjson-3.11.3-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:bc8bc85b81b6ac9fc4dae393a8c159b817f4c2c9dee5d12b773bddb3b95fc07e", size = 127493 }, - { url = "https://files.pythonhosted.org/packages/67/46/1e2588700d354aacdf9e12cc2d98131fb8ac6f31ca65997bef3863edb8ff/orjson-3.11.3-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:88dcfc514cfd1b0de038443c7b3e6a9797ffb1b3674ef1fd14f701a13397f82d", size = 122998 }, - { url = "https://files.pythonhosted.org/packages/3b/94/11137c9b6adb3779f1b34fd98be51608a14b430dbc02c6d41134fbba484c/orjson-3.11.3-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d61cd543d69715d5fc0a690c7c6f8dcc307bc23abef9738957981885f5f38229", size = 132915 }, - { url = "https://files.pythonhosted.org/packages/10/61/dccedcf9e9bcaac09fdabe9eaee0311ca92115699500efbd31950d878833/orjson-3.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2b7b153ed90ababadbef5c3eb39549f9476890d339cf47af563aea7e07db2451", size = 130907 }, - { url = "https://files.pythonhosted.org/packages/0e/fd/0e935539aa7b08b3ca0f817d73034f7eb506792aae5ecc3b7c6e679cdf5f/orjson-3.11.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7909ae2460f5f494fecbcd10613beafe40381fd0316e35d6acb5f3a05bfda167", size = 403852 }, - { url = "https://files.pythonhosted.org/packages/4a/2b/50ae1a5505cd1043379132fdb2adb8a05f37b3e1ebffe94a5073321966fd/orjson-3.11.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:2030c01cbf77bc67bee7eef1e7e31ecf28649353987775e3583062c752da0077", size = 146309 }, - { url = "https://files.pythonhosted.org/packages/cd/1d/a473c158e380ef6f32753b5f39a69028b25ec5be331c2049a2201bde2e19/orjson-3.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a0169ebd1cbd94b26c7a7ad282cf5c2744fce054133f959e02eb5265deae1872", size = 135424 }, - { url = "https://files.pythonhosted.org/packages/da/09/17d9d2b60592890ff7382e591aa1d9afb202a266b180c3d4049b1ec70e4a/orjson-3.11.3-cp314-cp314-win32.whl", hash = "sha256:0c6d7328c200c349e3a4c6d8c83e0a5ad029bdc2d417f234152bf34842d0fc8d", size = 136266 }, - { url = "https://files.pythonhosted.org/packages/15/58/358f6846410a6b4958b74734727e582ed971e13d335d6c7ce3e47730493e/orjson-3.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:317bbe2c069bbc757b1a2e4105b64aacd3bc78279b66a6b9e51e846e4809f804", size = 131351 }, - { url = "https://files.pythonhosted.org/packages/28/01/d6b274a0635be0468d4dbd9cafe80c47105937a0d42434e805e67cd2ed8b/orjson-3.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:e8f6a7a27d7b7bec81bd5924163e9af03d49bbb63013f107b48eb5d16db711bc", size = 125985 }, +version = "3.11.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/fe/ed708782d6709cc60eb4c2d8a361a440661f74134675c72990f2c48c785f/orjson-3.11.4.tar.gz", hash = "sha256:39485f4ab4c9b30a3943cfe99e1a213c4776fb69e8abd68f66b83d5a0b0fdc6d", size = 5945188 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/33/aa/6346dd5073730451bee3681d901e3c337e7ec17342fb79659ec9794fc023/orjson-3.11.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f2cf4dfaf9163b0728d061bebc1e08631875c51cd30bf47cb9e3293bfbd7dcd5", size = 129061 }, + { url = "https://files.pythonhosted.org/packages/39/e4/8eea51598f66a6c853c380979912d17ec510e8e66b280d968602e680b942/orjson-3.11.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89216ff3dfdde0e4070932e126320a1752c9d9a758d6a32ec54b3b9334991a6a", size = 136541 }, + { url = "https://files.pythonhosted.org/packages/9a/47/cb8c654fa9adcc60e99580e17c32b9e633290e6239a99efa6b885aba9dbc/orjson-3.11.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9daa26ca8e97fae0ce8aa5d80606ef8f7914e9b129b6b5df9104266f764ce436", size = 137535 }, + { url = "https://files.pythonhosted.org/packages/43/92/04b8cc5c2b729f3437ee013ce14a60ab3d3001465d95c184758f19362f23/orjson-3.11.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c8b2769dc31883c44a9cd126560327767f848eb95f99c36c9932f51090bfce9", size = 136703 }, + { url = "https://files.pythonhosted.org/packages/aa/fd/d0733fcb9086b8be4ebcfcda2d0312865d17d0d9884378b7cffb29d0763f/orjson-3.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1469d254b9884f984026bd9b0fa5bbab477a4bfe558bba6848086f6d43eb5e73", size = 136293 }, + { url = "https://files.pythonhosted.org/packages/c2/d7/3c5514e806837c210492d72ae30ccf050ce3f940f45bf085bab272699ef4/orjson-3.11.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:68e44722541983614e37117209a194e8c3ad07838ccb3127d96863c95ec7f1e0", size = 140131 }, + { url = "https://files.pythonhosted.org/packages/9c/dd/ba9d32a53207babf65bd510ac4d0faaa818bd0df9a9c6f472fe7c254f2e3/orjson-3.11.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8e7805fda9672c12be2f22ae124dcd7b03928d6c197544fe12174b86553f3196", size = 406164 }, + { url = "https://files.pythonhosted.org/packages/8e/f9/f68ad68f4af7c7bde57cd514eaa2c785e500477a8bc8f834838eb696a685/orjson-3.11.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:04b69c14615fb4434ab867bf6f38b2d649f6f300af30a6705397e895f7aec67a", size = 149859 }, + { url = "https://files.pythonhosted.org/packages/b6/d2/7f847761d0c26818395b3d6b21fb6bc2305d94612a35b0a30eae65a22728/orjson-3.11.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:639c3735b8ae7f970066930e58cf0ed39a852d417c24acd4a25fc0b3da3c39a6", size = 139926 }, + { url = "https://files.pythonhosted.org/packages/9f/37/acd14b12dc62db9a0e1d12386271b8661faae270b22492580d5258808975/orjson-3.11.4-cp313-cp313-win32.whl", hash = "sha256:6c13879c0d2964335491463302a6ca5ad98105fc5db3565499dcb80b1b4bd839", size = 136007 }, + { url = "https://files.pythonhosted.org/packages/c0/a9/967be009ddf0a1fffd7a67de9c36656b28c763659ef91352acc02cbe364c/orjson-3.11.4-cp313-cp313-win_amd64.whl", hash = "sha256:09bf242a4af98732db9f9a1ec57ca2604848e16f132e3f72edfd3c5c96de009a", size = 131314 }, + { url = "https://files.pythonhosted.org/packages/cb/db/399abd6950fbd94ce125cb8cd1a968def95174792e127b0642781e040ed4/orjson-3.11.4-cp313-cp313-win_arm64.whl", hash = "sha256:a85f0adf63319d6c1ba06fb0dbf997fced64a01179cf17939a6caca662bf92de", size = 126152 }, + { url = "https://files.pythonhosted.org/packages/25/e3/54ff63c093cc1697e758e4fceb53164dd2661a7d1bcd522260ba09f54533/orjson-3.11.4-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:42d43a1f552be1a112af0b21c10a5f553983c2a0938d2bbb8ecd8bc9fb572803", size = 243501 }, + { url = "https://files.pythonhosted.org/packages/ac/7d/e2d1076ed2e8e0ae9badca65bf7ef22710f93887b29eaa37f09850604e09/orjson-3.11.4-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:26a20f3fbc6c7ff2cb8e89c4c5897762c9d88cf37330c6a117312365d6781d54", size = 128862 }, + { url = "https://files.pythonhosted.org/packages/9f/37/ca2eb40b90621faddfa9517dfe96e25f5ae4d8057a7c0cdd613c17e07b2c/orjson-3.11.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e3f20be9048941c7ffa8fc523ccbd17f82e24df1549d1d1fe9317712d19938e", size = 130047 }, + { url = "https://files.pythonhosted.org/packages/c7/62/1021ed35a1f2bad9040f05fa4cc4f9893410df0ba3eaa323ccf899b1c90a/orjson-3.11.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aac364c758dc87a52e68e349924d7e4ded348dedff553889e4d9f22f74785316", size = 129073 }, + { url = "https://files.pythonhosted.org/packages/e8/3f/f84d966ec2a6fd5f73b1a707e7cd876813422ae4bf9f0145c55c9c6a0f57/orjson-3.11.4-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5c54a6d76e3d741dcc3f2707f8eeb9ba2a791d3adbf18f900219b62942803b1", size = 136597 }, + { url = "https://files.pythonhosted.org/packages/32/78/4fa0aeca65ee82bbabb49e055bd03fa4edea33f7c080c5c7b9601661ef72/orjson-3.11.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f28485bdca8617b79d44627f5fb04336897041dfd9fa66d383a49d09d86798bc", size = 137515 }, + { url = "https://files.pythonhosted.org/packages/c1/9d/0c102e26e7fde40c4c98470796d050a2ec1953897e2c8ab0cb95b0759fa2/orjson-3.11.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bfc2a484cad3585e4ba61985a6062a4c2ed5c7925db6d39f1fa267c9d166487f", size = 136703 }, + { url = "https://files.pythonhosted.org/packages/df/ac/2de7188705b4cdfaf0b6c97d2f7849c17d2003232f6e70df98602173f788/orjson-3.11.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e34dbd508cb91c54f9c9788923daca129fe5b55c5b4eebe713bf5ed3791280cf", size = 136311 }, + { url = "https://files.pythonhosted.org/packages/e0/52/847fcd1a98407154e944feeb12e3b4d487a0e264c40191fb44d1269cbaa1/orjson-3.11.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b13c478fa413d4b4ee606ec8e11c3b2e52683a640b006bb586b3041c2ca5f606", size = 140127 }, + { url = "https://files.pythonhosted.org/packages/c1/ae/21d208f58bdb847dd4d0d9407e2929862561841baa22bdab7aea10ca088e/orjson-3.11.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:724ca721ecc8a831b319dcd72cfa370cc380db0bf94537f08f7edd0a7d4e1780", size = 406201 }, + { url = "https://files.pythonhosted.org/packages/8d/55/0789d6de386c8366059db098a628e2ad8798069e94409b0d8935934cbcb9/orjson-3.11.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:977c393f2e44845ce1b540e19a786e9643221b3323dae190668a98672d43fb23", size = 149872 }, + { url = "https://files.pythonhosted.org/packages/cc/1d/7ff81ea23310e086c17b41d78a72270d9de04481e6113dbe2ac19118f7fb/orjson-3.11.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1e539e382cf46edec157ad66b0b0872a90d829a6b71f17cb633d6c160a223155", size = 139931 }, + { url = "https://files.pythonhosted.org/packages/77/92/25b886252c50ed64be68c937b562b2f2333b45afe72d53d719e46a565a50/orjson-3.11.4-cp314-cp314-win32.whl", hash = "sha256:d63076d625babab9db5e7836118bdfa086e60f37d8a174194ae720161eb12394", size = 136065 }, + { url = "https://files.pythonhosted.org/packages/63/b8/718eecf0bb7e9d64e4956afaafd23db9f04c776d445f59fe94f54bdae8f0/orjson-3.11.4-cp314-cp314-win_amd64.whl", hash = "sha256:0a54d6635fa3aaa438ae32e8570b9f0de36f3f6562c308d2a2a452e8b0592db1", size = 131310 }, + { url = "https://files.pythonhosted.org/packages/1a/bf/def5e25d4d8bfce296a9a7c8248109bf58622c21618b590678f945a2c59c/orjson-3.11.4-cp314-cp314-win_arm64.whl", hash = "sha256:78b999999039db3cf58f6d230f524f04f75f129ba3d1ca2ed121f8657e575d3d", size = 126151 }, ] [[package]] @@ -1356,16 +1383,17 @@ wheels = [ [[package]] name = "protobuf" -version = "6.32.1" +version = "6.33.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fa/a4/cc17347aa2897568beece2e674674359f911d6fe21b0b8d6268cd42727ac/protobuf-6.32.1.tar.gz", hash = "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d", size = 440635 } +sdist = { url = "https://files.pythonhosted.org/packages/19/ff/64a6c8f420818bb873713988ca5492cba3a7946be57e027ac63495157d97/protobuf-6.33.0.tar.gz", hash = "sha256:140303d5c8d2037730c548f8c7b93b20bb1dc301be280c378b82b8894589c954", size = 443463 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/98/645183ea03ab3995d29086b8bf4f7562ebd3d10c9a4b14ee3f20d47cfe50/protobuf-6.32.1-cp310-abi3-win32.whl", hash = "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", size = 424411 }, - { url = "https://files.pythonhosted.org/packages/8c/f3/6f58f841f6ebafe076cebeae33fc336e900619d34b1c93e4b5c97a81fdfa/protobuf-6.32.1-cp310-abi3-win_amd64.whl", hash = "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", size = 435738 }, - { url = "https://files.pythonhosted.org/packages/10/56/a8a3f4e7190837139e68c7002ec749190a163af3e330f65d90309145a210/protobuf-6.32.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", size = 426454 }, - { url = "https://files.pythonhosted.org/packages/3f/be/8dd0a927c559b37d7a6c8ab79034fd167dcc1f851595f2e641ad62be8643/protobuf-6.32.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", size = 322874 }, - { url = "https://files.pythonhosted.org/packages/5c/f6/88d77011b605ef979aace37b7703e4eefad066f7e84d935e5a696515c2dd/protobuf-6.32.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", size = 322013 }, - { url = "https://files.pythonhosted.org/packages/97/b7/15cc7d93443d6c6a84626ae3258a91f4c6ac8c0edd5df35ea7658f71b79c/protobuf-6.32.1-py3-none-any.whl", hash = "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", size = 169289 }, + { url = "https://files.pythonhosted.org/packages/7e/ee/52b3fa8feb6db4a833dfea4943e175ce645144532e8a90f72571ad85df4e/protobuf-6.33.0-cp310-abi3-win32.whl", hash = "sha256:d6101ded078042a8f17959eccd9236fb7a9ca20d3b0098bbcb91533a5680d035", size = 425593 }, + { url = "https://files.pythonhosted.org/packages/7b/c6/7a465f1825872c55e0341ff4a80198743f73b69ce5d43ab18043699d1d81/protobuf-6.33.0-cp310-abi3-win_amd64.whl", hash = "sha256:9a031d10f703f03768f2743a1c403af050b6ae1f3480e9c140f39c45f81b13ee", size = 436882 }, + { url = "https://files.pythonhosted.org/packages/e1/a9/b6eee662a6951b9c3640e8e452ab3e09f117d99fc10baa32d1581a0d4099/protobuf-6.33.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:905b07a65f1a4b72412314082c7dbfae91a9e8b68a0cc1577515f8df58ecf455", size = 427521 }, + { url = "https://files.pythonhosted.org/packages/10/35/16d31e0f92c6d2f0e77c2a3ba93185130ea13053dd16200a57434c882f2b/protobuf-6.33.0-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:e0697ece353e6239b90ee43a9231318302ad8353c70e6e45499fa52396debf90", size = 324445 }, + { url = "https://files.pythonhosted.org/packages/e6/eb/2a981a13e35cda8b75b5585aaffae2eb904f8f351bdd3870769692acbd8a/protobuf-6.33.0-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:e0a1715e4f27355afd9570f3ea369735afc853a6c3951a6afe1f80d8569ad298", size = 339159 }, + { url = "https://files.pythonhosted.org/packages/21/51/0b1cbad62074439b867b4e04cc09b93f6699d78fd191bed2bbb44562e077/protobuf-6.33.0-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:35be49fd3f4fefa4e6e2aacc35e8b837d6703c37a2168a55ac21e9b1bc7559ef", size = 323172 }, + { url = "https://files.pythonhosted.org/packages/07/d1/0a28c21707807c6aacd5dc9c3704b2aa1effbf37adebd8caeaf68b17a636/protobuf-6.33.0-py3-none-any.whl", hash = "sha256:25c9e1963c6734448ea2d308cfa610e692b801304ba0908d7bfa564ac5132995", size = 170477 }, ] [[package]] @@ -1391,7 +1419,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.12.2" +version = "2.12.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -1399,9 +1427,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8d/35/d319ed522433215526689bad428a94058b6dd12190ce7ddd78618ac14b28/pydantic-2.12.2.tar.gz", hash = "sha256:7b8fa15b831a4bbde9d5b84028641ac3080a4ca2cbd4a621a661687e741624fd", size = 816358 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/98/468cb649f208a6f1279448e6e5247b37ae79cf5e4041186f1e2ef3d16345/pydantic-2.12.2-py3-none-any.whl", hash = "sha256:25ff718ee909acd82f1ff9b1a4acfd781bb23ab3739adaa7144f19a6a4e231ae", size = 460628 }, + { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431 }, ] [[package]] @@ -1491,11 +1519,11 @@ wheels = [ [[package]] name = "python-dotenv" -version = "1.1.1" +version = "1.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556 }, + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230 }, ] [[package]] @@ -1546,80 +1574,80 @@ wheels = [ [[package]] name = "regex" -version = "2025.9.18" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/49/d3/eaa0d28aba6ad1827ad1e716d9a93e1ba963ada61887498297d3da715133/regex-2025.9.18.tar.gz", hash = "sha256:c5ba23274c61c6fef447ba6a39333297d0c247f53059dba0bca415cac511edc4", size = 400917 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/99/05859d87a66ae7098222d65748f11ef7f2dff51bfd7482a4e2256c90d72b/regex-2025.9.18-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:436e1b31d7efd4dcd52091d076482031c611dde58bf9c46ca6d0a26e33053a7e", size = 486335 }, - { url = "https://files.pythonhosted.org/packages/97/7e/d43d4e8b978890932cf7b0957fce58c5b08c66f32698f695b0c2c24a48bf/regex-2025.9.18-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c190af81e5576b9c5fdc708f781a52ff20f8b96386c6e2e0557a78402b029f4a", size = 289720 }, - { url = "https://files.pythonhosted.org/packages/bb/3b/ff80886089eb5dcf7e0d2040d9aaed539e25a94300403814bb24cc775058/regex-2025.9.18-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e4121f1ce2b2b5eec4b397cc1b277686e577e658d8f5870b7eb2d726bd2300ab", size = 287257 }, - { url = "https://files.pythonhosted.org/packages/ee/66/243edf49dd8720cba8d5245dd4d6adcb03a1defab7238598c0c97cf549b8/regex-2025.9.18-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:300e25dbbf8299d87205e821a201057f2ef9aa3deb29caa01cd2cac669e508d5", size = 797463 }, - { url = "https://files.pythonhosted.org/packages/df/71/c9d25a1142c70432e68bb03211d4a82299cd1c1fbc41db9409a394374ef5/regex-2025.9.18-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7b47fcf9f5316c0bdaf449e879407e1b9937a23c3b369135ca94ebc8d74b1742", size = 862670 }, - { url = "https://files.pythonhosted.org/packages/f8/8f/329b1efc3a64375a294e3a92d43372bf1a351aa418e83c21f2f01cf6ec41/regex-2025.9.18-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:57a161bd3acaa4b513220b49949b07e252165e6b6dc910ee7617a37ff4f5b425", size = 910881 }, - { url = "https://files.pythonhosted.org/packages/35/9e/a91b50332a9750519320ed30ec378b74c996f6befe282cfa6bb6cea7e9fd/regex-2025.9.18-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f130c3a7845ba42de42f380fff3c8aebe89a810747d91bcf56d40a069f15352", size = 802011 }, - { url = "https://files.pythonhosted.org/packages/a4/1d/6be3b8d7856b6e0d7ee7f942f437d0a76e0d5622983abbb6d21e21ab9a17/regex-2025.9.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f96fa342b6f54dcba928dd452e8d8cb9f0d63e711d1721cd765bb9f73bb048d", size = 786668 }, - { url = "https://files.pythonhosted.org/packages/cb/ce/4a60e53df58bd157c5156a1736d3636f9910bdcc271d067b32b7fcd0c3a8/regex-2025.9.18-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0f0d676522d68c207828dcd01fb6f214f63f238c283d9f01d85fc664c7c85b56", size = 856578 }, - { url = "https://files.pythonhosted.org/packages/86/e8/162c91bfe7217253afccde112868afb239f94703de6580fb235058d506a6/regex-2025.9.18-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:40532bff8a1a0621e7903ae57fce88feb2e8a9a9116d341701302c9302aef06e", size = 849017 }, - { url = "https://files.pythonhosted.org/packages/35/34/42b165bc45289646ea0959a1bc7531733e90b47c56a72067adfe6b3251f6/regex-2025.9.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:039f11b618ce8d71a1c364fdee37da1012f5a3e79b1b2819a9f389cd82fd6282", size = 788150 }, - { url = "https://files.pythonhosted.org/packages/79/5d/cdd13b1f3c53afa7191593a7ad2ee24092a5a46417725ffff7f64be8342d/regex-2025.9.18-cp312-cp312-win32.whl", hash = "sha256:e1dd06f981eb226edf87c55d523131ade7285137fbde837c34dc9d1bf309f459", size = 264536 }, - { url = "https://files.pythonhosted.org/packages/e0/f5/4a7770c9a522e7d2dc1fa3ffc83ab2ab33b0b22b447e62cffef186805302/regex-2025.9.18-cp312-cp312-win_amd64.whl", hash = "sha256:3d86b5247bf25fa3715e385aa9ff272c307e0636ce0c9595f64568b41f0a9c77", size = 275501 }, - { url = "https://files.pythonhosted.org/packages/df/05/9ce3e110e70d225ecbed455b966003a3afda5e58e8aec2964042363a18f4/regex-2025.9.18-cp312-cp312-win_arm64.whl", hash = "sha256:032720248cbeeae6444c269b78cb15664458b7bb9ed02401d3da59fe4d68c3a5", size = 268601 }, - { url = "https://files.pythonhosted.org/packages/d2/c7/5c48206a60ce33711cf7dcaeaed10dd737733a3569dc7e1dce324dd48f30/regex-2025.9.18-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a40f929cd907c7e8ac7566ac76225a77701a6221bca937bdb70d56cb61f57b2", size = 485955 }, - { url = "https://files.pythonhosted.org/packages/e9/be/74fc6bb19a3c491ec1ace943e622b5a8539068771e8705e469b2da2306a7/regex-2025.9.18-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c90471671c2cdf914e58b6af62420ea9ecd06d1554d7474d50133ff26ae88feb", size = 289583 }, - { url = "https://files.pythonhosted.org/packages/25/c4/9ceaa433cb5dc515765560f22a19578b95b92ff12526e5a259321c4fc1a0/regex-2025.9.18-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a351aff9e07a2dabb5022ead6380cff17a4f10e4feb15f9100ee56c4d6d06af", size = 287000 }, - { url = "https://files.pythonhosted.org/packages/7d/e6/68bc9393cb4dc68018456568c048ac035854b042bc7c33cb9b99b0680afa/regex-2025.9.18-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc4b8e9d16e20ddfe16430c23468a8707ccad3365b06d4536142e71823f3ca29", size = 797535 }, - { url = "https://files.pythonhosted.org/packages/6a/1c/ebae9032d34b78ecfe9bd4b5e6575b55351dc8513485bb92326613732b8c/regex-2025.9.18-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4b8cdbddf2db1c5e80338ba2daa3cfa3dec73a46fff2a7dda087c8efbf12d62f", size = 862603 }, - { url = "https://files.pythonhosted.org/packages/3b/74/12332c54b3882557a4bcd2b99f8be581f5c6a43cf1660a85b460dd8ff468/regex-2025.9.18-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a276937d9d75085b2c91fb48244349c6954f05ee97bba0963ce24a9d915b8b68", size = 910829 }, - { url = "https://files.pythonhosted.org/packages/86/70/ba42d5ed606ee275f2465bfc0e2208755b06cdabd0f4c7c4b614d51b57ab/regex-2025.9.18-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92a8e375ccdc1256401c90e9dc02b8642894443d549ff5e25e36d7cf8a80c783", size = 802059 }, - { url = "https://files.pythonhosted.org/packages/da/c5/fcb017e56396a7f2f8357412638d7e2963440b131a3ca549be25774b3641/regex-2025.9.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0dc6893b1f502d73037cf807a321cdc9be29ef3d6219f7970f842475873712ac", size = 786781 }, - { url = "https://files.pythonhosted.org/packages/c6/ee/21c4278b973f630adfb3bcb23d09d83625f3ab1ca6e40ebdffe69901c7a1/regex-2025.9.18-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a61e85bfc63d232ac14b015af1261f826260c8deb19401c0597dbb87a864361e", size = 856578 }, - { url = "https://files.pythonhosted.org/packages/87/0b/de51550dc7274324435c8f1539373ac63019b0525ad720132866fff4a16a/regex-2025.9.18-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1ef86a9ebc53f379d921fb9a7e42b92059ad3ee800fcd9e0fe6181090e9f6c23", size = 849119 }, - { url = "https://files.pythonhosted.org/packages/60/52/383d3044fc5154d9ffe4321696ee5b2ee4833a28c29b137c22c33f41885b/regex-2025.9.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d3bc882119764ba3a119fbf2bd4f1b47bc56c1da5d42df4ed54ae1e8e66fdf8f", size = 788219 }, - { url = "https://files.pythonhosted.org/packages/20/bd/2614fc302671b7359972ea212f0e3a92df4414aaeacab054a8ce80a86073/regex-2025.9.18-cp313-cp313-win32.whl", hash = "sha256:3810a65675845c3bdfa58c3c7d88624356dd6ee2fc186628295e0969005f928d", size = 264517 }, - { url = "https://files.pythonhosted.org/packages/07/0f/ab5c1581e6563a7bffdc1974fb2d25f05689b88e2d416525271f232b1946/regex-2025.9.18-cp313-cp313-win_amd64.whl", hash = "sha256:16eaf74b3c4180ede88f620f299e474913ab6924d5c4b89b3833bc2345d83b3d", size = 275481 }, - { url = "https://files.pythonhosted.org/packages/49/22/ee47672bc7958f8c5667a587c2600a4fba8b6bab6e86bd6d3e2b5f7cac42/regex-2025.9.18-cp313-cp313-win_arm64.whl", hash = "sha256:4dc98ba7dd66bd1261927a9f49bd5ee2bcb3660f7962f1ec02617280fc00f5eb", size = 268598 }, - { url = "https://files.pythonhosted.org/packages/e8/83/6887e16a187c6226cb85d8301e47d3b73ecc4505a3a13d8da2096b44fd76/regex-2025.9.18-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:fe5d50572bc885a0a799410a717c42b1a6b50e2f45872e2b40f4f288f9bce8a2", size = 489765 }, - { url = "https://files.pythonhosted.org/packages/51/c5/e2f7325301ea2916ff301c8d963ba66b1b2c1b06694191df80a9c4fea5d0/regex-2025.9.18-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b9d9a2d6cda6621551ca8cf7a06f103adf72831153f3c0d982386110870c4d3", size = 291228 }, - { url = "https://files.pythonhosted.org/packages/91/60/7d229d2bc6961289e864a3a3cfebf7d0d250e2e65323a8952cbb7e22d824/regex-2025.9.18-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:13202e4c4ac0ef9a317fff817674b293c8f7e8c68d3190377d8d8b749f566e12", size = 289270 }, - { url = "https://files.pythonhosted.org/packages/3c/d7/b4f06868ee2958ff6430df89857fbf3d43014bbf35538b6ec96c2704e15d/regex-2025.9.18-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:874ff523b0fecffb090f80ae53dc93538f8db954c8bb5505f05b7787ab3402a0", size = 806326 }, - { url = "https://files.pythonhosted.org/packages/d6/e4/bca99034a8f1b9b62ccf337402a8e5b959dd5ba0e5e5b2ead70273df3277/regex-2025.9.18-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d13ab0490128f2bb45d596f754148cd750411afc97e813e4b3a61cf278a23bb6", size = 871556 }, - { url = "https://files.pythonhosted.org/packages/6d/df/e06ffaf078a162f6dd6b101a5ea9b44696dca860a48136b3ae4a9caf25e2/regex-2025.9.18-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:05440bc172bc4b4b37fb9667e796597419404dbba62e171e1f826d7d2a9ebcef", size = 913817 }, - { url = "https://files.pythonhosted.org/packages/9e/05/25b05480b63292fd8e84800b1648e160ca778127b8d2367a0a258fa2e225/regex-2025.9.18-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5514b8e4031fdfaa3d27e92c75719cbe7f379e28cacd939807289bce76d0e35a", size = 811055 }, - { url = "https://files.pythonhosted.org/packages/70/97/7bc7574655eb651ba3a916ed4b1be6798ae97af30104f655d8efd0cab24b/regex-2025.9.18-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:65d3c38c39efce73e0d9dc019697b39903ba25b1ad45ebbd730d2cf32741f40d", size = 794534 }, - { url = "https://files.pythonhosted.org/packages/b4/c2/d5da49166a52dda879855ecdba0117f073583db2b39bb47ce9a3378a8e9e/regex-2025.9.18-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ae77e447ebc144d5a26d50055c6ddba1d6ad4a865a560ec7200b8b06bc529368", size = 866684 }, - { url = "https://files.pythonhosted.org/packages/bd/2d/0a5c4e6ec417de56b89ff4418ecc72f7e3feca806824c75ad0bbdae0516b/regex-2025.9.18-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e3ef8cf53dc8df49d7e28a356cf824e3623764e9833348b655cfed4524ab8a90", size = 853282 }, - { url = "https://files.pythonhosted.org/packages/f4/8e/d656af63e31a86572ec829665d6fa06eae7e144771e0330650a8bb865635/regex-2025.9.18-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9feb29817df349c976da9a0debf775c5c33fc1c8ad7b9f025825da99374770b7", size = 797830 }, - { url = "https://files.pythonhosted.org/packages/db/ce/06edc89df8f7b83ffd321b6071be4c54dc7332c0f77860edc40ce57d757b/regex-2025.9.18-cp313-cp313t-win32.whl", hash = "sha256:168be0d2f9b9d13076940b1ed774f98595b4e3c7fc54584bba81b3cc4181742e", size = 267281 }, - { url = "https://files.pythonhosted.org/packages/83/9a/2b5d9c8b307a451fd17068719d971d3634ca29864b89ed5c18e499446d4a/regex-2025.9.18-cp313-cp313t-win_amd64.whl", hash = "sha256:d59ecf3bb549e491c8104fea7313f3563c7b048e01287db0a90485734a70a730", size = 278724 }, - { url = "https://files.pythonhosted.org/packages/3d/70/177d31e8089a278a764f8ec9a3faac8d14a312d622a47385d4b43905806f/regex-2025.9.18-cp313-cp313t-win_arm64.whl", hash = "sha256:dbef80defe9fb21310948a2595420b36c6d641d9bea4c991175829b2cc4bc06a", size = 269771 }, - { url = "https://files.pythonhosted.org/packages/44/b7/3b4663aa3b4af16819f2ab6a78c4111c7e9b066725d8107753c2257448a5/regex-2025.9.18-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c6db75b51acf277997f3adcd0ad89045d856190d13359f15ab5dda21581d9129", size = 486130 }, - { url = "https://files.pythonhosted.org/packages/80/5b/4533f5d7ac9c6a02a4725fe8883de2aebc713e67e842c04cf02626afb747/regex-2025.9.18-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8f9698b6f6895d6db810e0bda5364f9ceb9e5b11328700a90cae573574f61eea", size = 289539 }, - { url = "https://files.pythonhosted.org/packages/b8/8d/5ab6797c2750985f79e9995fad3254caa4520846580f266ae3b56d1cae58/regex-2025.9.18-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:29cd86aa7cb13a37d0f0d7c21d8d949fe402ffa0ea697e635afedd97ab4b69f1", size = 287233 }, - { url = "https://files.pythonhosted.org/packages/cb/1e/95afcb02ba8d3a64e6ffeb801718ce73471ad6440c55d993f65a4a5e7a92/regex-2025.9.18-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c9f285a071ee55cd9583ba24dde006e53e17780bb309baa8e4289cd472bcc47", size = 797876 }, - { url = "https://files.pythonhosted.org/packages/c8/fb/720b1f49cec1f3b5a9fea5b34cd22b88b5ebccc8c1b5de9cc6f65eed165a/regex-2025.9.18-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5adf266f730431e3be9021d3e5b8d5ee65e563fec2883ea8093944d21863b379", size = 863385 }, - { url = "https://files.pythonhosted.org/packages/a9/ca/e0d07ecf701e1616f015a720dc13b84c582024cbfbb3fc5394ae204adbd7/regex-2025.9.18-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1137cabc0f38807de79e28d3f6e3e3f2cc8cfb26bead754d02e6d1de5f679203", size = 910220 }, - { url = "https://files.pythonhosted.org/packages/b6/45/bba86413b910b708eca705a5af62163d5d396d5f647ed9485580c7025209/regex-2025.9.18-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cc9e5525cada99699ca9223cce2d52e88c52a3d2a0e842bd53de5497c604164", size = 801827 }, - { url = "https://files.pythonhosted.org/packages/b8/a6/740fbd9fcac31a1305a8eed30b44bf0f7f1e042342be0a4722c0365ecfca/regex-2025.9.18-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bbb9246568f72dce29bcd433517c2be22c7791784b223a810225af3b50d1aafb", size = 786843 }, - { url = "https://files.pythonhosted.org/packages/80/a7/0579e8560682645906da640c9055506465d809cb0f5415d9976f417209a6/regex-2025.9.18-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:6a52219a93dd3d92c675383efff6ae18c982e2d7651c792b1e6d121055808743", size = 857430 }, - { url = "https://files.pythonhosted.org/packages/8d/9b/4dc96b6c17b38900cc9fee254fc9271d0dde044e82c78c0811b58754fde5/regex-2025.9.18-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:ae9b3840c5bd456780e3ddf2f737ab55a79b790f6409182012718a35c6d43282", size = 848612 }, - { url = "https://files.pythonhosted.org/packages/b3/6a/6f659f99bebb1775e5ac81a3fb837b85897c1a4ef5acffd0ff8ffe7e67fb/regex-2025.9.18-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d488c236ac497c46a5ac2005a952c1a0e22a07be9f10c3e735bc7d1209a34773", size = 787967 }, - { url = "https://files.pythonhosted.org/packages/61/35/9e35665f097c07cf384a6b90a1ac11b0b1693084a0b7a675b06f760496c6/regex-2025.9.18-cp314-cp314-win32.whl", hash = "sha256:0c3506682ea19beefe627a38872d8da65cc01ffa25ed3f2e422dffa1474f0788", size = 269847 }, - { url = "https://files.pythonhosted.org/packages/af/64/27594dbe0f1590b82de2821ebfe9a359b44dcb9b65524876cd12fabc447b/regex-2025.9.18-cp314-cp314-win_amd64.whl", hash = "sha256:57929d0f92bebb2d1a83af372cd0ffba2263f13f376e19b1e4fa32aec4efddc3", size = 278755 }, - { url = "https://files.pythonhosted.org/packages/30/a3/0cd8d0d342886bd7d7f252d701b20ae1a3c72dc7f34ef4b2d17790280a09/regex-2025.9.18-cp314-cp314-win_arm64.whl", hash = "sha256:6a4b44df31d34fa51aa5c995d3aa3c999cec4d69b9bd414a8be51984d859f06d", size = 271873 }, - { url = "https://files.pythonhosted.org/packages/99/cb/8a1ab05ecf404e18b54348e293d9b7a60ec2bd7aa59e637020c5eea852e8/regex-2025.9.18-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:b176326bcd544b5e9b17d6943f807697c0cb7351f6cfb45bf5637c95ff7e6306", size = 489773 }, - { url = "https://files.pythonhosted.org/packages/93/3b/6543c9b7f7e734d2404fa2863d0d710c907bef99d4598760ed4563d634c3/regex-2025.9.18-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:0ffd9e230b826b15b369391bec167baed57c7ce39efc35835448618860995946", size = 291221 }, - { url = "https://files.pythonhosted.org/packages/cd/91/e9fdee6ad6bf708d98c5d17fded423dcb0661795a49cba1b4ffb8358377a/regex-2025.9.18-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ec46332c41add73f2b57e2f5b642f991f6b15e50e9f86285e08ffe3a512ac39f", size = 289268 }, - { url = "https://files.pythonhosted.org/packages/94/a6/bc3e8a918abe4741dadeaeb6c508e3a4ea847ff36030d820d89858f96a6c/regex-2025.9.18-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b80fa342ed1ea095168a3f116637bd1030d39c9ff38dc04e54ef7c521e01fc95", size = 806659 }, - { url = "https://files.pythonhosted.org/packages/2b/71/ea62dbeb55d9e6905c7b5a49f75615ea1373afcad95830047e4e310db979/regex-2025.9.18-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4d97071c0ba40f0cf2a93ed76e660654c399a0a04ab7d85472239460f3da84b", size = 871701 }, - { url = "https://files.pythonhosted.org/packages/6a/90/fbe9dedb7dad24a3a4399c0bae64bfa932ec8922a0a9acf7bc88db30b161/regex-2025.9.18-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0ac936537ad87cef9e0e66c5144484206c1354224ee811ab1519a32373e411f3", size = 913742 }, - { url = "https://files.pythonhosted.org/packages/f0/1c/47e4a8c0e73d41eb9eb9fdeba3b1b810110a5139a2526e82fd29c2d9f867/regex-2025.9.18-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dec57f96d4def58c422d212d414efe28218d58537b5445cf0c33afb1b4768571", size = 811117 }, - { url = "https://files.pythonhosted.org/packages/2a/da/435f29fddfd015111523671e36d30af3342e8136a889159b05c1d9110480/regex-2025.9.18-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:48317233294648bf7cd068857f248e3a57222259a5304d32c7552e2284a1b2ad", size = 794647 }, - { url = "https://files.pythonhosted.org/packages/23/66/df5e6dcca25c8bc57ce404eebc7342310a0d218db739d7882c9a2b5974a3/regex-2025.9.18-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:274687e62ea3cf54846a9b25fc48a04459de50af30a7bd0b61a9e38015983494", size = 866747 }, - { url = "https://files.pythonhosted.org/packages/82/42/94392b39b531f2e469b2daa40acf454863733b674481fda17462a5ffadac/regex-2025.9.18-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a78722c86a3e7e6aadf9579e3b0ad78d955f2d1f1a8ca4f67d7ca258e8719d4b", size = 853434 }, - { url = "https://files.pythonhosted.org/packages/a8/f8/dcc64c7f7bbe58842a8f89622b50c58c3598fbbf4aad0a488d6df2c699f1/regex-2025.9.18-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:06104cd203cdef3ade989a1c45b6215bf42f8b9dd705ecc220c173233f7cba41", size = 798024 }, - { url = "https://files.pythonhosted.org/packages/20/8d/edf1c5d5aa98f99a692313db813ec487732946784f8f93145e0153d910e5/regex-2025.9.18-cp314-cp314t-win32.whl", hash = "sha256:2e1eddc06eeaffd249c0adb6fafc19e2118e6308c60df9db27919e96b5656096", size = 273029 }, - { url = "https://files.pythonhosted.org/packages/a7/24/02d4e4f88466f17b145f7ea2b2c11af3a942db6222429c2c146accf16054/regex-2025.9.18-cp314-cp314t-win_amd64.whl", hash = "sha256:8620d247fb8c0683ade51217b459cb4a1081c0405a3072235ba43a40d355c09a", size = 282680 }, - { url = "https://files.pythonhosted.org/packages/1f/a3/c64894858aaaa454caa7cc47e2f225b04d3ed08ad649eacf58d45817fad2/regex-2025.9.18-cp314-cp314t-win_arm64.whl", hash = "sha256:b7531a8ef61de2c647cdf68b3229b071e46ec326b3138b2180acb4275f470b01", size = 273034 }, +version = "2025.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]] From a38fb315e45bbd883ffed58d2e85414157b42144 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 3 Nov 2025 13:35:02 +0100 Subject: [PATCH 090/113] Add 0.0.39 backwards compatibility middleware --- .../client/src/__tests__/parse-semver.test.ts | 6 +- .../packages/client/src/agent/agent.ts | 16 +++-- .../packages/client/src/middleware/index.ts | 1 + sdks/typescript/packages/client/src/utils.ts | 71 ++++++++++++++++++- 4 files changed, 87 insertions(+), 7 deletions(-) diff --git a/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts b/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts index 79cae46ef..37d19205e 100644 --- a/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts +++ b/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts @@ -3,7 +3,7 @@ import { parseSemanticVersion } from "../utils"; describe("parseSemanticVersion", () => { it("parses full semantic versions", () => { const parsed = parseSemanticVersion("1.2.3"); - expect(parsed).toEqual({ + expect(parsed).toMatchObject({ major: 1, minor: 2, patch: 3, @@ -11,6 +11,7 @@ describe("parseSemanticVersion", () => { build: [], source: "1.2.3", }); + expect(parsed.compare(parsed)).toBe(0); }); it("defaults missing segments to zero", () => { @@ -20,7 +21,7 @@ describe("parseSemanticVersion", () => { it("parses prerelease and build metadata", () => { const parsed = parseSemanticVersion("2.0.1-alpha.1+build.5"); - expect(parsed).toEqual({ + expect(parsed).toMatchObject({ major: 2, minor: 0, patch: 1, @@ -28,6 +29,7 @@ describe("parseSemanticVersion", () => { build: ["build", "5"], source: "2.0.1-alpha.1+build.5", }); + expect(parsed.compare(parseSemanticVersion("2.0.1-alpha.2"))).toBeLessThan(0); }); it("rejects non-semantic labels like latest", () => { diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 99ffc474f..812fefa14 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -14,7 +14,12 @@ import { lastValueFrom } from "rxjs"; import { transformChunks } from "@/chunks"; import { AgentStateMutation, AgentSubscriber, runSubscribersWithMutation } from "./subscriber"; import { AGUIConnectNotImplementedError } from "@ag-ui/core"; -import { Middleware, MiddlewareFunction, FunctionMiddleware } from "@/middleware"; +import { + Middleware, + MiddlewareFunction, + FunctionMiddleware, + BackwardCompatibility_0_0_39, +} from "@/middleware"; import packageJson from "../../package.json"; export interface RunAgentResult { @@ -48,7 +53,12 @@ export abstract class AbstractAgent { this.messages = structuredClone_(initialMessages ?? []); this.state = structuredClone_(initialState ?? {}); this.debug = debug ?? false; - parseSemanticVersion(this.maxVersion); + + const parsedMaxVersion = parseSemanticVersion(this.maxVersion); + + if (parsedMaxVersion.compare(parseSemanticVersion("0.0.39")) <= 0) { + this.middlewares.unshift(new BackwardCompatibility_0_0_39()); + } } public subscribe(subscriber: AgentSubscriber) { @@ -62,7 +72,6 @@ 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, @@ -71,7 +80,6 @@ export abstract class AbstractAgent { return this; } - public async runAgent( parameters?: RunAgentParameters, subscriber?: AgentSubscriber, diff --git a/sdks/typescript/packages/client/src/middleware/index.ts b/sdks/typescript/packages/client/src/middleware/index.ts index d60de5e3c..6b923491e 100644 --- a/sdks/typescript/packages/client/src/middleware/index.ts +++ b/sdks/typescript/packages/client/src/middleware/index.ts @@ -1,3 +1,4 @@ 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/utils.ts b/sdks/typescript/packages/client/src/utils.ts index b1ed1d9c9..97a4125b2 100644 --- a/sdks/typescript/packages/client/src/utils.ts +++ b/sdks/typescript/packages/client/src/utils.ts @@ -27,10 +27,12 @@ export interface ParsedSemanticVersion { prerelease: string[]; build: string[]; source: string; + compare(other: ParsedSemanticVersion): number; } const SEMVER_PATTERN = /^(?0|[1-9]\d*)(?:\.(?0|[1-9]\d*)(?:\.(?0|[1-9]\d*))?)?(?:-(?(?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\+(?[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/; +const NUMERIC_IDENTIFIER_PATTERN = /^\d+$/; /** * Parses a semantic version string into its numeric components. @@ -56,12 +58,79 @@ export function parseSemanticVersion(version: string): ParsedSemanticVersion { const prerelease = match.groups.prerelease ? match.groups.prerelease.split(".") : []; const build = match.groups.build ? match.groups.build.split(".") : []; - return { + const parsed: ParsedSemanticVersion = { major, minor, patch, prerelease, build, source: version, + compare(this: ParsedSemanticVersion, other: ParsedSemanticVersion): number { + if (this.major !== other.major) { + return this.major - other.major; + } + + if (this.minor !== other.minor) { + return this.minor - other.minor; + } + + if (this.patch !== other.patch) { + return this.patch - other.patch; + } + + if (this.prerelease.length === 0 && other.prerelease.length === 0) { + return 0; + } + + if (this.prerelease.length === 0) { + return 1; + } + + if (other.prerelease.length === 0) { + return -1; + } + + const length = Math.max(this.prerelease.length, other.prerelease.length); + for (let index = 0; index < length; index++) { + const aIdentifier = this.prerelease[index]; + const bIdentifier = other.prerelease[index]; + + if (aIdentifier === undefined) { + return -1; + } + + if (bIdentifier === undefined) { + return 1; + } + + const aIsNumeric = NUMERIC_IDENTIFIER_PATTERN.test(aIdentifier); + const bIsNumeric = NUMERIC_IDENTIFIER_PATTERN.test(bIdentifier); + + if (aIsNumeric && bIsNumeric) { + const diff = Number(aIdentifier) - Number(bIdentifier); + if (diff !== 0) { + return diff; + } + continue; + } + + if (aIsNumeric) { + return -1; + } + + if (bIsNumeric) { + return 1; + } + + const lexicalComparison = aIdentifier.localeCompare(bIdentifier); + if (lexicalComparison !== 0) { + return lexicalComparison; + } + } + + return 0; + }, }; + + return parsed; } From a9b4ca770ee4db8d03f7b4e03dd09bfc85e86d37 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 3 Nov 2025 13:35:14 +0100 Subject: [PATCH 091/113] Create backward-compatibility-0-0-39.ts --- .../backward-compatibility-0-0-39.ts | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 sdks/typescript/packages/client/src/middleware/backward-compatibility-0-0-39.ts 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 new file mode 100644 index 000000000..2a9e86a84 --- /dev/null +++ b/sdks/typescript/packages/client/src/middleware/backward-compatibility-0-0-39.ts @@ -0,0 +1,54 @@ +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); + } +} From 2dc7b5fe2615249c1645f080969ee53a087ef87e Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 3 Nov 2025 14:00:18 +0100 Subject: [PATCH 092/113] Add unit test --- .../packages/client/src/agent/agent.ts | 5 +- .../backward-compatibility-0-0-39.test.ts | 66 +++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/backward-compatibility-0-0-39.test.ts diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 812fefa14..5f578ea61 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -37,7 +37,10 @@ export abstract class AbstractAgent { public subscribers: AgentSubscriber[] = []; public isRunning: boolean = false; private middlewares: Middleware[] = []; - public maxVersion = packageJson.version; + + get maxVersion() { + return packageJson.version; + } constructor({ agentId, 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 new file mode 100644 index 000000000..2f9a994b7 --- /dev/null +++ b/sdks/typescript/packages/client/src/middleware/__tests__/backward-compatibility-0-0-39.test.ts @@ -0,0 +1,66 @@ +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(""); + }); +}); From 37c8f10eaa88707ce6dd3d26266af6b7e57016eb Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Mon, 3 Nov 2025 14:08:20 +0100 Subject: [PATCH 093/113] add maxVersion to existing agents to ensure backward compatibility --- integrations/adk-middleware/typescript/src/index.ts | 6 +++++- integrations/agno/typescript/src/index.ts | 6 +++++- integrations/community/spring-ai/typescript/src/index.ts | 6 +++++- integrations/crew-ai/typescript/src/index.ts | 6 +++++- integrations/llama-index/typescript/src/index.ts | 4 ++++ integrations/pydantic-ai/typescript/src/index.ts | 6 +++++- 6 files changed, 29 insertions(+), 5 deletions(-) diff --git a/integrations/adk-middleware/typescript/src/index.ts b/integrations/adk-middleware/typescript/src/index.ts index 5a4057f85..565200c7e 100644 --- a/integrations/adk-middleware/typescript/src/index.ts +++ b/integrations/adk-middleware/typescript/src/index.ts @@ -1,3 +1,7 @@ import { HttpAgent } from "@ag-ui/client"; -export class ADKAgent extends HttpAgent {} +export class ADKAgent extends HttpAgent { + public override get maxVersion(): string { + return "0.0.39"; + } +} diff --git a/integrations/agno/typescript/src/index.ts b/integrations/agno/typescript/src/index.ts index e3f0db93e..641d5a6bd 100644 --- a/integrations/agno/typescript/src/index.ts +++ b/integrations/agno/typescript/src/index.ts @@ -5,4 +5,8 @@ import { HttpAgent } from "@ag-ui/client"; -export class AgnoAgent extends HttpAgent {} +export class AgnoAgent extends HttpAgent { + public override get maxVersion(): string { + return "0.0.39"; + } +} diff --git a/integrations/community/spring-ai/typescript/src/index.ts b/integrations/community/spring-ai/typescript/src/index.ts index 9d4f4a8c6..b347df14d 100644 --- a/integrations/community/spring-ai/typescript/src/index.ts +++ b/integrations/community/spring-ai/typescript/src/index.ts @@ -4,4 +4,8 @@ import { HttpAgent } from "@ag-ui/client"; -export class SpringAiAgent extends HttpAgent {} +export class SpringAiAgent extends HttpAgent { + public override get maxVersion(): string { + return "0.0.39"; + } +} diff --git a/integrations/crew-ai/typescript/src/index.ts b/integrations/crew-ai/typescript/src/index.ts index ec5d5c7e2..deb09e421 100644 --- a/integrations/crew-ai/typescript/src/index.ts +++ b/integrations/crew-ai/typescript/src/index.ts @@ -1,3 +1,7 @@ import { HttpAgent } from "@ag-ui/client"; -export class CrewAIAgent extends HttpAgent {} +export class CrewAIAgent extends HttpAgent { + public override get maxVersion(): string { + return "0.0.39"; + } +} diff --git a/integrations/llama-index/typescript/src/index.ts b/integrations/llama-index/typescript/src/index.ts index b89fe27d8..f4a08b8eb 100644 --- a/integrations/llama-index/typescript/src/index.ts +++ b/integrations/llama-index/typescript/src/index.ts @@ -34,6 +34,10 @@ function normalizeEmptyToolResults(messages: Message[]): Message[] { } export class LlamaIndexAgent extends HttpAgent { + public override get maxVersion(): string { + return "0.0.39"; + } + public override run(input: RunAgentInput): Observable { const sanitizedInput: RunAgentInput = { ...input, diff --git a/integrations/pydantic-ai/typescript/src/index.ts b/integrations/pydantic-ai/typescript/src/index.ts index f3a3190a8..1232063a6 100644 --- a/integrations/pydantic-ai/typescript/src/index.ts +++ b/integrations/pydantic-ai/typescript/src/index.ts @@ -1,3 +1,7 @@ import { HttpAgent } from "@ag-ui/client"; -export class PydanticAIAgent extends HttpAgent {} +export class PydanticAIAgent extends HttpAgent { + public override get maxVersion(): string { + return "0.0.39"; + } +} From cc21c3b69fe58616ded15f82ce6875fe72838e76 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 4 Nov 2025 12:01:13 +0100 Subject: [PATCH 094/113] fix build errors and use semver library --- .../[integrationId]/[[...slug]]/route.ts | 9 +- integrations/a2a/typescript/src/agent.ts | 2 +- .../mastra/typescript/examples/.gitignore | 1 + pnpm-lock.yaml | 221 +++++++++--------- sdks/typescript/packages/client/package.json | 3 +- .../client/src/__tests__/parse-semver.test.ts | 44 ---- .../packages/client/src/agent/agent.ts | 7 +- sdks/typescript/packages/client/src/utils.ts | 109 +-------- 8 files changed, 123 insertions(+), 273 deletions(-) delete mode 100644 sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts diff --git a/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts index f1b05e9d3..8ecd15ff3 100644 --- a/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts +++ b/apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts @@ -6,6 +6,7 @@ import { 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<{ @@ -22,11 +23,13 @@ function getHandler(integrationId: string) { 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: new BasicAgent({ - model: "openai/gpt-4o", - }), + default: defaultAgent, }, runner: new InMemoryAgentRunner(), }); diff --git a/integrations/a2a/typescript/src/agent.ts b/integrations/a2a/typescript/src/agent.ts index e141763fc..f8fcc7a93 100644 --- a/integrations/a2a/typescript/src/agent.ts +++ b/integrations/a2a/typescript/src/agent.ts @@ -50,7 +50,7 @@ export class A2AAgent extends AbstractAgent { return new A2AAgent({ a2aClient: this.a2aClient, debug: this.debug }); } - protected run(input: RunAgentInput): Observable { + public override run(input: RunAgentInput): Observable { return new Observable((subscriber) => { const run = async () => { const runStarted: RunStartedEvent = { diff --git a/integrations/mastra/typescript/examples/.gitignore b/integrations/mastra/typescript/examples/.gitignore index 5c90d73b1..c4d033e9d 100644 --- a/integrations/mastra/typescript/examples/.gitignore +++ b/integrations/mastra/typescript/examples/.gitignore @@ -2,6 +2,7 @@ output.txt node_modules dist .mastra +.npm-cache .env.development .env *.db diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9ec0554c..0758e2016 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,16 +83,16 @@ importers: version: link:../../integrations/agno/typescript '@ag-ui/client': specifier: workspace:* - version: 0.0.40-alpha.10 + version: link:../../sdks/typescript/packages/client '@ag-ui/core': specifier: workspace:* - version: 0.0.40-alpha.10 + version: link:../../sdks/typescript/packages/core '@ag-ui/crewai': specifier: workspace:* version: link:../../integrations/crew-ai/typescript '@ag-ui/encoder': specifier: workspace:* - version: 0.0.40-alpha.10 + version: link:../../sdks/typescript/packages/encoder '@ag-ui/langgraph': specifier: workspace:* version: link:../../integrations/langgraph/typescript @@ -107,7 +107,7 @@ importers: version: link:../../middlewares/middleware-starter '@ag-ui/proto': specifier: workspace:* - version: 0.0.40-alpha.10 + version: link:../../sdks/typescript/packages/proto '@ag-ui/pydantic-ai': specifier: workspace:* version: link:../../integrations/pydantic-ai/typescript @@ -134,7 +134,7 @@ importers: version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@copilotkit/runtime': specifier: 1.10.6 - version: 1.10.6(mowpvgryoykmzvzmtdo322deu4) + version: 1.10.6(iqshwn2xropb3vpfei3flnb2ay) '@copilotkit/runtime-client-gql': specifier: 1.10.6 version: 1.10.6(graphql@16.11.0)(react@19.2.0) @@ -358,7 +358,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -411,7 +411,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -442,7 +442,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -473,7 +473,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -485,10 +485,10 @@ importers: dependencies: '@langchain/core': specifier: ^0.3.66 - version: 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + 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)) '@langchain/langgraph-sdk': specifier: ^0.1.2 - version: 0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + 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) partial-json: specifier: ^0.1.7 version: 0.1.7 @@ -513,7 +513,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -544,7 +544,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -559,7 +559,7 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(oefq6yilp5bsxwbn3p2ta6g6we) + version: 1.10.6(jkrvcwfv2zltibfgwihn5nuqn4) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76) @@ -590,7 +590,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -655,7 +655,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -683,7 +683,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -711,7 +711,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -748,7 +748,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -785,7 +785,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -813,7 +813,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -847,7 +847,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -869,6 +869,9 @@ 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 @@ -896,7 +899,7 @@ importers: version: 29.7.0(@types/node@20.19.21) ts-jest: specifier: ^29.1.2 - version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) + 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) @@ -1017,12 +1020,18 @@ packages: '@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==} peerDependencies: @@ -1035,6 +1044,9 @@ packages: '@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==} + '@ai-sdk/anthropic@2.0.23': resolution: {integrity: sha512-ZEBiiv1UhjGjBwUU63pFhLK5LCSlNDb1idY9K1oZHm5/Fda1cuTojf32tOp0opH0RPbPAN/F8fyyNjbU33n9Kw==} engines: {node: '>=18'} @@ -5801,6 +5813,9 @@ 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==} @@ -7791,6 +7806,7 @@ packages: 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: @@ -10384,6 +10400,11 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 + '@ag-ui/core@0.0.40-alpha.11': + dependencies: + rxjs: 7.8.1 + zod: 3.25.76 + '@ag-ui/encoder@0.0.35': dependencies: '@ag-ui/core': 0.0.35 @@ -10394,12 +10415,17 @@ snapshots: '@ag-ui/core': 0.0.40-alpha.10 '@ag-ui/proto': 0.0.40-alpha.10 - '@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@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/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)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/langgraph-sdk': 0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@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) partial-json: 0.1.7 rxjs: 7.8.1 transitivePeerDependencies: @@ -10421,6 +10447,12 @@ snapshots: '@bufbuild/protobuf': 2.9.0 '@protobuf-ts/protoc': 2.11.1 + '@ag-ui/proto@0.0.40-alpha.11': + dependencies: + '@ag-ui/core': 0.0.40-alpha.11 + '@bufbuild/protobuf': 2.9.0 + '@protobuf-ts/protoc': 2.11.1 + '@ai-sdk/anthropic@2.0.23(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 @@ -11417,22 +11449,6 @@ snapshots: - encoding - utf-8-validate - '@browserbasehq/stagehand@1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)': - dependencies: - '@anthropic-ai/sdk': 0.27.3 - '@browserbasehq/sdk': 2.6.0 - '@playwright/test': 1.56.0 - deepmerge: 4.3.1 - dotenv: 16.6.1 - openai: 5.12.2(ws@8.18.3)(zod@3.25.76) - ws: 8.18.3 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@bufbuild/protobuf@2.9.0': {} '@cfworker/json-schema@4.1.1': {} @@ -11510,13 +11526,13 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.10.6(mowpvgryoykmzvzmtdo322deu4)': + '@copilotkit/runtime@1.10.6(iqshwn2xropb3vpfei3flnb2ay)': 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 + '@ag-ui/client': link:sdks/typescript/packages/client + '@ag-ui/core': link:sdks/typescript/packages/core + '@ag-ui/encoder': link:sdks/typescript/packages/encoder '@ag-ui/langgraph': link:integrations/langgraph/typescript - '@ag-ui/proto': 0.0.40-alpha.10 + '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 '@copilotkit/shared': 1.10.6 '@graphql-yoga/plugin-defer-stream': 3.16.0(graphql-yoga@5.16.0(graphql@16.11.0))(graphql@16.11.0) @@ -11692,18 +11708,18 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(oefq6yilp5bsxwbn3p2ta6g6we)': + '@copilotkit/runtime@1.10.6(jkrvcwfv2zltibfgwihn5nuqn4)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core - '@ag-ui/encoder': 0.0.40-alpha.10 - '@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@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.10 + '@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/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(75igdgciibrgswysse3hw62tgi) + '@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) @@ -12744,63 +12760,6 @@ snapshots: - handlebars - peggy - '@langchain/community@0.3.57(75igdgciibrgswysse3hw62tgi)': - dependencies: - '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) - '@ibm-cloud/watsonx-ai': 1.7.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) - binary-extensions: 2.3.0 - expr-eval: 2.0.2 - flat: 5.0.2 - ibm-cloud-sdk-core: 5.4.3 - js-yaml: 4.1.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - uuid: 10.0.0 - zod: 3.25.76 - optionalDependencies: - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 - '@aws-sdk/client-bedrock-runtime': 3.910.0 - '@aws-sdk/client-dynamodb': 3.910.0 - '@aws-sdk/client-kendra': 3.910.0 - '@aws-sdk/credential-provider-node': 3.910.0 - '@browserbasehq/sdk': 2.6.0 - '@smithy/util-utf8': 2.3.0 - '@upstash/redis': 1.35.6 - fast-xml-parser: 5.2.5 - google-auth-library: 8.9.0 - ignore: 5.3.2 - jsonwebtoken: 9.0.2 - pg: 8.16.3 - playwright: 1.56.0 - redis: 5.8.3 - weaviate-client: 3.9.0 - ws: 8.18.3 - transitivePeerDependencies: - - '@langchain/anthropic' - - '@langchain/aws' - - '@langchain/cerebras' - - '@langchain/cohere' - - '@langchain/deepseek' - - '@langchain/google-genai' - - '@langchain/google-vertexai' - - '@langchain/google-vertexai-web' - - '@langchain/groq' - - '@langchain/mistralai' - - '@langchain/ollama' - - '@langchain/xai' - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - axios - - encoding - - handlebars - - peggy - '@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))': dependencies: '@cfworker/json-schema': 4.1.1 @@ -12821,14 +12780,14 @@ 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(ws@8.18.3)(zod@3.25.76))': + '@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(zod@3.25.76))': dependencies: '@cfworker/json-schema': 4.1.1 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.21 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + 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 @@ -12869,14 +12828,25 @@ snapshots: '@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.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@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)': + dependencies: + '@types/json-schema': 7.0.15 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 9.0.1 + optionalDependencies: + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + react: 19.2.0 + 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)': dependencies: '@types/json-schema': 7.0.15 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@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) @@ -16520,6 +16490,8 @@ snapshots: commondir@1.0.1: {} + compare-versions@6.1.1: {} + concat-map@0.0.1: {} concurrently@9.2.1: @@ -19014,7 +18986,7 @@ snapshots: '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - langsmith@0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)): + 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 @@ -21721,6 +21693,27 @@ 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): dependencies: bs-logger: 0.2.6 diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index ef6eefbba..a64abc9f0 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -25,9 +25,10 @@ }, "dependencies": { "@ag-ui/core": "workspace:*", - "@ag-ui/proto": "workspace:*", "@ag-ui/encoder": "workspace:*", + "@ag-ui/proto": "workspace:*", "@types/uuid": "^10.0.0", + "compare-versions": "^6.1.1", "fast-json-patch": "^3.1.1", "rxjs": "7.8.1", "untruncate-json": "^0.0.1", diff --git a/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts b/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts deleted file mode 100644 index 37d19205e..000000000 --- a/sdks/typescript/packages/client/src/__tests__/parse-semver.test.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { parseSemanticVersion } from "../utils"; - -describe("parseSemanticVersion", () => { - it("parses full semantic versions", () => { - const parsed = parseSemanticVersion("1.2.3"); - expect(parsed).toMatchObject({ - major: 1, - minor: 2, - patch: 3, - prerelease: [], - build: [], - source: "1.2.3", - }); - expect(parsed.compare(parsed)).toBe(0); - }); - - it("defaults missing segments to zero", () => { - expect(parseSemanticVersion("4")).toMatchObject({ major: 4, minor: 0, patch: 0 }); - expect(parseSemanticVersion("4.5")).toMatchObject({ major: 4, minor: 5, patch: 0 }); - }); - - it("parses prerelease and build metadata", () => { - const parsed = parseSemanticVersion("2.0.1-alpha.1+build.5"); - expect(parsed).toMatchObject({ - major: 2, - minor: 0, - patch: 1, - prerelease: ["alpha", "1"], - build: ["build", "5"], - source: "2.0.1-alpha.1+build.5", - }); - expect(parsed.compare(parseSemanticVersion("2.0.1-alpha.2"))).toBeLessThan(0); - }); - - it("rejects non-semantic labels like latest", () => { - expect(() => parseSemanticVersion("latest")).toThrow(); - expect(() => parseSemanticVersion("LaTeSt")).toThrow(); - }); - - it("throws on invalid versions", () => { - expect(() => parseSemanticVersion("not-a-version")).toThrow(); - expect(() => parseSemanticVersion("")).toThrow(); - }); -}); diff --git a/sdks/typescript/packages/client/src/agent/agent.ts b/sdks/typescript/packages/client/src/agent/agent.ts index 6253d8121..4820ed5b2 100644 --- a/sdks/typescript/packages/client/src/agent/agent.ts +++ b/sdks/typescript/packages/client/src/agent/agent.ts @@ -3,7 +3,8 @@ import { Message, State, RunAgentInput, BaseEvent, ToolCall, AssistantMessage } import { AgentConfig, RunAgentParameters } from "./types"; import { v4 as uuidv4 } from "uuid"; -import { structuredClone_, parseSemanticVersion } from "@/utils"; +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"; @@ -57,9 +58,7 @@ export abstract class AbstractAgent { this.state = structuredClone_(initialState ?? {}); this.debug = debug ?? false; - const parsedMaxVersion = parseSemanticVersion(this.maxVersion); - - if (parsedMaxVersion.compare(parseSemanticVersion("0.0.39")) <= 0) { + if (compareVersions(this.maxVersion, "0.0.39") <= 0) { this.middlewares.unshift(new BackwardCompatibility_0_0_39()); } } diff --git a/sdks/typescript/packages/client/src/utils.ts b/sdks/typescript/packages/client/src/utils.ts index 97a4125b2..0353a9842 100644 --- a/sdks/typescript/packages/client/src/utils.ts +++ b/sdks/typescript/packages/client/src/utils.ts @@ -20,19 +20,9 @@ export function randomUUID(): string { return uuidv4(); } -export interface ParsedSemanticVersion { - major: number; - minor: number; - patch: number; - prerelease: string[]; - build: string[]; - source: string; - compare(other: ParsedSemanticVersion): number; -} +// Note: semver helpers were removed in favor of using +// the external `compare-versions` library directly at call sites. -const SEMVER_PATTERN = - /^(?0|[1-9]\d*)(?:\.(?0|[1-9]\d*)(?:\.(?0|[1-9]\d*))?)?(?:-(?(?:0|[1-9A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9A-Za-z-][0-9A-Za-z-]*))*))?(?:\+(?[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/; -const NUMERIC_IDENTIFIER_PATTERN = /^\d+$/; /** * Parses a semantic version string into its numeric components. @@ -40,97 +30,4 @@ const NUMERIC_IDENTIFIER_PATTERN = /^\d+$/; * * @throws If the version string is not a valid semantic version. */ -export function parseSemanticVersion(version: string): ParsedSemanticVersion { - const trimmed = version.trim(); - - if (trimmed.length === 0) { - throw new Error("Semantic version cannot be empty"); - } - - const match = SEMVER_PATTERN.exec(trimmed); - if (!match || !match.groups?.major) { - throw new Error(`Invalid semantic version: "${version}"`); - } - - const major = Number.parseInt(match.groups.major, 10); - const minor = match.groups.minor ? Number.parseInt(match.groups.minor, 10) : 0; - const patch = match.groups.patch ? Number.parseInt(match.groups.patch, 10) : 0; - const prerelease = match.groups.prerelease ? match.groups.prerelease.split(".") : []; - const build = match.groups.build ? match.groups.build.split(".") : []; - - const parsed: ParsedSemanticVersion = { - major, - minor, - patch, - prerelease, - build, - source: version, - compare(this: ParsedSemanticVersion, other: ParsedSemanticVersion): number { - if (this.major !== other.major) { - return this.major - other.major; - } - - if (this.minor !== other.minor) { - return this.minor - other.minor; - } - - if (this.patch !== other.patch) { - return this.patch - other.patch; - } - - if (this.prerelease.length === 0 && other.prerelease.length === 0) { - return 0; - } - - if (this.prerelease.length === 0) { - return 1; - } - - if (other.prerelease.length === 0) { - return -1; - } - - const length = Math.max(this.prerelease.length, other.prerelease.length); - for (let index = 0; index < length; index++) { - const aIdentifier = this.prerelease[index]; - const bIdentifier = other.prerelease[index]; - - if (aIdentifier === undefined) { - return -1; - } - - if (bIdentifier === undefined) { - return 1; - } - - const aIsNumeric = NUMERIC_IDENTIFIER_PATTERN.test(aIdentifier); - const bIsNumeric = NUMERIC_IDENTIFIER_PATTERN.test(bIdentifier); - - if (aIsNumeric && bIsNumeric) { - const diff = Number(aIdentifier) - Number(bIdentifier); - if (diff !== 0) { - return diff; - } - continue; - } - - if (aIsNumeric) { - return -1; - } - - if (bIsNumeric) { - return 1; - } - - const lexicalComparison = aIdentifier.localeCompare(bIdentifier); - if (lexicalComparison !== 0) { - return lexicalComparison; - } - } - - return 0; - }, - }; - - return parsed; -} +// (Intentionally left minimal.) From d5f0474bb468f085e48df9cb0033d2845ff8c3ef Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Tue, 4 Nov 2025 12:35:38 +0100 Subject: [PATCH 095/113] update docs --- docs/concepts/events.mdx | 2 +- docs/concepts/serialization.mdx | 188 ++++++++++++++++++ docs/docs.json | 5 +- docs/drafts/overview.mdx | 12 +- docs/drafts/serialization.mdx | 316 ------------------------------ docs/sdk/js/client/compaction.mdx | 76 +++++++ 6 files changed, 270 insertions(+), 329 deletions(-) create mode 100644 docs/concepts/serialization.mdx delete mode 100644 docs/drafts/serialization.mdx create mode 100644 docs/sdk/js/client/compaction.mdx diff --git a/docs/concepts/events.mdx b/docs/concepts/events.mdx index 6ba6c9cc4..3c1f4f546 100644 --- a/docs/concepts/events.mdx +++ b/docs/concepts/events.mdx @@ -644,7 +644,7 @@ The `RunFinished` event gains new fields to support interrupt-aware workflows. | `outcome` | Optional: "success" or "interrupt" | | `interrupt` | Optional: Contains interrupt details when paused | -DRAFT [View Proposal](/drafts/serialization) +See [Serialization](/concepts/serialization) for lineage and input capture. #### RunStarted (Extended) diff --git a/docs/concepts/serialization.mdx b/docs/concepts/serialization.mdx new file mode 100644 index 000000000..8a4196131 --- /dev/null +++ b/docs/concepts/serialization.mdx @@ -0,0 +1,188 @@ +--- +title: "Serialization" +description: "Serialize event streams for history restore, branching, and compaction in AG-UI" +--- + +# Serialization + +Serialization in AG-UI provides a standard way to persist and restore the event +stream that drives an agent–UI session. With a serialized stream you can: + +- Restore chat history and UI state after reloads or reconnects +- Attach to running agents and continue receiving events +- Create branches (time travel) from any prior run +- Compact stored history to reduce size without losing meaning + +This page explains the model, the updated event fields, and practical usage +patterns with examples. + +## Core Concepts + +- Stream serialization – Convert the full event history to and from a portable + representation (e.g., JSON) for storage in databases, files, or logs. +- Event compaction – Reduce verbose streams to snapshots while preserving + semantics (e.g., merge content chunks, collapse deltas into snapshots). +- Run lineage – Track branches of conversation using a `parentRunId`, forming + a git‑like append‑only log that enables time travel and alternative paths. + +## Updated Event Fields + +The `RunStarted` event includes additional optional fields: + +```ts +type RunStartedEvent = BaseEvent & { + type: EventType.RUN_STARTED + threadId: string + runId: string + /** Parent for branching/time travel within the same thread */ + parentRunId?: string + /** Exact agent input for this run (may omit messages already in history) */ + input?: AgentInput +} +``` + +These fields enable lineage tracking and let implementations record precisely +what was passed to the agent, independent of previously recorded messages. + +## Event Compaction + +Compaction reduces noise in an event stream while keeping the same observable +outcome. A typical implementation provides a utility: + +```ts +declare function compactEvents(events: BaseEvent[]): BaseEvent[] +``` + +Common compaction rules include: + +- Message streams – Combine `TEXT_MESSAGE_*` sequences into a single message + snapshot; concatenate adjacent `TEXT_MESSAGE_CONTENT` for the same message. +- Tool calls – Collapse tool call start/content/end into a compact record. +- State – Merge consecutive `STATE_DELTA` events into a single final + `STATE_SNAPSHOT` and discard superseded updates. +- Run input normalization – Remove from `RunStarted.input.messages` any + messages already present earlier in the stream. + +## Branching and Time Travel + +Setting `parentRunId` on a `RunStarted` event creates a git‑like lineage. The +stream becomes an immutable append‑only log where each run can branch from any +previous run. + +```mermaid +gitGraph + commit id: "run1" + commit id: "run2" + branch alternative + checkout alternative + commit id: "run3 (parent run2)" + commit id: "run4" + checkout main + commit id: "run5 (parent run2)" + commit id: "run6" +``` + +Benefits: + +- Multiple branches in the same serialized log +- Immutable history (append‑only) +- Deterministic time travel to any point + +## Examples + +### Basic Serialization + +```ts +// Serialize event stream +const events: BaseEvent[] = [...]; +const serialized = JSON.stringify(events); + +await storage.save(threadId, serialized); + +// Restore and compact later +const restored = JSON.parse(await storage.load(threadId)); +const compacted = compactEvents(restored); +``` + +### Event Compaction + +Before: + +```ts +[ + { type: "TEXT_MESSAGE_START", messageId: "msg1", role: "user" }, + { type: "TEXT_MESSAGE_CONTENT", messageId: "msg1", delta: "Hello " }, + { type: "TEXT_MESSAGE_CONTENT", messageId: "msg1", delta: "world" }, + { type: "TEXT_MESSAGE_END", messageId: "msg1" }, + { type: "STATE_DELTA", patch: { op: "add", path: "/foo", value: 1 } }, + { type: "STATE_DELTA", patch: { op: "replace", path: "/foo", value: 2 } }, +] +``` + +After: + +```ts +[ + { + type: "MESSAGES_SNAPSHOT", + messages: [{ id: "msg1", role: "user", content: "Hello world" }], + }, + { + type: "STATE_SNAPSHOT", + state: { foo: 2 }, + }, +] +``` + +### Branching With `parentRunId` + +```ts +// Original run +{ + type: "RUN_STARTED", + threadId: "thread1", + runId: "run1", + input: { messages: ["Tell me about Paris"] }, +} + +// Branch from run1 +{ + type: "RUN_STARTED", + threadId: "thread1", + runId: "run2", + parentRunId: "run1", + input: { messages: ["Actually, tell me about London instead"] }, +} +``` + +### Normalized Input + +```ts +// First run includes full message +{ + type: "RUN_STARTED", + runId: "run1", + input: { messages: [{ id: "msg1", role: "user", content: "Hello" }] }, +} + +// Second run omits already‑present message +{ + type: "RUN_STARTED", + runId: "run2", + input: { messages: [{ id: "msg2", role: "user", content: "How are you?" }] }, + // msg1 omitted; it already exists in history +} +``` + +## Implementation Notes + +- Provide SDK helpers for compaction and (de)serialization. +- Store streams append‑only; prefer incremental writes when possible. +- Consider compression when persisting long histories. +- Add indexes by `threadId`, `runId`, and timestamps for fast retrieval. + +## See Also + +- Concepts: [Events](/concepts/events), [State Management](/concepts/state) +- SDKs: TypeScript encoder and core event types + diff --git a/docs/docs.json b/docs/docs.json index f63ed72b7..e6ad9743b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -43,6 +43,7 @@ "concepts/middleware", "concepts/messages", "concepts/state", + "concepts/serialization", "concepts/tools" ] }, @@ -52,7 +53,6 @@ "drafts/overview", "drafts/activity-events", "drafts/reasoning", - "drafts/serialization", "drafts/multimodal-messages", "drafts/interrupts", "drafts/generative-ui", @@ -87,7 +87,8 @@ "sdk/js/client/abstract-agent", "sdk/js/client/http-agent", "sdk/js/client/middleware", - "sdk/js/client/subscriber" + "sdk/js/client/subscriber", + "sdk/js/client/compaction" ] }, "sdk/js/encoder", diff --git a/docs/drafts/overview.mdx b/docs/drafts/overview.mdx index a8c307bc5..bf22e9f1b 100644 --- a/docs/drafts/overview.mdx +++ b/docs/drafts/overview.mdx @@ -28,15 +28,7 @@ This section contains draft changes being considered for the AG-UI protocol. The > Support for LLM reasoning visibility and continuity with encrypted content - - Stream serialization for chat history restoration and event compaction - + Date: Tue, 4 Nov 2025 12:45:50 +0100 Subject: [PATCH 096/113] document activity messages --- docs/concepts/events.mdx | 38 +---- docs/docs.json | 1 - docs/drafts/activity-events.mdx | 262 -------------------------------- docs/drafts/overview.mdx | 9 -- 4 files changed, 6 insertions(+), 304 deletions(-) delete mode 100644 docs/drafts/activity-events.mdx diff --git a/docs/concepts/events.mdx b/docs/concepts/events.mdx index 3c1f4f546..47681ccaf 100644 --- a/docs/concepts/events.mdx +++ b/docs/concepts/events.mdx @@ -459,11 +459,12 @@ incrementally update it as new information arrives. 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 | +| 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. @@ -529,33 +530,6 @@ implementation across frontends and agents. These events are currently in draft status and may change before finalization. They represent proposed extensions to the protocol that are under active development and discussion. -### Activity Events - -DRAFT [View Proposal](/drafts/activity-events) - -Activity events represent ongoing agent progress between chat messages, allowing frameworks to surface fine-grained activity updates chronologically. - -#### ActivitySnapshotEvent - -Provides the complete activity state at a point in time. - -| Property | Description | -| -------------- | ---------------------------------------------------- | -| `messageId` | Unique identifier for the ActivityMessage | -| `activityType` | Activity type (e.g., "PLAN", "SEARCH", "SCRAPE") | -| `content` | Complete activity state at this point | -| `replace` | `true` (default) replaces an existing activity message; `false` only creates a new one if none exists | - -#### 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) diff --git a/docs/docs.json b/docs/docs.json index e6ad9743b..b92fca9ba 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -51,7 +51,6 @@ "group": "Draft Proposals", "pages": [ "drafts/overview", - "drafts/activity-events", "drafts/reasoning", "drafts/multimodal-messages", "drafts/interrupts", diff --git a/docs/drafts/activity-events.mdx b/docs/drafts/activity-events.mdx deleted file mode 100644 index a1eb5f88c..000000000 --- a/docs/drafts/activity-events.mdx +++ /dev/null @@ -1,262 +0,0 @@ ---- -title: Activity Events -description: - Proposal for representing ongoing agent progress between chat messages ---- - -# Activity Events Proposal - -## Summary - -### Problem Statement - -Users want to render "activity" updates inline with chat, not just at run start -or end. Currently, there's no standardized way to represent ongoing agent -progress between chat messages. - -### Motivation - -AG-UI is extended with **ActivityEvents** and **ActivityMessages** to represent -ongoing agent progress in between chat messages. This allows frameworks to -surface fine-grained activity updates chronologically, giving users immediate -visibility into what an agent is doing without waiting for the next message or -run boundary. - -## Status - -- **Status**: Draft -- **Author(s)**: Markus Ecker (mail@mme.xyz) - -## Background - -Users want real-time visibility into agent activities as they happen. Consider -this example UI: - -``` -+------------------------------------------------------------+ -| I will search the internet for relevant information | <- TextMessage -+------------------------------------------------------------+ -+------------------------------------------------------------+ -| ✓ checking reddit | <- ActivityMessage -| searching X.com... | -+------------------------------------------------------------+ -``` - -### Use Cases - -- **Workflows**: Step-by-step progress through workflow execution -- **Planning**: Intermediate planning or tool use visibility -- **Custom frameworks**: Signals representing ongoing work in any agent system - -## Challenges - -- **Flexibility**: Must handle arbitrary activity data from different frameworks -- **Serializability**: Events must be replayable and rehydrated for session - recovery -- **Extensibility**: Developers should define custom renderers per activity - type, with a generic fallback -- **Chronology**: Activities must interleave naturally with chat and run events - -## Detailed Specification - -### Overview - -This proposal introduces new concepts to the AG-UI protocol: - -1. **ActivitySnapshotEvent** and **ActivityDeltaEvent**: Two new event types following the established state management pattern -2. **ActivityMessage**: A new message type alongside TextMessage, ToolMessage, - etc. - -Frameworks may emit ActivityEvents, and frontends can render them inline with -chat. - -### New Events: ActivitySnapshotEvent and ActivityDeltaEvent - -Following the established pattern in AG-UI (similar to `StateSnapshotEvent` and `StateDeltaEvent`), activities are represented using two complementary events: - -#### ActivitySnapshotEvent - -Provides the complete activity state at a point in time. - -```typescript -type ActivitySnapshotEvent = BaseEvent & { - type: EventType.ACTIVITY_SNAPSHOT - /** - * Unique identifier for the ActivityMessage this event belongs to. - */ - messageId: string - /** - * Activity type, e.g. "PLAN", "SEARCH", "SCRAPE" - */ - activityType: string - /** - * Complete activity state at this point in time. - */ - content: Record -} -``` - -#### ActivityDeltaEvent - -Provides incremental updates to the activity state. - -```typescript -type ActivityDeltaEvent = BaseEvent & { - type: EventType.ACTIVITY_DELTA - /** - * Unique identifier for the ActivityMessage this event belongs to. - */ - messageId: string - /** - * Activity type, e.g. "PLAN", "SEARCH", "SCRAPE" - */ - activityType: string - /** - * JSON Patch operations to apply to the current activity state. - * Follows RFC 6902 semantics. - */ - patch: JSONPatchOperation[] -} -``` - -#### Example Events - -Initial activity snapshot: - -```json -{ - "id": "evt_001", - "ts": 1714064100000, - "type": "ACTIVITY_SNAPSHOT", - "messageId": "msg_789", - "activityType": "PLAN", - "content": { - "tasks": ["check reddit", "search X.com"] - } -} -``` - -Incremental update via patch: - -```json -{ - "id": "evt_002", - "ts": 1714064120000, - "type": "ACTIVITY_DELTA", - "messageId": "msg_789", - "activityType": "PLAN", - "patch": [ - { - "op": "replace", - "path": "/tasks/0", - "value": "✓ check reddit" - } - ] -} -``` - -### New Message: ActivityMessage - -```typescript -type ActivityMessage = { - id: string - role: "activity" - activityType: string - /** - * Finalized activity content as of compaction. - */ - content: Record -} -``` - -### Rendering Strategy - -- **Generic renderer**: Displays raw snapshot/patch as JSON or formatted text -- **Custom renderer**: Developers can register a renderer per `activityType`: - - `"PLAN"` → Interactive checklist component - - `"SEARCH"` → Live status with progress indicators - - `"WORKFLOW"` → Step-by-step workflow visualization - -## Implementation Considerations - -### Client SDK Changes - -TypeScript SDK additions: - -- New `ActivitySnapshotEvent` and `ActivityDeltaEvent` types in `@ag-ui/core` -- New `ActivityMessage` type in message unions -- Activity renderer registry in `@ag-ui/client` -- JSON Patch utilities for activity updates - -Python SDK additions: - -- New `ActivitySnapshotEvent` and `ActivityDeltaEvent` classes in `ag_ui.core.events` -- New `ActivityMessage` class in message types -- Activity serialization/deserialization support -- JSON Patch utilities for activity updates - -### Integration Impact - -- **Planning Frameworks**: Can emit ActivitySnapshotEvent/ActivityDeltaEvent during planning or tool - execution phases -- **Workflow Systems**: Can surface step-by-step workflow progress as - ActivitySnapshotEvent/ActivityDeltaEvent -- **Other frameworks**: May emit ActivitySnapshotEvent/ActivityDeltaEvent freely; AG-UI will serialize - them like other events - -## Examples and Use Cases - -### Example 1: Web Search Activity - -```typescript -// Agent emits initial search activity snapshot -agent.emitActivitySnapshot({ - messageId: "msg_123", - activityType: "SEARCH", - content: { - sources: [ - { name: "Reddit", status: "pending" }, - { name: "X.com", status: "pending" }, - { name: "Google", status: "pending" }, - ], - }, -}) - -// Update as search progresses -agent.emitActivityDelta({ - messageId: "msg_123", - activityType: "SEARCH", - patch: [ - { - op: "replace", - path: "/sources/0/status", - value: "complete", - } - ], -}) -``` - -### Use Case: Multi-Step Workflow Visibility - -A data analysis agent performing multiple steps: - -1. Loading dataset → ActivitySnapshotEvent/ActivityDeltaEvent shows progress bar -2. Cleaning data → ActivitySnapshotEvent/ActivityDeltaEvent shows rows processed -3. Running analysis → ActivitySnapshotEvent/ActivityDeltaEvent shows current computation -4. Generating report → ActivitySnapshotEvent/ActivityDeltaEvent shows sections completed - -Each step appears inline with chat, giving users real-time feedback. - -## Testing Strategy - -- Unit tests for ActivitySnapshotEvent/ActivityDeltaEvent serialization/deserialization -- Integration tests with mock frameworks emitting ActivitySnapshotEvent/ActivityDeltaEvent -- E2E tests in AG-UI Dojo demonstrating activity rendering -- Performance benchmarks for high-frequency activity updates -- JSON Patch application correctness tests - -## References - -- [JSON Patch RFC 6902](https://tools.ietf.org/html/rfc6902) -- [AG-UI Events Documentation](/concepts/events) -- [AG-UI Messages Documentation](/concepts/messages) diff --git a/docs/drafts/overview.mdx b/docs/drafts/overview.mdx index bf22e9f1b..1acc15a44 100644 --- a/docs/drafts/overview.mdx +++ b/docs/drafts/overview.mdx @@ -10,15 +10,6 @@ This section contains draft changes being considered for the AG-UI protocol. The ## Current Drafts - - Represent ongoing agent progress between chat messages with fine-grained activity updates - Date: Tue, 4 Nov 2025 12:49:05 +0100 Subject: [PATCH 097/113] document chunk events --- docs/concepts/events.mdx | 43 ++++++++++++++++++++++++------ docs/sdk/js/core/events.mdx | 46 ++++++++++++++++++++++++++++++++ docs/sdk/python/core/events.mdx | 47 +++++++++++++++++++++++++++++++++ 3 files changed, 128 insertions(+), 8 deletions(-) diff --git a/docs/concepts/events.mdx b/docs/concepts/events.mdx index 47681ccaf..985576379 100644 --- a/docs/concepts/events.mdx +++ b/docs/concepts/events.mdx @@ -237,18 +237,23 @@ automatic scrolling to ensure the full message is visible. ### TextMessageChunk -A self-contained text message event that combines start, content, and end. +Convenience event that expands to Start → Content → End automatically. -The `TextMessageChunk` event provides a convenient way to send complete text messages -in a single event instead of the three-event sequence (start, content, end). This is -particularly useful for simple messages or when the entire content is available at once. -The event includes both the message metadata and content, making it more efficient for -non-streaming scenarios. +The `TextMessageChunk` event lets you omit explicit `TextMessageStart` and +`TextMessageEnd` events. The client stream transformer expands chunks into the +standard triad: + +- First chunk for a message must include `messageId` and will emit + `TextMessageStart` (role defaults to `assistant` when not provided). +- Each chunk with a `delta` emits a `TextMessageContent` for the current + `messageId`. +- `TextMessageEnd` is emitted automatically when the stream switches to a new + message ID or when the stream completes. | Property | Description | | ----------- | ------------------------------------------------------------------------------------- | -| `messageId` | Optional unique identifier for the message | -| `role` | Optional role of the sender ("developer", "system", "assistant", "user", "tool") | +| `messageId` | Optional unique identifier for the message; required on the first chunk of a message | +| `role` | Optional role of the sender ("developer", "system", "assistant", "user") | | `delta` | Optional text content of the message | ## Tool Call Events @@ -359,6 +364,28 @@ the tool's output. | `content` | The actual result/output content from the tool execution | | `role` | Optional role identifier, typically "tool" for tool results | +### ToolCallChunk + +Convenience event that expands to Start → Args → End automatically. + +The `ToolCallChunk` event lets you omit explicit `ToolCallStart` and +`ToolCallEnd` events. The client stream transformer expands chunks into the +standard tool-call triad: + +- First chunk for a tool call must include `toolCallId` and `toolCallName` and + will emit `ToolCallStart` (propagating any `parentMessageId`). +- Each chunk with a `delta` emits a `ToolCallArgs` for the current + `toolCallId`. +- `ToolCallEnd` is emitted automatically when the stream switches to a new + `toolCallId` or when the stream completes. + +| Property | Description | +| ----------------- | --------------------------------------------------------------------------- | +| `toolCallId` | Optional on later chunks; required on the first chunk of a tool call | +| `toolCallName` | Optional on later chunks; required on the first chunk of a tool call | +| `parentMessageId` | Optional ID of the parent message | +| `delta` | Optional argument data chunk (often a JSON fragment) | + ## State Management Events These events are used to manage and synchronize the agent's state with the diff --git a/docs/sdk/js/core/events.mdx b/docs/sdk/js/core/events.mdx index df4d8646e..569be5d21 100644 --- a/docs/sdk/js/core/events.mdx +++ b/docs/sdk/js/core/events.mdx @@ -201,6 +201,29 @@ type TextMessageEndEvent = BaseEvent & { | ----------- | -------- | ----------------------------------------- | | `messageId` | `string` | Matches the ID from TextMessageStartEvent | +### TextMessageChunkEvent + +Convenience event that expands to `TextMessageStart` → `TextMessageContent` → +`TextMessageEnd` automatically in the JS/TS client. + +```typescript +type TextMessageChunkEvent = BaseEvent & { + type: EventType.TEXT_MESSAGE_CHUNK + messageId?: string // required on the first chunk for a message + role?: 'developer' | 'system' | 'assistant' | 'user' + delta?: string +} +``` + +Behavior +- Omit start/end: The client transforms chunk sequences into the standard + start/content/end triad, so you don’t need to emit them manually. +- First chunk requirements: The first chunk for a message must include + `messageId`. When `role` is omitted, it defaults to `assistant`. +- Streaming: Subsequent chunks with the same `messageId` emit + `TextMessageContent` events. `TextMessageEnd` is emitted automatically when a + different message starts or when the stream completes. + ## Tool Call Events These events represent the lifecycle of tool calls made by agents. @@ -430,3 +453,26 @@ const EventSchemas = z.discriminatedUnion("type", [ This allows for runtime validation of events and provides TypeScript type inference. +### ToolCallChunkEvent + +Convenience event that expands to `ToolCallStart` → `ToolCallArgs` → +`ToolCallEnd` automatically in the JS/TS client. + +```typescript +type ToolCallChunkEvent = BaseEvent & { + type: EventType.TOOL_CALL_CHUNK + toolCallId?: string // required on the first chunk for a tool call + toolCallName?: string // required on the first chunk for a tool call + parentMessageId?: string + delta?: string +} +``` + +Behavior +- Omit start/end: The client transforms chunk sequences into the standard + start/args/end triad. +- First chunk requirements: The first chunk must include both `toolCallId` and + `toolCallName`; `parentMessageId` is propagated to `ToolCallStart` if given. +- Streaming: Subsequent chunks with the same `toolCallId` emit `ToolCallArgs`. + `ToolCallEnd` is emitted automatically when the tool call changes or when the + stream completes. diff --git a/docs/sdk/python/core/events.mdx b/docs/sdk/python/core/events.mdx index 463b21734..8283a42bc 100644 --- a/docs/sdk/python/core/events.mdx +++ b/docs/sdk/python/core/events.mdx @@ -461,3 +461,50 @@ Event = Annotated[ This allows for runtime validation of events and type checking at development time. +### TextMessageChunkEvent + +Convenience event for complete text messages without manually emitting +`TextMessageStart`/`TextMessageEnd`. + +```python +from ag_ui.core import TextMessageChunkEvent + +class TextMessageChunkEvent(BaseEvent): + type: Literal[EventType.TEXT_MESSAGE_CHUNK] + message_id: Optional[str] = None # required on first chunk for a message + role: Optional[TextMessageRole] = None # defaults to "assistant" in JS client + delta: Optional[str] = None +``` + +Behavior +- Convenience: Some consumers (e.g., the JS/TS client) expand chunk events into + the standard start/content/end sequence automatically, allowing producers to + omit explicit start/end events when using chunks. +- First chunk requirements: The first chunk for a given message must include + `message_id`. +- Streaming: Subsequent chunks with the same `message_id` correspond to content + pieces; completion triggers an implied end in clients that perform expansion. + +### ToolCallChunkEvent + +Convenience event for tool calls without manually emitting +`ToolCallStart`/`ToolCallEnd`. + +```python +from ag_ui.core import ToolCallChunkEvent + +class ToolCallChunkEvent(BaseEvent): + type: Literal[EventType.TOOL_CALL_CHUNK] + tool_call_id: Optional[str] = None # required on first chunk + tool_call_name: Optional[str] = None # required on first chunk + parent_message_id: Optional[str] = None + delta: Optional[str] = None +``` + +Behavior +- Convenience: Consumers may expand chunk sequences into the standard + start/args/end triad (the JS/TS client does this automatically). +- First chunk requirements: Include both `tool_call_id` and `tool_call_name` on + the first chunk. +- Streaming: Subsequent chunks with the same `tool_call_id` correspond to args + pieces; completion triggers an implied end in clients that perform expansion. From ed6f2753ee8e160d3bbf0bce913d42c748041557 Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Tue, 4 Nov 2025 14:42:13 -0800 Subject: [PATCH 098/113] chore: align ai dependencies with v5 release --- apps/dojo/package.json | 15 +- apps/dojo/src/agents.ts | 69 +- .../[integrationId]/[[...slug]]/route.ts | 3 +- .../langgraph/python/examples/poetry.lock | 264 ++++--- .../mastra/typescript/examples/package.json | 1 + .../vercel-ai-sdk/typescript/package.json | 2 +- middlewares/a2a-middleware/package.json | 2 +- package.json | 11 +- pnpm-lock.yaml | 642 ++++++++---------- 9 files changed, 485 insertions(+), 524 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 0f3e97811..cd064c2cd 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,13 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251031165308", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251031165308", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251031165308", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251031165308", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251031165308", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251104211725", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251104211725", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251104211725", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251104211725", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251104211725", + "@copilotkitnext/runtime": "0.0.20", + "@copilotkitnext/react": "0.0.20", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.9", @@ -52,6 +54,7 @@ "@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", @@ -64,7 +67,7 @@ "markdown-it-ins": "^4.0.0", "next": "15.2.1", "next-themes": "^0.4.6", - "openai": "^4.104.0", + "openai": "^5.9.0", "react": "^19.2.0", "react-dom": "^19.2.0", "react-markdown": "^10.1.0", diff --git a/apps/dojo/src/agents.ts b/apps/dojo/src/agents.ts index 18d7e90e8..176807561 100644 --- a/apps/dojo/src/agents.ts +++ b/apps/dojo/src/agents.ts @@ -4,19 +4,19 @@ import { AgentIntegrationConfig } from "./types/integration"; import { MiddlewareStarterAgent } from "@ag-ui/middleware-starter"; import { ServerStarterAgent } from "@ag-ui/server-starter"; import { ServerStarterAllFeaturesAgent } from "@ag-ui/server-starter-all-features"; -import { MastraClient } from "@mastra/client-js"; -import { MastraAgent } from "@ag-ui/mastra"; -import { VercelAISDKAgent } from "@ag-ui/vercel-ai-sdk"; -import { openai } from "@ai-sdk/openai"; +// import { MastraClient } from "@mastra/client-js"; +// import { MastraAgent } from "@ag-ui/mastra"; +// import { VercelAISDKAgent } from "@ag-ui/vercel-ai-sdk"; +// import { openai } from "@ai-sdk/openai"; import { LangGraphAgent, LangGraphHttpAgent } from "@ag-ui/langgraph"; import { AgnoAgent } from "@ag-ui/agno"; import { LlamaIndexAgent } from "@ag-ui/llamaindex"; import { CrewAIAgent } from "@ag-ui/crewai"; import getEnvVars from "./env"; -import { mastra } from "./mastra"; +// import { mastra } from "./mastra"; import { PydanticAIAgent } from "@ag-ui/pydantic-ai"; import { ADKAgent } from "@ag-ui/adk"; -import { SpringAiAgent } from '@ag-ui/spring-ai'; +import { SpringAiAgent } from "@ag-ui/spring-ai"; import { HttpAgent } from "@ag-ui/client"; import { A2AMiddlewareAgent } from "@ag-ui/a2a-middleware"; @@ -81,7 +81,9 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ backend_tool_rendering: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/backend_tool_rendering`, }), - shared_state: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/adk-shared-state-agent` }), + shared_state: new ADKAgent({ + url: `${envVars.adkMiddlewareUrl}/adk-shared-state-agent`, + }), // predictive_state_updates: new ADKAgent({ url: `${envVars.adkMiddlewareUrl}/adk-predictive-state-agent` }), }; }, @@ -114,24 +116,25 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ }; }, }, - { - id: "mastra", - agents: async () => { - const mastraClient = new MastraClient({ - baseUrl: envVars.mastraUrl, - }); + // Disable until we can support Vercel AI SDK v5 + // { + // id: "mastra", + // agents: async () => { + // const mastraClient = new MastraClient({ + // baseUrl: envVars.mastraUrl, + // }); - return MastraAgent.getRemoteAgents({ - mastraClient, - }); - }, - }, - { - id: "mastra-agent-local", - agents: async () => { - return MastraAgent.getLocalAgents({ mastra }); - }, - }, + // return MastraAgent.getRemoteAgents({ + // mastraClient, + // }); + // }, + // }, + // { + // id: "mastra-agent-local", + // agents: async () => { + // return MastraAgent.getLocalAgents({ mastra }); + // }, + // }, // Disabled until we can support Vercel AI SDK v5 // { // id: "vercel-ai-sdk", @@ -273,26 +276,26 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ }, }, { - id: 'spring-ai', + id: "spring-ai", agents: async () => { return { agentic_chat: new SpringAiAgent({ - url: `${envVars.springAiUrl}/agentic_chat/agui` + url: `${envVars.springAiUrl}/agentic_chat/agui`, }), shared_state: new SpringAiAgent({ - url: `${envVars.springAiUrl}/shared_state/agui` + url: `${envVars.springAiUrl}/shared_state/agui`, }), tool_based_generative_ui: new SpringAiAgent({ - url: `${envVars.springAiUrl}/tool_based_generative_ui/agui` + url: `${envVars.springAiUrl}/tool_based_generative_ui/agui`, }), human_in_the_loop: new SpringAiAgent({ - url: `${envVars.springAiUrl}/human_in_the_loop/agui` + url: `${envVars.springAiUrl}/human_in_the_loop/agui`, }), agentic_generative_ui: new SpringAiAgent({ - url: `${envVars.springAiUrl}/agentic_generative_ui/agui` - }) - } - } + url: `${envVars.springAiUrl}/agentic_generative_ui/agui`, + }), + }; + }, }, { id: "llama-index", diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts index b8ee70ca9..5256d2b84 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts @@ -1,10 +1,11 @@ +import "reflect-metadata"; import { CopilotRuntime, ExperimentalEmptyAdapter, copilotRuntimeNextJSAppRouterEndpoint, } from "@copilotkit/runtime"; import { agentsIntegrations } from "@/agents"; -import { handle } from 'hono/vercel'; +import { handle } from "hono/vercel"; async function createApp(integrationId: string) { const integration = agentsIntegrations.find((i) => i.id === integrationId); diff --git a/integrations/langgraph/python/examples/poetry.lock b/integrations/langgraph/python/examples/poetry.lock index 6bb4f1e00..813d3a181 100644 --- a/integrations/langgraph/python/examples/poetry.lock +++ b/integrations/langgraph/python/examples/poetry.lock @@ -1,4 +1,4 @@ -# 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.2.1 and should not be changed by hand. [[package]] name = "ag-ui-langgraph" @@ -182,19 +182,20 @@ files = [ [[package]] name = "anthropic" -version = "0.61.0" +version = "0.72.0" description = "The official Python library for the anthropic API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "anthropic-0.61.0-py3-none-any.whl", hash = "sha256:798c8e6cc61e6315143c3f5847d2f220c45f1e69f433436872a237413ca58803"}, - {file = "anthropic-0.61.0.tar.gz", hash = "sha256:af4b3b8f3bc4626cca6af2d412e301974da1747179341ad9e271bdf5cbd2f008"}, + {file = "anthropic-0.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d"}, + {file = "anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a"}, ] [package.dependencies] anyio = ">=3.5.0,<5" distro = ">=1.7.0,<2" +docstring-parser = ">=0.15,<1" httpx = ">=0.25.0,<1" jiter = ">=0.4.0,<1" pydantic = ">=1.9.0,<3" @@ -202,7 +203,7 @@ sniffio = "*" typing-extensions = ">=4.10,<5" [package.extras] -aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"] +aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.9)"] bedrock = ["boto3 (>=1.28.57)", "botocore (>=1.31.57)"] vertex = ["google-auth[requests] (>=2,<3)"] @@ -511,6 +512,23 @@ files = [ {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, ] +[[package]] +name = "docstring-parser" +version = "0.17.0" +description = "Parse Python docstrings in reST, Google and Numpydoc format" +optional = false +python-versions = ">=3.8" +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) ; python_version >= \"3.9\"", "pydoctor (>=25.4.0)", "pytest"] +docs = ["pydoctor (>=25.4.0)"] +test = ["pytest"] + [[package]] name = "dotenv" version = "0.9.9" @@ -662,19 +680,20 @@ files = [ [[package]] name = "google-ai-generativelanguage" -version = "0.6.18" +version = "0.9.0" description = "Google Ai Generativelanguage API client library" optional = false python-versions = ">=3.7" groups = ["main"] files = [ - {file = "google_ai_generativelanguage-0.6.18-py3-none-any.whl", hash = "sha256:13d8174fea90b633f520789d32df7b422058fd5883b022989c349f1017db7fcf"}, - {file = "google_ai_generativelanguage-0.6.18.tar.gz", hash = "sha256:274ba9fcf69466ff64e971d565884434388e523300afd468fc8e3033cd8e606e"}, + {file = "google_ai_generativelanguage-0.9.0-py3-none-any.whl", hash = "sha256:59f61e54cb341e602073098389876594c4d12e458617727558bb2628a86f3eb2"}, + {file = "google_ai_generativelanguage-0.9.0.tar.gz", hash = "sha256:2524748f413917446febc8e0879dc0d4f026a064f89f17c42b81bea77ab76c84"}, ] [package.dependencies] google-api-core = {version = ">=1.34.1,<2.0.dev0 || >=2.11.dev0,<3.0.0", extras = ["grpc"]} google-auth = ">=2.14.1,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0" +grpcio = ">=1.33.2,<2.0.0" proto-plus = [ {version = ">=1.22.3,<2.0.0"}, {version = ">=1.25.0,<2.0.0", markers = "python_version >= \"3.13\""}, @@ -1109,30 +1128,24 @@ files = [ [[package]] name = "langchain" -version = "0.3.23" +version = "1.0.3" description = "Building applications with LLMs through composability" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain-0.3.23-py3-none-any.whl", hash = "sha256:084f05ee7e80b7c3f378ebadd7309f2a37868ce2906fa0ae64365a67843ade3d"}, - {file = "langchain-0.3.23.tar.gz", hash = "sha256:d95004afe8abebb52d51d6026270248da3f4b53d93e9bf699f76005e0c83ad34"}, + {file = "langchain-1.0.3-py3-none-any.whl", hash = "sha256:a7d57964ed16278c991de4ab15516a81937a58c5ac7d7aadccb18431ad8179b2"}, + {file = "langchain-1.0.3.tar.gz", hash = "sha256:f96d8d185cb8cbba9793f5c648e7d5eeec688f8e3778f700d75d89d6570ae11e"}, ] [package.dependencies] -langchain-core = ">=0.3.51,<1.0.0" -langchain-text-splitters = ">=0.3.8,<1.0.0" -langsmith = ">=0.1.17,<0.4" +langchain-core = ">=1.0.0,<2.0.0" +langgraph = ">=1.0.2,<1.1.0" pydantic = ">=2.7.4,<3.0.0" -PyYAML = ">=5.3" -requests = ">=2,<3" -SQLAlchemy = ">=1.4,<3" [package.extras] anthropic = ["langchain-anthropic"] aws = ["langchain-aws"] -azure-ai = ["langchain-azure-ai"] -cohere = ["langchain-cohere"] community = ["langchain-community"] deepseek = ["langchain-deepseek"] fireworks = ["langchain-fireworks"] @@ -1149,151 +1162,174 @@ xai = ["langchain-xai"] [[package]] name = "langchain-anthropic" -version = "0.3.18" -description = "An integration package connecting AnthropicMessages and LangChain" +version = "1.0.1" +description = "Integration package connecting Claude (Anthropic) APIs and LangChain" optional = false -python-versions = ">=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain_anthropic-0.3.18-py3-none-any.whl", hash = "sha256:1be6ece317f08b3d780671fd4425b1dd05fd291a751e3debe3d4704bcf785082"}, - {file = "langchain_anthropic-0.3.18.tar.gz", hash = "sha256:f18970ae58fc4d79c8431dd67f8ab777de5e6d2f92285c8c9af1999cd126fb0a"}, + {file = "langchain_anthropic-1.0.1-py3-none-any.whl", hash = "sha256:a883f1030c50c2422a57985c0a89b1f49e9e0abe3117d212e510e3b838df7417"}, + {file = "langchain_anthropic-1.0.1.tar.gz", hash = "sha256:cd4c2f5d5d85d3aba290ea7b9976371d3e25fd58f6d70cfd0ef3323787862edc"}, ] [package.dependencies] -anthropic = ">=0.60.0,<1" -langchain-core = ">=0.3.72,<1.0.0" +anthropic = ">=0.69.0,<1.0.0" +langchain-core = ">=1.0.0,<2.0.0" pydantic = ">=2.7.4,<3.0.0" [[package]] -name = "langchain-community" -version = "0.3.21" -description = "Community contributed LangChain integrations." +name = "langchain-classic" +version = "1.0.0" +description = "Building applications with LLMs through composability" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain_community-0.3.21-py3-none-any.whl", hash = "sha256:8cb9bbb7ef15e5eea776193528dd0e0e1299047146d0c78b6c696ae2dc62e81f"}, - {file = "langchain_community-0.3.21.tar.gz", hash = "sha256:b87b9992cbeea7553ed93e3d39faf9893a8690318485f7dc861751c7878729f7"}, + {file = "langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33"}, + {file = "langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5"}, ] [package.dependencies] -aiohttp = ">=3.8.3,<4.0.0" -dataclasses-json = ">=0.5.7,<0.7" -httpx-sse = ">=0.4.0,<1.0.0" -langchain = ">=0.3.23,<1.0.0" -langchain-core = ">=0.3.51,<1.0.0" -langsmith = ">=0.1.125,<0.4" -numpy = ">=1.26.2,<3" -pydantic-settings = ">=2.4.0,<3.0.0" -PyYAML = ">=5.3" -requests = ">=2,<3" -SQLAlchemy = ">=1.4,<3" -tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10" +langchain-core = ">=1.0.0,<2.0.0" +langchain-text-splitters = ">=1.0.0,<2.0.0" +langsmith = ">=0.1.17,<1.0.0" +pydantic = ">=2.7.4,<3.0.0" +pyyaml = ">=5.3.0,<7.0.0" +requests = ">=2.0.0,<3.0.0" +sqlalchemy = ">=1.4.0,<3.0.0" + +[package.extras] +anthropic = ["langchain-anthropic"] +aws = ["langchain-aws"] +deepseek = ["langchain-deepseek"] +fireworks = ["langchain-fireworks"] +google-genai = ["langchain-google-genai"] +google-vertexai = ["langchain-google-vertexai"] +groq = ["langchain-groq"] +mistralai = ["langchain-mistralai"] +ollama = ["langchain-ollama"] +openai = ["langchain-openai"] +perplexity = ["langchain-perplexity"] +together = ["langchain-together"] +xai = ["langchain-xai"] [[package]] -name = "langchain-core" -version = "0.3.72" -description = "Building applications with LLMs through composability" +name = "langchain-community" +version = "0.4.1" +description = "Community contributed LangChain integrations." optional = false -python-versions = ">=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain_core-0.3.72-py3-none-any.whl", hash = "sha256:9fa15d390600eb6b6544397a7aa84be9564939b6adf7a2b091179ea30405b240"}, - {file = "langchain_core-0.3.72.tar.gz", hash = "sha256:4de3828909b3d7910c313242ab07b241294650f5cb6eac17738dd3638b1cd7de"}, + {file = "langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a"}, + {file = "langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85"}, ] [package.dependencies] -jsonpatch = ">=1.33,<2.0" -langsmith = ">=0.3.45" -packaging = ">=23.2" -pydantic = ">=2.7.4" -PyYAML = ">=5.3" +aiohttp = ">=3.8.3,<4.0.0" +dataclasses-json = ">=0.6.7,<0.7.0" +httpx-sse = ">=0.4.0,<1.0.0" +langchain-classic = ">=1.0.0,<2.0.0" +langchain-core = ">=1.0.1,<2.0.0" +langsmith = ">=0.1.125,<1.0.0" +numpy = [ + {version = ">=1.26.2", markers = "python_version < \"3.13\""}, + {version = ">=2.1.0", markers = "python_version >= \"3.13\""}, +] +pydantic-settings = ">=2.10.1,<3.0.0" +PyYAML = ">=5.3.0,<7.0.0" +requests = ">=2.32.5,<3.0.0" +SQLAlchemy = ">=1.4.0,<3.0.0" tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0" -typing-extensions = ">=4.7" [[package]] -name = "langchain-experimental" -version = "0.3.4" +name = "langchain-core" +version = "1.0.3" description = "Building applications with LLMs through composability" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain_experimental-0.3.4-py3-none-any.whl", hash = "sha256:2e587306aea36b60fa5e5fc05dc7281bee9f60a806f0bf9d30916e0ee096af80"}, - {file = "langchain_experimental-0.3.4.tar.gz", hash = "sha256:937c4259ee4a639c618d19acf0e2c5c2898ef127050346edc5655259aa281a21"}, + {file = "langchain_core-1.0.3-py3-none-any.whl", hash = "sha256:64f1bd45f04b174bbfd54c135a8adc52f4902b347c15a117d6383b412bf558a5"}, + {file = "langchain_core-1.0.3.tar.gz", hash = "sha256:10744945d21168fb40d1162a5f1cf69bf0137ff6ad2b12c87c199a5297410887"}, ] [package.dependencies] -langchain-community = ">=0.3.0,<0.4.0" -langchain-core = ">=0.3.28,<0.4.0" +jsonpatch = ">=1.33.0,<2.0.0" +langsmith = ">=0.3.45,<1.0.0" +packaging = ">=23.2.0,<26.0.0" +pydantic = ">=2.7.4,<3.0.0" +pyyaml = ">=5.3.0,<7.0.0" +tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0" +typing-extensions = ">=4.7.0,<5.0.0" [[package]] name = "langchain-google-genai" -version = "2.1.9" +version = "3.0.1" description = "An integration package connecting Google's genai package and LangChain" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain_google_genai-2.1.9-py3-none-any.whl", hash = "sha256:8d3aab59706b8f8920a22bcfd63c5000ce430fe61db6ecdec262977d1a0be5b8"}, - {file = "langchain_google_genai-2.1.9.tar.gz", hash = "sha256:cd5d6f644b8dac3e312e30101bb97541aab240e82678e87a4df039ee1dc77531"}, + {file = "langchain_google_genai-3.0.1-py3-none-any.whl", hash = "sha256:2420396c75d3911af42af1bffb2c2ddd3fff73f9db9d619963429b5385e5f55e"}, + {file = "langchain_google_genai-3.0.1.tar.gz", hash = "sha256:d3f82fd274d2e9ca86448d5f89ac37b37b2d3cdfa6dec1af7bc792317b11dde7"}, ] [package.dependencies] filetype = ">=1.2.0,<2.0.0" -google-ai-generativelanguage = ">=0.6.18,<0.7.0" -langchain-core = ">=0.3.68,<0.4.0" -pydantic = ">=2,<3" +google-ai-generativelanguage = ">=0.7.0,<1.0.0" +langchain-core = ">=1.0.0,<2.0.0" +pydantic = ">=2.0.0,<3.0.0" [[package]] name = "langchain-openai" -version = "0.3.13" +version = "1.0.2" description = "An integration package connecting OpenAI and LangChain" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain_openai-0.3.13-py3-none-any.whl", hash = "sha256:2ca3f1865df32d03c3bd85c77f11f0ffd81b157b4e363291741c65c81463606a"}, - {file = "langchain_openai-0.3.13.tar.gz", hash = "sha256:75038efbf686f4b5fe2b6bdb75c43790d563ecd61984fd1d51d6d51c53609d64"}, + {file = "langchain_openai-1.0.2-py3-none-any.whl", hash = "sha256:b3eb9b82752063b46452aa868d8c8bc1604e57631648c3bc325bba58d3aeb143"}, + {file = "langchain_openai-1.0.2.tar.gz", hash = "sha256:621e8295c52db9a1fc74806a0bd227ea215c132c6c5e421d2982c9ee78468769"}, ] [package.dependencies] -langchain-core = ">=0.3.52,<1.0.0" -openai = ">=1.68.2,<2.0.0" -tiktoken = ">=0.7,<1" +langchain-core = ">=1.0.2,<2.0.0" +openai = ">=1.109.1,<3.0.0" +tiktoken = ">=0.7.0,<1.0.0" [[package]] name = "langchain-text-splitters" -version = "0.3.8" +version = "1.0.0" description = "LangChain text splitting utilities" optional = false -python-versions = "<4.0,>=3.9" +python-versions = "<4.0.0,>=3.10.0" groups = ["main"] files = [ - {file = "langchain_text_splitters-0.3.8-py3-none-any.whl", hash = "sha256:e75cc0f4ae58dcf07d9f18776400cf8ade27fadd4ff6d264df6278bb302f6f02"}, - {file = "langchain_text_splitters-0.3.8.tar.gz", hash = "sha256:116d4b9f2a22dda357d0b79e30acf005c5518177971c66a9f1ab0edfdb0f912e"}, + {file = "langchain_text_splitters-1.0.0-py3-none-any.whl", hash = "sha256:f00c8219d3468f2c5bd951b708b6a7dd9bc3c62d0cfb83124c377f7170f33b2e"}, + {file = "langchain_text_splitters-1.0.0.tar.gz", hash = "sha256:d8580a20ad7ed10b432feb273e5758b2cc0902d094919629cec0e1ad691a6744"}, ] [package.dependencies] -langchain-core = ">=0.3.51,<1.0.0" +langchain-core = ">=1.0.0,<2.0.0" [[package]] name = "langgraph" -version = "0.6.1" +version = "1.0.2" description = "Building stateful, multi-actor applications with LLMs" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "langgraph-0.6.1-py3-none-any.whl", hash = "sha256:2736027faeb6cd5c0f1ab51a5345594cfcb5eb5beeb5ac1799a58fcecf4b4eae"}, - {file = "langgraph-0.6.1.tar.gz", hash = "sha256:e4399ac5ad0b70f58fa28d6fe05a41b84c15959f270d6d1a86edab4e92ae148b"}, + {file = "langgraph-1.0.2-py3-none-any.whl", hash = "sha256:b3d56b8c01de857b5fb1da107e8eab6e30512a377685eeedb4f76456724c9729"}, + {file = "langgraph-1.0.2.tar.gz", hash = "sha256:dae1af08d6025cb1fcaed68f502c01af7d634d9044787c853a46c791cfc52f67"}, ] [package.dependencies] langchain-core = ">=0.1" -langgraph-checkpoint = ">=2.1.0,<3.0.0" -langgraph-prebuilt = ">=0.6.0,<0.7.0" -langgraph-sdk = ">=0.2.0,<0.3.0" +langgraph-checkpoint = ">=2.1.0,<4.0.0" +langgraph-prebuilt = ">=1.0.2,<1.1.0" +langgraph-sdk = ">=0.2.2,<0.3.0" pydantic = ">=2.7.4" xxhash = ">=3.5.0" @@ -1315,30 +1351,30 @@ ormsgpack = ">=1.10.0" [[package]] name = "langgraph-prebuilt" -version = "0.6.1" +version = "1.0.2" description = "Library with high-level APIs for creating and executing LangGraph agents and tools." optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["main"] files = [ - {file = "langgraph_prebuilt-0.6.1-py3-none-any.whl", hash = "sha256:a3a970451371ec66509c6969505286a5d92132af7062d0b2b6dab08c2e27b50f"}, - {file = "langgraph_prebuilt-0.6.1.tar.gz", hash = "sha256:574c409113e02d3c58157877c5ea638faa80647b259027647ab88830d7ecef00"}, + {file = "langgraph_prebuilt-1.0.2-py3-none-any.whl", hash = "sha256:d9499f7c449fb637ee7b87e3f6a3b74095f4202053c74d33894bd839ea4c57c7"}, + {file = "langgraph_prebuilt-1.0.2.tar.gz", hash = "sha256:9896dbabf04f086eb59df4294f54ab5bdb21cd78e27e0a10e695dffd1cc6097d"}, ] [package.dependencies] -langchain-core = ">=0.3.67" -langgraph-checkpoint = ">=2.1.0,<3.0.0" +langchain-core = ">=1.0.0" +langgraph-checkpoint = ">=2.1.0,<4.0.0" [[package]] name = "langgraph-sdk" -version = "0.2.0" +version = "0.2.9" description = "SDK for interacting with LangGraph API" optional = false python-versions = ">=3.9" groups = ["main"] files = [ - {file = "langgraph_sdk-0.2.0-py3-none-any.whl", hash = "sha256:150722264f225c4d47bbe7394676be102fdbf04c4400a0dd1bd41a70c6430cc7"}, - {file = "langgraph_sdk-0.2.0.tar.gz", hash = "sha256:cd8b5f6595e5571be5cbffd04cf936978ab8f5d1005517c99715947ef871e246"}, + {file = "langgraph_sdk-0.2.9-py3-none-any.whl", hash = "sha256:fbf302edadbf0fb343596f91c597794e936ef68eebc0d3e1d358b6f9f72a1429"}, + {file = "langgraph_sdk-0.2.9.tar.gz", hash = "sha256:b3bd04c6be4fa382996cd2be8fbc1e7cc94857d2bc6b6f4599a7f2a245975303"}, ] [package.dependencies] @@ -1588,14 +1624,14 @@ files = [ [[package]] name = "openai" -version = "1.74.0" +version = "2.2.0" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.74.0-py3-none-any.whl", hash = "sha256:aff3e0f9fb209836382ec112778667027f4fd6ae38bdb2334bc9e173598b092a"}, - {file = "openai-1.74.0.tar.gz", hash = "sha256:592c25b8747a7cad33a841958f5eb859a785caea9ee22b9e4f4a2ec062236526"}, + {file = "openai-2.2.0-py3-none-any.whl", hash = "sha256:d222e63436e33f3134a3d7ce490dc2d2f146fa98036eb65cc225df3ce163916f"}, + {file = "openai-2.2.0.tar.gz", hash = "sha256:bc49d077a8bf0e370eec4d038bc05e232c20855a19df0b58e5b3e5a8da7d33e0"}, ] [package.dependencies] @@ -1609,6 +1645,7 @@ tqdm = ">4" typing-extensions = ">=4.11,<5" [package.extras] +aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"] datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] realtime = ["websockets (>=13,<16)"] voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"] @@ -2075,22 +2112,25 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydantic-settings" -version = "2.8.1" +version = "2.11.0" description = "Settings management using Pydantic" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c"}, - {file = "pydantic_settings-2.8.1.tar.gz", hash = "sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585"}, + {file = "pydantic_settings-2.11.0-py3-none-any.whl", hash = "sha256:fe2cea3413b9530d10f3a5875adffb17ada5c1e1bab0b2885546d7310415207c"}, + {file = "pydantic_settings-2.11.0.tar.gz", hash = "sha256:d0e87a1c7d33593beb7194adb8470fc426e95ba02af83a0f23474a04c9a08180"}, ] [package.dependencies] pydantic = ">=2.7.0" python-dotenv = ">=0.21.0" +typing-inspection = ">=0.4.0" [package.extras] +aws-secrets-manager = ["boto3 (>=1.35.0)", "boto3-stubs[secretsmanager]"] azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +gcp-secret-manager = ["google-cloud-secret-manager (>=2.23.1)"] toml = ["tomli (>=2.0.1)"] yaml = ["pyyaml (>=6.0.1)"] @@ -2278,19 +2318,19 @@ files = [ [[package]] name = "requests" -version = "2.32.3" +version = "2.32.5" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["main"] files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, + {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" @@ -2971,4 +3011,4 @@ cffi = ["cffi (>=1.11)"] [metadata] lock-version = "2.1" python-versions = ">=3.12,<3.14" -content-hash = "6f71ccd98fc91a3afa08c4407cce479e3dd9d2212015a800fec035fa97c33db0" +content-hash = "4c35ba27df33f05f4bc754cc44eeebad8cee1d14a78a9697483a2bdfbad359d5" diff --git a/integrations/mastra/typescript/examples/package.json b/integrations/mastra/typescript/examples/package.json index 497c36d11..dffe1d0bc 100644 --- a/integrations/mastra/typescript/examples/package.json +++ b/integrations/mastra/typescript/examples/package.json @@ -22,6 +22,7 @@ "@mastra/libsql": "^0.15.2", "@mastra/loggers": "^0.10.18", "@mastra/memory": "^0.15.10", + "ai": "^5.0.82", "zod": "^3.25.76" }, "devDependencies": { diff --git a/integrations/vercel-ai-sdk/typescript/package.json b/integrations/vercel-ai-sdk/typescript/package.json index 560f979ec..becb9b95c 100644 --- a/integrations/vercel-ai-sdk/typescript/package.json +++ b/integrations/vercel-ai-sdk/typescript/package.json @@ -34,7 +34,7 @@ "typescript": "^5.9.3" }, "dependencies": { - "ai": "^4.3.19", + "ai": "^5.0.0", "zod": "^3.25.76" } } diff --git a/middlewares/a2a-middleware/package.json b/middlewares/a2a-middleware/package.json index 7c8222c42..2a1ee8fcc 100644 --- a/middlewares/a2a-middleware/package.json +++ b/middlewares/a2a-middleware/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@a2a-js/sdk": "^0.2.5", - "ai": "^4.3.19", + "ai": "^5.0.0", "zod": "^3.25.76" }, "peerDependencies": { diff --git a/package.json b/package.json index afa043967..61ec3fdd0 100644 --- a/package.json +++ b/package.json @@ -28,5 +28,14 @@ "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 64c82f041..5df34a93c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,13 @@ 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: .: @@ -34,19 +41,19 @@ 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.2.0 version: 10.2.0 @@ -121,38 +128,44 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251031165308 - version: 0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251104211725 + version: 0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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: 0.0.0-feat-cpk-1-5-20251031165308 - version: 0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251104211725 + version: 0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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: 0.0.0-feat-cpk-1-5-20251031165308 - version: 0.0.0-feat-cpk-1-5-20251031165308(598077099cdaa46f4023ae6f6b0e63e2) + specifier: 0.0.0-feat-cpk-1-5-20251104211725 + version: 0.0.0-feat-cpk-1-5-20251104211725(11e8d990ef61bbafaa75597e5e9ed522) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251031165308 - version: 0.0.0-feat-cpk-1-5-20251031165308(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251104211725 + version: 0.0.0-feat-cpk-1-5-20251104211725(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251031165308 - version: 0.0.0-feat-cpk-1-5-20251031165308 + specifier: 0.0.0-feat-cpk-1-5-20251104211725 + version: 0.0.0-feat-cpk-1-5-20251104211725 + '@copilotkitnext/react': + specifier: 0.0.20 + version: 0.0.20(@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.20 + version: 0.0.20(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) + 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/dynamodb': specifier: ^0.15.9 - version: 0.15.9(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + version: 0.15.9(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/libsql': specifier: ^0.15.2 - version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/loggers': specifier: ^0.10.18 - version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/memory': specifier: ^0.15.10 - version: 0.15.10(@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) + version: 0.15.10(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(zod@3.25.76) '@mdx-js/loader': specifier: ^3.1.1 version: 3.1.1 @@ -198,6 +211,9 @@ importers: '@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 @@ -235,8 +251,8 @@ 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.104.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.2.0 version: 19.2.0 @@ -510,10 +526,10 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(1f5af21bce261bff0b535dd1d09feb22) + version: 1.10.6(2e6c3d49f6c2f234f3a715a40804546d) '@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) rxjs: specifier: 7.8.1 version: 7.8.1 @@ -529,7 +545,7 @@ importers: version: link:../../../sdks/typescript/packages/core '@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) '@types/jest': specifier: ^29.5.14 version: 29.5.14 @@ -556,19 +572,22 @@ importers: 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.2 - version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/loggers': specifier: ^0.10.18 - version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) + version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/memory': specifier: ^0.15.10 - version: 0.15.10(@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) + 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.76 version: 3.25.76 @@ -578,7 +597,7 @@ importers: 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.9.3 version: 5.9.3 @@ -673,8 +692,8 @@ importers: integrations/vercel-ai-sdk/typescript: dependencies: ai: - specifier: ^4.3.19 - 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 @@ -713,8 +732,8 @@ importers: specifier: ^0.2.5 version: 0.2.5 ai: - specifier: ^4.3.19 - 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 @@ -998,14 +1017,14 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/gateway@1.0.33': - resolution: {integrity: sha512-v9i3GPEo4t3fGcSkQkc07xM6KJN75VUv7C1Mqmmsu2xD8lQwnQfsrgAXyNuWe20yGY0eHuheSPDZhiqsGKtH1g==} + '@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@2.0.3': - resolution: {integrity: sha512-/vCoMKtod+A74/BbkWsaAflWKz1ovhX5lmJpIaXQXtd6gyexZncjotBTbFM8rVJT9LKJ/Kx7iVVo3vh+KT+IJg==} + '@ai-sdk/gateway@1.0.33': + resolution: {integrity: sha512-v9i3GPEo4t3fGcSkQkc07xM6KJN75VUv7C1Mqmmsu2xD8lQwnQfsrgAXyNuWe20yGY0eHuheSPDZhiqsGKtH1g==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -1072,16 +1091,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'} @@ -1543,8 +1552,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251031165308': - resolution: {integrity: sha512-Ihy5GDUzuqHl6UCYNFquW3lVQmMfz2TyzBwcz729hpAffvC3pLOqSxu/D/uYS9eEqDCQ4EaRfM2CWgDXtiGWpw==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251104211725': + resolution: {integrity: sha512-2DJICzMws6CfBfskspQNC9UhrgSJTbqeW6Q1j0rUiY1NwaY1tL/Cb4r1nOEOCUwYibz7UVt8cUKMLjTJQ12WsA==} peerDependencies: '@copilotkitnext/core': 0.0.20 '@copilotkitnext/react': 0.0.20 @@ -1552,19 +1561,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251031165308': - resolution: {integrity: sha512-ANxaFzhT4GAAVV7x/SStdFMmd+cFPT+t19nMkAoSVuEQ8hOLgRSSXQejIaRpE7gFgagcCyq4LKOMyr3IGg9NAA==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251104211725': + resolution: {integrity: sha512-Br5DDwEZShoU3zFq+NmiQIRZt0s8Pm0P8g8gkiINhq+BQmeOyjtxz6T5a3G3+LWlRp1K9KVec/THLQFgq7gx8A==} peerDependencies: '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251031165308': - resolution: {integrity: sha512-5o+e2c4YLPcUPUjxx4iNL6HgiuRKKeNFVpgE7cbKP8aC7TWXU+s8q9ife1cJkJZmcdu7OWffEkWy3jDVa1pwYA==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251104211725': + resolution: {integrity: sha512-8yP7OL929NrCCfvc2Bt+D5JDE1xeWK/7zTE+PMh5cSSCbelrnnm0yquhWgBGVhccaKmbEdX427cR07qqoxDOtw==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251031165308': - resolution: {integrity: sha512-AcTxYB+dOVS6WgG5DgIsRL8Iww5cZDVZqW22p5binqzjsRWjMwfnpKHWWR31BwW5HHU89IwOIolvfVV/unVRZQ==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251104211725': + resolution: {integrity: sha512-sZ37dY3Q6KpyVbI47XghG43RS6WPNLdBaiRIMdL3cFAzIHf3B7UKl1fKicr0+QoX+2/LU+IJt1PkE0hGeAk4CQ==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1581,43 +1590,39 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251031165308': - resolution: {integrity: sha512-puLX3XikWpgKI1ZWr2xYsdZNLqOuXHoeR+W4wZMNOHxWu7ezE+jQsX9H7rN1BWA7VSr8Qtvihk+PiYmqZBafkw==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251104211725': + resolution: {integrity: sha512-iAiDV3SFRkGwIfCJAqRN0HkMQdQ+hBhHfK97k7dv8fzINGj5PXV9HyequubwT39HW4KzIHdTb578YpYFa2uLCQ==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} - '@copilotkitnext/agent@0.0.17': - resolution: {integrity: sha512-PH7nAP0NLt6oF13Pzsi9PUC759q4f27nslFPGRne0rPmCO1zOjRZ/0IVxR3QFjfEgjewctuvm2y4ME7ClguHVg==} + '@copilotkitnext/agent@0.0.20': + resolution: {integrity: sha512-OUMrhmak0mwcrk3+msBkL1xQ3U3eL4/y+DTQ2Y0EGTok67dOeaigmZJPvCysGjsXMJRQuJ54c3mNw3MmMZ4a3w==} engines: {node: '>=18'} - '@copilotkitnext/core@0.0.16': - resolution: {integrity: sha512-eb6jCtLZTNnh3E8D7fKqU2iazDdJAO1ktcjIZluBhp65zb0OMEFhVo5ojIL9OHhQAnIOjJaC8eprqj9Qqa8hOA==} + '@copilotkitnext/core@0.0.20': + resolution: {integrity: sha512-rtTNP27ellPQouLF7f5nH7JgUJXe70gVncHcBEfXuN6kNqG/36pHQHbkJXO2o2EfHyG9vfWTT8sOMy97NfY+Pw==} engines: {node: '>=18'} - '@copilotkitnext/react@0.0.16': - resolution: {integrity: sha512-AiD27umuMT9u/2rIWH5PM8J3I4zu3ZvN80Vz9lsQISbEWFzy37mzvOERjtcJG9H2hizgAu3QJdmHWpgkTUpw1A==} + '@copilotkitnext/react@0.0.20': + resolution: {integrity: sha512-ZtSD0zDlh/bGGe8ymPFAYiaFMobC4ffPpCvsLoQUnlg/qeOCMtwokCeE8St1AwiLMm1bt1SnKAesBQN/xAFxFQ==} engines: {node: '>=18'} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@copilotkitnext/runtime@0.0.17': - resolution: {integrity: sha512-1pqU+ZW1A898CUIx7+0hCQvuKEXUG4kuUGnN2wIvVTu2shAKOz3GwwNOZM3DLiC8k1ou3TPyjheNYDAGhmnQuA==} + '@copilotkitnext/runtime@0.0.20': + resolution: {integrity: sha512-s5l8dr0ID5j2EU1EyLa3MQLwFPzTcMYe1AdAFA4m2B8eu1X0WQWSkVY7pIs0D3PJysQ7RvPvcrmn5V3h5ACEcg==} engines: {node: '>=18'} peerDependencies: openai: ^5.9.0 - '@copilotkitnext/shared@0.0.16': - resolution: {integrity: sha512-6Nmwmbsne0aNmDsBV2zFT3hKL+t3Np3surOC6R+qK9onPxnR/aQCZfWNTYcGhrJwctpzyP03V8BP37GNdnak3w==} + '@copilotkitnext/shared@0.0.20': + resolution: {integrity: sha512-YNLIrEPq4m6fA8afCE0tbKorNNM8iCjy+j2PKVSNDFjqUKhuReqmgck1vQWTPISz5iXGwbb/OW9WHU4z8fTqfg==} engines: {node: '>=18'} - '@copilotkitnext/shared@0.0.17': - resolution: {integrity: sha512-6uAquOvcNvxJhdu+j6PbiaY4yUnYJ9DzSS0Xr+ISjsSZU14UFo2oynlAim3r9UKxX/bcAI5/Jk52aDkClEtLnQ==} - engines: {node: '>=18'} - - '@copilotkitnext/web-inspector@0.0.16': - resolution: {integrity: sha512-YGioU631EyG5h/7f8ovgUm4JvgbbaAym1lNpQMjVhcUQj1ofZ8v0N59E6mi17oEh6AxHJjkQUUm0IZEoGr27Bg==} + '@copilotkitnext/web-inspector@0.0.20': + resolution: {integrity: sha512-vsVrxG4+HvnpHFzMko1Deqz83AepfY2civUXEo88yUykPxElZOGmGMztts4diwyTRfTz57JtFCTbAFQwCzvQuA==} engines: {node: '>=18'} '@emnapi/core@1.6.0': @@ -2903,19 +2908,19 @@ packages: '@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: ^4.0.0 || ^5.0.0 + ai: 5.0.59 zod: ^3.25.0 || ^4.0.0 '@mastra/server@0.20.2': @@ -3052,7 +3057,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': @@ -3806,6 +3811,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: @@ -4910,9 +4924,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==} @@ -5334,15 +5345,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==} @@ -5350,12 +5357,6 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - ai@5.0.82: - resolution: {integrity: sha512-wmZZfsU40qB77umrcj3YzMSk6cUP5gxLXZDPfiSQLBLegTVXPUdSJC603tR7JB5JkhBDzN5VLaliuRKQGKpUXg==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -5475,6 +5476,9 @@ packages: 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==} engines: {node: '>= 0.4'} @@ -5636,10 +5640,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'} @@ -6070,8 +6070,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==} @@ -6197,9 +6197,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} @@ -7623,11 +7620,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==} @@ -9635,11 +9627,6 @@ 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.3.0: resolution: {integrity: sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==} @@ -9675,16 +9662,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'} @@ -10382,12 +10369,12 @@ snapshots: '@ag-ui/core': 0.0.40-alpha.6 '@ag-ui/proto': 0.0.40-alpha.6 - '@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@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.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@4.104.0(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@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: @@ -10421,17 +10408,16 @@ snapshots: '@ai-sdk/provider-utils': 3.0.14(zod@3.25.76) zod: 3.25.76 - '@ai-sdk/gateway@1.0.33(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) - '@vercel/oidc': 3.0.3 zod: 3.25.76 - '@ai-sdk/gateway@2.0.3(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.14(zod@3.25.76) + '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76) '@vercel/oidc': 3.0.3 zod: 3.25.76 @@ -10500,16 +10486,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 @@ -10529,7 +10505,7 @@ snapshots: '@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': {} @@ -11406,14 +11382,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) @@ -11454,12 +11430,12 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-core@0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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': 0.0.0-feat-cpk-1-5-20251031165308(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 - '@copilotkitnext/core': 0.0.16 - '@copilotkitnext/react': 0.0.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) + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251104211725(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 + '@copilotkitnext/core': 0.0.20 + '@copilotkitnext/react': 0.0.20(@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) @@ -11472,12 +11448,12 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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@0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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': 0.0.0-feat-cpk-1-5-20251031165308(@copilotkitnext/core@0.0.16)(@copilotkitnext/react@0.0.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))(@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-20251031165308(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 - '@copilotkitnext/core': 0.0.16 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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-20251104211725(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 + '@copilotkitnext/core': 0.0.20 '@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) @@ -11494,9 +11470,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251031165308(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251104211725(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11505,7 +11481,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251031165308(598077099cdaa46f4023ae6f6b0e63e2)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251104211725(11e8d990ef61bbafaa75597e5e9ed522)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11513,16 +11489,16 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251031165308 - '@copilotkitnext/agent': 0.0.17 - '@copilotkitnext/runtime': 0.0.17(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 + '@copilotkitnext/agent': 0.0.20 + '@copilotkitnext/runtime': 0.0.20(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.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@4.104.0(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(0a641055e4160bf052669db489f82b00) - '@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@4.104.0(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@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.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@4.104.0(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@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 @@ -11531,8 +11507,8 @@ snapshots: 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.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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(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.14.0 pino-pretty: 11.3.0 @@ -11689,22 +11665,22 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(1f5af21bce261bff0b535dd1d09feb22)': + '@copilotkit/runtime@1.10.6(2e6c3d49f6c2f234f3a715a40804546d)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core '@ag-ui/encoder': 0.0.40-alpha.6 - '@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@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.6 '@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.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@4.104.0(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(0a641055e4160bf052669db489f82b00) - '@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@4.104.0(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@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.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@4.104.0(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@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 @@ -11713,8 +11689,8 @@ snapshots: 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.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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(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.14.0 pino-pretty: 11.3.0 @@ -11871,7 +11847,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251031165308': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251104211725': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -11895,37 +11871,37 @@ snapshots: transitivePeerDependencies: - encoding - '@copilotkitnext/agent@0.0.17': + '@copilotkitnext/agent@0.0.20': dependencies: '@ag-ui/client': 0.0.40-alpha.6 '@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.82(zod@3.25.76) + ai: 5.0.59(zod@3.25.76) rxjs: 7.8.1 zod: 3.25.76 transitivePeerDependencies: - supports-color - '@copilotkitnext/core@0.0.16': + '@copilotkitnext/core@0.0.20': dependencies: '@ag-ui/client': 0.0.40-alpha.6 - '@copilotkitnext/shared': 0.0.16 + '@copilotkitnext/shared': 0.0.20 rxjs: 7.8.1 zod: 3.25.76 zod-to-json-schema: 3.24.6(zod@3.25.76) - '@copilotkitnext/react@0.0.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)': + '@copilotkitnext/react@0.0.20(@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.6 '@ag-ui/core': 0.0.40-alpha.6 - '@copilotkitnext/core': 0.0.16 - '@copilotkitnext/shared': 0.0.16 - '@copilotkitnext/web-inspector': 0.0.16 + '@copilotkitnext/core': 0.0.20 + '@copilotkitnext/shared': 0.0.20 + '@copilotkitnext/web-inspector': 0.0.20 '@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 @@ -11944,30 +11920,26 @@ snapshots: - '@types/react-dom' - supports-color - '@copilotkitnext/runtime@0.0.17(openai@4.104.0(ws@8.18.3)(zod@3.25.76))': + '@copilotkitnext/runtime@0.0.20(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': dependencies: '@ag-ui/client': 0.0.40-alpha.6 '@ag-ui/core': 0.0.40-alpha.6 '@ag-ui/encoder': 0.0.40-alpha.6 - '@copilotkitnext/shared': 0.0.17 + '@copilotkitnext/shared': 0.0.20 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 - '@copilotkitnext/shared@0.0.16': - dependencies: - partial-json: 0.1.7 - uuid: 11.1.0 - - '@copilotkitnext/shared@0.0.17': + '@copilotkitnext/shared@0.0.20': dependencies: + '@ag-ui/client': 0.0.40-alpha.6 partial-json: 0.1.7 uuid: 11.1.0 - '@copilotkitnext/web-inspector@0.0.16': + '@copilotkitnext/web-inspector@0.0.20': dependencies: '@ag-ui/client': 0.0.40-alpha.6 - '@copilotkitnext/core': 0.0.16 + '@copilotkitnext/core': 0.0.20 lit: 3.3.1 lucide: 0.525.0 @@ -12690,31 +12662,31 @@ snapshots: '@jsdevtools/ono@7.1.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@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.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@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)) transitivePeerDependencies: - aws-crt - '@langchain/community@0.3.57(0a641055e4160bf052669db489f82b00)': + '@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.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@4.104.0(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@4.104.0(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@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.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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(handlebars@4.7.8)(openai@4.104.0(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@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: @@ -12757,26 +12729,6 @@ snapshots: - handlebars - peggy - '@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@4.104.0(ws@8.18.3)(zod@3.25.76))': - dependencies: - '@cfworker/json-schema': 4.1.1 - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.21 - langsmith: 0.3.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@4.104.0(ws@8.18.3)(zod@3.25.76)) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - '@langchain/core@0.3.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 @@ -12797,44 +12749,33 @@ snapshots: - '@opentelemetry/sdk-trace-base' - openai - '@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@4.104.0(ws@8.18.3)(zod@3.25.76)))(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: - '@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@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.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@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.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@4.104.0(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@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.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@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': - dependencies: - '@types/json-schema': 7.0.15 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.1 - optionalDependencies: - '@langchain/core': 0.3.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@4.104.0(ws@8.18.3)(zod@3.25.76)) - 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@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.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.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@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.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: @@ -12847,9 +12788,9 @@ snapshots: react: 19.2.0 react-dom: 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@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': + '@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: - '@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@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 @@ -12858,14 +12799,14 @@ snapshots: - encoding - ws - '@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@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.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@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.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@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.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@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: @@ -12955,12 +12896,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 @@ -12977,16 +12918,15 @@ 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 @@ -13003,17 +12943,16 @@ 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.2.0(@opentelemetry/api@1.9.0)) '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) @@ -13028,7 +12967,7 @@ snapshots: '@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.10.3 @@ -13054,12 +12993,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)' @@ -13073,8 +13011,8 @@ 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.2.0(@opentelemetry/api@1.9.0)) '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) @@ -13089,7 +13027,7 @@ snapshots: '@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 @@ -13118,18 +13056,17 @@ 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.5 '@babel/helper-module-imports': 7.27.1 '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) - '@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) + '@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) @@ -13160,47 +13097,47 @@ snapshots: - supports-color - typescript - '@mastra/dynamodb@0.15.9(@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.20.2(openapi-types@12.1.3)(zod@3.25.76))': dependencies: '@aws-sdk/client-dynamodb': 3.919.0 '@aws-sdk/lib-dynamodb': 3.919.0(@aws-sdk/client-dynamodb@3.919.0) - '@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) 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)(react@19.2.0)(zod@3.25.76) + '@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)(react@19.2.0)(zod@3.25.76))': + '@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.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) transitivePeerDependencies: - bufferutil - utf-8-validate - '@mastra/loggers@0.10.18(@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) + '@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.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)(react@19.2.0)(zod@3.25.76) + '@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)(react@19.2.0)(zod@3.25.76))(@types/json-schema@7.0.15)(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)': 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) + '@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 @@ -13213,11 +13150,11 @@ snapshots: - '@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 @@ -13230,14 +13167,13 @@ snapshots: zod-to-json-schema: 3.24.6(zod@3.25.76) transitivePeerDependencies: - pg-native - - react - '@mastra/memory@0.15.10(@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.6(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 @@ -13251,37 +13187,36 @@ snapshots: 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/schema-compat@0.10.5(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.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.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/schema-compat@0.11.6(ai@4.3.19(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: - 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.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/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)(react@19.2.0)(zod@3.25.76) + '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76) zod: 3.25.76 '@mdx-js/loader@3.1.1': @@ -13421,9 +13356,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': @@ -14370,6 +14305,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 @@ -15550,8 +15492,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': @@ -15995,17 +15935,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: @@ -16015,14 +15951,6 @@ snapshots: '@opentelemetry/api': 1.9.0 zod: 3.25.76 - ai@5.0.82(zod@3.25.76): - dependencies: - '@ai-sdk/gateway': 2.0.3(zod@3.25.76) - '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.14(zod@3.25.76) - '@opentelemetry/api': 1.9.0 - zod: 3.25.76 - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -16156,7 +16084,15 @@ snapshots: axe-core@4.11.0: {} - axios@1.13.1(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 @@ -16367,8 +16303,6 @@ snapshots: chalk@5.2.0: {} - chalk@5.6.2: {} - char-regex@1.0.2: {} character-entities-html4@2.1.0: {} @@ -16800,7 +16734,7 @@ snapshots: dateformat@4.6.3: {} - dayjs@1.11.18: {} + dayjs@1.11.19: {} debug@2.6.9: dependencies: @@ -16883,8 +16817,6 @@ snapshots: dependencies: dequal: 2.0.3 - diff-match-patch@1.0.5: {} - diff-sequences@29.6.3: {} diff@5.2.0: {} @@ -18162,7 +18094,7 @@ snapshots: '@types/debug': 4.1.12 '@types/node': 18.19.130 '@types/tough-cookie': 4.0.5 - axios: 1.13.1(debug@4.4.3) + axios: 1.13.2(debug@4.4.3) camelcase: 6.3.0 debug: 4.4.3 dotenv: 16.6.1 @@ -18172,7 +18104,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.13.1(debug@4.4.3)) + retry-axios: 2.6.0(axios@1.13.2) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -18858,12 +18790,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 @@ -18932,23 +18858,23 @@ snapshots: kolorist@1.8.0: {} - 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@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@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.2.0(@opentelemetry/api@1.9.0))(axios@1.13.1)(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.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@4.104.0(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@4.104.0(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@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.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@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.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@4.104.0(ws@8.18.3)(zod@3.25.76))) - axios: 1.13.1(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' @@ -18966,21 +18892,6 @@ snapshots: vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.0.8 - 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@4.104.0(ws@8.18.3)(zod@3.25.76)): - dependencies: - '@types/uuid': 10.0.0 - chalk: 4.1.2 - console-table-printer: 2.15.0 - 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.2.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 @@ -19220,14 +19131,14 @@ 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.18(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76)) - '@mastra/mcp': 0.13.5(@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/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) @@ -19502,7 +19413,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 @@ -20193,7 +20104,6 @@ snapshots: optionalDependencies: ws: 8.18.3 zod: 3.25.76 - optional: true openapi-types@12.1.3: {} @@ -20502,7 +20412,7 @@ snapshots: posthog-node@4.18.0: dependencies: - axios: 1.13.1(debug@4.4.3) + axios: 1.13.1 transitivePeerDependencies: - debug @@ -21040,9 +20950,9 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.13.1(debug@4.4.3)): + retry-axios@2.6.0(axios@1.13.2): dependencies: - axios: 1.13.1(debug@4.4.3) + axios: 1.13.2(debug@4.4.3) retry@0.13.1: {} @@ -21577,12 +21487,6 @@ 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.3.0: {} tailwind-merge@3.3.1: {} @@ -21620,12 +21524,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) From a78a7ee33d0deb910d26fc34bfa2475d0bb0a46a Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Tue, 4 Nov 2025 15:04:21 -0800 Subject: [PATCH 099/113] feat: Update to AI v5 in vercel-ai-sdk integration --- .../vercel-ai-sdk/typescript/src/index.ts | 266 +++++++++++------- 1 file changed, 167 insertions(+), 99 deletions(-) diff --git a/integrations/vercel-ai-sdk/typescript/src/index.ts b/integrations/vercel-ai-sdk/typescript/src/index.ts index e2d3436c4..2e1482584 100644 --- a/integrations/vercel-ai-sdk/typescript/src/index.ts +++ b/integrations/vercel-ai-sdk/typescript/src/index.ts @@ -18,13 +18,14 @@ import { } from "@ag-ui/client"; import { Observable } from "rxjs"; import { - CoreMessage, - LanguageModelV1, - processDataStream, + ModelMessage, + LanguageModel, streamText, tool as createVercelAISDKTool, + Tool, ToolChoice, ToolSet, + stepCountIs, } from "ai"; import { randomUUID } from "@ag-ui/client"; import { z } from "zod"; @@ -39,13 +40,13 @@ 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({ model, maxSteps, toolChoice, ...rest }: VercelAISDKAgentConfig) { @@ -65,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(); @@ -82,93 +86,130 @@ 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(); + + const finalizeRun = () => { + if (hasCompleted) { + return; + } + hasCompleted = true; + + const snapshotEvent: MessagesSnapshotEvent = { + type: EventType.MESSAGES_SNAPSHOT, + messages: finalMessages, + }; + subscriber.next(snapshotEvent); - // Emit run finished event - subscriber.next({ - type: EventType.RUN_FINISHED, - threadId: input.threadId, - runId: input.runId, - } as RunFinishedEvent); + subscriber.next({ + type: EventType.RUN_FINISHED, + threadId: input.threadId, + runId: input.runId, + } as RunFinishedEvent); - // 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); + subscriber.complete(); + }; - const startEvent: ToolCallStartEvent = { - type: EventType.TOOL_CALL_START, - parentMessageId: messageId, - toolCallId: streamPart.toolCallId, - toolCallName: streamPart.toolName, - }; - subscriber.next(startEvent); + 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 argsEvent: ToolCallArgsEvent = { - type: EventType.TOOL_CALL_ARGS, - toolCallId: streamPart.toolCallId, - delta: JSON.stringify(streamPart.args), - }; - subscriber.next(argsEvent); + const startEvent: ToolCallStartEvent = { + type: EventType.TOOL_CALL_START, + parentMessageId: messageId, + toolCallId: part.toolCallId, + toolCallName: part.toolName, + }; + subscriber.next(startEvent); - 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 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") { @@ -178,7 +219,7 @@ export function convertMessagesToVercelAISDKMessages(messages: Message[]): CoreM type: "tool-call", toolCallId: toolCall.id, toolName: toolCall.function.name, - args: JSON.parse(toolCall.function.arguments), + input: JSON.parse(toolCall.function.arguments), }); } result.push({ @@ -209,7 +250,7 @@ export function convertMessagesToVercelAISDKMessages(messages: Message[]): CoreM type: "tool-result", toolCallId: message.toolCallId, toolName: toolName, - result: message.content, + output: parseToolMessageContent(message.content), }, ], }); @@ -219,9 +260,9 @@ export function convertMessagesToVercelAISDKMessages(messages: Message[]): CoreM return result; } -export function convertJsonSchemaToZodSchema(jsonSchema: any, required: boolean): z.ZodSchema { +export function convertJsonSchemaToZodSchema(jsonSchema: any, required: boolean): z.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); @@ -252,15 +293,42 @@ export function convertJsonSchemaToZodSchema(jsonSchema: any, required: boolean) 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 }; + } } From f28efcda5cd03d099d6174f124ae7c1f89549318 Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Tue, 4 Nov 2025 15:13:14 -0800 Subject: [PATCH 100/113] feat: Update to latest version of Mastra --- integrations/mastra/typescript/package.json | 4 +- integrations/mastra/typescript/src/mastra.ts | 256 ++++++++++++++----- integrations/mastra/typescript/src/utils.ts | 89 +++++-- pnpm-lock.yaml | 193 +++++++++++++- 4 files changed, 456 insertions(+), 86 deletions(-) diff --git a/integrations/mastra/typescript/package.json b/integrations/mastra/typescript/package.json index 93bb7641b..91f446416 100644 --- a/integrations/mastra/typescript/package.json +++ b/integrations/mastra/typescript/package.json @@ -65,13 +65,13 @@ "@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/client": "workspace:*", "@ag-ui/core": "workspace:*", - "@mastra/core": "^0.20.2", + "@mastra/core": "^0.23.2", "@types/jest": "^29.5.14", "@types/node": "^20.19.24", "jest": "^29.7.0", diff --git a/integrations/mastra/typescript/src/mastra.ts b/integrations/mastra/typescript/src/mastra.ts index 63aab3f86..570872108 100644 --- a/integrations/mastra/typescript/src/mastra.ts +++ b/integrations/mastra/typescript/src/mastra.ts @@ -40,8 +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; } @@ -145,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", }; @@ -268,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?.(); @@ -323,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"); } @@ -379,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 665e846fa..8014531b6 100644 --- a/integrations/mastra/typescript/src/utils.ts +++ b/integrations/mastra/typescript/src/utils.ts @@ -7,55 +7,59 @@ import { RuntimeContext } from "@mastra/core/runtime-context"; import { MastraAgent } from "./mastra"; export function convertAGUIMessagesToMastra(messages: Message[]): CoreMessage[] { - const result: CoreMessage[] = []; + const result: Array> = []; for (const message of messages) { if (message.role === "assistant") { - const parts: any[] = message.content ? [{ type: "text", text: message.content }] : []; + 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") { + continue; + } + + if (message.role === "user") { result.push({ role: "user", - content: message.content || "", + 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 { @@ -158,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/pnpm-lock.yaml b/pnpm-lock.yaml index 5df34a93c..433e1ee6f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -544,8 +544,8 @@ importers: specifier: workspace:* version: link:../../../sdks/typescript/packages/core '@mastra/core': - specifier: ^0.20.2 - version: 0.20.2(openapi-types@12.1.3)(zod@3.25.76) + specifier: ^0.23.2 + version: 0.23.3(openapi-types@12.1.3)(zod@3.25.76) '@types/jest': specifier: ^29.5.14 version: 29.5.14 @@ -1011,6 +1011,12 @@ 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'} @@ -1029,12 +1035,24 @@ packages: 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'} @@ -1047,6 +1065,12 @@ packages: 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'} @@ -1059,6 +1083,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@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'} @@ -1077,6 +1107,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@3.0.12': + resolution: {integrity: sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@3.0.14': resolution: {integrity: sha512-CYRU6L7IlR7KslSBVxvlqlybQvXJln/PI57O8swhOaDIURZbjRP2AY3igKgUsrmWqqnFFUHP+AwTN8xqJAknnA==} engines: {node: '>=18'} @@ -1103,6 +1139,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'} @@ -2857,6 +2899,12 @@ 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: @@ -5357,6 +5405,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==} @@ -7298,6 +7352,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'} @@ -8616,6 +8674,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'} @@ -10402,6 +10464,12 @@ 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 @@ -10421,12 +10489,25 @@ snapshots: '@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)': dependencies: '@ai-sdk/provider': 2.0.0 '@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 @@ -10439,6 +10520,12 @@ snapshots: '@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 @@ -10451,6 +10538,12 @@ snapshots: '@ai-sdk/provider-utils': 3.0.10(zod@3.25.76) 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 @@ -10471,6 +10564,13 @@ snapshots: eventsource-parser: 3.0.6 zod: 3.25.76 + '@ai-sdk/provider-utils@3.0.12(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@standard-schema/spec': 1.0.0 + eventsource-parser: 3.0.6 + zod: 3.25.76 + '@ai-sdk/provider-utils@3.0.14(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 @@ -10500,6 +10600,13 @@ 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': @@ -13060,6 +13167,70 @@ snapshots: - 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 + 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/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.5 @@ -15951,6 +16122,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 @@ -18104,7 +18283,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.13.2) + retry-axios: 2.6.0(axios@1.13.2(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -18292,6 +18471,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 @@ -20166,6 +20347,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 @@ -20950,7 +21135,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.13.2): + retry-axios@2.6.0(axios@1.13.2(debug@4.4.3)): dependencies: axios: 1.13.2(debug@4.4.3) From 4795943ce33322bb2ca96aaa47339e23f6355c38 Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Tue, 4 Nov 2025 15:29:29 -0800 Subject: [PATCH 101/113] chore: Update Mastra integration in the Dojo --- apps/dojo/package.json | 6 +- apps/dojo/src/agents.ts | 62 ++++++------ apps/dojo/src/files.json | 21 ++++ apps/dojo/src/mastra/index.ts | 20 ++-- integrations/mastra/typescript/package.json | 4 +- pnpm-lock.yaml | 101 ++++++++++++++++---- 6 files changed, 153 insertions(+), 61 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index cd064c2cd..c31b1913d 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -33,10 +33,10 @@ "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251104211725", "@copilotkitnext/runtime": "0.0.20", "@copilotkitnext/react": "0.0.20", - "@mastra/client-js": "^0.15.2", - "@mastra/core": "^0.20.2", + "@mastra/client-js": "^0.16.8", + "@mastra/core": "^0.23.3", "@mastra/dynamodb": "^0.15.9", - "@mastra/libsql": "^0.15.2", + "@mastra/libsql": "^0.16.1 ", "@mastra/loggers": "^0.10.18", "@mastra/memory": "^0.15.10", "@mdx-js/loader": "^3.1.1", diff --git a/apps/dojo/src/agents.ts b/apps/dojo/src/agents.ts index 176807561..c36a6bca5 100644 --- a/apps/dojo/src/agents.ts +++ b/apps/dojo/src/agents.ts @@ -4,16 +4,16 @@ import { AgentIntegrationConfig } from "./types/integration"; import { MiddlewareStarterAgent } from "@ag-ui/middleware-starter"; import { ServerStarterAgent } from "@ag-ui/server-starter"; import { ServerStarterAllFeaturesAgent } from "@ag-ui/server-starter-all-features"; -// import { MastraClient } from "@mastra/client-js"; -// import { MastraAgent } from "@ag-ui/mastra"; -// import { VercelAISDKAgent } from "@ag-ui/vercel-ai-sdk"; -// import { openai } from "@ai-sdk/openai"; +import { MastraClient } from "@mastra/client-js"; +import { MastraAgent } from "@ag-ui/mastra"; +import { VercelAISDKAgent } from "@ag-ui/vercel-ai-sdk"; +import { openai } from "@ai-sdk/openai"; import { LangGraphAgent, LangGraphHttpAgent } from "@ag-ui/langgraph"; import { AgnoAgent } from "@ag-ui/agno"; import { LlamaIndexAgent } from "@ag-ui/llamaindex"; import { CrewAIAgent } from "@ag-ui/crewai"; import getEnvVars from "./env"; -// import { mastra } from "./mastra"; +import { mastra } from "./mastra"; import { PydanticAIAgent } from "@ag-ui/pydantic-ai"; import { ADKAgent } from "@ag-ui/adk"; import { SpringAiAgent } from "@ag-ui/spring-ai"; @@ -116,34 +116,32 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ }; }, }, - // Disable until we can support Vercel AI SDK v5 - // { - // id: "mastra", - // agents: async () => { - // const mastraClient = new MastraClient({ - // baseUrl: envVars.mastraUrl, - // }); + { + id: "mastra", + agents: async () => { + const mastraClient = new MastraClient({ + baseUrl: envVars.mastraUrl, + }); - // return MastraAgent.getRemoteAgents({ - // mastraClient, - // }); - // }, - // }, - // { - // id: "mastra-agent-local", - // agents: async () => { - // 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") }), - // }; - // }, - // }, + return MastraAgent.getRemoteAgents({ + mastraClient, + }); + }, + }, + { + id: "mastra-agent-local", + agents: async () => { + return MastraAgent.getLocalAgents({ mastra }); + }, + }, + { + id: "vercel-ai-sdk", + agents: async () => { + return { + agentic_chat: new VercelAISDKAgent({ model: openai("gpt-4o") }), + }; + }, + }, { id: "langgraph", agents: async () => { 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
\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/integrations/mastra/typescript/package.json b/integrations/mastra/typescript/package.json index 91f446416..8e0125d45 100644 --- a/integrations/mastra/typescript/package.json +++ b/integrations/mastra/typescript/package.json @@ -58,7 +58,7 @@ }, "dependencies": { "@ai-sdk/ui-utils": "^1.2.11", - "@mastra/client-js": "^0.15.2", + "@mastra/client-js": "^0.16.8", "rxjs": "7.8.1" }, "peerDependencies": { @@ -71,7 +71,7 @@ "devDependencies": { "@ag-ui/client": "workspace:*", "@ag-ui/core": "workspace:*", - "@mastra/core": "^0.23.2", + "@mastra/core": "^0.23.3", "@types/jest": "^29.5.14", "@types/node": "^20.19.24", "jest": "^29.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 433e1ee6f..80af3a5eb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,23 +149,23 @@ importers: specifier: 0.0.20 version: 0.0.20(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)(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)(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.9 - version: 0.15.9(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) + version: 0.15.9(@mastra/core@0.23.3(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/libsql': - specifier: ^0.15.2 - version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(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.18 - version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) + version: 0.10.18(@mastra/core@0.23.3(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/memory': 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) + 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.1 version: 3.1.1 @@ -528,8 +528,8 @@ importers: specifier: ^1.10.5 version: 1.10.6(2e6c3d49f6c2f234f3a715a40804546d) '@mastra/client-js': - specifier: ^0.15.2 - version: 0.15.2(openapi-types@12.1.3)(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 @@ -544,7 +544,7 @@ importers: specifier: workspace:* version: link:../../../sdks/typescript/packages/core '@mastra/core': - specifier: ^0.23.2 + specifier: ^0.23.3 version: 0.23.3(openapi-types@12.1.3)(zod@3.25.76) '@types/jest': specifier: ^29.5.14 @@ -2887,6 +2887,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'} @@ -2926,6 +2931,11 @@ packages: 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.21.2-0 <0.24.0-0' + '@mastra/loggers@0.10.18': resolution: {integrity: sha512-Ti711VpYqAwUbxEkYnJ11KeERROI7c6Nf9nNh/t85rCbLspLB/wpwX/FYH9/JUqC0fe5U2kKfergoTs9SKq9Qw==} peerDependencies: @@ -13054,6 +13064,31 @@ snapshots: - 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 + 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.12.1(openapi-types@12.1.3)(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 @@ -13268,11 +13303,11 @@ snapshots: - supports-color - typescript - '@mastra/dynamodb@0.15.9(@mastra/core@0.20.2(openapi-types@12.1.3)(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.919.0 '@aws-sdk/lib-dynamodb': 3.919.0(@aws-sdk/client-dynamodb@3.919.0) - '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76) + '@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 @@ -13293,12 +13328,26 @@ snapshots: - bufferutil - utf-8-validate + '@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.23.3(openapi-types@12.1.3)(zod@3.25.76) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@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)(zod@3.25.76) pino: 9.14.0 pino-pretty: 13.1.2 + '@mastra/loggers@0.10.18(@mastra/core@0.23.3(openapi-types@12.1.3)(zod@3.25.76))': + dependencies: + '@mastra/core': 0.23.3(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)(zod@3.25.76))': dependencies: '@mastra/core': 0.12.1(openapi-types@12.1.3)(zod@3.25.76) @@ -13359,6 +13408,26 @@ snapshots: transitivePeerDependencies: - pg-native + '@mastra/memory@0.15.10(@mastra/core@0.23.3(openapi-types@12.1.3)(zod@3.25.76))(zod@3.25.76)': + dependencies: + '@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) @@ -18283,7 +18352,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.13.2(debug@4.4.3)) + retry-axios: 2.6.0(axios@1.13.2) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -21135,7 +21204,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.13.2(debug@4.4.3)): + retry-axios@2.6.0(axios@1.13.2): dependencies: axios: 1.13.2(debug@4.4.3) From 776462716ac607995274cdf8ebd9433d0a99f358 Mon Sep 17 00:00:00 2001 From: ran Date: Mon, 3 Nov 2025 12:33:37 +0100 Subject: [PATCH 102/113] chore: langgraph python example latest everything (cherry picked from commit 45ff2ca42ec30af00743aaebae81fb9c5a99b51a) --- .../langgraph/python/examples/pyproject.toml | 15 +- .../langgraph/python/examples/uv.lock | 874 +++++++++--------- 2 files changed, 458 insertions(+), 431 deletions(-) diff --git a/integrations/langgraph/python/examples/pyproject.toml b/integrations/langgraph/python/examples/pyproject.toml index 0e6841203..218f05e09 100644 --- a/integrations/langgraph/python/examples/pyproject.toml +++ b/integrations/langgraph/python/examples/pyproject.toml @@ -13,14 +13,13 @@ version = "0.0.1" python = ">=3.12,<3.14" uvicorn = "^0.34.0" dotenv = "^0.9.9" -langchain = ">=0.1.0" -langchain-anthropic = ">=0.3.18" -langchain-core = ">=0.1.5" -langchain-community = ">=0.0.1" -langchain-experimental = ">=0.0.11" -langchain-google-genai = ">=2.1.9" -langchain-openai = ">=0.0.1" -langgraph = "^0.6.1" +langchain = ">=1.0.3" +langchain-anthropic = ">=1.0.1" +langchain-core = ">=1.0.2" +langchain-community = ">=0.0.36" +langchain-google-genai = ">=2.1.12" +langchain-openai = ">=1.0.1" +langgraph = ">=1.0.0" ag-ui-langgraph = { path = "../" } python-dotenv = "^1.0.0" fastapi = "^0.115.12" diff --git a/integrations/langgraph/python/examples/uv.lock b/integrations/langgraph/python/examples/uv.lock index d3d4eecac..27ef7c382 100644 --- a/integrations/langgraph/python/examples/uv.lock +++ b/integrations/langgraph/python/examples/uv.lock @@ -50,7 +50,6 @@ dependencies = [ { name = "langchain-anthropic" }, { name = "langchain-community" }, { name = "langchain-core" }, - { name = "langchain-experimental" }, { name = "langchain-google-genai" }, { name = "langchain-openai" }, { name = "langgraph" }, @@ -63,14 +62,13 @@ requires-dist = [ { name = "ag-ui-langgraph", directory = "../" }, { name = "dotenv", specifier = ">=0.9.9,<0.10.0" }, { name = "fastapi", specifier = ">=0.115.12,<0.116.0" }, - { name = "langchain", specifier = ">=0.1.0" }, - { name = "langchain-anthropic", specifier = ">=0.3.18" }, - { name = "langchain-community", specifier = ">=0.0.1" }, - { name = "langchain-core", specifier = ">=0.1.5" }, - { name = "langchain-experimental", specifier = ">=0.0.11" }, - { name = "langchain-google-genai", specifier = ">=2.1.9" }, - { name = "langchain-openai", specifier = ">=0.0.1" }, - { name = "langgraph", specifier = ">=0.6.1,<0.7.0" }, + { name = "langchain", specifier = ">=1.0.3" }, + { name = "langchain-anthropic", specifier = ">=1.0.1" }, + { name = "langchain-community", specifier = ">=0.0.36" }, + { name = "langchain-core", specifier = ">=1.0.2" }, + { name = "langchain-google-genai", specifier = ">=2.1.12" }, + { name = "langchain-openai", specifier = ">=1.0.1" }, + { name = "langgraph", specifier = ">=1.0.0" }, { name = "python-dotenv", specifier = ">=1.0.0,<2.0.0" }, { name = "uvicorn", specifier = ">=0.34.0,<0.35.0" }, ] @@ -86,7 +84,7 @@ wheels = [ [[package]] name = "aiohttp" -version = "3.13.0" +version = "3.13.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohappyeyeballs" }, @@ -97,76 +95,76 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/62/f1/8515650ac3121a9e55c7b217c60e7fae3e0134b5acfe65691781b5356929/aiohttp-3.13.0.tar.gz", hash = "sha256:378dbc57dd8cf341ce243f13fa1fa5394d68e2e02c15cd5f28eae35a70ec7f67", size = 7832348 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/95/7e8bdfa6e79099a086d59d42589492f1fe9d29aae3cefb58b676015ce278/aiohttp-3.13.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1c272a9a18a5ecc48a7101882230046b83023bb2a662050ecb9bfcb28d9ab53a", size = 735585 }, - { url = "https://files.pythonhosted.org/packages/9f/20/2f1d3ee06ee94eafe516810705219bff234d09f135d6951661661d5595ae/aiohttp-3.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:97891a23d7fd4e1afe9c2f4473e04595e4acb18e4733b910b6577b74e7e21985", size = 490613 }, - { url = "https://files.pythonhosted.org/packages/74/15/ab8600ef6dc1dcd599009a81acfed2ea407037e654d32e47e344e0b08c34/aiohttp-3.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:475bd56492ce5f4cffe32b5533c6533ee0c406d1d0e6924879f83adcf51da0ae", size = 489750 }, - { url = "https://files.pythonhosted.org/packages/33/59/752640c2b86ca987fe5703a01733b00d375e6cd2392bc7574489934e64e5/aiohttp-3.13.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c32ada0abb4bc94c30be2b681c42f058ab104d048da6f0148280a51ce98add8c", size = 1736812 }, - { url = "https://files.pythonhosted.org/packages/3d/c6/dd6b86ddb852a7fdbcdc7a45b6bdc80178aef713c08279afcaee7a5a9f07/aiohttp-3.13.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4af1f8877ca46ecdd0bc0d4a6b66d4b2bddc84a79e2e8366bc0d5308e76bceb8", size = 1698535 }, - { url = "https://files.pythonhosted.org/packages/33/e2/27c92d205b9e8cee7661670e8e9f187931b71e26d42796b153d2a0ba6949/aiohttp-3.13.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e04ab827ec4f775817736b20cdc8350f40327f9b598dec4e18c9ffdcbea88a93", size = 1766573 }, - { url = "https://files.pythonhosted.org/packages/df/6a/1fc1ad71d130a30f7a207d8d958a41224c29b834463b5185efb2dbff6ad4/aiohttp-3.13.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a6d9487b9471ec36b0faedf52228cd732e89be0a2bbd649af890b5e2ce422353", size = 1865229 }, - { url = "https://files.pythonhosted.org/packages/14/51/d0c1701a79fcb0109cff5304da16226581569b89a282d8e7f1549a7e3ec0/aiohttp-3.13.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e66c57416352f36bf98f6641ddadd47c93740a22af7150d3e9a1ef6e983f9a8", size = 1750379 }, - { url = "https://files.pythonhosted.org/packages/ae/3d/2ec4b934f85856de1c0c18e90adc8902adadbfac2b3c0b831bfeb7214fc8/aiohttp-3.13.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:469167d5372f5bb3aedff4fc53035d593884fff2617a75317740e885acd48b04", size = 1560798 }, - { url = "https://files.pythonhosted.org/packages/38/56/e23d9c3e13006e599fdce3851517c70279e177871e3e567d22cf3baf5d6c/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a9f3546b503975a69b547c9fd1582cad10ede1ce6f3e313a2f547c73a3d7814f", size = 1697552 }, - { url = "https://files.pythonhosted.org/packages/56/cb/caa32c2ccaeca0a3dc39129079fd2ad02f9406c3a5f7924340435b87d4cd/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6b4174fcec98601f0cfdf308ee29a6ae53c55f14359e848dab4e94009112ee7d", size = 1718609 }, - { url = "https://files.pythonhosted.org/packages/fb/c0/5911856fef9e40fd1ccbb8c54a90116875d5753a92c1cac66ce2059b390d/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a533873a7a4ec2270fb362ee5a0d3b98752e4e1dc9042b257cd54545a96bd8ed", size = 1735887 }, - { url = "https://files.pythonhosted.org/packages/0e/48/8d6f4757a24c02f0a454c043556593a00645d10583859f7156db44d8b7d3/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ce887c5e54411d607ee0959cac15bb31d506d86a9bcaddf0b7e9d63325a7a802", size = 1553079 }, - { url = "https://files.pythonhosted.org/packages/39/fa/e82c9445e40b50e46770702b5b6ca2f767966d53e1a5eef03583ceac6df6/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d871f6a30d43e32fc9252dc7b9febe1a042b3ff3908aa83868d7cf7c9579a59b", size = 1762750 }, - { url = "https://files.pythonhosted.org/packages/3d/e6/9d30554e7f1e700bfeae4ab6b153d5dc7441606a9ec5e929288fa93a1477/aiohttp-3.13.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:222c828243b4789d79a706a876910f656fad4381661691220ba57b2ab4547865", size = 1717461 }, - { url = "https://files.pythonhosted.org/packages/1f/e5/29cca547990a59ea54f0674fc01de98519fc628cfceeab6175711750eca7/aiohttp-3.13.0-cp312-cp312-win32.whl", hash = "sha256:682d2e434ff2f1108314ff7f056ce44e457f12dbed0249b24e106e385cf154b9", size = 424633 }, - { url = "https://files.pythonhosted.org/packages/8b/68/46dd042d7bc62eab30bafdb8569f55ef125c3a88bb174270324224f8df56/aiohttp-3.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:0a2be20eb23888df130214b91c262a90e2de1553d6fb7de9e9010cec994c0ff2", size = 451401 }, - { url = "https://files.pythonhosted.org/packages/86/2c/ac53efdc9c10e41399acc2395af98f835b86d0141d5c3820857eb9f6a14a/aiohttp-3.13.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:00243e51f16f6ec0fb021659d4af92f675f3cf9f9b39efd142aa3ad641d8d1e6", size = 730090 }, - { url = "https://files.pythonhosted.org/packages/13/18/1ac95683e1c1d48ef4503965c96f5401618a04c139edae12e200392daae8/aiohttp-3.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:059978d2fddc462e9211362cbc8446747ecd930537fa559d3d25c256f032ff54", size = 488041 }, - { url = "https://files.pythonhosted.org/packages/fd/79/ef0d477c771a642d1a881b92d226314c43d3c74bc674c93e12e679397a97/aiohttp-3.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:564b36512a7da3b386143c611867e3f7cfb249300a1bf60889bd9985da67ab77", size = 486989 }, - { url = "https://files.pythonhosted.org/packages/37/b4/0e440481a0e77a551d6c5dcab5d11f1ff6b2b2ddb8dedc24f54f5caad732/aiohttp-3.13.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4aa995b9156ae499393d949a456a7ab0b994a8241a96db73a3b73c7a090eff6a", size = 1718331 }, - { url = "https://files.pythonhosted.org/packages/e6/59/76c421cc4a75bb1aceadb92f20ee6f05a990aa6960c64b59e8e0d340e3f5/aiohttp-3.13.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:55ca0e95a3905f62f00900255ed807c580775174252999286f283e646d675a49", size = 1686263 }, - { url = "https://files.pythonhosted.org/packages/ec/ac/5095f12a79c7775f402cfc3e83651b6e0a92ade10ddf7f2c78c4fed79f71/aiohttp-3.13.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:49ce7525853a981fc35d380aa2353536a01a9ec1b30979ea4e35966316cace7e", size = 1754265 }, - { url = "https://files.pythonhosted.org/packages/05/d7/a48e4989bd76cc70600c505bbdd0d90ca1ad7f9053eceeb9dbcf9345a9ec/aiohttp-3.13.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2117be9883501eaf95503bd313eb4c7a23d567edd44014ba15835a1e9ec6d852", size = 1856486 }, - { url = "https://files.pythonhosted.org/packages/1e/02/45b388b49e37933f316e1fb39c0de6fb1d77384b0c8f4cf6af5f2cbe3ea6/aiohttp-3.13.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d169c47e40c911f728439da853b6fd06da83761012e6e76f11cb62cddae7282b", size = 1737545 }, - { url = "https://files.pythonhosted.org/packages/6c/a7/4fde058f1605c34a219348a83a99f14724cc64e68a42480fc03cf40f9ea3/aiohttp-3.13.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:703ad3f742fc81e543638a7bebddd35acadaa0004a5e00535e795f4b6f2c25ca", size = 1552958 }, - { url = "https://files.pythonhosted.org/packages/d1/12/0bac4d29231981e3aa234e88d1931f6ba38135ff4c2cf3afbb7895527630/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5bf635c3476f4119b940cc8d94ad454cbe0c377e61b4527f0192aabeac1e9370", size = 1681166 }, - { url = "https://files.pythonhosted.org/packages/71/95/b829eb5f8ac1ca1d8085bb8df614c8acf3ff32e23ad5ad1173c7c9761daa/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:cfe6285ef99e7ee51cef20609be2bc1dd0e8446462b71c9db8bb296ba632810a", size = 1710516 }, - { url = "https://files.pythonhosted.org/packages/47/6d/15ccf4ef3c254d899f62580e0c7fc717014f4d14a3ac31771e505d2c736c/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:34d8af6391c5f2e69749d7f037b614b8c5c42093c251f336bdbfa4b03c57d6c4", size = 1731354 }, - { url = "https://files.pythonhosted.org/packages/46/6a/8acf6c57e03b6fdcc8b4c06392e66abaff3213ea275e41db3edb20738d91/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:12f5d820fadc5848d4559ea838aef733cf37ed2a1103bba148ac2f5547c14c29", size = 1548040 }, - { url = "https://files.pythonhosted.org/packages/75/7d/fbfd59ab2a83fe2578ce79ac3db49727b81e9f4c3376217ad09c03c6d279/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:0f1338b61ea66f4757a0544ed8a02ccbf60e38d9cfb3225888888dd4475ebb96", size = 1756031 }, - { url = "https://files.pythonhosted.org/packages/99/e7/cc9f0fdf06cab3ca61e6b62bff9a4b978b8ca736e9d76ddf54365673ab19/aiohttp-3.13.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:582770f82513419512da096e8df21ca44f86a2e56e25dc93c5ab4df0fe065bf0", size = 1714933 }, - { url = "https://files.pythonhosted.org/packages/db/43/7abbe1de94748a58a71881163ee280fd3217db36e8344d109f63638fe16a/aiohttp-3.13.0-cp313-cp313-win32.whl", hash = "sha256:3194b8cab8dbc882f37c13ef1262e0a3d62064fa97533d3aa124771f7bf1ecee", size = 423799 }, - { url = "https://files.pythonhosted.org/packages/c9/58/afab7f2b9e7df88c995995172eb78cae8a3d5a62d5681abaade86b3f0089/aiohttp-3.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:7897298b3eedc790257fef8a6ec582ca04e9dbe568ba4a9a890913b925b8ea21", size = 450138 }, - { url = "https://files.pythonhosted.org/packages/fe/c1/93bb1e35cd0c4665bb422b1ca3d87b588f4bca2656bbe9292b963d5b76a9/aiohttp-3.13.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c417f8c2e1137775569297c584a8a7144e5d1237789eae56af4faf1894a0b861", size = 733187 }, - { url = "https://files.pythonhosted.org/packages/5e/36/2d50eba91992d3fe7a6452506ccdab45d03685ee8d8acaa5b289384a7d4c/aiohttp-3.13.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f84b53326abf8e56ebc28a35cebf4a0f396a13a76300f500ab11fe0573bf0b52", size = 488684 }, - { url = "https://files.pythonhosted.org/packages/82/93/fa4b1d5ecdc7805bdf0815ef00257db4632ccf0a8bffd44f9fc4657b1677/aiohttp-3.13.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:990a53b9d6a30b2878789e490758e568b12b4a7fb2527d0c89deb9650b0e5813", size = 489255 }, - { url = "https://files.pythonhosted.org/packages/05/0f/85241f0d158da5e24e8ac9d50c0849ed24f882cafc53dc95749ef85eef09/aiohttp-3.13.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c811612711e01b901e18964b3e5dec0d35525150f5f3f85d0aee2935f059910a", size = 1715914 }, - { url = "https://files.pythonhosted.org/packages/ab/fc/c755590d6f6d2b5d1565c72d6ee658d3c30ec61acb18964d1e9bf991d9b5/aiohttp-3.13.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ee433e594d7948e760b5c2a78cc06ac219df33b0848793cf9513d486a9f90a52", size = 1665171 }, - { url = "https://files.pythonhosted.org/packages/3a/de/caa61e213ff546b8815aef5e931d7eae1dbe8c840a3f11ec5aa41c5ae462/aiohttp-3.13.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:19bb08e56f57c215e9572cd65cb6f8097804412c54081d933997ddde3e5ac579", size = 1755124 }, - { url = "https://files.pythonhosted.org/packages/fb/b7/40c3219dd2691aa35cf889b4fbb0c00e48a19092928707044bfe92068e01/aiohttp-3.13.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f27b7488144eb5dd9151cf839b195edd1569629d90ace4c5b6b18e4e75d1e63a", size = 1835949 }, - { url = "https://files.pythonhosted.org/packages/57/e8/66e3c32841fc0e26a09539c377aa0f3bbf6deac1957ac5182cf276c5719c/aiohttp-3.13.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d812838c109757a11354a161c95708ae4199c4fd4d82b90959b20914c1d097f6", size = 1714276 }, - { url = "https://files.pythonhosted.org/packages/6b/a5/c68e5b46ff0410fe3abfa508651b09372428f27036138beacf4ff6b7cb8c/aiohttp-3.13.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7c20db99da682f9180fa5195c90b80b159632fb611e8dbccdd99ba0be0970620", size = 1545929 }, - { url = "https://files.pythonhosted.org/packages/7a/a6/4c97dc27f9935c0c0aa6e3e10e5b4548823ab5d056636bde374fcd297256/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:cf8b0870047900eb1f17f453b4b3953b8ffbf203ef56c2f346780ff930a4d430", size = 1679988 }, - { url = "https://files.pythonhosted.org/packages/8e/1b/11f9c52fd72b786a47e796e6794883417280cdca8eb1032d8d0939928dfa/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5b8a5557d5af3f4e3add52a58c4cf2b8e6e59fc56b261768866f5337872d596d", size = 1678031 }, - { url = "https://files.pythonhosted.org/packages/ea/eb/948903d40505f3a25e53e051488d2714ded3afac1f961df135f2936680f9/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:052bcdd80c1c54b8a18a9ea0cd5e36f473dc8e38d51b804cea34841f677a9971", size = 1726184 }, - { url = "https://files.pythonhosted.org/packages/44/14/c8ced38c7dfe80804dec17a671963ccf3cb282f12700ec70b1f689d8de7d/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:76484ba17b2832776581b7ab466d094e48eba74cb65a60aea20154dae485e8bd", size = 1542344 }, - { url = "https://files.pythonhosted.org/packages/a4/6e/f2e6bff550a51fd7c45fdab116a1dab7cc502e5d942956f10fc5c626bb15/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:62d8a0adcdaf62ee56bfb37737153251ac8e4b27845b3ca065862fb01d99e247", size = 1740913 }, - { url = "https://files.pythonhosted.org/packages/da/00/8f057300d9b598a706348abb375b3de9a253195fb615f17c0b2be2a72836/aiohttp-3.13.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5004d727499ecb95f7c9147dd0bfc5b5670f71d355f0bd26d7af2d3af8e07d2f", size = 1695535 }, - { url = "https://files.pythonhosted.org/packages/8a/ab/6919d584d8f053a14b15f0bfa3f315b3f548435c2142145459da2efa8673/aiohttp-3.13.0-cp314-cp314-win32.whl", hash = "sha256:a1c20c26af48aea984f63f96e5d7af7567c32cb527e33b60a0ef0a6313cf8b03", size = 429548 }, - { url = "https://files.pythonhosted.org/packages/c5/59/5d9e78de6132079066f5077d9687bf524f764a2f8207e04d8d68790060c6/aiohttp-3.13.0-cp314-cp314-win_amd64.whl", hash = "sha256:56f7d230ec66e799fbfd8350e9544f8a45a4353f1cf40c1fea74c1780f555b8f", size = 455548 }, - { url = "https://files.pythonhosted.org/packages/7c/ea/7d98da03d1e9798bb99c3ca4963229150d45c9b7a3a16210c5b4a5f89e07/aiohttp-3.13.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:2fd35177dc483ae702f07b86c782f4f4b100a8ce4e7c5778cea016979023d9fd", size = 765319 }, - { url = "https://files.pythonhosted.org/packages/5c/02/37f29beced8213bb467c52ad509a5e3b41e6e967de2f6eaf7f8db63bea54/aiohttp-3.13.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:4df1984c8804ed336089e88ac81a9417b1fd0db7c6f867c50a9264488797e778", size = 502567 }, - { url = "https://files.pythonhosted.org/packages/e7/22/b0afcafcfe3637bc8d7992abf08ee9452018366c0801e4e7d4efda2ed839/aiohttp-3.13.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e68c0076052dd911a81d3acc4ef2911cc4ef65bf7cadbfbc8ae762da24da858f", size = 507078 }, - { url = "https://files.pythonhosted.org/packages/49/4c/046c847b7a1993b49f3855cc3b97872d5df193d9240de835d0dc6a97b164/aiohttp-3.13.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc95c49853cd29613e4fe4ff96d73068ff89b89d61e53988442e127e8da8e7ba", size = 1862115 }, - { url = "https://files.pythonhosted.org/packages/1a/25/1449a59e3c6405da5e47b0138ee0855414dc12a8c306685d7fc3dd300e1f/aiohttp-3.13.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3b3bdc89413117b40cc39baae08fd09cbdeb839d421c4e7dce6a34f6b54b3ac1", size = 1717147 }, - { url = "https://files.pythonhosted.org/packages/23/8f/50cc34ad267b38608f21c6a74327015dd08a66f1dd8e7ceac954d0953191/aiohttp-3.13.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3e77a729df23be2116acc4e9de2767d8e92445fbca68886dd991dc912f473755", size = 1841443 }, - { url = "https://files.pythonhosted.org/packages/df/b9/b3ab1278faa0d1b8f434c85f9cf34eeb0a25016ffe1ee6bc361d09fef0ec/aiohttp-3.13.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e88ab34826d6eeb6c67e6e92400b9ec653faf5092a35f07465f44c9f1c429f82", size = 1933652 }, - { url = "https://files.pythonhosted.org/packages/88/e2/86050aaa3bd7021b115cdfc88477b754e8cf93ef0079867840eee22d3c34/aiohttp-3.13.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:019dbef24fe28ce2301419dd63a2b97250d9760ca63ee2976c2da2e3f182f82e", size = 1790682 }, - { url = "https://files.pythonhosted.org/packages/78/8d/9af903324c2ba24a0c4778e9bcc738b773c98dded3a4fcf8041d5211769f/aiohttp-3.13.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2c4aeaedd20771b7b4bcdf0ae791904445df6d856c02fc51d809d12d17cffdc7", size = 1622011 }, - { url = "https://files.pythonhosted.org/packages/84/97/5174971ba4986d913554ceb248b0401eb5358cb60672ea0166f9f596cd08/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b3a8e6a2058a0240cfde542b641d0e78b594311bc1a710cbcb2e1841417d5cb3", size = 1787148 }, - { url = "https://files.pythonhosted.org/packages/dd/ae/8b397e980ac613ef3ddd8e996aa7a40a1828df958257800d4bb325657db3/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:f8e38d55ca36c15f36d814ea414ecb2401d860de177c49f84a327a25b3ee752b", size = 1774816 }, - { url = "https://files.pythonhosted.org/packages/c7/54/0e8e2111dd92051c787e934b6bbf30c213daaa5e7ee5f51bca8913607492/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:a921edbe971aade1bf45bcbb3494e30ba6863a5c78f28be992c42de980fd9108", size = 1788610 }, - { url = "https://files.pythonhosted.org/packages/fa/dd/c9283dbfd9325ed6fa6c91f009db6344d8d370a7bcf09f36e7b2fcbfae02/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:474cade59a447cb4019c0dce9f0434bf835fb558ea932f62c686fe07fe6db6a1", size = 1615498 }, - { url = "https://files.pythonhosted.org/packages/8c/f6/da76230679bd9ef175d876093f89e7fd6d6476c18505e115e3026fe5ef95/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:99a303ad960747c33b65b1cb65d01a62ac73fa39b72f08a2e1efa832529b01ed", size = 1815187 }, - { url = "https://files.pythonhosted.org/packages/d5/78/394003ac738703822616f4f922705b54e5b3d8e7185831ecc1c97904174d/aiohttp-3.13.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:bb34001fc1f05f6b323e02c278090c07a47645caae3aa77ed7ed8a3ce6abcce9", size = 1760281 }, - { url = "https://files.pythonhosted.org/packages/bd/b0/4bad0a9dd5910bd01c3119f8bd3d71887cd412d4105e4acddcdacf3cfa76/aiohttp-3.13.0-cp314-cp314t-win32.whl", hash = "sha256:dea698b64235d053def7d2f08af9302a69fcd760d1c7bd9988fd5d3b6157e657", size = 462608 }, - { url = "https://files.pythonhosted.org/packages/bd/af/ad12d592f623aae2bd1d3463201dc39c201ea362f9ddee0d03efd9e83720/aiohttp-3.13.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1f164699a060c0b3616459d13c1464a981fddf36f892f0a5027cbd45121fb14b", size = 496010 }, +sdist = { url = "https://files.pythonhosted.org/packages/1c/ce/3b83ebba6b3207a7135e5fcaba49706f8a4b6008153b4e30540c982fae26/aiohttp-3.13.2.tar.gz", hash = "sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca", size = 7837994 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/d2/04/db5279e38471b7ac801d7d36a57d1230feeee130bbe2a74f72731b23c2b1/aiohttp-3.13.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811", size = 1720387 }, + { url = "https://files.pythonhosted.org/packages/31/07/8ea4326bd7dae2bd59828f69d7fdc6e04523caa55e4a70f4a8725a7e4ed2/aiohttp-3.13.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a", size = 1688314 }, + { url = "https://files.pythonhosted.org/packages/48/ab/3d98007b5b87ffd519d065225438cc3b668b2f245572a8cb53da5dd2b1bc/aiohttp-3.13.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4", size = 1756317 }, + { url = "https://files.pythonhosted.org/packages/97/3d/801ca172b3d857fafb7b50c7c03f91b72b867a13abca982ed6b3081774ef/aiohttp-3.13.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a", size = 1858539 }, + { url = "https://files.pythonhosted.org/packages/f7/0d/4764669bdf47bd472899b3d3db91fffbe925c8e3038ec591a2fd2ad6a14d/aiohttp-3.13.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e", size = 1739597 }, + { url = "https://files.pythonhosted.org/packages/c4/52/7bd3c6693da58ba16e657eb904a5b6decfc48ecd06e9ac098591653b1566/aiohttp-3.13.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb", size = 1555006 }, + { url = "https://files.pythonhosted.org/packages/48/30/9586667acec5993b6f41d2ebcf96e97a1255a85f62f3c653110a5de4d346/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded", size = 1683220 }, + { url = "https://files.pythonhosted.org/packages/71/01/3afe4c96854cfd7b30d78333852e8e851dceaec1c40fd00fec90c6402dd2/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b", size = 1712570 }, + { url = "https://files.pythonhosted.org/packages/11/2c/22799d8e720f4697a9e66fd9c02479e40a49de3de2f0bbe7f9f78a987808/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8", size = 1733407 }, + { url = "https://files.pythonhosted.org/packages/34/cb/90f15dd029f07cebbd91f8238a8b363978b530cd128488085b5703683594/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04", size = 1550093 }, + { url = "https://files.pythonhosted.org/packages/69/46/12dce9be9d3303ecbf4d30ad45a7683dc63d90733c2d9fe512be6716cd40/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476", size = 1758084 }, + { url = "https://files.pythonhosted.org/packages/f9/c8/0932b558da0c302ffd639fc6362a313b98fdf235dc417bc2493da8394df7/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23", size = 1716987 }, + { url = "https://files.pythonhosted.org/packages/5d/8b/f5bd1a75003daed099baec373aed678f2e9b34f2ad40d85baa1368556396/aiohttp-3.13.2-cp313-cp313-win32.whl", hash = "sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254", size = 425859 }, + { url = "https://files.pythonhosted.org/packages/5d/28/a8a9fc6957b2cee8902414e41816b5ab5536ecf43c3b1843c10e82c559b2/aiohttp-3.13.2-cp313-cp313-win_amd64.whl", hash = "sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a", size = 452192 }, + { url = "https://files.pythonhosted.org/packages/9b/36/e2abae1bd815f01c957cbf7be817b3043304e1c87bad526292a0410fdcf9/aiohttp-3.13.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b", size = 735234 }, + { url = "https://files.pythonhosted.org/packages/ca/e3/1ee62dde9b335e4ed41db6bba02613295a0d5b41f74a783c142745a12763/aiohttp-3.13.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61", size = 490733 }, + { url = "https://files.pythonhosted.org/packages/1a/aa/7a451b1d6a04e8d15a362af3e9b897de71d86feac3babf8894545d08d537/aiohttp-3.13.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4", size = 491303 }, + { url = "https://files.pythonhosted.org/packages/57/1e/209958dbb9b01174870f6a7538cd1f3f28274fdbc88a750c238e2c456295/aiohttp-3.13.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b", size = 1717965 }, + { url = "https://files.pythonhosted.org/packages/08/aa/6a01848d6432f241416bc4866cae8dc03f05a5a884d2311280f6a09c73d6/aiohttp-3.13.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694", size = 1667221 }, + { url = "https://files.pythonhosted.org/packages/87/4f/36c1992432d31bbc789fa0b93c768d2e9047ec8c7177e5cd84ea85155f36/aiohttp-3.13.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906", size = 1757178 }, + { url = "https://files.pythonhosted.org/packages/ac/b4/8e940dfb03b7e0f68a82b88fd182b9be0a65cb3f35612fe38c038c3112cf/aiohttp-3.13.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9", size = 1838001 }, + { url = "https://files.pythonhosted.org/packages/d7/ef/39f3448795499c440ab66084a9db7d20ca7662e94305f175a80f5b7e0072/aiohttp-3.13.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011", size = 1716325 }, + { url = "https://files.pythonhosted.org/packages/d7/51/b311500ffc860b181c05d91c59a1313bdd05c82960fdd4035a15740d431e/aiohttp-3.13.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6", size = 1547978 }, + { url = "https://files.pythonhosted.org/packages/31/64/b9d733296ef79815226dab8c586ff9e3df41c6aff2e16c06697b2d2e6775/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213", size = 1682042 }, + { url = "https://files.pythonhosted.org/packages/3f/30/43d3e0f9d6473a6db7d472104c4eff4417b1e9df01774cb930338806d36b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49", size = 1680085 }, + { url = "https://files.pythonhosted.org/packages/16/51/c709f352c911b1864cfd1087577760ced64b3e5bee2aa88b8c0c8e2e4972/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae", size = 1728238 }, + { url = "https://files.pythonhosted.org/packages/19/e2/19bd4c547092b773caeb48ff5ae4b1ae86756a0ee76c16727fcfd281404b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa", size = 1544395 }, + { url = "https://files.pythonhosted.org/packages/cf/87/860f2803b27dfc5ed7be532832a3498e4919da61299b4a1f8eb89b8ff44d/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4", size = 1742965 }, + { url = "https://files.pythonhosted.org/packages/67/7f/db2fc7618925e8c7a601094d5cbe539f732df4fb570740be88ed9e40e99a/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a", size = 1697585 }, + { url = "https://files.pythonhosted.org/packages/0c/07/9127916cb09bb38284db5036036042b7b2c514c8ebaeee79da550c43a6d6/aiohttp-3.13.2-cp314-cp314-win32.whl", hash = "sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940", size = 431621 }, + { url = "https://files.pythonhosted.org/packages/fb/41/554a8a380df6d3a2bba8a7726429a23f4ac62aaf38de43bb6d6cde7b4d4d/aiohttp-3.13.2-cp314-cp314-win_amd64.whl", hash = "sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4", size = 457627 }, + { url = "https://files.pythonhosted.org/packages/c7/8e/3824ef98c039d3951cb65b9205a96dd2b20f22241ee17d89c5701557c826/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673", size = 767360 }, + { url = "https://files.pythonhosted.org/packages/a4/0f/6a03e3fc7595421274fa34122c973bde2d89344f8a881b728fa8c774e4f1/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd", size = 504616 }, + { url = "https://files.pythonhosted.org/packages/c6/aa/ed341b670f1bc8a6f2c6a718353d13b9546e2cef3544f573c6a1ff0da711/aiohttp-3.13.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3", size = 509131 }, + { url = "https://files.pythonhosted.org/packages/7f/f0/c68dac234189dae5c4bbccc0f96ce0cc16b76632cfc3a08fff180045cfa4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf", size = 1864168 }, + { url = "https://files.pythonhosted.org/packages/8f/65/75a9a76db8364b5d0e52a0c20eabc5d52297385d9af9c35335b924fafdee/aiohttp-3.13.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e", size = 1719200 }, + { url = "https://files.pythonhosted.org/packages/f5/55/8df2ed78d7f41d232f6bd3ff866b6f617026551aa1d07e2f03458f964575/aiohttp-3.13.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5", size = 1843497 }, + { url = "https://files.pythonhosted.org/packages/e9/e0/94d7215e405c5a02ccb6a35c7a3a6cfff242f457a00196496935f700cde5/aiohttp-3.13.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad", size = 1935703 }, + { url = "https://files.pythonhosted.org/packages/0b/78/1eeb63c3f9b2d1015a4c02788fb543141aad0a03ae3f7a7b669b2483f8d4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e", size = 1792738 }, + { url = "https://files.pythonhosted.org/packages/41/75/aaf1eea4c188e51538c04cc568040e3082db263a57086ea74a7d38c39e42/aiohttp-3.13.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61", size = 1624061 }, + { url = "https://files.pythonhosted.org/packages/9b/c2/3b6034de81fbcc43de8aeb209073a2286dfb50b86e927b4efd81cf848197/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661", size = 1789201 }, + { url = "https://files.pythonhosted.org/packages/c9/38/c15dcf6d4d890217dae79d7213988f4e5fe6183d43893a9cf2fe9e84ca8d/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98", size = 1776868 }, + { url = "https://files.pythonhosted.org/packages/04/75/f74fd178ac81adf4f283a74847807ade5150e48feda6aef024403716c30c/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693", size = 1790660 }, + { url = "https://files.pythonhosted.org/packages/e7/80/7368bd0d06b16b3aba358c16b919e9c46cf11587dc572091031b0e9e3ef0/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a", size = 1617548 }, + { url = "https://files.pythonhosted.org/packages/7d/4b/a6212790c50483cb3212e507378fbe26b5086d73941e1ec4b56a30439688/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be", size = 1817240 }, + { url = "https://files.pythonhosted.org/packages/ff/f7/ba5f0ba4ea8d8f3c32850912944532b933acbf0f3a75546b89269b9b7dde/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c", size = 1762334 }, + { url = "https://files.pythonhosted.org/packages/7e/83/1a5a1856574588b1cad63609ea9ad75b32a8353ac995d830bf5da9357364/aiohttp-3.13.2-cp314-cp314t-win32.whl", hash = "sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734", size = 464685 }, + { url = "https://files.pythonhosted.org/packages/9f/4d/d22668674122c08f4d56972297c51a624e64b3ed1efaa40187607a7cb66e/aiohttp-3.13.2-cp314-cp314t-win_amd64.whl", hash = "sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f", size = 498093 }, ] [[package]] @@ -193,7 +191,7 @@ wheels = [ [[package]] name = "anthropic" -version = "0.69.0" +version = "0.72.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -205,9 +203,9 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c8/9d/9ad1778b95f15c5b04e7d328c1b5f558f1e893857b7c33cd288c19c0057a/anthropic-0.69.0.tar.gz", hash = "sha256:c604d287f4d73640f40bd2c0f3265a2eb6ce034217ead0608f6b07a8bc5ae5f2", size = 480622 } +sdist = { url = "https://files.pythonhosted.org/packages/49/07/61f3ca8e69c5dcdaec31b36b79a53ea21c5b4ca5e93c7df58c71f43bf8d8/anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a", size = 493721 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/38/75129688de5637eb5b383e5f2b1570a5cc3aecafa4de422da8eea4b90a6c/anthropic-0.69.0-py3-none-any.whl", hash = "sha256:1f73193040f33f11e27c2cd6ec25f24fe7c3f193dc1c5cde6b7a08b18a16bcc5", size = 337265 }, + { url = "https://files.pythonhosted.org/packages/7b/b7/160d4fb30080395b4143f1d1a4f6c646ba9105561108d2a434b606c03579/anthropic-0.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d", size = 357464 }, ] [[package]] @@ -485,22 +483,23 @@ wheels = [ [[package]] name = "google-ai-generativelanguage" -version = "0.7.0" +version = "0.9.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-api-core", extra = ["grpc"] }, { name = "google-auth" }, + { name = "grpcio" }, { name = "proto-plus" }, { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c5/35/af6c759bfde70386c741309df0cba6a1cb09b8bbd1d02c841df51f4c672d/google_ai_generativelanguage-0.7.0.tar.gz", hash = "sha256:207fed3089949e2e99f7cbd513e2d0ea5f2babdfa5a8f2f239c3ddffe6bd4297", size = 1475859 } +sdist = { url = "https://files.pythonhosted.org/packages/ad/7e/67fdc46187541ead599e77f259d915f129c2f49568ebf5cadb322130712b/google_ai_generativelanguage-0.9.0.tar.gz", hash = "sha256:2524748f413917446febc8e0879dc0d4f026a064f89f17c42b81bea77ab76c84", size = 1481662 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/e7/b670b2d5b53f18ae51d331283278595fea93a156ea79baf59d4098effaec/google_ai_generativelanguage-0.7.0-py3-none-any.whl", hash = "sha256:3241215c16e669f37054f6111c84cca50fdb7a8e10a62933b9e68086ce71eefe", size = 1394333 }, + { url = "https://files.pythonhosted.org/packages/5d/91/c2d39ad5d77813afadb0f0b8789d882d15c191710b6b6f7cb158376342ff/google_ai_generativelanguage-0.9.0-py3-none-any.whl", hash = "sha256:59f61e54cb341e602073098389876594c4d12e458617727558bb2628a86f3eb2", size = 1401288 }, ] [[package]] name = "google-api-core" -version = "2.26.0" +version = "2.28.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "google-auth" }, @@ -509,9 +508,9 @@ dependencies = [ { name = "protobuf" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/32/ea/e7b6ac3c7b557b728c2d0181010548cbbdd338e9002513420c5a354fa8df/google_api_core-2.26.0.tar.gz", hash = "sha256:e6e6d78bd6cf757f4aee41dcc85b07f485fbb069d5daa3afb126defba1e91a62", size = 166369 } +sdist = { url = "https://files.pythonhosted.org/packages/61/da/83d7043169ac2c8c7469f0e375610d78ae2160134bf1b80634c482fa079c/google_api_core-2.28.1.tar.gz", hash = "sha256:2b405df02d68e68ce0fbc138559e6036559e685159d148ae5861013dc201baf8", size = 176759 } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/ad/f73cf9fe9bd95918502b270e3ddb8764e4c900b3bbd7782b90c56fac14bb/google_api_core-2.26.0-py3-none-any.whl", hash = "sha256:2b204bd0da2c81f918e3582c48458e24c11771f987f6258e6e227212af78f3ed", size = 162505 }, + { url = "https://files.pythonhosted.org/packages/ed/d4/90197b416cb61cefd316964fd9e7bd8324bcbafabf40eef14a9f20b81974/google_api_core-2.28.1-py3-none-any.whl", hash = "sha256:4021b0f8ceb77a6fb4de6fde4502cecab45062e66ff4f2895169e0b35bc9466c", size = 173706 }, ] [package.optional-dependencies] @@ -522,28 +521,28 @@ grpc = [ [[package]] name = "google-auth" -version = "2.41.1" +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/a8/af/5129ce5b2f9688d2fa49b463e544972a7c82b0fdb50980dafee92e121d9f/google_auth-2.41.1.tar.gz", hash = "sha256:b76b7b1f9e61f0cb7e88870d14f6a94aeef248959ef6992670efee37709cbfd2", size = 292284 } +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/be/a4/7319a2a8add4cc352be9e3efeff5e2aacee917c85ca2fa1647e29089983c/google_auth-2.41.1-py2.py3-none-any.whl", hash = "sha256:754843be95575b9a19c604a848a41be03f7f2afd8c019f716dc1f51ee41c639d", size = 221302 }, + { 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]] name = "googleapis-common-protos" -version = "1.70.0" +version = "1.71.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/39/24/33db22342cf4a2ea27c9955e6713140fedd51e8b141b5ce5260897020f1a/googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257", size = 145903 } +sdist = { url = "https://files.pythonhosted.org/packages/30/43/b25abe02db2911397819003029bef768f68a974f2ece483e6084d1a5f754/googleapis_common_protos-1.71.0.tar.gz", hash = "sha256:1aec01e574e29da63c80ba9f7bbf1ccfaacf1da877f23609fe236ca7c72a2e2e", size = 146454 } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/f1/62a193f0227cf15a920390abe675f386dec35f7ae3ffe6da582d3ade42c7/googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8", size = 294530 }, + { url = "https://files.pythonhosted.org/packages/25/e8/eba9fece11d57a71e3e22ea672742c8f3cf23b35730c9e96db768b295216/googleapis_common_protos-1.71.0-py3-none-any.whl", hash = "sha256:59034a1d849dc4d18971997a72ac56246570afdd17f9369a0ff68218d50ab78c", size = 294576 }, ] [[package]] @@ -581,57 +580,57 @@ wheels = [ [[package]] name = "grpcio" -version = "1.75.1" +version = "1.76.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/f7/8963848164c7604efb3a3e6ee457fdb3a469653e19002bd24742473254f8/grpcio-1.75.1.tar.gz", hash = "sha256:3e81d89ece99b9ace23a6916880baca613c03a799925afb2857887efa8b1b3d2", size = 12731327 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/81/42be79e73a50aaa20af66731c2defeb0e8c9008d9935a64dd8ea8e8c44eb/grpcio-1.75.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:7b888b33cd14085d86176b1628ad2fcbff94cfbbe7809465097aa0132e58b018", size = 5668314 }, - { url = "https://files.pythonhosted.org/packages/c5/a7/3686ed15822fedc58c22f82b3a7403d9faf38d7c33de46d4de6f06e49426/grpcio-1.75.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8775036efe4ad2085975531d221535329f5dac99b6c2a854a995456098f99546", size = 11476125 }, - { url = "https://files.pythonhosted.org/packages/14/85/21c71d674f03345ab183c634ecd889d3330177e27baea8d5d247a89b6442/grpcio-1.75.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb658f703468d7fbb5dcc4037c65391b7dc34f808ac46ed9136c24fc5eeb041d", size = 6246335 }, - { url = "https://files.pythonhosted.org/packages/fd/db/3beb661bc56a385ae4fa6b0e70f6b91ac99d47afb726fe76aaff87ebb116/grpcio-1.75.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4b7177a1cdb3c51b02b0c0a256b0a72fdab719600a693e0e9037949efffb200b", size = 6916309 }, - { url = "https://files.pythonhosted.org/packages/1e/9c/eda9fe57f2b84343d44c1b66cf3831c973ba29b078b16a27d4587a1fdd47/grpcio-1.75.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d4fa6ccc3ec2e68a04f7b883d354d7fea22a34c44ce535a2f0c0049cf626ddf", size = 6435419 }, - { url = "https://files.pythonhosted.org/packages/c3/b8/090c98983e0a9d602e3f919a6e2d4e470a8b489452905f9a0fa472cac059/grpcio-1.75.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3d86880ecaeb5b2f0a8afa63824de93adb8ebe4e49d0e51442532f4e08add7d6", size = 7064893 }, - { url = "https://files.pythonhosted.org/packages/ec/c0/6d53d4dbbd00f8bd81571f5478d8a95528b716e0eddb4217cc7cb45aae5f/grpcio-1.75.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a8041d2f9e8a742aeae96f4b047ee44e73619f4f9d24565e84d5446c623673b6", size = 8011922 }, - { url = "https://files.pythonhosted.org/packages/f2/7c/48455b2d0c5949678d6982c3e31ea4d89df4e16131b03f7d5c590811cbe9/grpcio-1.75.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3652516048bf4c314ce12be37423c79829f46efffb390ad64149a10c6071e8de", size = 7466181 }, - { url = "https://files.pythonhosted.org/packages/fd/12/04a0e79081e3170b6124f8cba9b6275871276be06c156ef981033f691880/grpcio-1.75.1-cp312-cp312-win32.whl", hash = "sha256:44b62345d8403975513af88da2f3d5cc76f73ca538ba46596f92a127c2aea945", size = 3938543 }, - { url = "https://files.pythonhosted.org/packages/5f/d7/11350d9d7fb5adc73d2b0ebf6ac1cc70135577701e607407fe6739a90021/grpcio-1.75.1-cp312-cp312-win_amd64.whl", hash = "sha256:b1e191c5c465fa777d4cafbaacf0c01e0d5278022082c0abbd2ee1d6454ed94d", size = 4641938 }, - { url = "https://files.pythonhosted.org/packages/46/74/bac4ab9f7722164afdf263ae31ba97b8174c667153510322a5eba4194c32/grpcio-1.75.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:3bed22e750d91d53d9e31e0af35a7b0b51367e974e14a4ff229db5b207647884", size = 5672779 }, - { url = "https://files.pythonhosted.org/packages/a6/52/d0483cfa667cddaa294e3ab88fd2c2a6e9dc1a1928c0e5911e2e54bd5b50/grpcio-1.75.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:5b8f381eadcd6ecaa143a21e9e80a26424c76a0a9b3d546febe6648f3a36a5ac", size = 11470623 }, - { url = "https://files.pythonhosted.org/packages/cf/e4/d1954dce2972e32384db6a30273275e8c8ea5a44b80347f9055589333b3f/grpcio-1.75.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5bf4001d3293e3414d0cf99ff9b1139106e57c3a66dfff0c5f60b2a6286ec133", size = 6248838 }, - { url = "https://files.pythonhosted.org/packages/06/43/073363bf63826ba8077c335d797a8d026f129dc0912b69c42feaf8f0cd26/grpcio-1.75.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:9f82ff474103e26351dacfe8d50214e7c9322960d8d07ba7fa1d05ff981c8b2d", size = 6922663 }, - { url = "https://files.pythonhosted.org/packages/c2/6f/076ac0df6c359117676cacfa8a377e2abcecec6a6599a15a672d331f6680/grpcio-1.75.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ee119f4f88d9f75414217823d21d75bfe0e6ed40135b0cbbfc6376bc9f7757d", size = 6436149 }, - { url = "https://files.pythonhosted.org/packages/6b/27/1d08824f1d573fcb1fa35ede40d6020e68a04391709939e1c6f4193b445f/grpcio-1.75.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:664eecc3abe6d916fa6cf8dd6b778e62fb264a70f3430a3180995bf2da935446", size = 7067989 }, - { url = "https://files.pythonhosted.org/packages/c6/98/98594cf97b8713feb06a8cb04eeef60b4757e3e2fb91aa0d9161da769843/grpcio-1.75.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c32193fa08b2fbebf08fe08e84f8a0aad32d87c3ad42999c65e9449871b1c66e", size = 8010717 }, - { url = "https://files.pythonhosted.org/packages/8c/7e/bb80b1bba03c12158f9254762cdf5cced4a9bc2e8ed51ed335915a5a06ef/grpcio-1.75.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5cebe13088b9254f6e615bcf1da9131d46cfa4e88039454aca9cb65f639bd3bc", size = 7463822 }, - { url = "https://files.pythonhosted.org/packages/23/1c/1ea57fdc06927eb5640f6750c697f596f26183573069189eeaf6ef86ba2d/grpcio-1.75.1-cp313-cp313-win32.whl", hash = "sha256:4b4c678e7ed50f8ae8b8dbad15a865ee73ce12668b6aaf411bf3258b5bc3f970", size = 3938490 }, - { url = "https://files.pythonhosted.org/packages/4b/24/fbb8ff1ccadfbf78ad2401c41aceaf02b0d782c084530d8871ddd69a2d49/grpcio-1.75.1-cp313-cp313-win_amd64.whl", hash = "sha256:5573f51e3f296a1bcf71e7a690c092845fb223072120f4bdb7a5b48e111def66", size = 4642538 }, - { url = "https://files.pythonhosted.org/packages/f2/1b/9a0a5cecd24302b9fdbcd55d15ed6267e5f3d5b898ff9ac8cbe17ee76129/grpcio-1.75.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:c05da79068dd96723793bffc8d0e64c45f316248417515f28d22204d9dae51c7", size = 5673319 }, - { url = "https://files.pythonhosted.org/packages/c6/ec/9d6959429a83fbf5df8549c591a8a52bb313976f6646b79852c4884e3225/grpcio-1.75.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:06373a94fd16ec287116a825161dca179a0402d0c60674ceeec8c9fba344fe66", size = 11480347 }, - { url = "https://files.pythonhosted.org/packages/09/7a/26da709e42c4565c3d7bf999a9569da96243ce34a8271a968dee810a7cf1/grpcio-1.75.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4484f4b7287bdaa7a5b3980f3c7224c3c622669405d20f69549f5fb956ad0421", size = 6254706 }, - { url = "https://files.pythonhosted.org/packages/f1/08/dcb26a319d3725f199c97e671d904d84ee5680de57d74c566a991cfab632/grpcio-1.75.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2720c239c1180eee69f7883c1d4c83fc1a495a2535b5fa322887c70bf02b16e8", size = 6922501 }, - { url = "https://files.pythonhosted.org/packages/78/66/044d412c98408a5e23cb348845979a2d17a2e2b6c3c34c1ec91b920f49d0/grpcio-1.75.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:07a554fa31c668cf0e7a188678ceeca3cb8fead29bbe455352e712ec33ca701c", size = 6437492 }, - { url = "https://files.pythonhosted.org/packages/4e/9d/5e3e362815152aa1afd8b26ea613effa005962f9da0eec6e0e4527e7a7d1/grpcio-1.75.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3e71a2105210366bfc398eef7f57a664df99194f3520edb88b9c3a7e46ee0d64", size = 7081061 }, - { url = "https://files.pythonhosted.org/packages/1e/1a/46615682a19e100f46e31ddba9ebc297c5a5ab9ddb47b35443ffadb8776c/grpcio-1.75.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8679aa8a5b67976776d3c6b0521e99d1c34db8a312a12bcfd78a7085cb9b604e", size = 8010849 }, - { url = "https://files.pythonhosted.org/packages/67/8e/3204b94ac30b0f675ab1c06540ab5578660dc8b690db71854d3116f20d00/grpcio-1.75.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:aad1c774f4ebf0696a7f148a56d39a3432550612597331792528895258966dc0", size = 7464478 }, - { url = "https://files.pythonhosted.org/packages/b7/97/2d90652b213863b2cf466d9c1260ca7e7b67a16780431b3eb1d0420e3d5b/grpcio-1.75.1-cp314-cp314-win32.whl", hash = "sha256:62ce42d9994446b307649cb2a23335fa8e927f7ab2cbf5fcb844d6acb4d85f9c", size = 4012672 }, - { url = "https://files.pythonhosted.org/packages/f9/df/e2e6e9fc1c985cd1a59e6996a05647c720fe8a03b92f5ec2d60d366c531e/grpcio-1.75.1-cp314-cp314-win_amd64.whl", hash = "sha256:f86e92275710bea3000cb79feca1762dc0ad3b27830dd1a74e82ab321d4ee464", size = 4772475 }, +sdist = { url = "https://files.pythonhosted.org/packages/b6/e0/318c1ce3ae5a17894d5791e87aea147587c9e702f24122cc7a5c8bbaeeb1/grpcio-1.76.0.tar.gz", hash = "sha256:7be78388d6da1a25c0d5ec506523db58b18be22d9c37d8d3a32c08be4987bd73", size = 12785182 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/bd/64/9784eab483358e08847498ee56faf8ff6ea8e0a4592568d9f68edc97e9e9/grpcio-1.76.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3e2a27c89eb9ac3d81ec8835e12414d73536c6e620355d65102503064a4ed6eb", size = 7049990 }, + { url = "https://files.pythonhosted.org/packages/2b/94/8c12319a6369434e7a184b987e8e9f3b49a114c489b8315f029e24de4837/grpcio-1.76.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:61f69297cba3950a524f61c7c8ee12e55c486cb5f7db47ff9dcee33da6f0d3ae", size = 6575387 }, + { url = "https://files.pythonhosted.org/packages/15/0f/f12c32b03f731f4a6242f771f63039df182c8b8e2cf8075b245b409259d4/grpcio-1.76.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6a15c17af8839b6801d554263c546c69c4d7718ad4321e3166175b37eaacca77", size = 7166668 }, + { url = "https://files.pythonhosted.org/packages/ff/2d/3ec9ce0c2b1d92dd59d1c3264aaec9f0f7c817d6e8ac683b97198a36ed5a/grpcio-1.76.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:25a18e9810fbc7e7f03ec2516addc116a957f8cbb8cbc95ccc80faa072743d03", size = 8124928 }, + { url = "https://files.pythonhosted.org/packages/1a/74/fd3317be5672f4856bcdd1a9e7b5e17554692d3db9a3b273879dc02d657d/grpcio-1.76.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:931091142fd8cc14edccc0845a79248bc155425eee9a98b2db2ea4f00a235a42", size = 7589983 }, + { url = "https://files.pythonhosted.org/packages/45/bb/ca038cf420f405971f19821c8c15bcbc875505f6ffadafe9ffd77871dc4c/grpcio-1.76.0-cp313-cp313-win32.whl", hash = "sha256:5e8571632780e08526f118f74170ad8d50fb0a48c23a746bef2a6ebade3abd6f", size = 3984727 }, + { url = "https://files.pythonhosted.org/packages/41/80/84087dc56437ced7cdd4b13d7875e7439a52a261e3ab4e06488ba6173b0a/grpcio-1.76.0-cp313-cp313-win_amd64.whl", hash = "sha256:f9f7bd5faab55f47231ad8dba7787866b69f5e93bc306e3915606779bbfb4ba8", size = 4702799 }, + { url = "https://files.pythonhosted.org/packages/b4/46/39adac80de49d678e6e073b70204091e76631e03e94928b9ea4ecf0f6e0e/grpcio-1.76.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:ff8a59ea85a1f2191a0ffcc61298c571bc566332f82e5f5be1b83c9d8e668a62", size = 5808417 }, + { url = "https://files.pythonhosted.org/packages/9c/f5/a4531f7fb8b4e2a60b94e39d5d924469b7a6988176b3422487be61fe2998/grpcio-1.76.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:06c3d6b076e7b593905d04fdba6a0525711b3466f43b3400266f04ff735de0cd", size = 11828219 }, + { url = "https://files.pythonhosted.org/packages/4b/1c/de55d868ed7a8bd6acc6b1d6ddc4aa36d07a9f31d33c912c804adb1b971b/grpcio-1.76.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fd5ef5932f6475c436c4a55e4336ebbe47bd3272be04964a03d316bbf4afbcbc", size = 6367826 }, + { url = "https://files.pythonhosted.org/packages/59/64/99e44c02b5adb0ad13ab3adc89cb33cb54bfa90c74770f2607eea629b86f/grpcio-1.76.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b331680e46239e090f5b3cead313cc772f6caa7d0fc8de349337563125361a4a", size = 7049550 }, + { url = "https://files.pythonhosted.org/packages/43/28/40a5be3f9a86949b83e7d6a2ad6011d993cbe9b6bd27bea881f61c7788b6/grpcio-1.76.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2229ae655ec4e8999599469559e97630185fdd53ae1e8997d147b7c9b2b72cba", size = 6575564 }, + { url = "https://files.pythonhosted.org/packages/4b/a9/1be18e6055b64467440208a8559afac243c66a8b904213af6f392dc2212f/grpcio-1.76.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:490fa6d203992c47c7b9e4a9d39003a0c2bcc1c9aa3c058730884bbbb0ee9f09", size = 7176236 }, + { url = "https://files.pythonhosted.org/packages/0f/55/dba05d3fcc151ce6e81327541d2cc8394f442f6b350fead67401661bf041/grpcio-1.76.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:479496325ce554792dba6548fae3df31a72cef7bad71ca2e12b0e58f9b336bfc", size = 8125795 }, + { url = "https://files.pythonhosted.org/packages/4a/45/122df922d05655f63930cf42c9e3f72ba20aadb26c100ee105cad4ce4257/grpcio-1.76.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1c9b93f79f48b03ada57ea24725d83a30284a012ec27eab2cf7e50a550cbbbcc", size = 7592214 }, + { url = "https://files.pythonhosted.org/packages/4a/6e/0b899b7f6b66e5af39e377055fb4a6675c9ee28431df5708139df2e93233/grpcio-1.76.0-cp314-cp314-win32.whl", hash = "sha256:747fa73efa9b8b1488a95d0ba1039c8e2dca0f741612d80415b1e1c560febf4e", size = 4062961 }, + { url = "https://files.pythonhosted.org/packages/19/41/0b430b01a2eb38ee887f88c1f07644a1df8e289353b78e82b37ef988fb64/grpcio-1.76.0-cp314-cp314-win_amd64.whl", hash = "sha256:922fa70ba549fce362d2e2871ab542082d66e2aaf0c19480ea453905b01f384e", size = 4834462 }, ] [[package]] name = "grpcio-status" -version = "1.75.1" +version = "1.76.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "googleapis-common-protos" }, { name = "grpcio" }, { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/5b/1ce0e3eedcdc08b4739b3da5836f31142ec8bee1a9ae0ad8dc0dc39a14bf/grpcio_status-1.75.1.tar.gz", hash = "sha256:8162afa21833a2085c91089cc395ad880fac1378a1d60233d976649ed724cbf8", size = 13671 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/46/e9f19d5be65e8423f886813a2a9d0056ba94757b0c5007aa59aed1a961fa/grpcio_status-1.76.0.tar.gz", hash = "sha256:25fcbfec74c15d1a1cb5da3fab8ee9672852dc16a5a9eeb5baf7d7a9952943cd", size = 13679 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/ad/6f414bb0b36eee20d93af6907256f208ffcda992ae6d3d7b6a778afe31e6/grpcio_status-1.75.1-py3-none-any.whl", hash = "sha256:f681b301be26dcf7abf5c765d4a22e4098765e1a65cbdfa3efca384edf8e4e3c", size = 14428 }, + { url = "https://files.pythonhosted.org/packages/8c/cc/27ba60ad5a5f2067963e6a858743500df408eb5855e98be778eaef8c9b02/grpcio_status-1.76.0-py3-none-any.whl", hash = "sha256:380568794055a8efbbd8871162df92012e0228a5f6dffaf57f2a00c534103b18", size = 14425 }, ] [[package]] @@ -691,51 +690,74 @@ wheels = [ [[package]] name = "jiter" -version = "0.11.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9d/c0/a3bb4cc13aced219dd18191ea66e874266bd8aa7b96744e495e1c733aa2d/jiter-0.11.0.tar.gz", hash = "sha256:1d9637eaf8c1d6a63d6562f2a6e5ab3af946c66037eb1b894e8fad75422266e4", size = 167094 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/b5/3009b112b8f673e568ef79af9863d8309a15f0a8cdcc06ed6092051f377e/jiter-0.11.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:2fb7b377688cc3850bbe5c192a6bd493562a0bc50cbc8b047316428fbae00ada", size = 305510 }, - { url = "https://files.pythonhosted.org/packages/fe/82/15514244e03b9e71e086bbe2a6de3e4616b48f07d5f834200c873956fb8c/jiter-0.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a1b7cbe3f25bd0d8abb468ba4302a5d45617ee61b2a7a638f63fee1dc086be99", size = 316521 }, - { url = "https://files.pythonhosted.org/packages/92/94/7a2e905f40ad2d6d660e00b68d818f9e29fb87ffe82774f06191e93cbe4a/jiter-0.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0a7f0ec81d5b7588c5cade1eb1925b91436ae6726dc2df2348524aeabad5de6", size = 338214 }, - { url = "https://files.pythonhosted.org/packages/a8/9c/5791ed5bdc76f12110158d3316a7a3ec0b1413d018b41c5ed399549d3ad5/jiter-0.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07630bb46ea2a6b9c6ed986c6e17e35b26148cce2c535454b26ee3f0e8dcaba1", size = 361280 }, - { url = "https://files.pythonhosted.org/packages/d4/7f/b7d82d77ff0d2cb06424141000176b53a9e6b16a1125525bb51ea4990c2e/jiter-0.11.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7764f27d28cd4a9cbc61704dfcd80c903ce3aad106a37902d3270cd6673d17f4", size = 487895 }, - { url = "https://files.pythonhosted.org/packages/42/44/10a1475d46f1fc1fd5cc2e82c58e7bca0ce5852208e0fa5df2f949353321/jiter-0.11.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1d4a6c4a737d486f77f842aeb22807edecb4a9417e6700c7b981e16d34ba7c72", size = 378421 }, - { url = "https://files.pythonhosted.org/packages/9a/5f/0dc34563d8164d31d07bc09d141d3da08157a68dcd1f9b886fa4e917805b/jiter-0.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cf408d2a0abd919b60de8c2e7bc5eeab72d4dafd18784152acc7c9adc3291591", size = 347932 }, - { url = "https://files.pythonhosted.org/packages/f7/de/b68f32a4fcb7b4a682b37c73a0e5dae32180140cd1caf11aef6ad40ddbf2/jiter-0.11.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cdef53eda7d18e799625023e1e250dbc18fbc275153039b873ec74d7e8883e09", size = 386959 }, - { url = "https://files.pythonhosted.org/packages/76/0a/c08c92e713b6e28972a846a81ce374883dac2f78ec6f39a0dad9f2339c3a/jiter-0.11.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:53933a38ef7b551dd9c7f1064f9d7bb235bb3168d0fa5f14f0798d1b7ea0d9c5", size = 517187 }, - { url = "https://files.pythonhosted.org/packages/89/b5/4a283bec43b15aad54fcae18d951f06a2ec3f78db5708d3b59a48e9c3fbd/jiter-0.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:11840d2324c9ab5162fc1abba23bc922124fedcff0d7b7f85fffa291e2f69206", size = 509461 }, - { url = "https://files.pythonhosted.org/packages/34/a5/f8bad793010534ea73c985caaeef8cc22dfb1fedb15220ecdf15c623c07a/jiter-0.11.0-cp312-cp312-win32.whl", hash = "sha256:4f01a744d24a5f2bb4a11657a1b27b61dc038ae2e674621a74020406e08f749b", size = 206664 }, - { url = "https://files.pythonhosted.org/packages/ed/42/5823ec2b1469395a160b4bf5f14326b4a098f3b6898fbd327366789fa5d3/jiter-0.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:29fff31190ab3a26de026da2f187814f4b9c6695361e20a9ac2123e4d4378a4c", size = 203520 }, - { url = "https://files.pythonhosted.org/packages/97/c4/d530e514d0f4f29b2b68145e7b389cbc7cac7f9c8c23df43b04d3d10fa3e/jiter-0.11.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4441a91b80a80249f9a6452c14b2c24708f139f64de959943dfeaa6cb915e8eb", size = 305021 }, - { url = "https://files.pythonhosted.org/packages/7a/77/796a19c567c5734cbfc736a6f987affc0d5f240af8e12063c0fb93990ffa/jiter-0.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ff85fc6d2a431251ad82dbd1ea953affb5a60376b62e7d6809c5cd058bb39471", size = 314384 }, - { url = "https://files.pythonhosted.org/packages/14/9c/824334de0b037b91b6f3fa9fe5a191c83977c7ec4abe17795d3cb6d174cf/jiter-0.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5e86126d64706fd28dfc46f910d496923c6f95b395138c02d0e252947f452bd", size = 337389 }, - { url = "https://files.pythonhosted.org/packages/a2/95/ed4feab69e6cf9b2176ea29d4ef9d01a01db210a3a2c8a31a44ecdc68c38/jiter-0.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4ad8bd82165961867a10f52010590ce0b7a8c53da5ddd8bbb62fef68c181b921", size = 360519 }, - { url = "https://files.pythonhosted.org/packages/b5/0c/2ad00f38d3e583caba3909d95b7da1c3a7cd82c0aa81ff4317a8016fb581/jiter-0.11.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b42c2cd74273455ce439fd9528db0c6e84b5623cb74572305bdd9f2f2961d3df", size = 487198 }, - { url = "https://files.pythonhosted.org/packages/ea/8b/919b64cf3499b79bdfba6036da7b0cac5d62d5c75a28fb45bad7819e22f0/jiter-0.11.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f0062dab98172dd0599fcdbf90214d0dcde070b1ff38a00cc1b90e111f071982", size = 377835 }, - { url = "https://files.pythonhosted.org/packages/29/7f/8ebe15b6e0a8026b0d286c083b553779b4dd63db35b43a3f171b544de91d/jiter-0.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb948402821bc76d1f6ef0f9e19b816f9b09f8577844ba7140f0b6afe994bc64", size = 347655 }, - { url = "https://files.pythonhosted.org/packages/8e/64/332127cef7e94ac75719dda07b9a472af6158ba819088d87f17f3226a769/jiter-0.11.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:25a5b1110cca7329fd0daf5060faa1234be5c11e988948e4f1a1923b6a457fe1", size = 386135 }, - { url = "https://files.pythonhosted.org/packages/20/c8/557b63527442f84c14774159948262a9d4fabb0d61166f11568f22fc60d2/jiter-0.11.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:bf11807e802a214daf6c485037778843fadd3e2ec29377ae17e0706ec1a25758", size = 516063 }, - { url = "https://files.pythonhosted.org/packages/86/13/4164c819df4a43cdc8047f9a42880f0ceef5afeb22e8b9675c0528ebdccd/jiter-0.11.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:dbb57da40631c267861dd0090461222060960012d70fd6e4c799b0f62d0ba166", size = 508139 }, - { url = "https://files.pythonhosted.org/packages/fa/70/6e06929b401b331d41ddb4afb9f91cd1168218e3371972f0afa51c9f3c31/jiter-0.11.0-cp313-cp313-win32.whl", hash = "sha256:8e36924dad32c48d3c5e188d169e71dc6e84d6cb8dedefea089de5739d1d2f80", size = 206369 }, - { url = "https://files.pythonhosted.org/packages/f4/0d/8185b8e15de6dce24f6afae63380e16377dd75686d56007baa4f29723ea1/jiter-0.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:452d13e4fd59698408087235259cebe67d9d49173b4dacb3e8d35ce4acf385d6", size = 202538 }, - { url = "https://files.pythonhosted.org/packages/13/3a/d61707803260d59520721fa326babfae25e9573a88d8b7b9cb54c5423a59/jiter-0.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:089f9df9f69532d1339e83142438668f52c97cd22ee2d1195551c2b1a9e6cf33", size = 313737 }, - { url = "https://files.pythonhosted.org/packages/cd/cc/c9f0eec5d00f2a1da89f6bdfac12b8afdf8d5ad974184863c75060026457/jiter-0.11.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29ed1fe69a8c69bf0f2a962d8d706c7b89b50f1332cd6b9fbda014f60bd03a03", size = 346183 }, - { url = "https://files.pythonhosted.org/packages/a6/87/fc632776344e7aabbab05a95a0075476f418c5d29ab0f2eec672b7a1f0ac/jiter-0.11.0-cp313-cp313t-win_amd64.whl", hash = "sha256:a4d71d7ea6ea8786291423fe209acf6f8d398a0759d03e7f24094acb8ab686ba", size = 204225 }, - { url = "https://files.pythonhosted.org/packages/ee/3b/e7f45be7d3969bdf2e3cd4b816a7a1d272507cd0edd2d6dc4b07514f2d9a/jiter-0.11.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:9a6dff27eca70930bdbe4cbb7c1a4ba8526e13b63dc808c0670083d2d51a4a72", size = 304414 }, - { url = "https://files.pythonhosted.org/packages/06/32/13e8e0d152631fcc1907ceb4943711471be70496d14888ec6e92034e2caf/jiter-0.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b1ae2a7593a62132c7d4c2abbee80bbbb94fdc6d157e2c6cc966250c564ef774", size = 314223 }, - { url = "https://files.pythonhosted.org/packages/0c/7e/abedd5b5a20ca083f778d96bba0d2366567fcecb0e6e34ff42640d5d7a18/jiter-0.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b13a431dba4b059e9e43019d3022346d009baf5066c24dcdea321a303cde9f0", size = 337306 }, - { url = "https://files.pythonhosted.org/packages/ac/e2/30d59bdc1204c86aa975ec72c48c482fee6633120ee9c3ab755e4dfefea8/jiter-0.11.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:af62e84ca3889604ebb645df3b0a3f3bcf6b92babbff642bd214616f57abb93a", size = 360565 }, - { url = "https://files.pythonhosted.org/packages/fe/88/567288e0d2ed9fa8f7a3b425fdaf2cb82b998633c24fe0d98f5417321aa8/jiter-0.11.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6f3b32bb723246e6b351aecace52aba78adb8eeb4b2391630322dc30ff6c773", size = 486465 }, - { url = "https://files.pythonhosted.org/packages/18/6e/7b72d09273214cadd15970e91dd5ed9634bee605176107db21e1e4205eb1/jiter-0.11.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:adcab442f4a099a358a7f562eaa54ed6456fb866e922c6545a717be51dbed7d7", size = 377581 }, - { url = "https://files.pythonhosted.org/packages/58/52/4db456319f9d14deed325f70102577492e9d7e87cf7097bda9769a1fcacb/jiter-0.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9967c2ab338ee2b2c0102fd379ec2693c496abf71ffd47e4d791d1f593b68e2", size = 347102 }, - { url = "https://files.pythonhosted.org/packages/ce/b4/433d5703c38b26083aec7a733eb5be96f9c6085d0e270a87ca6482cbf049/jiter-0.11.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e7d0bed3b187af8b47a981d9742ddfc1d9b252a7235471ad6078e7e4e5fe75c2", size = 386477 }, - { url = "https://files.pythonhosted.org/packages/c8/7a/a60bfd9c55b55b07c5c441c5085f06420b6d493ce9db28d069cc5b45d9f3/jiter-0.11.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:f6fe0283e903ebc55f1a6cc569b8c1f3bf4abd026fed85e3ff8598a9e6f982f0", size = 516004 }, - { url = "https://files.pythonhosted.org/packages/2e/46/f8363e5ecc179b4ed0ca6cb0a6d3bfc266078578c71ff30642ea2ce2f203/jiter-0.11.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:4ee5821e3d66606b29ae5b497230b304f1376f38137d69e35f8d2bd5f310ff73", size = 507855 }, - { url = "https://files.pythonhosted.org/packages/90/33/396083357d51d7ff0f9805852c288af47480d30dd31d8abc74909b020761/jiter-0.11.0-cp314-cp314-win32.whl", hash = "sha256:c2d13ba7567ca8799f17c76ed56b1d49be30df996eb7fa33e46b62800562a5e2", size = 205802 }, - { url = "https://files.pythonhosted.org/packages/e7/ab/eb06ca556b2551d41de7d03bf2ee24285fa3d0c58c5f8d95c64c9c3281b1/jiter-0.11.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fb4790497369d134a07fc763cc88888c46f734abdd66f9fdf7865038bf3a8f40", size = 313405 }, - { url = "https://files.pythonhosted.org/packages/af/22/7ab7b4ec3a1c1f03aef376af11d23b05abcca3fb31fbca1e7557053b1ba2/jiter-0.11.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e2bbf24f16ba5ad4441a9845e40e4ea0cb9eed00e76ba94050664ef53ef4406", size = 347102 }, - { url = "https://files.pythonhosted.org/packages/70/f3/ce100253c80063a7b8b406e1d1562657fd4b9b4e1b562db40e68645342fb/jiter-0.11.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:902b43386c04739229076bd1c4c69de5d115553d982ab442a8ae82947c72ede7", size = 336380 }, +version = "0.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/68/0357982493a7b20925aece061f7fb7a2678e3b232f8d73a6edb7e5304443/jiter-0.11.1.tar.gz", hash = "sha256:849dcfc76481c0ea0099391235b7ca97d7279e0fa4c86005457ac7c88e8b76dc", size = 168385 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/8d/a5/489ce64d992c29bccbffabb13961bbb0435e890d7f2d266d1f3df5e917d2/jiter-0.11.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d58faaa936743cd1464540562f60b7ce4fd927e695e8bc31b3da5b914baa9abd", size = 364503 }, + { url = "https://files.pythonhosted.org/packages/d4/c0/e321dd83ee231d05c8fe4b1a12caf1f0e8c7a949bf4724d58397104f10f2/jiter-0.11.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:902640c3103625317291cb73773413b4d71847cdf9383ba65528745ff89f1d14", size = 487092 }, + { url = "https://files.pythonhosted.org/packages/f9/5e/8f24ec49c8d37bd37f34ec0112e0b1a3b4b5a7b456c8efff1df5e189ad43/jiter-0.11.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30405f726e4c2ed487b176c09f8b877a957f535d60c1bf194abb8dadedb5836f", size = 376328 }, + { url = "https://files.pythonhosted.org/packages/7f/70/ded107620e809327cf7050727e17ccfa79d6385a771b7fe38fb31318ef00/jiter-0.11.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3217f61728b0baadd2551844870f65219ac4a1285d5e1a4abddff3d51fdabe96", size = 356632 }, + { url = "https://files.pythonhosted.org/packages/19/53/c26f7251613f6a9079275ee43c89b8a973a95ff27532c421abc2a87afb04/jiter-0.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1364cc90c03a8196f35f396f84029f12abe925415049204446db86598c8b72c", size = 384358 }, + { url = "https://files.pythonhosted.org/packages/84/16/e0f2cc61e9c4d0b62f6c1bd9b9781d878a427656f88293e2a5335fa8ff07/jiter-0.11.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:53a54bf8e873820ab186b2dca9f6c3303f00d65ae5e7b7d6bda1b95aa472d646", size = 517279 }, + { url = "https://files.pythonhosted.org/packages/60/5c/4cd095eaee68961bca3081acbe7c89e12ae24a5dae5fd5d2a13e01ed2542/jiter-0.11.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7e29aca023627b0e0c2392d4248f6414d566ff3974fa08ff2ac8dbb96dfee92a", size = 508276 }, + { url = "https://files.pythonhosted.org/packages/4f/25/f459240e69b0e09a7706d96ce203ad615ca36b0fe832308d2b7123abf2d0/jiter-0.11.1-cp313-cp313-win32.whl", hash = "sha256:f153e31d8bca11363751e875c0a70b3d25160ecbaee7b51e457f14498fb39d8b", size = 205593 }, + { url = "https://files.pythonhosted.org/packages/7c/16/461bafe22bae79bab74e217a09c907481a46d520c36b7b9fe71ee8c9e983/jiter-0.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:f773f84080b667c69c4ea0403fc67bb08b07e2b7ce1ef335dea5868451e60fed", size = 203518 }, + { url = "https://files.pythonhosted.org/packages/7b/72/c45de6e320edb4fa165b7b1a414193b3cae302dd82da2169d315dcc78b44/jiter-0.11.1-cp313-cp313-win_arm64.whl", hash = "sha256:635ecd45c04e4c340d2187bcb1cea204c7cc9d32c1364d251564bf42e0e39c2d", size = 188062 }, + { url = "https://files.pythonhosted.org/packages/65/9b/4a57922437ca8753ef823f434c2dec5028b237d84fa320f06a3ba1aec6e8/jiter-0.11.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d892b184da4d94d94ddb4031296931c74ec8b325513a541ebfd6dfb9ae89904b", size = 313814 }, + { url = "https://files.pythonhosted.org/packages/76/50/62a0683dadca25490a4bedc6a88d59de9af2a3406dd5a576009a73a1d392/jiter-0.11.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa22c223a3041dacb2fcd37c70dfd648b44662b4a48e242592f95bda5ab09d58", size = 344987 }, + { url = "https://files.pythonhosted.org/packages/da/00/2355dbfcbf6cdeaddfdca18287f0f38ae49446bb6378e4a5971e9356fc8a/jiter-0.11.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330e8e6a11ad4980cd66a0f4a3e0e2e0f646c911ce047014f984841924729789", size = 356399 }, + { url = "https://files.pythonhosted.org/packages/c9/07/c2bd748d578fa933d894a55bff33f983bc27f75fc4e491b354bef7b78012/jiter-0.11.1-cp313-cp313t-win_amd64.whl", hash = "sha256:09e2e386ebf298547ca3a3704b729471f7ec666c2906c5c26c1a915ea24741ec", size = 203289 }, + { url = "https://files.pythonhosted.org/packages/e6/ee/ace64a853a1acbd318eb0ca167bad1cf5ee037207504b83a868a5849747b/jiter-0.11.1-cp313-cp313t-win_arm64.whl", hash = "sha256:fe4a431c291157e11cee7c34627990ea75e8d153894365a3bc84b7a959d23ca8", size = 188284 }, + { url = "https://files.pythonhosted.org/packages/8d/00/d6006d069e7b076e4c66af90656b63da9481954f290d5eca8c715f4bf125/jiter-0.11.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:0fa1f70da7a8a9713ff8e5f75ec3f90c0c870be6d526aa95e7c906f6a1c8c676", size = 304624 }, + { url = "https://files.pythonhosted.org/packages/fc/45/4a0e31eb996b9ccfddbae4d3017b46f358a599ccf2e19fbffa5e531bd304/jiter-0.11.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:569ee559e5046a42feb6828c55307cf20fe43308e3ae0d8e9e4f8d8634d99944", size = 315042 }, + { url = "https://files.pythonhosted.org/packages/e7/91/22f5746f5159a28c76acdc0778801f3c1181799aab196dbea2d29e064968/jiter-0.11.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f69955fa1d92e81987f092b233f0be49d4c937da107b7f7dcf56306f1d3fcce9", size = 346357 }, + { url = "https://files.pythonhosted.org/packages/f5/4f/57620857d4e1dc75c8ff4856c90cb6c135e61bff9b4ebfb5dc86814e82d7/jiter-0.11.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:090f4c9d4a825e0fcbd0a2647c9a88a0f366b75654d982d95a9590745ff0c48d", size = 365057 }, + { url = "https://files.pythonhosted.org/packages/ce/34/caf7f9cc8ae0a5bb25a5440cc76c7452d264d1b36701b90fdadd28fe08ec/jiter-0.11.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf3d8cedf9e9d825233e0dcac28ff15c47b7c5512fdfe2e25fd5bbb6e6b0cee", size = 487086 }, + { url = "https://files.pythonhosted.org/packages/50/17/85b5857c329d533d433fedf98804ebec696004a1f88cabad202b2ddc55cf/jiter-0.11.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa9b1958f9c30d3d1a558b75f0626733c60eb9b7774a86b34d88060be1e67fe", size = 376083 }, + { url = "https://files.pythonhosted.org/packages/85/d3/2d9f973f828226e6faebdef034097a2918077ea776fb4d88489949024787/jiter-0.11.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42d1ca16590b768c5e7d723055acd2633908baacb3628dd430842e2e035aa90", size = 357825 }, + { url = "https://files.pythonhosted.org/packages/f4/55/848d4dabf2c2c236a05468c315c2cb9dc736c5915e65449ccecdba22fb6f/jiter-0.11.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5db4c2486a023820b701a17aec9c5a6173c5ba4393f26662f032f2de9c848b0f", size = 383933 }, + { url = "https://files.pythonhosted.org/packages/0b/6c/204c95a4fbb0e26dfa7776c8ef4a878d0c0b215868011cc904bf44f707e2/jiter-0.11.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:4573b78777ccfac954859a6eff45cbd9d281d80c8af049d0f1a3d9fc323d5c3a", size = 517118 }, + { url = "https://files.pythonhosted.org/packages/88/25/09956644ea5a2b1e7a2a0f665cb69a973b28f4621fa61fc0c0f06ff40a31/jiter-0.11.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:7593ac6f40831d7961cb67633c39b9fef6689a211d7919e958f45710504f52d3", size = 508194 }, + { url = "https://files.pythonhosted.org/packages/09/49/4d1657355d7f5c9e783083a03a3f07d5858efa6916a7d9634d07db1c23bd/jiter-0.11.1-cp314-cp314-win32.whl", hash = "sha256:87202ec6ff9626ff5f9351507def98fcf0df60e9a146308e8ab221432228f4ea", size = 203961 }, + { url = "https://files.pythonhosted.org/packages/76/bd/f063bd5cc2712e7ca3cf6beda50894418fc0cfeb3f6ff45a12d87af25996/jiter-0.11.1-cp314-cp314-win_amd64.whl", hash = "sha256:a5dd268f6531a182c89d0dd9a3f8848e86e92dfff4201b77a18e6b98aa59798c", size = 202804 }, + { url = "https://files.pythonhosted.org/packages/52/ca/4d84193dfafef1020bf0bedd5e1a8d0e89cb67c54b8519040effc694964b/jiter-0.11.1-cp314-cp314-win_arm64.whl", hash = "sha256:5d761f863f912a44748a21b5c4979c04252588ded8d1d2760976d2e42cd8d991", size = 188001 }, + { url = "https://files.pythonhosted.org/packages/d5/fa/3b05e5c9d32efc770a8510eeb0b071c42ae93a5b576fd91cee9af91689a1/jiter-0.11.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2cc5a3965285ddc33e0cab933e96b640bc9ba5940cea27ebbbf6695e72d6511c", size = 312561 }, + { url = "https://files.pythonhosted.org/packages/50/d3/335822eb216154ddb79a130cbdce88fdf5c3e2b43dc5dba1fd95c485aaf5/jiter-0.11.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b572b3636a784c2768b2342f36a23078c8d3aa6d8a30745398b1bab58a6f1a8", size = 344551 }, + { url = "https://files.pythonhosted.org/packages/31/6d/a0bed13676b1398f9b3ba61f32569f20a3ff270291161100956a577b2dd3/jiter-0.11.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ad93e3d67a981f96596d65d2298fe8d1aa649deb5374a2fb6a434410ee11915e", size = 363051 }, + { url = "https://files.pythonhosted.org/packages/a4/03/313eda04aa08545a5a04ed5876e52f49ab76a4d98e54578896ca3e16313e/jiter-0.11.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a83097ce379e202dcc3fe3fc71a16d523d1ee9192c8e4e854158f96b3efe3f2f", size = 485897 }, + { url = "https://files.pythonhosted.org/packages/5f/13/a1011b9d325e40b53b1b96a17c010b8646013417f3902f97a86325b19299/jiter-0.11.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7042c51e7fbeca65631eb0c332f90c0c082eab04334e7ccc28a8588e8e2804d9", size = 375224 }, + { url = "https://files.pythonhosted.org/packages/92/da/1b45026b19dd39b419e917165ff0ea629dbb95f374a3a13d2df95e40a6ac/jiter-0.11.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a68d679c0e47649a61df591660507608adc2652442de7ec8276538ac46abe08", size = 356606 }, + { url = "https://files.pythonhosted.org/packages/7a/0c/9acb0e54d6a8ba59ce923a180ebe824b4e00e80e56cefde86cc8e0a948be/jiter-0.11.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a1b0da75dbf4b6ec0b3c9e604d1ee8beaf15bc046fff7180f7d89e3cdbd3bb51", size = 384003 }, + { url = "https://files.pythonhosted.org/packages/3f/2b/e5a5fe09d6da2145e4eed651e2ce37f3c0cf8016e48b1d302e21fb1628b7/jiter-0.11.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:69dd514bf0fa31c62147d6002e5ca2b3e7ef5894f5ac6f0a19752385f4e89437", size = 516946 }, + { url = "https://files.pythonhosted.org/packages/5f/fe/db936e16e0228d48eb81f9934e8327e9fde5185e84f02174fcd22a01be87/jiter-0.11.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:bb31ac0b339efa24c0ca606febd8b77ef11c58d09af1b5f2be4c99e907b11111", size = 507614 }, + { url = "https://files.pythonhosted.org/packages/86/db/c4438e8febfb303486d13c6b72f5eb71cf851e300a0c1f0b4140018dd31f/jiter-0.11.1-cp314-cp314t-win32.whl", hash = "sha256:b2ce0d6156a1d3ad41da3eec63b17e03e296b78b0e0da660876fccfada86d2f7", size = 204043 }, + { url = "https://files.pythonhosted.org/packages/36/59/81badb169212f30f47f817dfaabf965bc9b8204fed906fab58104ee541f9/jiter-0.11.1-cp314-cp314t-win_amd64.whl", hash = "sha256:f4db07d127b54c4a2d43b4cf05ff0193e4f73e0dd90c74037e16df0b29f666e1", size = 204046 }, + { url = "https://files.pythonhosted.org/packages/dd/01/43f7b4eb61db3e565574c4c5714685d042fb652f9eef7e5a3de6aafa943a/jiter-0.11.1-cp314-cp314t-win_arm64.whl", hash = "sha256:28e4fdf2d7ebfc935523e50d1efa3970043cfaa161674fe66f9642409d001dfe", size = 188069 }, + { url = "https://files.pythonhosted.org/packages/9d/51/bd41562dd284e2a18b6dc0a99d195fd4a3560d52ab192c42e56fe0316643/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:e642b5270e61dd02265866398707f90e365b5db2eb65a4f30c789d826682e1f6", size = 306871 }, + { url = "https://files.pythonhosted.org/packages/ba/cb/64e7f21dd357e8cd6b3c919c26fac7fc198385bbd1d85bb3b5355600d787/jiter-0.11.1-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:464ba6d000585e4e2fd1e891f31f1231f497273414f5019e27c00a4b8f7a24ad", size = 301454 }, + { url = "https://files.pythonhosted.org/packages/55/b0/54bdc00da4ef39801b1419a01035bd8857983de984fd3776b0be6b94add7/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:055568693ab35e0bf3a171b03bb40b2dcb10352359e0ab9b5ed0da2bf1eb6f6f", size = 336801 }, + { url = "https://files.pythonhosted.org/packages/de/8f/87176ed071d42e9db415ed8be787ef4ef31a4fa27f52e6a4fbf34387bd28/jiter-0.11.1-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c69ea798d08a915ba4478113efa9e694971e410056392f4526d796f136d3fa", size = 343452 }, + { url = "https://files.pythonhosted.org/packages/a6/bc/950dd7f170c6394b6fdd73f989d9e729bd98907bcc4430ef080a72d06b77/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:0d4d6993edc83cf75e8c6828a8d6ce40a09ee87e38c7bfba6924f39e1337e21d", size = 302626 }, + { url = "https://files.pythonhosted.org/packages/3a/65/43d7971ca82ee100b7b9b520573eeef7eabc0a45d490168ebb9a9b5bb8b2/jiter-0.11.1-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:f78d151c83a87a6cf5461d5ee55bc730dd9ae227377ac6f115b922989b95f838", size = 297034 }, + { url = "https://files.pythonhosted.org/packages/19/4c/000e1e0c0c67e96557a279f8969487ea2732d6c7311698819f977abae837/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9022974781155cd5521d5cb10997a03ee5e31e8454c9d999dcdccd253f2353f", size = 337328 }, + { url = "https://files.pythonhosted.org/packages/d9/71/71408b02c6133153336d29fa3ba53000f1e1a3f78bb2fc2d1a1865d2e743/jiter-0.11.1-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18c77aaa9117510d5bdc6a946baf21b1f0cfa58ef04d31c8d016f206f2118960", size = 343697 }, ] [[package]] @@ -761,45 +783,59 @@ wheels = [ [[package]] name = "langchain" -version = "0.3.27" +version = "1.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, - { name = "langchain-text-splitters" }, - { name = "langsmith" }, + { name = "langgraph" }, { name = "pydantic" }, - { name = "pyyaml" }, - { name = "requests" }, - { name = "sqlalchemy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/f6/f4f7f3a56626fe07e2bb330feb61254dbdf06c506e6b59a536a337da51cf/langchain-0.3.27.tar.gz", hash = "sha256:aa6f1e6274ff055d0fd36254176770f356ed0a8994297d1df47df341953cec62", size = 10233809 } +sdist = { url = "https://files.pythonhosted.org/packages/37/08/1708495e03eadbeef5d51e6b7cdcae4752a113a9b6313f46c70e165149c4/langchain-1.0.3.tar.gz", hash = "sha256:f96d8d185cb8cbba9793f5c648e7d5eeec688f8e3778f700d75d89d6570ae11e", size = 444810 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/d5/4861816a95b2f6993f1360cfb605aacb015506ee2090433a71de9cca8477/langchain-0.3.27-py3-none-any.whl", hash = "sha256:7b20c4f338826acb148d885b20a73a16e410ede9ee4f19bb02011852d5f98798", size = 1018194 }, + { url = "https://files.pythonhosted.org/packages/68/c8/b5dcfdde8b96369e5445f0fbac52fe8495bbd11b23ca83691d90d464eb15/langchain-1.0.3-py3-none-any.whl", hash = "sha256:a7d57964ed16278c991de4ab15516a81937a58c5ac7d7aadccb18431ad8179b2", size = 91970 }, ] [[package]] name = "langchain-anthropic" -version = "0.3.22" +version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anthropic" }, { name = "langchain-core" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b8/ac/4791e4451e1972f80cb517e19d003678239921fc0685a4c4b265fe47e216/langchain_anthropic-0.3.22.tar.gz", hash = "sha256:6c440278bd8012bc94ae341f416bfc724fdc5d2d2b69630fe6e82fa6ee9682ac", size = 471312 } +sdist = { url = "https://files.pythonhosted.org/packages/7e/12/f622dccb2886a9a016e149b74df2a2d9f7f6d6fafee087a010aa7415227e/langchain_anthropic-1.0.1.tar.gz", hash = "sha256:cd4c2f5d5d85d3aba290ea7b9976371d3e25fd58f6d70cfd0ef3323787862edc", size = 667647 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/ac/019fd9d45716a4d74c154f160665074ae49885ff4764c8313737f5fda348/langchain_anthropic-0.3.22-py3-none-any.whl", hash = "sha256:17721b240342a1a3f70bf0b2ff33520ba60d69008e3b9433190a62a52ff87cf6", size = 32592 }, + { url = "https://files.pythonhosted.org/packages/46/2c/2dcbf58526fa59b5464f79b5369a3abd81460ad3b737399cc3fd55bfb0cb/langchain_anthropic-1.0.1-py3-none-any.whl", hash = "sha256:a883f1030c50c2422a57985c0a89b1f49e9e0abe3117d212e510e3b838df7417", size = 46421 }, +] + +[[package]] +name = "langchain-classic" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "langchain-core" }, + { name = "langchain-text-splitters" }, + { name = "langsmith" }, + { name = "pydantic" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/b1/a66babeccb2c05ed89690a534296688c0349bee7a71641e91ecc2afd72fd/langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5", size = 10514930 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/74/246f809a3741c21982f985ca0113ec92d3c84896308561cc4414823f6951/langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33", size = 1040701 }, ] [[package]] name = "langchain-community" -version = "0.3.31" +version = "0.4.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, { name = "dataclasses-json" }, { name = "httpx-sse" }, - { name = "langchain" }, + { name = "langchain-classic" }, { name = "langchain-core" }, { name = "langsmith" }, { name = "numpy" }, @@ -809,14 +845,14 @@ dependencies = [ { name = "sqlalchemy" }, { name = "tenacity" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/49/2ff5354273809e9811392bc24bcffda545a196070666aef27bc6aacf1c21/langchain_community-0.3.31.tar.gz", hash = "sha256:250e4c1041539130f6d6ac6f9386cb018354eafccd917b01a4cff1950b80fd81", size = 33241237 } +sdist = { url = "https://files.pythonhosted.org/packages/53/97/a03585d42b9bdb6fbd935282d6e3348b10322a24e6ce12d0c99eb461d9af/langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85", size = 33241144 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/0a/b8848db67ad7c8d4652cb6f4cb78d49b5b5e6e8e51d695d62025aa3f7dbc/langchain_community-0.3.31-py3-none-any.whl", hash = "sha256:1c727e3ebbacd4d891b07bd440647668001cea3e39cbe732499ad655ec5cb569", size = 2532920 }, + { url = "https://files.pythonhosted.org/packages/f0/a4/c4fde67f193401512337456cabc2148f2c43316e445f5decd9f8806e2992/langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a", size = 2533285 }, ] [[package]] name = "langchain-core" -version = "0.3.79" +version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonpatch" }, @@ -827,27 +863,14 @@ dependencies = [ { name = "tenacity" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c8/99/f926495f467e0f43289f12e951655d267d1eddc1136c3cf4dd907794a9a7/langchain_core-0.3.79.tar.gz", hash = "sha256:024ba54a346dd9b13fb8b2342e0c83d0111e7f26fa01f545ada23ad772b55a60", size = 580895 } +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/fc/71/46b0efaf3fc6ad2c2bd600aef500f1cb2b7038a4042f58905805630dd29d/langchain_core-0.3.79-py3-none-any.whl", hash = "sha256:92045bfda3e741f8018e1356f83be203ec601561c6a7becfefe85be5ddc58fdb", size = 449779 }, -] - -[[package]] -name = "langchain-experimental" -version = "0.3.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "langchain-community" }, - { name = "langchain-core" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/27/56/a8acbb08a03383c28875b3b151e4cefea5612266917fbd6fc3c14c21e172/langchain_experimental-0.3.4.tar.gz", hash = "sha256:937c4259ee4a639c618d19acf0e2c5c2898ef127050346edc5655259aa281a21", size = 140532 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/27/fe8caa4884611286b1f7d6c5cfd76e1fef188faaa946db4fde6daa1cd2cd/langchain_experimental-0.3.4-py3-none-any.whl", hash = "sha256:2e587306aea36b60fa5e5fc05dc7281bee9f60a806f0bf9d30916e0ee096af80", size = 209154 }, + { url = "https://files.pythonhosted.org/packages/52/54/3aed89938a42cf7115575c333647551e35adc380feed651105d2d86c22f5/langchain_core-1.0.2-py3-none-any.whl", hash = "sha256:1f4ab4a41fc2e135e5dd4b97a89af123bbdc535af8f1f0644e8e8801bc288a12", size = 469251 }, ] [[package]] name = "langchain-google-genai" -version = "2.1.12" +version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filetype" }, @@ -855,40 +878,40 @@ dependencies = [ { name = "langchain-core" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/09/38/8b3a71c729bd03e9eb0fd8bdb19e06a074c35bc2eaa61b1b9edfa863f38d/langchain_google_genai-2.1.12.tar.gz", hash = "sha256:4a98371e545eb97fcdf483086a4aebbb8eceeb9597ca5a9c4c35e92f4fbbd271", size = 77566 } +sdist = { url = "https://files.pythonhosted.org/packages/43/31/d8da49fe51fffb44b2359691d1677f449ccdb01d30d03b441dca80a00b8d/langchain_google_genai-3.0.0.tar.gz", hash = "sha256:31331acd6fd90fcb466da7f79c6eb0d5335ec11aea99c97022ac329a735db4a7", size = 91632 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/8d/9dd9653e5414e73cae3480e5947bbbbd94ba7fa824efdf46e7ff2c0faef2/langchain_google_genai-2.1.12-py3-none-any.whl", hash = "sha256:4c07630419a8fbe7a2ec512c6dea68289663bfe7d5fae0ba431d2cd59a0d0880", size = 50746 }, + { url = "https://files.pythonhosted.org/packages/ec/9d/bf0a4335f9df912e722fce34fb83aeb2c44e937dcb1d60afaae959b9abfc/langchain_google_genai-3.0.0-py3-none-any.whl", hash = "sha256:b26909a30c5c4cd8b5d634d8feafc1ec0c2583726b4cf747d732d7ad2c080ee7", size = 57783 }, ] [[package]] name = "langchain-openai" -version = "0.3.35" +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/fb/96/06d0d25a37e05a0ff2d918f0a4b0bf0732aed6a43b472b0b68426ce04ef8/langchain_openai-0.3.35.tar.gz", hash = "sha256:fa985fd041c3809da256a040c98e8a43e91c6d165b96dcfeb770d8bd457bf76f", size = 786635 } +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/d8/d5/c90c5478215c20ee71d8feaf676f7ffd78d0568f8c98bd83f81ce7562ed7/langchain_openai-0.3.35-py3-none-any.whl", hash = "sha256:76d5707e6e81fd461d33964ad618bd326cb661a1975cef7c1cb0703576bdada5", size = 75952 }, + { url = "https://files.pythonhosted.org/packages/62/c0/06d74093e3e798eb464ef76f53d031235b87feccdadbbf6f7b8409043e4d/langchain_openai-1.0.1-py3-none-any.whl", hash = "sha256:9b61309a7268e7c1c614c554cfd66401519e7434aaefc52de7e251887aceb5f7", size = 81898 }, ] [[package]] name = "langchain-text-splitters" -version = "0.3.11" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/11/43/dcda8fd25f0b19cb2835f2f6bb67f26ad58634f04ac2d8eae00526b0fa55/langchain_text_splitters-0.3.11.tar.gz", hash = "sha256:7a50a04ada9a133bbabb80731df7f6ddac51bc9f1b9cab7fa09304d71d38a6cc", size = 46458 } +sdist = { url = "https://files.pythonhosted.org/packages/fa/2e/c833dcc379c1c086453708ef5eef7d4d1f808559ca4458bd6569d5d83ad7/langchain_text_splitters-1.0.0.tar.gz", hash = "sha256:d8580a20ad7ed10b432feb273e5758b2cc0902d094919629cec0e1ad691a6744", size = 264257 } wheels = [ - { url = "https://files.pythonhosted.org/packages/58/0d/41a51b40d24ff0384ec4f7ab8dd3dcea8353c05c973836b5e289f1465d4f/langchain_text_splitters-0.3.11-py3-none-any.whl", hash = "sha256:cf079131166a487f1372c8ab5d0bfaa6c0a4291733d9c43a34a16ac9bcd6a393", size = 33845 }, + { url = "https://files.pythonhosted.org/packages/1e/97/d362353ab04f865af6f81d4d46e7aa428734aa032de0017934b771fc34b7/langchain_text_splitters-1.0.0-py3-none-any.whl", hash = "sha256:f00c8219d3468f2c5bd951b708b6a7dd9bc3c62d0cfb83124c377f7170f33b2e", size = 33851 }, ] [[package]] name = "langgraph" -version = "0.6.10" +version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, @@ -898,35 +921,35 @@ dependencies = [ { name = "pydantic" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e2/9c/bc34cf47e7a8845f9abe5a09cf6ed892162b899708fae5c59252fa44ed24/langgraph-0.6.10.tar.gz", hash = "sha256:37457595ef3becebca94b3c4711a8bcd539b5eae7560f2cec409eae0d8113c59", size = 492079 } +sdist = { url = "https://files.pythonhosted.org/packages/0e/25/18e6e056ee1a8af64fcab441b4a3f2e158399935b08f148c7718fc42ecdb/langgraph-1.0.2.tar.gz", hash = "sha256:dae1af08d6025cb1fcaed68f502c01af7d634d9044787c853a46c791cfc52f67", size = 482660 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/75/c2972a484581389b5c193f16e8e36531e6574b280f23700735b0d6729365/langgraph-0.6.10-py3-none-any.whl", hash = "sha256:b16baacd38895f6f4aa51e03b8a5b5f8695cff96fd0e8b637b725186ea27237c", size = 155422 }, + { url = "https://files.pythonhosted.org/packages/d7/b1/9f4912e13d4ed691f2685c8a4b764b5a9237a30cca0c5782bc213d9f0a9a/langgraph-1.0.2-py3-none-any.whl", hash = "sha256:b3d56b8c01de857b5fb1da107e8eab6e30512a377685eeedb4f76456724c9729", size = 156751 }, ] [[package]] name = "langgraph-checkpoint" -version = "2.1.2" +version = "3.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "ormsgpack" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/29/83/6404f6ed23a91d7bc63d7df902d144548434237d017820ceaa8d014035f2/langgraph_checkpoint-2.1.2.tar.gz", hash = "sha256:112e9d067a6eff8937caf198421b1ffba8d9207193f14ac6f89930c1260c06f9", size = 142420 } +sdist = { url = "https://files.pythonhosted.org/packages/b7/cb/2a6dad2f0a14317580cc122e2a60e7f0ecabb50aaa6dc5b7a6a2c94cead7/langgraph_checkpoint-3.0.0.tar.gz", hash = "sha256:f738695ad938878d8f4775d907d9629e9fcd345b1950196effb08f088c52369e", size = 132132 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/f2/06bf5addf8ee664291e1b9ffa1f28fc9d97e59806dc7de5aea9844cbf335/langgraph_checkpoint-2.1.2-py3-none-any.whl", hash = "sha256:911ebffb069fd01775d4b5184c04aaafc2962fcdf50cf49d524cd4367c4d0c60", size = 45763 }, + { url = "https://files.pythonhosted.org/packages/85/2a/2efe0b5a72c41e3a936c81c5f5d8693987a1b260287ff1bbebaae1b7b888/langgraph_checkpoint-3.0.0-py3-none-any.whl", hash = "sha256:560beb83e629784ab689212a3d60834fb3196b4bbe1d6ac18e5cad5d85d46010", size = 46060 }, ] [[package]] name = "langgraph-prebuilt" -version = "0.6.4" +version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "langgraph-checkpoint" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d6/21/9b198d11732101ee8cdf30af98d0b4f11254c768de15173e57f5260fd14b/langgraph_prebuilt-0.6.4.tar.gz", hash = "sha256:e9e53b906ee5df46541d1dc5303239e815d3ec551e52bb03dd6463acc79ec28f", size = 125695 } +sdist = { url = "https://files.pythonhosted.org/packages/33/2f/b940590436e07b3450fe6d791aad5e581363ad536c4f1771e3ba46530268/langgraph_prebuilt-1.0.2.tar.gz", hash = "sha256:9896dbabf04f086eb59df4294f54ab5bdb21cd78e27e0a10e695dffd1cc6097d", size = 142075 } wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/7f/973b0d9729d9693d6e5b4bc5f3ae41138d194cb7b16b0ed230020beeb13a/langgraph_prebuilt-0.6.4-py3-none-any.whl", hash = "sha256:819f31d88b84cb2729ff1b79db2d51e9506b8fb7aaacfc0d359d4fe16e717344", size = 28025 }, + { url = "https://files.pythonhosted.org/packages/27/2f/9a7d00d4afa036e65294059c7c912002fb72ba5dbbd5c2a871ca06360278/langgraph_prebuilt-1.0.2-py3-none-any.whl", hash = "sha256:d9499f7c449fb637ee7b87e3f6a3b74095f4202053c74d33894bd839ea4c57c7", size = 34286 }, ] [[package]] @@ -944,7 +967,7 @@ wheels = [ [[package]] name = "langsmith" -version = "0.4.35" +version = "0.4.39" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx" }, @@ -955,9 +978,9 @@ dependencies = [ { name = "requests-toolbelt" }, { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f4/e4/937e20de425eea337c275475d5283402c31284f79c37016c8d6e8a08c5bd/langsmith-0.4.35.tar.gz", hash = "sha256:de589346911ed2bfeb92de9f634a7090efb8961a0c842fd1fb17c75ceefa5be7", size = 966172 } +sdist = { url = "https://files.pythonhosted.org/packages/a7/67/cf7c22d2744286f872aacee2ac13928c46e2ba5d486514d60cd4ab59f58d/langsmith-0.4.39.tar.gz", hash = "sha256:8f2e6bae5cba88f86d8df2a4f95b20a319c65e9945be639302876ab6ef2f13e0", size = 943095 } wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/a9/40cfd19ab7f2c2737d94d1bd6cb3dc3da85232705d7a563044397d0479e8/langsmith-0.4.35-py3-none-any.whl", hash = "sha256:3c3e6ec236e31099c0be175918d21a342cdb87df35138051205da726b9058b8e", size = 387139 }, + { url = "https://files.pythonhosted.org/packages/1f/38/9a97f650b8cdb2ba0356d65aef9239f4a30db69ae44c30daa2cf8dd3f350/langsmith-0.4.39-py3-none-any.whl", hash = "sha256:48872eaaa449fc10781b5251f4fc05bc7d5c2d1d733a734566a96dd9166108b4", size = 397767 }, ] [[package]] @@ -1082,70 +1105,70 @@ wheels = [ [[package]] name = "numpy" -version = "2.3.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d0/19/95b3d357407220ed24c139018d2518fab0a61a948e68286a25f1a4d049ff/numpy-2.3.3.tar.gz", hash = "sha256:ddc7c39727ba62b80dfdbedf400d1c10ddfa8eefbd7ec8dcb118be8b56d31029", size = 20576648 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/51/5d/bb7fc075b762c96329147799e1bcc9176ab07ca6375ea976c475482ad5b3/numpy-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cfdd09f9c84a1a934cde1eec2267f0a43a7cd44b2cca4ff95b7c0d14d144b0bf", size = 20957014 }, - { url = "https://files.pythonhosted.org/packages/6b/0e/c6211bb92af26517acd52125a237a92afe9c3124c6a68d3b9f81b62a0568/numpy-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cb32e3cf0f762aee47ad1ddc6672988f7f27045b0783c887190545baba73aa25", size = 14185220 }, - { url = "https://files.pythonhosted.org/packages/22/f2/07bb754eb2ede9073f4054f7c0286b0d9d2e23982e090a80d478b26d35ca/numpy-2.3.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:396b254daeb0a57b1fe0ecb5e3cff6fa79a380fa97c8f7781a6d08cd429418fe", size = 5113918 }, - { url = "https://files.pythonhosted.org/packages/81/0a/afa51697e9fb74642f231ea36aca80fa17c8fb89f7a82abd5174023c3960/numpy-2.3.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:067e3d7159a5d8f8a0b46ee11148fc35ca9b21f61e3c49fbd0a027450e65a33b", size = 6647922 }, - { url = "https://files.pythonhosted.org/packages/5d/f5/122d9cdb3f51c520d150fef6e87df9279e33d19a9611a87c0d2cf78a89f4/numpy-2.3.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c02d0629d25d426585fb2e45a66154081b9fa677bc92a881ff1d216bc9919a8", size = 14281991 }, - { url = "https://files.pythonhosted.org/packages/51/64/7de3c91e821a2debf77c92962ea3fe6ac2bc45d0778c1cbe15d4fce2fd94/numpy-2.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9192da52b9745f7f0766531dcfa978b7763916f158bb63bdb8a1eca0068ab20", size = 16641643 }, - { url = "https://files.pythonhosted.org/packages/30/e4/961a5fa681502cd0d68907818b69f67542695b74e3ceaa513918103b7e80/numpy-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cd7de500a5b66319db419dc3c345244404a164beae0d0937283b907d8152e6ea", size = 16056787 }, - { url = "https://files.pythonhosted.org/packages/99/26/92c912b966e47fbbdf2ad556cb17e3a3088e2e1292b9833be1dfa5361a1a/numpy-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:93d4962d8f82af58f0b2eb85daaf1b3ca23fe0a85d0be8f1f2b7bb46034e56d7", size = 18579598 }, - { url = "https://files.pythonhosted.org/packages/17/b6/fc8f82cb3520768718834f310c37d96380d9dc61bfdaf05fe5c0b7653e01/numpy-2.3.3-cp312-cp312-win32.whl", hash = "sha256:5534ed6b92f9b7dca6c0a19d6df12d41c68b991cef051d108f6dbff3babc4ebf", size = 6320800 }, - { url = "https://files.pythonhosted.org/packages/32/ee/de999f2625b80d043d6d2d628c07d0d5555a677a3cf78fdf868d409b8766/numpy-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:497d7cad08e7092dba36e3d296fe4c97708c93daf26643a1ae4b03f6294d30eb", size = 12786615 }, - { url = "https://files.pythonhosted.org/packages/49/6e/b479032f8a43559c383acb20816644f5f91c88f633d9271ee84f3b3a996c/numpy-2.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:ca0309a18d4dfea6fc6262a66d06c26cfe4640c3926ceec90e57791a82b6eee5", size = 10195936 }, - { url = "https://files.pythonhosted.org/packages/7d/b9/984c2b1ee61a8b803bf63582b4ac4242cf76e2dbd663efeafcb620cc0ccb/numpy-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f5415fb78995644253370985342cd03572ef8620b934da27d77377a2285955bf", size = 20949588 }, - { url = "https://files.pythonhosted.org/packages/a6/e4/07970e3bed0b1384d22af1e9912527ecbeb47d3b26e9b6a3bced068b3bea/numpy-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7", size = 14177802 }, - { url = "https://files.pythonhosted.org/packages/35/c7/477a83887f9de61f1203bad89cf208b7c19cc9fef0cebef65d5a1a0619f2/numpy-2.3.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9dc13c6a5829610cc07422bc74d3ac083bd8323f14e2827d992f9e52e22cd6a6", size = 5106537 }, - { url = "https://files.pythonhosted.org/packages/52/47/93b953bd5866a6f6986344d045a207d3f1cfbad99db29f534ea9cee5108c/numpy-2.3.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:d79715d95f1894771eb4e60fb23f065663b2298f7d22945d66877aadf33d00c7", size = 6640743 }, - { url = "https://files.pythonhosted.org/packages/23/83/377f84aaeb800b64c0ef4de58b08769e782edcefa4fea712910b6f0afd3c/numpy-2.3.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:952cfd0748514ea7c3afc729a0fc639e61655ce4c55ab9acfab14bda4f402b4c", size = 14278881 }, - { url = "https://files.pythonhosted.org/packages/9a/a5/bf3db6e66c4b160d6ea10b534c381a1955dfab34cb1017ea93aa33c70ed3/numpy-2.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b83648633d46f77039c29078751f80da65aa64d5622a3cd62aaef9d835b6c93", size = 16636301 }, - { url = "https://files.pythonhosted.org/packages/a2/59/1287924242eb4fa3f9b3a2c30400f2e17eb2707020d1c5e3086fe7330717/numpy-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b001bae8cea1c7dfdb2ae2b017ed0a6f2102d7a70059df1e338e307a4c78a8ae", size = 16053645 }, - { url = "https://files.pythonhosted.org/packages/e6/93/b3d47ed882027c35e94ac2320c37e452a549f582a5e801f2d34b56973c97/numpy-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e9aced64054739037d42fb84c54dd38b81ee238816c948c8f3ed134665dcd86", size = 18578179 }, - { url = "https://files.pythonhosted.org/packages/20/d9/487a2bccbf7cc9d4bfc5f0f197761a5ef27ba870f1e3bbb9afc4bbe3fcc2/numpy-2.3.3-cp313-cp313-win32.whl", hash = "sha256:9591e1221db3f37751e6442850429b3aabf7026d3b05542d102944ca7f00c8a8", size = 6312250 }, - { url = "https://files.pythonhosted.org/packages/1b/b5/263ebbbbcede85028f30047eab3d58028d7ebe389d6493fc95ae66c636ab/numpy-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f0dadeb302887f07431910f67a14d57209ed91130be0adea2f9793f1a4f817cf", size = 12783269 }, - { url = "https://files.pythonhosted.org/packages/fa/75/67b8ca554bbeaaeb3fac2e8bce46967a5a06544c9108ec0cf5cece559b6c/numpy-2.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:3c7cf302ac6e0b76a64c4aecf1a09e51abd9b01fc7feee80f6c43e3ab1b1dbc5", size = 10195314 }, - { url = "https://files.pythonhosted.org/packages/11/d0/0d1ddec56b162042ddfafeeb293bac672de9b0cfd688383590090963720a/numpy-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:eda59e44957d272846bb407aad19f89dc6f58fecf3504bd144f4c5cf81a7eacc", size = 21048025 }, - { url = "https://files.pythonhosted.org/packages/36/9e/1996ca6b6d00415b6acbdd3c42f7f03ea256e2c3f158f80bd7436a8a19f3/numpy-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:823d04112bc85ef5c4fda73ba24e6096c8f869931405a80aa8b0e604510a26bc", size = 14301053 }, - { url = "https://files.pythonhosted.org/packages/05/24/43da09aa764c68694b76e84b3d3f0c44cb7c18cdc1ba80e48b0ac1d2cd39/numpy-2.3.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:40051003e03db4041aa325da2a0971ba41cf65714e65d296397cc0e32de6018b", size = 5229444 }, - { url = "https://files.pythonhosted.org/packages/bc/14/50ffb0f22f7218ef8af28dd089f79f68289a7a05a208db9a2c5dcbe123c1/numpy-2.3.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ee9086235dd6ab7ae75aba5662f582a81ced49f0f1c6de4260a78d8f2d91a19", size = 6738039 }, - { url = "https://files.pythonhosted.org/packages/55/52/af46ac0795e09657d45a7f4db961917314377edecf66db0e39fa7ab5c3d3/numpy-2.3.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94fcaa68757c3e2e668ddadeaa86ab05499a70725811e582b6a9858dd472fb30", size = 14352314 }, - { url = "https://files.pythonhosted.org/packages/a7/b1/dc226b4c90eb9f07a3fff95c2f0db3268e2e54e5cce97c4ac91518aee71b/numpy-2.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da1a74b90e7483d6ce5244053399a614b1d6b7bc30a60d2f570e5071f8959d3e", size = 16701722 }, - { url = "https://files.pythonhosted.org/packages/9d/9d/9d8d358f2eb5eced14dba99f110d83b5cd9a4460895230f3b396ad19a323/numpy-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2990adf06d1ecee3b3dcbb4977dfab6e9f09807598d647f04d385d29e7a3c3d3", size = 16132755 }, - { url = "https://files.pythonhosted.org/packages/b6/27/b3922660c45513f9377b3fb42240bec63f203c71416093476ec9aa0719dc/numpy-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ed635ff692483b8e3f0fcaa8e7eb8a75ee71aa6d975388224f70821421800cea", size = 18651560 }, - { url = "https://files.pythonhosted.org/packages/5b/8e/3ab61a730bdbbc201bb245a71102aa609f0008b9ed15255500a99cd7f780/numpy-2.3.3-cp313-cp313t-win32.whl", hash = "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", size = 6442776 }, - { url = "https://files.pythonhosted.org/packages/1c/3a/e22b766b11f6030dc2decdeff5c2fb1610768055603f9f3be88b6d192fb2/numpy-2.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", size = 12927281 }, - { url = "https://files.pythonhosted.org/packages/7b/42/c2e2bc48c5e9b2a83423f99733950fbefd86f165b468a3d85d52b30bf782/numpy-2.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", size = 10265275 }, - { url = "https://files.pythonhosted.org/packages/6b/01/342ad585ad82419b99bcf7cebe99e61da6bedb89e213c5fd71acc467faee/numpy-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", size = 20951527 }, - { url = "https://files.pythonhosted.org/packages/ef/d8/204e0d73fc1b7a9ee80ab1fe1983dd33a4d64a4e30a05364b0208e9a241a/numpy-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", size = 14186159 }, - { url = "https://files.pythonhosted.org/packages/22/af/f11c916d08f3a18fb8ba81ab72b5b74a6e42ead4c2846d270eb19845bf74/numpy-2.3.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", size = 5114624 }, - { url = "https://files.pythonhosted.org/packages/fb/11/0ed919c8381ac9d2ffacd63fd1f0c34d27e99cab650f0eb6f110e6ae4858/numpy-2.3.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", size = 6642627 }, - { url = "https://files.pythonhosted.org/packages/ee/83/deb5f77cb0f7ba6cb52b91ed388b47f8f3c2e9930d4665c600408d9b90b9/numpy-2.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", size = 14296926 }, - { url = "https://files.pythonhosted.org/packages/77/cc/70e59dcb84f2b005d4f306310ff0a892518cc0c8000a33d0e6faf7ca8d80/numpy-2.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", size = 16638958 }, - { url = "https://files.pythonhosted.org/packages/b6/5a/b2ab6c18b4257e099587d5b7f903317bd7115333ad8d4ec4874278eafa61/numpy-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", size = 16071920 }, - { url = "https://files.pythonhosted.org/packages/b8/f1/8b3fdc44324a259298520dd82147ff648979bed085feeacc1250ef1656c0/numpy-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", size = 18577076 }, - { url = "https://files.pythonhosted.org/packages/f0/a1/b87a284fb15a42e9274e7fcea0dad259d12ddbf07c1595b26883151ca3b4/numpy-2.3.3-cp314-cp314-win32.whl", hash = "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", size = 6366952 }, - { url = "https://files.pythonhosted.org/packages/70/5f/1816f4d08f3b8f66576d8433a66f8fa35a5acfb3bbd0bf6c31183b003f3d/numpy-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", size = 12919322 }, - { url = "https://files.pythonhosted.org/packages/8c/de/072420342e46a8ea41c324a555fa90fcc11637583fb8df722936aed1736d/numpy-2.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", size = 10478630 }, - { url = "https://files.pythonhosted.org/packages/d5/df/ee2f1c0a9de7347f14da5dd3cd3c3b034d1b8607ccb6883d7dd5c035d631/numpy-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", size = 21047987 }, - { url = "https://files.pythonhosted.org/packages/d6/92/9453bdc5a4e9e69cf4358463f25e8260e2ffc126d52e10038b9077815989/numpy-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", size = 14301076 }, - { url = "https://files.pythonhosted.org/packages/13/77/1447b9eb500f028bb44253105bd67534af60499588a5149a94f18f2ca917/numpy-2.3.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", size = 5229491 }, - { url = "https://files.pythonhosted.org/packages/3d/f9/d72221b6ca205f9736cb4b2ce3b002f6e45cd67cd6a6d1c8af11a2f0b649/numpy-2.3.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", size = 6737913 }, - { url = "https://files.pythonhosted.org/packages/3c/5f/d12834711962ad9c46af72f79bb31e73e416ee49d17f4c797f72c96b6ca5/numpy-2.3.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", size = 14352811 }, - { url = "https://files.pythonhosted.org/packages/a1/0d/fdbec6629d97fd1bebed56cd742884e4eead593611bbe1abc3eb40d304b2/numpy-2.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", size = 16702689 }, - { url = "https://files.pythonhosted.org/packages/9b/09/0a35196dc5575adde1eb97ddfbc3e1687a814f905377621d18ca9bc2b7dd/numpy-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", size = 16133855 }, - { url = "https://files.pythonhosted.org/packages/7a/ca/c9de3ea397d576f1b6753eaa906d4cdef1bf97589a6d9825a349b4729cc2/numpy-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", size = 18652520 }, - { url = "https://files.pythonhosted.org/packages/fd/c2/e5ed830e08cd0196351db55db82f65bc0ab05da6ef2b72a836dcf1936d2f/numpy-2.3.3-cp314-cp314t-win32.whl", hash = "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", size = 6515371 }, - { url = "https://files.pythonhosted.org/packages/47/c7/b0f6b5b67f6788a0725f744496badbb604d226bf233ba716683ebb47b570/numpy-2.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", size = 13112576 }, - { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953 }, +version = "2.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/098d2270d52b41f1bd7db9fc288aaa0400cb48c2a3e2af6fa365d9720947/numpy-2.3.4.tar.gz", hash = "sha256:a7d018bfedb375a8d979ac758b120ba846a7fe764911a64465fd87b8729f4a6a", size = 20582187 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/c2/cd/8428e23a9fcebd33988f4cb61208fda832800ca03781f471f3727a820704/numpy-2.3.4-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:043885b4f7e6e232d7df4f51ffdef8c36320ee9d5f227b380ea636722c7ed12e", size = 6641438 }, + { url = "https://files.pythonhosted.org/packages/3e/d1/913fe563820f3c6b079f992458f7331278dcd7ba8427e8e745af37ddb44f/numpy-2.3.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4ee6a571d1e4f0ea6d5f22d6e5fbd6ed1dc2b18542848e1e7301bd190500c9d7", size = 14281290 }, + { url = "https://files.pythonhosted.org/packages/9e/7e/7d306ff7cb143e6d975cfa7eb98a93e73495c4deabb7d1b5ecf09ea0fd69/numpy-2.3.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fc8a63918b04b8571789688b2780ab2b4a33ab44bfe8ccea36d3eba51228c953", size = 16636543 }, + { url = "https://files.pythonhosted.org/packages/47/6a/8cfc486237e56ccfb0db234945552a557ca266f022d281a2f577b98e955c/numpy-2.3.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:40cc556d5abbc54aabe2b1ae287042d7bdb80c08edede19f0c0afb36ae586f37", size = 16056117 }, + { url = "https://files.pythonhosted.org/packages/b1/0e/42cb5e69ea901e06ce24bfcc4b5664a56f950a70efdcf221f30d9615f3f3/numpy-2.3.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ecb63014bb7f4ce653f8be7f1df8cbc6093a5a2811211770f6606cc92b5a78fd", size = 18577788 }, + { url = "https://files.pythonhosted.org/packages/86/92/41c3d5157d3177559ef0a35da50f0cda7fa071f4ba2306dd36818591a5bc/numpy-2.3.4-cp313-cp313-win32.whl", hash = "sha256:e8370eb6925bb8c1c4264fec52b0384b44f675f191df91cbe0140ec9f0955646", size = 6282620 }, + { url = "https://files.pythonhosted.org/packages/09/97/fd421e8bc50766665ad35536c2bb4ef916533ba1fdd053a62d96cc7c8b95/numpy-2.3.4-cp313-cp313-win_amd64.whl", hash = "sha256:56209416e81a7893036eea03abcb91c130643eb14233b2515c90dcac963fe99d", size = 12784672 }, + { url = "https://files.pythonhosted.org/packages/ad/df/5474fb2f74970ca8eb978093969b125a84cc3d30e47f82191f981f13a8a0/numpy-2.3.4-cp313-cp313-win_arm64.whl", hash = "sha256:a700a4031bc0fd6936e78a752eefb79092cecad2599ea9c8039c548bc097f9bc", size = 10196702 }, + { url = "https://files.pythonhosted.org/packages/11/83/66ac031464ec1767ea3ed48ce40f615eb441072945e98693bec0bcd056cc/numpy-2.3.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:86966db35c4040fdca64f0816a1c1dd8dbd027d90fca5a57e00e1ca4cd41b879", size = 21049003 }, + { url = "https://files.pythonhosted.org/packages/5f/99/5b14e0e686e61371659a1d5bebd04596b1d72227ce36eed121bb0aeab798/numpy-2.3.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:838f045478638b26c375ee96ea89464d38428c69170360b23a1a50fa4baa3562", size = 14302980 }, + { url = "https://files.pythonhosted.org/packages/2c/44/e9486649cd087d9fc6920e3fc3ac2aba10838d10804b1e179fb7cbc4e634/numpy-2.3.4-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d7315ed1dab0286adca467377c8381cd748f3dc92235f22a7dfc42745644a96a", size = 5231472 }, + { url = "https://files.pythonhosted.org/packages/3e/51/902b24fa8887e5fe2063fd61b1895a476d0bbf46811ab0c7fdf4bd127345/numpy-2.3.4-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:84f01a4d18b2cc4ade1814a08e5f3c907b079c847051d720fad15ce37aa930b6", size = 6739342 }, + { url = "https://files.pythonhosted.org/packages/34/f1/4de9586d05b1962acdcdb1dc4af6646361a643f8c864cef7c852bf509740/numpy-2.3.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:817e719a868f0dacde4abdfc5c1910b301877970195db9ab6a5e2c4bd5b121f7", size = 14354338 }, + { url = "https://files.pythonhosted.org/packages/1f/06/1c16103b425de7969d5a76bdf5ada0804b476fed05d5f9e17b777f1cbefd/numpy-2.3.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85e071da78d92a214212cacea81c6da557cab307f2c34b5f85b628e94803f9c0", size = 16702392 }, + { url = "https://files.pythonhosted.org/packages/34/b2/65f4dc1b89b5322093572b6e55161bb42e3e0487067af73627f795cc9d47/numpy-2.3.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2ec646892819370cf3558f518797f16597b4e4669894a2ba712caccc9da53f1f", size = 16134998 }, + { url = "https://files.pythonhosted.org/packages/d4/11/94ec578896cdb973aaf56425d6c7f2aff4186a5c00fac15ff2ec46998b46/numpy-2.3.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:035796aaaddfe2f9664b9a9372f089cfc88bd795a67bd1bfe15e6e770934cf64", size = 18651574 }, + { url = "https://files.pythonhosted.org/packages/62/b7/7efa763ab33dbccf56dade36938a77345ce8e8192d6b39e470ca25ff3cd0/numpy-2.3.4-cp313-cp313t-win32.whl", hash = "sha256:fea80f4f4cf83b54c3a051f2f727870ee51e22f0248d3114b8e755d160b38cfb", size = 6413135 }, + { url = "https://files.pythonhosted.org/packages/43/70/aba4c38e8400abcc2f345e13d972fb36c26409b3e644366db7649015f291/numpy-2.3.4-cp313-cp313t-win_amd64.whl", hash = "sha256:15eea9f306b98e0be91eb344a94c0e630689ef302e10c2ce5f7e11905c704f9c", size = 12928582 }, + { url = "https://files.pythonhosted.org/packages/67/63/871fad5f0073fc00fbbdd7232962ea1ac40eeaae2bba66c76214f7954236/numpy-2.3.4-cp313-cp313t-win_arm64.whl", hash = "sha256:b6c231c9c2fadbae4011ca5e7e83e12dc4a5072f1a1d85a0a7b3ed754d145a40", size = 10266691 }, + { url = "https://files.pythonhosted.org/packages/72/71/ae6170143c115732470ae3a2d01512870dd16e0953f8a6dc89525696069b/numpy-2.3.4-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:81c3e6d8c97295a7360d367f9f8553973651b76907988bb6066376bc2252f24e", size = 20955580 }, + { url = "https://files.pythonhosted.org/packages/af/39/4be9222ffd6ca8a30eda033d5f753276a9c3426c397bb137d8e19dedd200/numpy-2.3.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7c26b0b2bf58009ed1f38a641f3db4be8d960a417ca96d14e5b06df1506d41ff", size = 14188056 }, + { url = "https://files.pythonhosted.org/packages/6c/3d/d85f6700d0a4aa4f9491030e1021c2b2b7421b2b38d01acd16734a2bfdc7/numpy-2.3.4-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:62b2198c438058a20b6704351b35a1d7db881812d8512d67a69c9de1f18ca05f", size = 5116555 }, + { url = "https://files.pythonhosted.org/packages/bf/04/82c1467d86f47eee8a19a464c92f90a9bb68ccf14a54c5224d7031241ffb/numpy-2.3.4-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:9d729d60f8d53a7361707f4b68a9663c968882dd4f09e0d58c044c8bf5faee7b", size = 6643581 }, + { url = "https://files.pythonhosted.org/packages/0c/d3/c79841741b837e293f48bd7db89d0ac7a4f2503b382b78a790ef1dc778a5/numpy-2.3.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bd0c630cf256b0a7fd9d0a11c9413b42fef5101219ce6ed5a09624f5a65392c7", size = 14299186 }, + { url = "https://files.pythonhosted.org/packages/e8/7e/4a14a769741fbf237eec5a12a2cbc7a4c4e061852b6533bcb9e9a796c908/numpy-2.3.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d5e081bc082825f8b139f9e9fe42942cb4054524598aaeb177ff476cc76d09d2", size = 16638601 }, + { url = "https://files.pythonhosted.org/packages/93/87/1c1de269f002ff0a41173fe01dcc925f4ecff59264cd8f96cf3b60d12c9b/numpy-2.3.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:15fb27364ed84114438fff8aaf998c9e19adbeba08c0b75409f8c452a8692c52", size = 16074219 }, + { url = "https://files.pythonhosted.org/packages/cd/28/18f72ee77408e40a76d691001ae599e712ca2a47ddd2c4f695b16c65f077/numpy-2.3.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:85d9fb2d8cd998c84d13a79a09cc0c1091648e848e4e6249b0ccd7f6b487fa26", size = 18576702 }, + { url = "https://files.pythonhosted.org/packages/c3/76/95650169b465ececa8cf4b2e8f6df255d4bf662775e797ade2025cc51ae6/numpy-2.3.4-cp314-cp314-win32.whl", hash = "sha256:e73d63fd04e3a9d6bc187f5455d81abfad05660b212c8804bf3b407e984cd2bc", size = 6337136 }, + { url = "https://files.pythonhosted.org/packages/dc/89/a231a5c43ede5d6f77ba4a91e915a87dea4aeea76560ba4d2bf185c683f0/numpy-2.3.4-cp314-cp314-win_amd64.whl", hash = "sha256:3da3491cee49cf16157e70f607c03a217ea6647b1cea4819c4f48e53d49139b9", size = 12920542 }, + { url = "https://files.pythonhosted.org/packages/0d/0c/ae9434a888f717c5ed2ff2393b3f344f0ff6f1c793519fa0c540461dc530/numpy-2.3.4-cp314-cp314-win_arm64.whl", hash = "sha256:6d9cd732068e8288dbe2717177320723ccec4fb064123f0caf9bbd90ab5be868", size = 10480213 }, + { url = "https://files.pythonhosted.org/packages/83/4b/c4a5f0841f92536f6b9592694a5b5f68c9ab37b775ff342649eadf9055d3/numpy-2.3.4-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:22758999b256b595cf0b1d102b133bb61866ba5ceecf15f759623b64c020c9ec", size = 21052280 }, + { url = "https://files.pythonhosted.org/packages/3e/80/90308845fc93b984d2cc96d83e2324ce8ad1fd6efea81b324cba4b673854/numpy-2.3.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:9cb177bc55b010b19798dc5497d540dea67fd13a8d9e882b2dae71de0cf09eb3", size = 14302930 }, + { url = "https://files.pythonhosted.org/packages/3d/4e/07439f22f2a3b247cec4d63a713faae55e1141a36e77fb212881f7cda3fb/numpy-2.3.4-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:0f2bcc76f1e05e5ab58893407c63d90b2029908fa41f9f1cc51eecce936c3365", size = 5231504 }, + { url = "https://files.pythonhosted.org/packages/ab/de/1e11f2547e2fe3d00482b19721855348b94ada8359aef5d40dd57bfae9df/numpy-2.3.4-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8dc20bde86802df2ed8397a08d793da0ad7a5fd4ea3ac85d757bf5dd4ad7c252", size = 6739405 }, + { url = "https://files.pythonhosted.org/packages/3b/40/8cd57393a26cebe2e923005db5134a946c62fa56a1087dc7c478f3e30837/numpy-2.3.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e199c087e2aa71c8f9ce1cb7a8e10677dc12457e7cc1be4798632da37c3e86e", size = 14354866 }, + { url = "https://files.pythonhosted.org/packages/93/39/5b3510f023f96874ee6fea2e40dfa99313a00bf3ab779f3c92978f34aace/numpy-2.3.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85597b2d25ddf655495e2363fe044b0ae999b75bc4d630dc0d886484b03a5eb0", size = 16703296 }, + { url = "https://files.pythonhosted.org/packages/41/0d/19bb163617c8045209c1996c4e427bccbc4bbff1e2c711f39203c8ddbb4a/numpy-2.3.4-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04a69abe45b49c5955923cf2c407843d1c85013b424ae8a560bba16c92fe44a0", size = 16136046 }, + { url = "https://files.pythonhosted.org/packages/e2/c1/6dba12fdf68b02a21ac411c9df19afa66bed2540f467150ca64d246b463d/numpy-2.3.4-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e1708fac43ef8b419c975926ce1eaf793b0c13b7356cfab6ab0dc34c0a02ac0f", size = 18652691 }, + { url = "https://files.pythonhosted.org/packages/f8/73/f85056701dbbbb910c51d846c58d29fd46b30eecd2b6ba760fc8b8a1641b/numpy-2.3.4-cp314-cp314t-win32.whl", hash = "sha256:863e3b5f4d9915aaf1b8ec79ae560ad21f0b8d5e3adc31e73126491bb86dee1d", size = 6485782 }, + { url = "https://files.pythonhosted.org/packages/17/90/28fa6f9865181cb817c2471ee65678afa8a7e2a1fb16141473d5fa6bacc3/numpy-2.3.4-cp314-cp314t-win_amd64.whl", hash = "sha256:962064de37b9aef801d33bc579690f8bfe6c5e70e29b61783f60bcba838a14d6", size = 13113301 }, + { url = "https://files.pythonhosted.org/packages/54/23/08c002201a8e7e1f9afba93b97deceb813252d9cfd0d3351caed123dcf97/numpy-2.3.4-cp314-cp314t-win_arm64.whl", hash = "sha256:8b5a9a39c45d852b62693d9b3f3e0fe052541f804296ff401a72a1b60edafb29", size = 10547532 }, ] [[package]] name = "openai" -version = "2.3.0" +version = "2.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -1157,58 +1180,62 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/90/8f26554d24d63ed4f94d33c24271559863223a67e624f4d2e65ba8e48dca/openai-2.3.0.tar.gz", hash = "sha256:8d213ee5aaf91737faea2d7fc1cd608657a5367a18966372a3756ceaabfbd812", size = 589616 } +sdist = { url = "https://files.pythonhosted.org/packages/c4/44/303deb97be7c1c9b53118b52825cbd1557aeeff510f3a52566b1fa66f6a2/openai-2.6.1.tar.gz", hash = "sha256:27ae704d190615fca0c0fc2b796a38f8b5879645a3a52c9c453b23f97141bb49", size = 593043 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9c/5b/4be258ff072ed8ee15f6bfd8d5a1a4618aa4704b127c0c5959212ad177d6/openai-2.3.0-py3-none-any.whl", hash = "sha256:a7aa83be6f7b0ab2e4d4d7bcaf36e3d790874c0167380c5d0afd0ed99a86bd7b", size = 999768 }, + { url = "https://files.pythonhosted.org/packages/15/0e/331df43df633e6105ff9cf45e0ce57762bd126a45ac16b25a43f6738d8a2/openai-2.6.1-py3-none-any.whl", hash = "sha256:904e4b5254a8416746a2f05649594fa41b19d799843cd134dac86167e094edef", size = 1005551 }, ] [[package]] name = "orjson" -version = "3.11.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/be/4d/8df5f83256a809c22c4d6792ce8d43bb503be0fb7a8e4da9025754b09658/orjson-3.11.3.tar.gz", hash = "sha256:1c0603b1d2ffcd43a411d64797a19556ef76958aef1c182f22dc30860152a98a", size = 5482394 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/b0/a7edab2a00cdcb2688e1c943401cb3236323e7bfd2839815c6131a3742f4/orjson-3.11.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8c752089db84333e36d754c4baf19c0e1437012242048439c7e80eb0e6426e3b", size = 238259 }, - { url = "https://files.pythonhosted.org/packages/e1/c6/ff4865a9cc398a07a83342713b5932e4dc3cb4bf4bc04e8f83dedfc0d736/orjson-3.11.3-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:9b8761b6cf04a856eb544acdd82fc594b978f12ac3602d6374a7edb9d86fd2c2", size = 127633 }, - { url = "https://files.pythonhosted.org/packages/6e/e6/e00bea2d9472f44fe8794f523e548ce0ad51eb9693cf538a753a27b8bda4/orjson-3.11.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b13974dc8ac6ba22feaa867fc19135a3e01a134b4f7c9c28162fed4d615008a", size = 123061 }, - { url = "https://files.pythonhosted.org/packages/54/31/9fbb78b8e1eb3ac605467cb846e1c08d0588506028b37f4ee21f978a51d4/orjson-3.11.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f83abab5bacb76d9c821fd5c07728ff224ed0e52d7a71b7b3de822f3df04e15c", size = 127956 }, - { url = "https://files.pythonhosted.org/packages/36/88/b0604c22af1eed9f98d709a96302006915cfd724a7ebd27d6dd11c22d80b/orjson-3.11.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e6fbaf48a744b94091a56c62897b27c31ee2da93d826aa5b207131a1e13d4064", size = 130790 }, - { url = "https://files.pythonhosted.org/packages/0e/9d/1c1238ae9fffbfed51ba1e507731b3faaf6b846126a47e9649222b0fd06f/orjson-3.11.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc779b4f4bba2847d0d2940081a7b6f7b5877e05408ffbb74fa1faf4a136c424", size = 132385 }, - { url = "https://files.pythonhosted.org/packages/a3/b5/c06f1b090a1c875f337e21dd71943bc9d84087f7cdf8c6e9086902c34e42/orjson-3.11.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd4b909ce4c50faa2192da6bb684d9848d4510b736b0611b6ab4020ea6fd2d23", size = 135305 }, - { url = "https://files.pythonhosted.org/packages/a0/26/5f028c7d81ad2ebbf84414ba6d6c9cac03f22f5cd0d01eb40fb2d6a06b07/orjson-3.11.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:524b765ad888dc5518bbce12c77c2e83dee1ed6b0992c1790cc5fb49bb4b6667", size = 132875 }, - { url = "https://files.pythonhosted.org/packages/fe/d4/b8df70d9cfb56e385bf39b4e915298f9ae6c61454c8154a0f5fd7efcd42e/orjson-3.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:84fd82870b97ae3cdcea9d8746e592b6d40e1e4d4527835fc520c588d2ded04f", size = 130940 }, - { url = "https://files.pythonhosted.org/packages/da/5e/afe6a052ebc1a4741c792dd96e9f65bf3939d2094e8b356503b68d48f9f5/orjson-3.11.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fbecb9709111be913ae6879b07bafd4b0785b44c1eb5cac8ac76da048b3885a1", size = 403852 }, - { url = "https://files.pythonhosted.org/packages/f8/90/7bbabafeb2ce65915e9247f14a56b29c9334003536009ef5b122783fe67e/orjson-3.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9dba358d55aee552bd868de348f4736ca5a4086d9a62e2bfbbeeb5629fe8b0cc", size = 146293 }, - { url = "https://files.pythonhosted.org/packages/27/b3/2d703946447da8b093350570644a663df69448c9d9330e5f1d9cce997f20/orjson-3.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eabcf2e84f1d7105f84580e03012270c7e97ecb1fb1618bda395061b2a84a049", size = 135470 }, - { url = "https://files.pythonhosted.org/packages/38/70/b14dcfae7aff0e379b0119c8a812f8396678919c431efccc8e8a0263e4d9/orjson-3.11.3-cp312-cp312-win32.whl", hash = "sha256:3782d2c60b8116772aea8d9b7905221437fdf53e7277282e8d8b07c220f96cca", size = 136248 }, - { url = "https://files.pythonhosted.org/packages/35/b8/9e3127d65de7fff243f7f3e53f59a531bf6bb295ebe5db024c2503cc0726/orjson-3.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:79b44319268af2eaa3e315b92298de9a0067ade6e6003ddaef72f8e0bedb94f1", size = 131437 }, - { url = "https://files.pythonhosted.org/packages/51/92/a946e737d4d8a7fd84a606aba96220043dcc7d6988b9e7551f7f6d5ba5ad/orjson-3.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:0e92a4e83341ef79d835ca21b8bd13e27c859e4e9e4d7b63defc6e58462a3710", size = 125978 }, - { url = "https://files.pythonhosted.org/packages/fc/79/8932b27293ad35919571f77cb3693b5906cf14f206ef17546052a241fdf6/orjson-3.11.3-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:af40c6612fd2a4b00de648aa26d18186cd1322330bd3a3cc52f87c699e995810", size = 238127 }, - { url = "https://files.pythonhosted.org/packages/1c/82/cb93cd8cf132cd7643b30b6c5a56a26c4e780c7a145db6f83de977b540ce/orjson-3.11.3-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:9f1587f26c235894c09e8b5b7636a38091a9e6e7fe4531937534749c04face43", size = 127494 }, - { url = "https://files.pythonhosted.org/packages/a4/b8/2d9eb181a9b6bb71463a78882bcac1027fd29cf62c38a40cc02fc11d3495/orjson-3.11.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61dcdad16da5bb486d7227a37a2e789c429397793a6955227cedbd7252eb5a27", size = 123017 }, - { url = "https://files.pythonhosted.org/packages/b4/14/a0e971e72d03b509190232356d54c0f34507a05050bd026b8db2bf2c192c/orjson-3.11.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:11c6d71478e2cbea0a709e8a06365fa63da81da6498a53e4c4f065881d21ae8f", size = 127898 }, - { url = "https://files.pythonhosted.org/packages/8e/af/dc74536722b03d65e17042cc30ae586161093e5b1f29bccda24765a6ae47/orjson-3.11.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff94112e0098470b665cb0ed06efb187154b63649403b8d5e9aedeb482b4548c", size = 130742 }, - { url = "https://files.pythonhosted.org/packages/62/e6/7a3b63b6677bce089fe939353cda24a7679825c43a24e49f757805fc0d8a/orjson-3.11.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae8b756575aaa2a855a75192f356bbda11a89169830e1439cfb1a3e1a6dde7be", size = 132377 }, - { url = "https://files.pythonhosted.org/packages/fc/cd/ce2ab93e2e7eaf518f0fd15e3068b8c43216c8a44ed82ac2b79ce5cef72d/orjson-3.11.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9416cc19a349c167ef76135b2fe40d03cea93680428efee8771f3e9fb66079d", size = 135313 }, - { url = "https://files.pythonhosted.org/packages/d0/b4/f98355eff0bd1a38454209bbc73372ce351ba29933cb3e2eba16c04b9448/orjson-3.11.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b822caf5b9752bc6f246eb08124c3d12bf2175b66ab74bac2ef3bbf9221ce1b2", size = 132908 }, - { url = "https://files.pythonhosted.org/packages/eb/92/8f5182d7bc2a1bed46ed960b61a39af8389f0ad476120cd99e67182bfb6d/orjson-3.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:414f71e3bdd5573893bf5ecdf35c32b213ed20aa15536fe2f588f946c318824f", size = 130905 }, - { url = "https://files.pythonhosted.org/packages/1a/60/c41ca753ce9ffe3d0f67b9b4c093bdd6e5fdb1bc53064f992f66bb99954d/orjson-3.11.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:828e3149ad8815dc14468f36ab2a4b819237c155ee1370341b91ea4c8672d2ee", size = 403812 }, - { url = "https://files.pythonhosted.org/packages/dd/13/e4a4f16d71ce1868860db59092e78782c67082a8f1dc06a3788aef2b41bc/orjson-3.11.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ac9e05f25627ffc714c21f8dfe3a579445a5c392a9c8ae7ba1d0e9fb5333f56e", size = 146277 }, - { url = "https://files.pythonhosted.org/packages/8d/8b/bafb7f0afef9344754a3a0597a12442f1b85a048b82108ef2c956f53babd/orjson-3.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e44fbe4000bd321d9f3b648ae46e0196d21577cf66ae684a96ff90b1f7c93633", size = 135418 }, - { url = "https://files.pythonhosted.org/packages/60/d4/bae8e4f26afb2c23bea69d2f6d566132584d1c3a5fe89ee8c17b718cab67/orjson-3.11.3-cp313-cp313-win32.whl", hash = "sha256:2039b7847ba3eec1f5886e75e6763a16e18c68a63efc4b029ddf994821e2e66b", size = 136216 }, - { url = "https://files.pythonhosted.org/packages/88/76/224985d9f127e121c8cad882cea55f0ebe39f97925de040b75ccd4b33999/orjson-3.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:29be5ac4164aa8bdcba5fa0700a3c9c316b411d8ed9d39ef8a882541bd452fae", size = 131362 }, - { url = "https://files.pythonhosted.org/packages/e2/cf/0dce7a0be94bd36d1346be5067ed65ded6adb795fdbe3abd234c8d576d01/orjson-3.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:18bd1435cb1f2857ceb59cfb7de6f92593ef7b831ccd1b9bfb28ca530e539dce", size = 125989 }, - { url = "https://files.pythonhosted.org/packages/ef/77/d3b1fef1fc6aaeed4cbf3be2b480114035f4df8fa1a99d2dac1d40d6e924/orjson-3.11.3-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:cf4b81227ec86935568c7edd78352a92e97af8da7bd70bdfdaa0d2e0011a1ab4", size = 238115 }, - { url = "https://files.pythonhosted.org/packages/e4/6d/468d21d49bb12f900052edcfbf52c292022d0a323d7828dc6376e6319703/orjson-3.11.3-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:bc8bc85b81b6ac9fc4dae393a8c159b817f4c2c9dee5d12b773bddb3b95fc07e", size = 127493 }, - { url = "https://files.pythonhosted.org/packages/67/46/1e2588700d354aacdf9e12cc2d98131fb8ac6f31ca65997bef3863edb8ff/orjson-3.11.3-cp314-cp314-manylinux_2_34_aarch64.whl", hash = "sha256:88dcfc514cfd1b0de038443c7b3e6a9797ffb1b3674ef1fd14f701a13397f82d", size = 122998 }, - { url = "https://files.pythonhosted.org/packages/3b/94/11137c9b6adb3779f1b34fd98be51608a14b430dbc02c6d41134fbba484c/orjson-3.11.3-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:d61cd543d69715d5fc0a690c7c6f8dcc307bc23abef9738957981885f5f38229", size = 132915 }, - { url = "https://files.pythonhosted.org/packages/10/61/dccedcf9e9bcaac09fdabe9eaee0311ca92115699500efbd31950d878833/orjson-3.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2b7b153ed90ababadbef5c3eb39549f9476890d339cf47af563aea7e07db2451", size = 130907 }, - { url = "https://files.pythonhosted.org/packages/0e/fd/0e935539aa7b08b3ca0f817d73034f7eb506792aae5ecc3b7c6e679cdf5f/orjson-3.11.3-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:7909ae2460f5f494fecbcd10613beafe40381fd0316e35d6acb5f3a05bfda167", size = 403852 }, - { url = "https://files.pythonhosted.org/packages/4a/2b/50ae1a5505cd1043379132fdb2adb8a05f37b3e1ebffe94a5073321966fd/orjson-3.11.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:2030c01cbf77bc67bee7eef1e7e31ecf28649353987775e3583062c752da0077", size = 146309 }, - { url = "https://files.pythonhosted.org/packages/cd/1d/a473c158e380ef6f32753b5f39a69028b25ec5be331c2049a2201bde2e19/orjson-3.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a0169ebd1cbd94b26c7a7ad282cf5c2744fce054133f959e02eb5265deae1872", size = 135424 }, - { url = "https://files.pythonhosted.org/packages/da/09/17d9d2b60592890ff7382e591aa1d9afb202a266b180c3d4049b1ec70e4a/orjson-3.11.3-cp314-cp314-win32.whl", hash = "sha256:0c6d7328c200c349e3a4c6d8c83e0a5ad029bdc2d417f234152bf34842d0fc8d", size = 136266 }, - { url = "https://files.pythonhosted.org/packages/15/58/358f6846410a6b4958b74734727e582ed971e13d335d6c7ce3e47730493e/orjson-3.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:317bbe2c069bbc757b1a2e4105b64aacd3bc78279b66a6b9e51e846e4809f804", size = 131351 }, - { url = "https://files.pythonhosted.org/packages/28/01/d6b274a0635be0468d4dbd9cafe80c47105937a0d42434e805e67cd2ed8b/orjson-3.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:e8f6a7a27d7b7bec81bd5924163e9af03d49bbb63013f107b48eb5d16db711bc", size = 125985 }, +version = "3.11.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/fe/ed708782d6709cc60eb4c2d8a361a440661f74134675c72990f2c48c785f/orjson-3.11.4.tar.gz", hash = "sha256:39485f4ab4c9b30a3943cfe99e1a213c4776fb69e8abd68f66b83d5a0b0fdc6d", size = 5945188 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/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 }, + { url = "https://files.pythonhosted.org/packages/33/aa/6346dd5073730451bee3681d901e3c337e7ec17342fb79659ec9794fc023/orjson-3.11.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f2cf4dfaf9163b0728d061bebc1e08631875c51cd30bf47cb9e3293bfbd7dcd5", size = 129061 }, + { url = "https://files.pythonhosted.org/packages/39/e4/8eea51598f66a6c853c380979912d17ec510e8e66b280d968602e680b942/orjson-3.11.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:89216ff3dfdde0e4070932e126320a1752c9d9a758d6a32ec54b3b9334991a6a", size = 136541 }, + { url = "https://files.pythonhosted.org/packages/9a/47/cb8c654fa9adcc60e99580e17c32b9e633290e6239a99efa6b885aba9dbc/orjson-3.11.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9daa26ca8e97fae0ce8aa5d80606ef8f7914e9b129b6b5df9104266f764ce436", size = 137535 }, + { url = "https://files.pythonhosted.org/packages/43/92/04b8cc5c2b729f3437ee013ce14a60ab3d3001465d95c184758f19362f23/orjson-3.11.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c8b2769dc31883c44a9cd126560327767f848eb95f99c36c9932f51090bfce9", size = 136703 }, + { url = "https://files.pythonhosted.org/packages/aa/fd/d0733fcb9086b8be4ebcfcda2d0312865d17d0d9884378b7cffb29d0763f/orjson-3.11.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1469d254b9884f984026bd9b0fa5bbab477a4bfe558bba6848086f6d43eb5e73", size = 136293 }, + { url = "https://files.pythonhosted.org/packages/c2/d7/3c5514e806837c210492d72ae30ccf050ce3f940f45bf085bab272699ef4/orjson-3.11.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:68e44722541983614e37117209a194e8c3ad07838ccb3127d96863c95ec7f1e0", size = 140131 }, + { url = "https://files.pythonhosted.org/packages/9c/dd/ba9d32a53207babf65bd510ac4d0faaa818bd0df9a9c6f472fe7c254f2e3/orjson-3.11.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:8e7805fda9672c12be2f22ae124dcd7b03928d6c197544fe12174b86553f3196", size = 406164 }, + { url = "https://files.pythonhosted.org/packages/8e/f9/f68ad68f4af7c7bde57cd514eaa2c785e500477a8bc8f834838eb696a685/orjson-3.11.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:04b69c14615fb4434ab867bf6f38b2d649f6f300af30a6705397e895f7aec67a", size = 149859 }, + { url = "https://files.pythonhosted.org/packages/b6/d2/7f847761d0c26818395b3d6b21fb6bc2305d94612a35b0a30eae65a22728/orjson-3.11.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:639c3735b8ae7f970066930e58cf0ed39a852d417c24acd4a25fc0b3da3c39a6", size = 139926 }, + { url = "https://files.pythonhosted.org/packages/9f/37/acd14b12dc62db9a0e1d12386271b8661faae270b22492580d5258808975/orjson-3.11.4-cp313-cp313-win32.whl", hash = "sha256:6c13879c0d2964335491463302a6ca5ad98105fc5db3565499dcb80b1b4bd839", size = 136007 }, + { url = "https://files.pythonhosted.org/packages/c0/a9/967be009ddf0a1fffd7a67de9c36656b28c763659ef91352acc02cbe364c/orjson-3.11.4-cp313-cp313-win_amd64.whl", hash = "sha256:09bf242a4af98732db9f9a1ec57ca2604848e16f132e3f72edfd3c5c96de009a", size = 131314 }, + { url = "https://files.pythonhosted.org/packages/cb/db/399abd6950fbd94ce125cb8cd1a968def95174792e127b0642781e040ed4/orjson-3.11.4-cp313-cp313-win_arm64.whl", hash = "sha256:a85f0adf63319d6c1ba06fb0dbf997fced64a01179cf17939a6caca662bf92de", size = 126152 }, + { url = "https://files.pythonhosted.org/packages/25/e3/54ff63c093cc1697e758e4fceb53164dd2661a7d1bcd522260ba09f54533/orjson-3.11.4-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:42d43a1f552be1a112af0b21c10a5f553983c2a0938d2bbb8ecd8bc9fb572803", size = 243501 }, + { url = "https://files.pythonhosted.org/packages/ac/7d/e2d1076ed2e8e0ae9badca65bf7ef22710f93887b29eaa37f09850604e09/orjson-3.11.4-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:26a20f3fbc6c7ff2cb8e89c4c5897762c9d88cf37330c6a117312365d6781d54", size = 128862 }, + { url = "https://files.pythonhosted.org/packages/9f/37/ca2eb40b90621faddfa9517dfe96e25f5ae4d8057a7c0cdd613c17e07b2c/orjson-3.11.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e3f20be9048941c7ffa8fc523ccbd17f82e24df1549d1d1fe9317712d19938e", size = 130047 }, + { url = "https://files.pythonhosted.org/packages/c7/62/1021ed35a1f2bad9040f05fa4cc4f9893410df0ba3eaa323ccf899b1c90a/orjson-3.11.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aac364c758dc87a52e68e349924d7e4ded348dedff553889e4d9f22f74785316", size = 129073 }, + { url = "https://files.pythonhosted.org/packages/e8/3f/f84d966ec2a6fd5f73b1a707e7cd876813422ae4bf9f0145c55c9c6a0f57/orjson-3.11.4-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d5c54a6d76e3d741dcc3f2707f8eeb9ba2a791d3adbf18f900219b62942803b1", size = 136597 }, + { url = "https://files.pythonhosted.org/packages/32/78/4fa0aeca65ee82bbabb49e055bd03fa4edea33f7c080c5c7b9601661ef72/orjson-3.11.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f28485bdca8617b79d44627f5fb04336897041dfd9fa66d383a49d09d86798bc", size = 137515 }, + { url = "https://files.pythonhosted.org/packages/c1/9d/0c102e26e7fde40c4c98470796d050a2ec1953897e2c8ab0cb95b0759fa2/orjson-3.11.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bfc2a484cad3585e4ba61985a6062a4c2ed5c7925db6d39f1fa267c9d166487f", size = 136703 }, + { url = "https://files.pythonhosted.org/packages/df/ac/2de7188705b4cdfaf0b6c97d2f7849c17d2003232f6e70df98602173f788/orjson-3.11.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e34dbd508cb91c54f9c9788923daca129fe5b55c5b4eebe713bf5ed3791280cf", size = 136311 }, + { url = "https://files.pythonhosted.org/packages/e0/52/847fcd1a98407154e944feeb12e3b4d487a0e264c40191fb44d1269cbaa1/orjson-3.11.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b13c478fa413d4b4ee606ec8e11c3b2e52683a640b006bb586b3041c2ca5f606", size = 140127 }, + { url = "https://files.pythonhosted.org/packages/c1/ae/21d208f58bdb847dd4d0d9407e2929862561841baa22bdab7aea10ca088e/orjson-3.11.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:724ca721ecc8a831b319dcd72cfa370cc380db0bf94537f08f7edd0a7d4e1780", size = 406201 }, + { url = "https://files.pythonhosted.org/packages/8d/55/0789d6de386c8366059db098a628e2ad8798069e94409b0d8935934cbcb9/orjson-3.11.4-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:977c393f2e44845ce1b540e19a786e9643221b3323dae190668a98672d43fb23", size = 149872 }, + { url = "https://files.pythonhosted.org/packages/cc/1d/7ff81ea23310e086c17b41d78a72270d9de04481e6113dbe2ac19118f7fb/orjson-3.11.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1e539e382cf46edec157ad66b0b0872a90d829a6b71f17cb633d6c160a223155", size = 139931 }, + { url = "https://files.pythonhosted.org/packages/77/92/25b886252c50ed64be68c937b562b2f2333b45afe72d53d719e46a565a50/orjson-3.11.4-cp314-cp314-win32.whl", hash = "sha256:d63076d625babab9db5e7836118bdfa086e60f37d8a174194ae720161eb12394", size = 136065 }, + { url = "https://files.pythonhosted.org/packages/63/b8/718eecf0bb7e9d64e4956afaafd23db9f04c776d445f59fe94f54bdae8f0/orjson-3.11.4-cp314-cp314-win_amd64.whl", hash = "sha256:0a54d6635fa3aaa438ae32e8570b9f0de36f3f6562c308d2a2a452e8b0592db1", size = 131310 }, + { url = "https://files.pythonhosted.org/packages/1a/bf/def5e25d4d8bfce296a9a7c8248109bf58622c21618b590678f945a2c59c/orjson-3.11.4-cp314-cp314-win_arm64.whl", hash = "sha256:78b999999039db3cf58f6d230f524f04f75f129ba3d1ca2ed121f8657e575d3d", size = 126151 }, ] [[package]] @@ -1356,16 +1383,17 @@ wheels = [ [[package]] name = "protobuf" -version = "6.32.1" +version = "6.33.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fa/a4/cc17347aa2897568beece2e674674359f911d6fe21b0b8d6268cd42727ac/protobuf-6.32.1.tar.gz", hash = "sha256:ee2469e4a021474ab9baafea6cd070e5bf27c7d29433504ddea1a4ee5850f68d", size = 440635 } +sdist = { url = "https://files.pythonhosted.org/packages/19/ff/64a6c8f420818bb873713988ca5492cba3a7946be57e027ac63495157d97/protobuf-6.33.0.tar.gz", hash = "sha256:140303d5c8d2037730c548f8c7b93b20bb1dc301be280c378b82b8894589c954", size = 443463 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/98/645183ea03ab3995d29086b8bf4f7562ebd3d10c9a4b14ee3f20d47cfe50/protobuf-6.32.1-cp310-abi3-win32.whl", hash = "sha256:a8a32a84bc9f2aad712041b8b366190f71dde248926da517bde9e832e4412085", size = 424411 }, - { url = "https://files.pythonhosted.org/packages/8c/f3/6f58f841f6ebafe076cebeae33fc336e900619d34b1c93e4b5c97a81fdfa/protobuf-6.32.1-cp310-abi3-win_amd64.whl", hash = "sha256:b00a7d8c25fa471f16bc8153d0e53d6c9e827f0953f3c09aaa4331c718cae5e1", size = 435738 }, - { url = "https://files.pythonhosted.org/packages/10/56/a8a3f4e7190837139e68c7002ec749190a163af3e330f65d90309145a210/protobuf-6.32.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:d8c7e6eb619ffdf105ee4ab76af5a68b60a9d0f66da3ea12d1640e6d8dab7281", size = 426454 }, - { url = "https://files.pythonhosted.org/packages/3f/be/8dd0a927c559b37d7a6c8ab79034fd167dcc1f851595f2e641ad62be8643/protobuf-6.32.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:2f5b80a49e1eb7b86d85fcd23fe92df154b9730a725c3b38c4e43b9d77018bf4", size = 322874 }, - { url = "https://files.pythonhosted.org/packages/5c/f6/88d77011b605ef979aace37b7703e4eefad066f7e84d935e5a696515c2dd/protobuf-6.32.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:b1864818300c297265c83a4982fd3169f97122c299f56a56e2445c3698d34710", size = 322013 }, - { url = "https://files.pythonhosted.org/packages/97/b7/15cc7d93443d6c6a84626ae3258a91f4c6ac8c0edd5df35ea7658f71b79c/protobuf-6.32.1-py3-none-any.whl", hash = "sha256:2601b779fc7d32a866c6b4404f9d42a3f67c5b9f3f15b4db3cccabe06b95c346", size = 169289 }, + { url = "https://files.pythonhosted.org/packages/7e/ee/52b3fa8feb6db4a833dfea4943e175ce645144532e8a90f72571ad85df4e/protobuf-6.33.0-cp310-abi3-win32.whl", hash = "sha256:d6101ded078042a8f17959eccd9236fb7a9ca20d3b0098bbcb91533a5680d035", size = 425593 }, + { url = "https://files.pythonhosted.org/packages/7b/c6/7a465f1825872c55e0341ff4a80198743f73b69ce5d43ab18043699d1d81/protobuf-6.33.0-cp310-abi3-win_amd64.whl", hash = "sha256:9a031d10f703f03768f2743a1c403af050b6ae1f3480e9c140f39c45f81b13ee", size = 436882 }, + { url = "https://files.pythonhosted.org/packages/e1/a9/b6eee662a6951b9c3640e8e452ab3e09f117d99fc10baa32d1581a0d4099/protobuf-6.33.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:905b07a65f1a4b72412314082c7dbfae91a9e8b68a0cc1577515f8df58ecf455", size = 427521 }, + { url = "https://files.pythonhosted.org/packages/10/35/16d31e0f92c6d2f0e77c2a3ba93185130ea13053dd16200a57434c882f2b/protobuf-6.33.0-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:e0697ece353e6239b90ee43a9231318302ad8353c70e6e45499fa52396debf90", size = 324445 }, + { url = "https://files.pythonhosted.org/packages/e6/eb/2a981a13e35cda8b75b5585aaffae2eb904f8f351bdd3870769692acbd8a/protobuf-6.33.0-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:e0a1715e4f27355afd9570f3ea369735afc853a6c3951a6afe1f80d8569ad298", size = 339159 }, + { url = "https://files.pythonhosted.org/packages/21/51/0b1cbad62074439b867b4e04cc09b93f6699d78fd191bed2bbb44562e077/protobuf-6.33.0-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:35be49fd3f4fefa4e6e2aacc35e8b837d6703c37a2168a55ac21e9b1bc7559ef", size = 323172 }, + { url = "https://files.pythonhosted.org/packages/07/d1/0a28c21707807c6aacd5dc9c3704b2aa1effbf37adebd8caeaf68b17a636/protobuf-6.33.0-py3-none-any.whl", hash = "sha256:25c9e1963c6734448ea2d308cfa610e692b801304ba0908d7bfa564ac5132995", size = 170477 }, ] [[package]] @@ -1391,7 +1419,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.12.2" +version = "2.12.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -1399,9 +1427,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8d/35/d319ed522433215526689bad428a94058b6dd12190ce7ddd78618ac14b28/pydantic-2.12.2.tar.gz", hash = "sha256:7b8fa15b831a4bbde9d5b84028641ac3080a4ca2cbd4a621a661687e741624fd", size = 816358 } +sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383 } wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/98/468cb649f208a6f1279448e6e5247b37ae79cf5e4041186f1e2ef3d16345/pydantic-2.12.2-py3-none-any.whl", hash = "sha256:25ff718ee909acd82f1ff9b1a4acfd781bb23ab3739adaa7144f19a6a4e231ae", size = 460628 }, + { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431 }, ] [[package]] @@ -1491,11 +1519,11 @@ wheels = [ [[package]] name = "python-dotenv" -version = "1.1.1" +version = "1.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221 } wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556 }, + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230 }, ] [[package]] @@ -1546,80 +1574,80 @@ wheels = [ [[package]] name = "regex" -version = "2025.9.18" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/49/d3/eaa0d28aba6ad1827ad1e716d9a93e1ba963ada61887498297d3da715133/regex-2025.9.18.tar.gz", hash = "sha256:c5ba23274c61c6fef447ba6a39333297d0c247f53059dba0bca415cac511edc4", size = 400917 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/99/05859d87a66ae7098222d65748f11ef7f2dff51bfd7482a4e2256c90d72b/regex-2025.9.18-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:436e1b31d7efd4dcd52091d076482031c611dde58bf9c46ca6d0a26e33053a7e", size = 486335 }, - { url = "https://files.pythonhosted.org/packages/97/7e/d43d4e8b978890932cf7b0957fce58c5b08c66f32698f695b0c2c24a48bf/regex-2025.9.18-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c190af81e5576b9c5fdc708f781a52ff20f8b96386c6e2e0557a78402b029f4a", size = 289720 }, - { url = "https://files.pythonhosted.org/packages/bb/3b/ff80886089eb5dcf7e0d2040d9aaed539e25a94300403814bb24cc775058/regex-2025.9.18-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e4121f1ce2b2b5eec4b397cc1b277686e577e658d8f5870b7eb2d726bd2300ab", size = 287257 }, - { url = "https://files.pythonhosted.org/packages/ee/66/243edf49dd8720cba8d5245dd4d6adcb03a1defab7238598c0c97cf549b8/regex-2025.9.18-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:300e25dbbf8299d87205e821a201057f2ef9aa3deb29caa01cd2cac669e508d5", size = 797463 }, - { url = "https://files.pythonhosted.org/packages/df/71/c9d25a1142c70432e68bb03211d4a82299cd1c1fbc41db9409a394374ef5/regex-2025.9.18-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7b47fcf9f5316c0bdaf449e879407e1b9937a23c3b369135ca94ebc8d74b1742", size = 862670 }, - { url = "https://files.pythonhosted.org/packages/f8/8f/329b1efc3a64375a294e3a92d43372bf1a351aa418e83c21f2f01cf6ec41/regex-2025.9.18-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:57a161bd3acaa4b513220b49949b07e252165e6b6dc910ee7617a37ff4f5b425", size = 910881 }, - { url = "https://files.pythonhosted.org/packages/35/9e/a91b50332a9750519320ed30ec378b74c996f6befe282cfa6bb6cea7e9fd/regex-2025.9.18-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f130c3a7845ba42de42f380fff3c8aebe89a810747d91bcf56d40a069f15352", size = 802011 }, - { url = "https://files.pythonhosted.org/packages/a4/1d/6be3b8d7856b6e0d7ee7f942f437d0a76e0d5622983abbb6d21e21ab9a17/regex-2025.9.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5f96fa342b6f54dcba928dd452e8d8cb9f0d63e711d1721cd765bb9f73bb048d", size = 786668 }, - { url = "https://files.pythonhosted.org/packages/cb/ce/4a60e53df58bd157c5156a1736d3636f9910bdcc271d067b32b7fcd0c3a8/regex-2025.9.18-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0f0d676522d68c207828dcd01fb6f214f63f238c283d9f01d85fc664c7c85b56", size = 856578 }, - { url = "https://files.pythonhosted.org/packages/86/e8/162c91bfe7217253afccde112868afb239f94703de6580fb235058d506a6/regex-2025.9.18-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:40532bff8a1a0621e7903ae57fce88feb2e8a9a9116d341701302c9302aef06e", size = 849017 }, - { url = "https://files.pythonhosted.org/packages/35/34/42b165bc45289646ea0959a1bc7531733e90b47c56a72067adfe6b3251f6/regex-2025.9.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:039f11b618ce8d71a1c364fdee37da1012f5a3e79b1b2819a9f389cd82fd6282", size = 788150 }, - { url = "https://files.pythonhosted.org/packages/79/5d/cdd13b1f3c53afa7191593a7ad2ee24092a5a46417725ffff7f64be8342d/regex-2025.9.18-cp312-cp312-win32.whl", hash = "sha256:e1dd06f981eb226edf87c55d523131ade7285137fbde837c34dc9d1bf309f459", size = 264536 }, - { url = "https://files.pythonhosted.org/packages/e0/f5/4a7770c9a522e7d2dc1fa3ffc83ab2ab33b0b22b447e62cffef186805302/regex-2025.9.18-cp312-cp312-win_amd64.whl", hash = "sha256:3d86b5247bf25fa3715e385aa9ff272c307e0636ce0c9595f64568b41f0a9c77", size = 275501 }, - { url = "https://files.pythonhosted.org/packages/df/05/9ce3e110e70d225ecbed455b966003a3afda5e58e8aec2964042363a18f4/regex-2025.9.18-cp312-cp312-win_arm64.whl", hash = "sha256:032720248cbeeae6444c269b78cb15664458b7bb9ed02401d3da59fe4d68c3a5", size = 268601 }, - { url = "https://files.pythonhosted.org/packages/d2/c7/5c48206a60ce33711cf7dcaeaed10dd737733a3569dc7e1dce324dd48f30/regex-2025.9.18-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a40f929cd907c7e8ac7566ac76225a77701a6221bca937bdb70d56cb61f57b2", size = 485955 }, - { url = "https://files.pythonhosted.org/packages/e9/be/74fc6bb19a3c491ec1ace943e622b5a8539068771e8705e469b2da2306a7/regex-2025.9.18-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c90471671c2cdf914e58b6af62420ea9ecd06d1554d7474d50133ff26ae88feb", size = 289583 }, - { url = "https://files.pythonhosted.org/packages/25/c4/9ceaa433cb5dc515765560f22a19578b95b92ff12526e5a259321c4fc1a0/regex-2025.9.18-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a351aff9e07a2dabb5022ead6380cff17a4f10e4feb15f9100ee56c4d6d06af", size = 287000 }, - { url = "https://files.pythonhosted.org/packages/7d/e6/68bc9393cb4dc68018456568c048ac035854b042bc7c33cb9b99b0680afa/regex-2025.9.18-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc4b8e9d16e20ddfe16430c23468a8707ccad3365b06d4536142e71823f3ca29", size = 797535 }, - { url = "https://files.pythonhosted.org/packages/6a/1c/ebae9032d34b78ecfe9bd4b5e6575b55351dc8513485bb92326613732b8c/regex-2025.9.18-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4b8cdbddf2db1c5e80338ba2daa3cfa3dec73a46fff2a7dda087c8efbf12d62f", size = 862603 }, - { url = "https://files.pythonhosted.org/packages/3b/74/12332c54b3882557a4bcd2b99f8be581f5c6a43cf1660a85b460dd8ff468/regex-2025.9.18-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a276937d9d75085b2c91fb48244349c6954f05ee97bba0963ce24a9d915b8b68", size = 910829 }, - { url = "https://files.pythonhosted.org/packages/86/70/ba42d5ed606ee275f2465bfc0e2208755b06cdabd0f4c7c4b614d51b57ab/regex-2025.9.18-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92a8e375ccdc1256401c90e9dc02b8642894443d549ff5e25e36d7cf8a80c783", size = 802059 }, - { url = "https://files.pythonhosted.org/packages/da/c5/fcb017e56396a7f2f8357412638d7e2963440b131a3ca549be25774b3641/regex-2025.9.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0dc6893b1f502d73037cf807a321cdc9be29ef3d6219f7970f842475873712ac", size = 786781 }, - { url = "https://files.pythonhosted.org/packages/c6/ee/21c4278b973f630adfb3bcb23d09d83625f3ab1ca6e40ebdffe69901c7a1/regex-2025.9.18-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a61e85bfc63d232ac14b015af1261f826260c8deb19401c0597dbb87a864361e", size = 856578 }, - { url = "https://files.pythonhosted.org/packages/87/0b/de51550dc7274324435c8f1539373ac63019b0525ad720132866fff4a16a/regex-2025.9.18-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:1ef86a9ebc53f379d921fb9a7e42b92059ad3ee800fcd9e0fe6181090e9f6c23", size = 849119 }, - { url = "https://files.pythonhosted.org/packages/60/52/383d3044fc5154d9ffe4321696ee5b2ee4833a28c29b137c22c33f41885b/regex-2025.9.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d3bc882119764ba3a119fbf2bd4f1b47bc56c1da5d42df4ed54ae1e8e66fdf8f", size = 788219 }, - { url = "https://files.pythonhosted.org/packages/20/bd/2614fc302671b7359972ea212f0e3a92df4414aaeacab054a8ce80a86073/regex-2025.9.18-cp313-cp313-win32.whl", hash = "sha256:3810a65675845c3bdfa58c3c7d88624356dd6ee2fc186628295e0969005f928d", size = 264517 }, - { url = "https://files.pythonhosted.org/packages/07/0f/ab5c1581e6563a7bffdc1974fb2d25f05689b88e2d416525271f232b1946/regex-2025.9.18-cp313-cp313-win_amd64.whl", hash = "sha256:16eaf74b3c4180ede88f620f299e474913ab6924d5c4b89b3833bc2345d83b3d", size = 275481 }, - { url = "https://files.pythonhosted.org/packages/49/22/ee47672bc7958f8c5667a587c2600a4fba8b6bab6e86bd6d3e2b5f7cac42/regex-2025.9.18-cp313-cp313-win_arm64.whl", hash = "sha256:4dc98ba7dd66bd1261927a9f49bd5ee2bcb3660f7962f1ec02617280fc00f5eb", size = 268598 }, - { url = "https://files.pythonhosted.org/packages/e8/83/6887e16a187c6226cb85d8301e47d3b73ecc4505a3a13d8da2096b44fd76/regex-2025.9.18-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:fe5d50572bc885a0a799410a717c42b1a6b50e2f45872e2b40f4f288f9bce8a2", size = 489765 }, - { url = "https://files.pythonhosted.org/packages/51/c5/e2f7325301ea2916ff301c8d963ba66b1b2c1b06694191df80a9c4fea5d0/regex-2025.9.18-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b9d9a2d6cda6621551ca8cf7a06f103adf72831153f3c0d982386110870c4d3", size = 291228 }, - { url = "https://files.pythonhosted.org/packages/91/60/7d229d2bc6961289e864a3a3cfebf7d0d250e2e65323a8952cbb7e22d824/regex-2025.9.18-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:13202e4c4ac0ef9a317fff817674b293c8f7e8c68d3190377d8d8b749f566e12", size = 289270 }, - { url = "https://files.pythonhosted.org/packages/3c/d7/b4f06868ee2958ff6430df89857fbf3d43014bbf35538b6ec96c2704e15d/regex-2025.9.18-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:874ff523b0fecffb090f80ae53dc93538f8db954c8bb5505f05b7787ab3402a0", size = 806326 }, - { url = "https://files.pythonhosted.org/packages/d6/e4/bca99034a8f1b9b62ccf337402a8e5b959dd5ba0e5e5b2ead70273df3277/regex-2025.9.18-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d13ab0490128f2bb45d596f754148cd750411afc97e813e4b3a61cf278a23bb6", size = 871556 }, - { url = "https://files.pythonhosted.org/packages/6d/df/e06ffaf078a162f6dd6b101a5ea9b44696dca860a48136b3ae4a9caf25e2/regex-2025.9.18-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:05440bc172bc4b4b37fb9667e796597419404dbba62e171e1f826d7d2a9ebcef", size = 913817 }, - { url = "https://files.pythonhosted.org/packages/9e/05/25b05480b63292fd8e84800b1648e160ca778127b8d2367a0a258fa2e225/regex-2025.9.18-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5514b8e4031fdfaa3d27e92c75719cbe7f379e28cacd939807289bce76d0e35a", size = 811055 }, - { url = "https://files.pythonhosted.org/packages/70/97/7bc7574655eb651ba3a916ed4b1be6798ae97af30104f655d8efd0cab24b/regex-2025.9.18-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:65d3c38c39efce73e0d9dc019697b39903ba25b1ad45ebbd730d2cf32741f40d", size = 794534 }, - { url = "https://files.pythonhosted.org/packages/b4/c2/d5da49166a52dda879855ecdba0117f073583db2b39bb47ce9a3378a8e9e/regex-2025.9.18-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ae77e447ebc144d5a26d50055c6ddba1d6ad4a865a560ec7200b8b06bc529368", size = 866684 }, - { url = "https://files.pythonhosted.org/packages/bd/2d/0a5c4e6ec417de56b89ff4418ecc72f7e3feca806824c75ad0bbdae0516b/regex-2025.9.18-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e3ef8cf53dc8df49d7e28a356cf824e3623764e9833348b655cfed4524ab8a90", size = 853282 }, - { url = "https://files.pythonhosted.org/packages/f4/8e/d656af63e31a86572ec829665d6fa06eae7e144771e0330650a8bb865635/regex-2025.9.18-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9feb29817df349c976da9a0debf775c5c33fc1c8ad7b9f025825da99374770b7", size = 797830 }, - { url = "https://files.pythonhosted.org/packages/db/ce/06edc89df8f7b83ffd321b6071be4c54dc7332c0f77860edc40ce57d757b/regex-2025.9.18-cp313-cp313t-win32.whl", hash = "sha256:168be0d2f9b9d13076940b1ed774f98595b4e3c7fc54584bba81b3cc4181742e", size = 267281 }, - { url = "https://files.pythonhosted.org/packages/83/9a/2b5d9c8b307a451fd17068719d971d3634ca29864b89ed5c18e499446d4a/regex-2025.9.18-cp313-cp313t-win_amd64.whl", hash = "sha256:d59ecf3bb549e491c8104fea7313f3563c7b048e01287db0a90485734a70a730", size = 278724 }, - { url = "https://files.pythonhosted.org/packages/3d/70/177d31e8089a278a764f8ec9a3faac8d14a312d622a47385d4b43905806f/regex-2025.9.18-cp313-cp313t-win_arm64.whl", hash = "sha256:dbef80defe9fb21310948a2595420b36c6d641d9bea4c991175829b2cc4bc06a", size = 269771 }, - { url = "https://files.pythonhosted.org/packages/44/b7/3b4663aa3b4af16819f2ab6a78c4111c7e9b066725d8107753c2257448a5/regex-2025.9.18-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c6db75b51acf277997f3adcd0ad89045d856190d13359f15ab5dda21581d9129", size = 486130 }, - { url = "https://files.pythonhosted.org/packages/80/5b/4533f5d7ac9c6a02a4725fe8883de2aebc713e67e842c04cf02626afb747/regex-2025.9.18-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8f9698b6f6895d6db810e0bda5364f9ceb9e5b11328700a90cae573574f61eea", size = 289539 }, - { url = "https://files.pythonhosted.org/packages/b8/8d/5ab6797c2750985f79e9995fad3254caa4520846580f266ae3b56d1cae58/regex-2025.9.18-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:29cd86aa7cb13a37d0f0d7c21d8d949fe402ffa0ea697e635afedd97ab4b69f1", size = 287233 }, - { url = "https://files.pythonhosted.org/packages/cb/1e/95afcb02ba8d3a64e6ffeb801718ce73471ad6440c55d993f65a4a5e7a92/regex-2025.9.18-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c9f285a071ee55cd9583ba24dde006e53e17780bb309baa8e4289cd472bcc47", size = 797876 }, - { url = "https://files.pythonhosted.org/packages/c8/fb/720b1f49cec1f3b5a9fea5b34cd22b88b5ebccc8c1b5de9cc6f65eed165a/regex-2025.9.18-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5adf266f730431e3be9021d3e5b8d5ee65e563fec2883ea8093944d21863b379", size = 863385 }, - { url = "https://files.pythonhosted.org/packages/a9/ca/e0d07ecf701e1616f015a720dc13b84c582024cbfbb3fc5394ae204adbd7/regex-2025.9.18-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1137cabc0f38807de79e28d3f6e3e3f2cc8cfb26bead754d02e6d1de5f679203", size = 910220 }, - { url = "https://files.pythonhosted.org/packages/b6/45/bba86413b910b708eca705a5af62163d5d396d5f647ed9485580c7025209/regex-2025.9.18-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7cc9e5525cada99699ca9223cce2d52e88c52a3d2a0e842bd53de5497c604164", size = 801827 }, - { url = "https://files.pythonhosted.org/packages/b8/a6/740fbd9fcac31a1305a8eed30b44bf0f7f1e042342be0a4722c0365ecfca/regex-2025.9.18-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bbb9246568f72dce29bcd433517c2be22c7791784b223a810225af3b50d1aafb", size = 786843 }, - { url = "https://files.pythonhosted.org/packages/80/a7/0579e8560682645906da640c9055506465d809cb0f5415d9976f417209a6/regex-2025.9.18-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:6a52219a93dd3d92c675383efff6ae18c982e2d7651c792b1e6d121055808743", size = 857430 }, - { url = "https://files.pythonhosted.org/packages/8d/9b/4dc96b6c17b38900cc9fee254fc9271d0dde044e82c78c0811b58754fde5/regex-2025.9.18-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:ae9b3840c5bd456780e3ddf2f737ab55a79b790f6409182012718a35c6d43282", size = 848612 }, - { url = "https://files.pythonhosted.org/packages/b3/6a/6f659f99bebb1775e5ac81a3fb837b85897c1a4ef5acffd0ff8ffe7e67fb/regex-2025.9.18-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d488c236ac497c46a5ac2005a952c1a0e22a07be9f10c3e735bc7d1209a34773", size = 787967 }, - { url = "https://files.pythonhosted.org/packages/61/35/9e35665f097c07cf384a6b90a1ac11b0b1693084a0b7a675b06f760496c6/regex-2025.9.18-cp314-cp314-win32.whl", hash = "sha256:0c3506682ea19beefe627a38872d8da65cc01ffa25ed3f2e422dffa1474f0788", size = 269847 }, - { url = "https://files.pythonhosted.org/packages/af/64/27594dbe0f1590b82de2821ebfe9a359b44dcb9b65524876cd12fabc447b/regex-2025.9.18-cp314-cp314-win_amd64.whl", hash = "sha256:57929d0f92bebb2d1a83af372cd0ffba2263f13f376e19b1e4fa32aec4efddc3", size = 278755 }, - { url = "https://files.pythonhosted.org/packages/30/a3/0cd8d0d342886bd7d7f252d701b20ae1a3c72dc7f34ef4b2d17790280a09/regex-2025.9.18-cp314-cp314-win_arm64.whl", hash = "sha256:6a4b44df31d34fa51aa5c995d3aa3c999cec4d69b9bd414a8be51984d859f06d", size = 271873 }, - { url = "https://files.pythonhosted.org/packages/99/cb/8a1ab05ecf404e18b54348e293d9b7a60ec2bd7aa59e637020c5eea852e8/regex-2025.9.18-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:b176326bcd544b5e9b17d6943f807697c0cb7351f6cfb45bf5637c95ff7e6306", size = 489773 }, - { url = "https://files.pythonhosted.org/packages/93/3b/6543c9b7f7e734d2404fa2863d0d710c907bef99d4598760ed4563d634c3/regex-2025.9.18-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:0ffd9e230b826b15b369391bec167baed57c7ce39efc35835448618860995946", size = 291221 }, - { url = "https://files.pythonhosted.org/packages/cd/91/e9fdee6ad6bf708d98c5d17fded423dcb0661795a49cba1b4ffb8358377a/regex-2025.9.18-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ec46332c41add73f2b57e2f5b642f991f6b15e50e9f86285e08ffe3a512ac39f", size = 289268 }, - { url = "https://files.pythonhosted.org/packages/94/a6/bc3e8a918abe4741dadeaeb6c508e3a4ea847ff36030d820d89858f96a6c/regex-2025.9.18-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b80fa342ed1ea095168a3f116637bd1030d39c9ff38dc04e54ef7c521e01fc95", size = 806659 }, - { url = "https://files.pythonhosted.org/packages/2b/71/ea62dbeb55d9e6905c7b5a49f75615ea1373afcad95830047e4e310db979/regex-2025.9.18-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4d97071c0ba40f0cf2a93ed76e660654c399a0a04ab7d85472239460f3da84b", size = 871701 }, - { url = "https://files.pythonhosted.org/packages/6a/90/fbe9dedb7dad24a3a4399c0bae64bfa932ec8922a0a9acf7bc88db30b161/regex-2025.9.18-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0ac936537ad87cef9e0e66c5144484206c1354224ee811ab1519a32373e411f3", size = 913742 }, - { url = "https://files.pythonhosted.org/packages/f0/1c/47e4a8c0e73d41eb9eb9fdeba3b1b810110a5139a2526e82fd29c2d9f867/regex-2025.9.18-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dec57f96d4def58c422d212d414efe28218d58537b5445cf0c33afb1b4768571", size = 811117 }, - { url = "https://files.pythonhosted.org/packages/2a/da/435f29fddfd015111523671e36d30af3342e8136a889159b05c1d9110480/regex-2025.9.18-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:48317233294648bf7cd068857f248e3a57222259a5304d32c7552e2284a1b2ad", size = 794647 }, - { url = "https://files.pythonhosted.org/packages/23/66/df5e6dcca25c8bc57ce404eebc7342310a0d218db739d7882c9a2b5974a3/regex-2025.9.18-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:274687e62ea3cf54846a9b25fc48a04459de50af30a7bd0b61a9e38015983494", size = 866747 }, - { url = "https://files.pythonhosted.org/packages/82/42/94392b39b531f2e469b2daa40acf454863733b674481fda17462a5ffadac/regex-2025.9.18-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:a78722c86a3e7e6aadf9579e3b0ad78d955f2d1f1a8ca4f67d7ca258e8719d4b", size = 853434 }, - { url = "https://files.pythonhosted.org/packages/a8/f8/dcc64c7f7bbe58842a8f89622b50c58c3598fbbf4aad0a488d6df2c699f1/regex-2025.9.18-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:06104cd203cdef3ade989a1c45b6215bf42f8b9dd705ecc220c173233f7cba41", size = 798024 }, - { url = "https://files.pythonhosted.org/packages/20/8d/edf1c5d5aa98f99a692313db813ec487732946784f8f93145e0153d910e5/regex-2025.9.18-cp314-cp314t-win32.whl", hash = "sha256:2e1eddc06eeaffd249c0adb6fafc19e2118e6308c60df9db27919e96b5656096", size = 273029 }, - { url = "https://files.pythonhosted.org/packages/a7/24/02d4e4f88466f17b145f7ea2b2c11af3a942db6222429c2c146accf16054/regex-2025.9.18-cp314-cp314t-win_amd64.whl", hash = "sha256:8620d247fb8c0683ade51217b459cb4a1081c0405a3072235ba43a40d355c09a", size = 282680 }, - { url = "https://files.pythonhosted.org/packages/1f/a3/c64894858aaaa454caa7cc47e2f225b04d3ed08ad649eacf58d45817fad2/regex-2025.9.18-cp314-cp314t-win_arm64.whl", hash = "sha256:b7531a8ef61de2c647cdf68b3229b071e46ec326b3138b2180acb4275f470b01", size = 273034 }, +version = "2025.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]] From b1c7608fae68699ca8b66cb43de91575b189dc23 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 6 Nov 2025 12:29:05 +0100 Subject: [PATCH 103/113] update uv.lock --- .../langgraph/python/examples/uv.lock | 591 +++++------------- 1 file changed, 173 insertions(+), 418 deletions(-) diff --git a/integrations/langgraph/python/examples/uv.lock b/integrations/langgraph/python/examples/uv.lock index 27ef7c382..3830bac2c 100644 --- a/integrations/langgraph/python/examples/uv.lock +++ b/integrations/langgraph/python/examples/uv.lock @@ -1,14 +1,13 @@ version = 1 -requires-python = ">=3.12" +requires-python = ">=3.13" resolution-markers = [ "python_full_version >= '3.14'", - "python_full_version == '3.13.*'", - "python_full_version < '3.13'", + "python_full_version < '3.14'", ] [[package]] name = "ag-ui-langgraph" -version = "0.0.17" +version = "0.0.18a0" source = { directory = "../" } dependencies = [ { name = "ag-ui-protocol" }, @@ -19,7 +18,7 @@ dependencies = [ [package.metadata] requires-dist = [ - { name = "ag-ui-protocol", specifier = "==0.1.9" }, + { name = "ag-ui-protocol", specifier = "==0.2.0a0" }, { name = "fastapi", marker = "extra == 'fastapi'", specifier = ">=0.115.12,<0.116.0" }, { name = "langchain", specifier = ">=0.3.0" }, { name = "langchain-core", specifier = ">=0.3.0" }, @@ -28,14 +27,14 @@ requires-dist = [ [[package]] name = "ag-ui-protocol" -version = "0.1.9" +version = "0.2.0a0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7b/d7/a8f8789b3b8b5f7263a902361468e8dfefd85ec63d1d5398579b9175d76d/ag_ui_protocol-0.1.9.tar.gz", hash = "sha256:94d75e3919ff75e0b608a7eed445062ea0e6f11cd33b3386a7649047e0c7abd3", size = 4988 } +sdist = { url = "https://files.pythonhosted.org/packages/15/35/dd487e5d4930236c6fd2a9530863e1899eb003d9f96bc3b7800ac73530bb/ag_ui_protocol-0.2.0a0.tar.gz", hash = "sha256:422bc284f9ab7019d2796641bac96faddd20eba815e1bad6122d72be1f989b80", size = 5582 } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/50/2bb71a2a9135f4d88706293773320d185789b592987c09f79e9bf2f4875f/ag_ui_protocol-0.1.9-py3-none-any.whl", hash = "sha256:44c1238b0576a3915b3a16e1b3855724e08e92ebc96b1ff29379fbd3bfbd400b", size = 7070 }, + { url = "https://files.pythonhosted.org/packages/76/85/b2b1eacf49c09c9d40ca2be61213e8e3fdbc88e77eebb0d7668570cf4da3/ag_ui_protocol-0.2.0a0-py3-none-any.whl", hash = "sha256:3f1fbf7ea1f0333ce8034cdc67df192b3c1a85a6c39dc866c35f9329df85b9cf", size = 7674 }, ] [[package]] @@ -97,23 +96,6 @@ 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 }, @@ -173,7 +155,6 @@ version = "1.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "frozenlist" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } wheels = [ @@ -215,7 +196,6 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, { name = "sniffio" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094 } wheels = [ @@ -255,22 +235,6 @@ version = "3.4.4" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425 }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162 }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558 }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497 }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240 }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471 }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864 }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647 }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110 }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839 }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667 }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535 }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816 }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694 }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131 }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390 }, { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091 }, { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936 }, { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180 }, @@ -398,22 +362,6 @@ version = "1.8.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875 } wheels = [ - { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782 }, - { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594 }, - { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448 }, - { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411 }, - { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014 }, - { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909 }, - { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049 }, - { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485 }, - { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619 }, - { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320 }, - { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820 }, - { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518 }, - { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096 }, - { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985 }, - { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591 }, - { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102 }, { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717 }, { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651 }, { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417 }, @@ -521,16 +469,16 @@ grpc = [ [[package]] name = "google-auth" -version = "2.42.1" +version = "2.43.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cachetools" }, { name = "pyasn1-modules" }, { name = "rsa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/25/6b/22a77135757c3a7854c9f008ffed6bf4e8851616d77faf13147e9ab5aae6/google_auth-2.42.1.tar.gz", hash = "sha256:30178b7a21aa50bffbdc1ffcb34ff770a2f65c712170ecd5446c4bef4dc2b94e", size = 295541 } +sdist = { url = "https://files.pythonhosted.org/packages/ff/ef/66d14cf0e01b08d2d51ffc3c20410c4e134a1548fc246a6081eae585a4fe/google_auth-2.43.0.tar.gz", hash = "sha256:88228eee5fc21b62a1b5fe773ca15e67778cb07dc8363adcb4a8827b52d81483", size = 296359 } wheels = [ - { url = "https://files.pythonhosted.org/packages/92/05/adeb6c495aec4f9d93f9e2fc29eeef6e14d452bba11d15bdb874ce1d5b10/google_auth-2.42.1-py2.py3-none-any.whl", hash = "sha256:eb73d71c91fc95dbd221a2eb87477c278a355e7367a35c0d84e6b0e5f9b4ad11", size = 222550 }, + { url = "https://files.pythonhosted.org/packages/6f/d1/385110a9ae86d91cc14c5282c61fe9f4dc41c0b9f7d423c6ad77038c4448/google_auth-2.43.0-py2.py3-none-any.whl", hash = "sha256:af628ba6fa493f75c7e9dbe9373d148ca9f4399b5ea29976519e0a3848eddd16", size = 223114 }, ] [[package]] @@ -551,15 +499,6 @@ version = "3.2.4" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/03/b8/704d753a5a45507a7aab61f18db9509302ed3d0a27ac7e0359ec2905b1a6/greenlet-3.2.4.tar.gz", hash = "sha256:0dca0d95ff849f9a364385f36ab49f50065d76964944638be9691e1832e9f86d", size = 188260 } wheels = [ - { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079 }, - { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997 }, - { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185 }, - { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926 }, - { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839 }, - { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586 }, - { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281 }, - { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142 }, - { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899 }, { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814 }, { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073 }, { url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191 }, @@ -568,6 +507,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497 }, { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662 }, { url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210 }, + { url = "https://files.pythonhosted.org/packages/1c/53/f9c440463b3057485b8594d7a638bed53ba531165ef0ca0e6c364b5cc807/greenlet-3.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e343822feb58ac4d0a1211bd9399de2b3a04963ddeec21530fc426cc121f19b", size = 1564759 }, + { url = "https://files.pythonhosted.org/packages/47/e4/3bb4240abdd0a8d23f4f88adec746a3099f0d86bfedb623f063b2e3b4df0/greenlet-3.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca7f6f1f2649b89ce02f6f229d7c19f680a6238af656f61e0115b24857917929", size = 1634288 }, { url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685 }, { url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586 }, { url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346 }, @@ -575,6 +516,8 @@ 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 }, ] @@ -587,16 +530,6 @@ 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 }, @@ -694,19 +627,6 @@ 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 }, @@ -852,7 +772,7 @@ wheels = [ [[package]] name = "langchain-core" -version = "1.0.2" +version = "1.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonpatch" }, @@ -863,14 +783,14 @@ dependencies = [ { name = "tenacity" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b4/96/b298cb46643bb235240de7ec8d87d3b4ccefead6bf41ca3c48c7d5397e01/langchain_core-1.0.2.tar.gz", hash = "sha256:9aae1908cc00d50b88e812305e980e7fd06d07375590ce8da01c04037bdccd72", size = 769167 } +sdist = { url = "https://files.pythonhosted.org/packages/41/15/dfe0c2af463d63296fe18608a06570ce3a4b245253d4f26c301481380f7d/langchain_core-1.0.3.tar.gz", hash = "sha256:10744945d21168fb40d1162a5f1cf69bf0137ff6ad2b12c87c199a5297410887", size = 770278 } wheels = [ - { url = "https://files.pythonhosted.org/packages/52/54/3aed89938a42cf7115575c333647551e35adc380feed651105d2d86c22f5/langchain_core-1.0.2-py3-none-any.whl", hash = "sha256:1f4ab4a41fc2e135e5dd4b97a89af123bbdc535af8f1f0644e8e8801bc288a12", size = 469251 }, + { url = "https://files.pythonhosted.org/packages/f2/1b/b0a37674bdcbd2931944e12ea742fd167098de5212ee2391e91dce631162/langchain_core-1.0.3-py3-none-any.whl", hash = "sha256:64f1bd45f04b174bbfd54c135a8adc52f4902b347c15a117d6383b412bf558a5", size = 469927 }, ] [[package]] name = "langchain-google-genai" -version = "3.0.0" +version = "3.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filetype" }, @@ -878,23 +798,23 @@ dependencies = [ { name = "langchain-core" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/31/d8da49fe51fffb44b2359691d1677f449ccdb01d30d03b441dca80a00b8d/langchain_google_genai-3.0.0.tar.gz", hash = "sha256:31331acd6fd90fcb466da7f79c6eb0d5335ec11aea99c97022ac329a735db4a7", size = 91632 } +sdist = { url = "https://files.pythonhosted.org/packages/b9/62/4352390e10b95d8a42da769b9bd7a7547af9aafd71e4012159f7394f7513/langchain_google_genai-3.0.1.tar.gz", hash = "sha256:d3f82fd274d2e9ca86448d5f89ac37b37b2d3cdfa6dec1af7bc792317b11dde7", size = 92794 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/9d/bf0a4335f9df912e722fce34fb83aeb2c44e937dcb1d60afaae959b9abfc/langchain_google_genai-3.0.0-py3-none-any.whl", hash = "sha256:b26909a30c5c4cd8b5d634d8feafc1ec0c2583726b4cf747d732d7ad2c080ee7", size = 57783 }, + { url = "https://files.pythonhosted.org/packages/75/4f/4694f86ad0dfa920f8a7cd22000fa7f87e12551cbb40f26c40d5ce2c7205/langchain_google_genai-3.0.1-py3-none-any.whl", hash = "sha256:2420396c75d3911af42af1bffb2c2ddd3fff73f9db9d619963429b5385e5f55e", size = 58145 }, ] [[package]] name = "langchain-openai" -version = "1.0.1" +version = "1.0.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "openai" }, { name = "tiktoken" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f1/50/eaa53ac18f63b3e92e6c3a30269714cff477af5a568f486254779a9973f1/langchain_openai-1.0.1.tar.gz", hash = "sha256:78aff09a631fccca08a64f5fc669b325d0f5821490acce024e5da4cf0a08e0d0", size = 1025305 } +sdist = { url = "https://files.pythonhosted.org/packages/b3/3c/edb7ffca76fdcfd938ce8380bf8ec79a0a8be41ba7fdbf6f9fe1cb5fd1a8/langchain_openai-1.0.2.tar.gz", hash = "sha256:621e8295c52db9a1fc74806a0bd227ea215c132c6c5e421d2982c9ee78468769", size = 1025578 } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/c0/06d74093e3e798eb464ef76f53d031235b87feccdadbbf6f7b8409043e4d/langchain_openai-1.0.1-py3-none-any.whl", hash = "sha256:9b61309a7268e7c1c614c554cfd66401519e7434aaefc52de7e251887aceb5f7", size = 81898 }, + { url = "https://files.pythonhosted.org/packages/78/9b/7af1d539a051d195c5ecc5990ebd483f208c40f75a8a9532846d16762704/langchain_openai-1.0.2-py3-none-any.whl", hash = "sha256:b3eb9b82752063b46452aa868d8c8bc1604e57631648c3bc325bba58d3aeb143", size = 81934 }, ] [[package]] @@ -928,15 +848,15 @@ wheels = [ [[package]] name = "langgraph-checkpoint" -version = "3.0.0" +version = "3.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "ormsgpack" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b7/cb/2a6dad2f0a14317580cc122e2a60e7f0ecabb50aaa6dc5b7a6a2c94cead7/langgraph_checkpoint-3.0.0.tar.gz", hash = "sha256:f738695ad938878d8f4775d907d9629e9fcd345b1950196effb08f088c52369e", size = 132132 } +sdist = { url = "https://files.pythonhosted.org/packages/0f/07/2b1c042fa87d40cf2db5ca27dc4e8dd86f9a0436a10aa4361a8982718ae7/langgraph_checkpoint-3.0.1.tar.gz", hash = "sha256:59222f875f85186a22c494aedc65c4e985a3df27e696e5016ba0b98a5ed2cee0", size = 137785 } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/2a/2efe0b5a72c41e3a936c81c5f5d8693987a1b260287ff1bbebaae1b7b888/langgraph_checkpoint-3.0.0-py3-none-any.whl", hash = "sha256:560beb83e629784ab689212a3d60834fb3196b4bbe1d6ac18e5cad5d85d46010", size = 46060 }, + { url = "https://files.pythonhosted.org/packages/48/e3/616e3a7ff737d98c1bbb5700dd62278914e2a9ded09a79a1fa93cf24ce12/langgraph_checkpoint-3.0.1-py3-none-any.whl", hash = "sha256:9b04a8d0edc0474ce4eaf30c5d731cee38f11ddff50a6177eead95b5c4e4220b", size = 46249 }, ] [[package]] @@ -967,7 +887,7 @@ wheels = [ [[package]] name = "langsmith" -version = "0.4.39" +version = "0.4.41" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "httpx" }, @@ -978,9 +898,9 @@ dependencies = [ { name = "requests-toolbelt" }, { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a7/67/cf7c22d2744286f872aacee2ac13928c46e2ba5d486514d60cd4ab59f58d/langsmith-0.4.39.tar.gz", hash = "sha256:8f2e6bae5cba88f86d8df2a4f95b20a319c65e9945be639302876ab6ef2f13e0", size = 943095 } +sdist = { url = "https://files.pythonhosted.org/packages/dc/7d/5c658251230b233958cbf8be46600254d6248613081d670dc7fe9b241778/langsmith-0.4.41.tar.gz", hash = "sha256:b88d03bb157cf69d1afee250a658d847003babbbd9647f720edcc9b03a0857cd", size = 949854 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/38/9a97f650b8cdb2ba0356d65aef9239f4a30db69ae44c30daa2cf8dd3f350/langsmith-0.4.39-py3-none-any.whl", hash = "sha256:48872eaaa449fc10781b5251f4fc05bc7d5c2d1d733a734566a96dd9166108b4", size = 397767 }, + { url = "https://files.pythonhosted.org/packages/98/4c/6c0c338ca7182e4ecb7af61049415e7b3513cc6cea9aa5bf8ca508f53539/langsmith-0.4.41-py3-none-any.whl", hash = "sha256:5cdc554e5f0361bf791fdd5e8dea16d5ba9dfce09b3b8f8bba5e99450c569b27", size = 399279 }, ] [[package]] @@ -1001,24 +921,6 @@ version = "6.7.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/80/1e/5492c365f222f907de1039b91f922b93fa4f764c713ee858d235495d8f50/multidict-6.7.0.tar.gz", hash = "sha256:c6e99d9a65ca282e578dfea819cfa9c0a62b2499d8677392e09feaf305e9e6f5", size = 101834 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/9e/9f61ac18d9c8b475889f32ccfa91c9f59363480613fc807b6e3023d6f60b/multidict-6.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8a3862568a36d26e650a19bb5cbbba14b71789032aebc0423f8cc5f150730184", size = 76877 }, - { url = "https://files.pythonhosted.org/packages/38/6f/614f09a04e6184f8824268fce4bc925e9849edfa654ddd59f0b64508c595/multidict-6.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:960c60b5849b9b4f9dcc9bea6e3626143c252c74113df2c1540aebce70209b45", size = 45467 }, - { url = "https://files.pythonhosted.org/packages/b3/93/c4f67a436dd026f2e780c433277fff72be79152894d9fc36f44569cab1a6/multidict-6.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2049be98fb57a31b4ccf870bf377af2504d4ae35646a19037ec271e4c07998aa", size = 43834 }, - { url = "https://files.pythonhosted.org/packages/7f/f5/013798161ca665e4a422afbc5e2d9e4070142a9ff8905e482139cd09e4d0/multidict-6.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0934f3843a1860dd465d38895c17fce1f1cb37295149ab05cd1b9a03afacb2a7", size = 250545 }, - { url = "https://files.pythonhosted.org/packages/71/2f/91dbac13e0ba94669ea5119ba267c9a832f0cb65419aca75549fcf09a3dc/multidict-6.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b3e34f3a1b8131ba06f1a73adab24f30934d148afcd5f5de9a73565a4404384e", size = 258305 }, - { url = "https://files.pythonhosted.org/packages/ef/b0/754038b26f6e04488b48ac621f779c341338d78503fb45403755af2df477/multidict-6.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:efbb54e98446892590dc2458c19c10344ee9a883a79b5cec4bc34d6656e8d546", size = 242363 }, - { url = "https://files.pythonhosted.org/packages/87/15/9da40b9336a7c9fa606c4cf2ed80a649dffeb42b905d4f63a1d7eb17d746/multidict-6.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a35c5fc61d4f51eb045061e7967cfe3123d622cd500e8868e7c0c592a09fedc4", size = 268375 }, - { url = "https://files.pythonhosted.org/packages/82/72/c53fcade0cc94dfaad583105fd92b3a783af2091eddcb41a6d5a52474000/multidict-6.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29fe6740ebccba4175af1b9b87bf553e9c15cd5868ee967e010efcf94e4fd0f1", size = 269346 }, - { url = "https://files.pythonhosted.org/packages/0d/e2/9baffdae21a76f77ef8447f1a05a96ec4bc0a24dae08767abc0a2fe680b8/multidict-6.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:123e2a72e20537add2f33a79e605f6191fba2afda4cbb876e35c1a7074298a7d", size = 256107 }, - { url = "https://files.pythonhosted.org/packages/3c/06/3f06f611087dc60d65ef775f1fb5aca7c6d61c6db4990e7cda0cef9b1651/multidict-6.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b284e319754366c1aee2267a2036248b24eeb17ecd5dc16022095e747f2f4304", size = 253592 }, - { url = "https://files.pythonhosted.org/packages/20/24/54e804ec7945b6023b340c412ce9c3f81e91b3bf5fa5ce65558740141bee/multidict-6.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:803d685de7be4303b5a657b76e2f6d1240e7e0a8aa2968ad5811fa2285553a12", size = 251024 }, - { url = "https://files.pythonhosted.org/packages/14/48/011cba467ea0b17ceb938315d219391d3e421dfd35928e5dbdc3f4ae76ef/multidict-6.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c04a328260dfd5db8c39538f999f02779012268f54614902d0afc775d44e0a62", size = 251484 }, - { url = "https://files.pythonhosted.org/packages/0d/2f/919258b43bb35b99fa127435cfb2d91798eb3a943396631ef43e3720dcf4/multidict-6.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8a19cdb57cd3df4cd865849d93ee14920fb97224300c88501f16ecfa2604b4e0", size = 263579 }, - { url = "https://files.pythonhosted.org/packages/31/22/a0e884d86b5242b5a74cf08e876bdf299e413016b66e55511f7a804a366e/multidict-6.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b2fd74c52accced7e75de26023b7dccee62511a600e62311b918ec5c168fc2a", size = 259654 }, - { url = "https://files.pythonhosted.org/packages/b2/e5/17e10e1b5c5f5a40f2fcbb45953c9b215f8a4098003915e46a93f5fcaa8f/multidict-6.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e8bfdd0e487acf992407a140d2589fe598238eaeffa3da8448d63a63cd363f8", size = 251511 }, - { url = "https://files.pythonhosted.org/packages/e3/9a/201bb1e17e7af53139597069c375e7b0dcbd47594604f65c2d5359508566/multidict-6.7.0-cp312-cp312-win32.whl", hash = "sha256:dd32a49400a2c3d52088e120ee00c1e3576cbff7e10b98467962c74fdb762ed4", size = 41895 }, - { url = "https://files.pythonhosted.org/packages/46/e2/348cd32faad84eaf1d20cce80e2bb0ef8d312c55bca1f7fa9865e7770aaf/multidict-6.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:92abb658ef2d7ef22ac9f8bb88e8b6c3e571671534e029359b6d9e845923eb1b", size = 46073 }, - { url = "https://files.pythonhosted.org/packages/25/ec/aad2613c1910dce907480e0c3aa306905830f25df2e54ccc9dea450cb5aa/multidict-6.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:490dab541a6a642ce1a9d61a4781656b346a55c13038f0b1244653828e3a83ec", size = 43226 }, { url = "https://files.pythonhosted.org/packages/d2/86/33272a544eeb36d66e4d9a920602d1a2f57d4ebea4ef3cdfe5a912574c95/multidict-6.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bee7c0588aa0076ce77c0ea5d19a68d76ad81fcd9fe8501003b9a24f9d4000f6", size = 76135 }, { url = "https://files.pythonhosted.org/packages/91/1c/eb97db117a1ebe46d457a3d235a7b9d2e6dcab174f42d1b67663dd9e5371/multidict-6.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7ef6b61cad77091056ce0e7ce69814ef72afacb150b7ac6a3e9470def2198159", size = 45117 }, { url = "https://files.pythonhosted.org/packages/f1/d8/6c3442322e41fb1dd4de8bd67bfd11cd72352ac131f6368315617de752f1/multidict-6.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c0359b1ec12b1d6849c59f9d319610b7f20ef990a6d454ab151aa0e3b9f78ca", size = 43472 }, @@ -1109,17 +1011,6 @@ 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 }, @@ -1168,7 +1059,7 @@ wheels = [ [[package]] name = "openai" -version = "2.6.1" +version = "2.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -1180,9 +1071,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c4/44/303deb97be7c1c9b53118b52825cbd1557aeeff510f3a52566b1fa66f6a2/openai-2.6.1.tar.gz", hash = "sha256:27ae704d190615fca0c0fc2b796a38f8b5879645a3a52c9c453b23f97141bb49", size = 593043 } +sdist = { url = "https://files.pythonhosted.org/packages/51/a2/f4023c1e0c868a6a5854955b3374f17153388aed95e835af114a17eac95b/openai-2.7.1.tar.gz", hash = "sha256:df4d4a3622b2df3475ead8eb0fbb3c27fd1c070fa2e55d778ca4f40e0186c726", size = 595933 } wheels = [ - { url = "https://files.pythonhosted.org/packages/15/0e/331df43df633e6105ff9cf45e0ce57762bd126a45ac16b25a43f6738d8a2/openai-2.6.1-py3-none-any.whl", hash = "sha256:904e4b5254a8416746a2f05649594fa41b19d799843cd134dac86167e094edef", size = 1005551 }, + { url = "https://files.pythonhosted.org/packages/8c/74/6bfc3adc81f6c2cea4439f2a734c40e3a420703bbcdc539890096a732bbd/openai-2.7.1-py3-none-any.whl", hash = "sha256:2f2530354d94c59c614645a4662b9dab0a5b881c5cd767a8587398feac0c9021", size = 1008780 }, ] [[package]] @@ -1191,21 +1082,6 @@ 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 }, @@ -1240,40 +1116,31 @@ wheels = [ [[package]] name = "ormsgpack" -version = "1.11.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/65/f8/224c342c0e03e131aaa1a1f19aa2244e167001783a433f4eed10eedd834b/ormsgpack-1.11.0.tar.gz", hash = "sha256:7c9988e78fedba3292541eb3bb274fa63044ef4da2ddb47259ea70c05dee4206", size = 49357 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/16/2805ebfb3d2cbb6c661b5fae053960fc90a2611d0d93e2207e753e836117/ormsgpack-1.11.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3434d0c8d67de27d9010222de07fb6810fb9af3bb7372354ffa19257ac0eb83b", size = 368474 }, - { url = "https://files.pythonhosted.org/packages/6f/39/6afae47822dca0ce4465d894c0bbb860a850ce29c157882dbdf77a5dd26e/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2da5bd097e8dbfa4eb0d4ccfe79acd6f538dee4493579e2debfe4fc8f4ca89b", size = 195321 }, - { url = "https://files.pythonhosted.org/packages/f6/54/11eda6b59f696d2f16de469bfbe539c9f469c4b9eef5a513996b5879c6e9/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fdbaa0a5a8606a486960b60c24f2d5235d30ac7a8b98eeaea9854bffef14dc3d", size = 206036 }, - { url = "https://files.pythonhosted.org/packages/1e/86/890430f704f84c4699ddad61c595d171ea2fd77a51fbc106f83981e83939/ormsgpack-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3682f24f800c1837017ee90ce321086b2cbaef88db7d4cdbbda1582aa6508159", size = 207615 }, - { url = "https://files.pythonhosted.org/packages/b6/b9/77383e16c991c0ecb772205b966fc68d9c519e0b5f9c3913283cbed30ffe/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:fcca21202bb05ccbf3e0e92f560ee59b9331182e4c09c965a28155efbb134993", size = 377195 }, - { url = "https://files.pythonhosted.org/packages/20/e2/15f9f045d4947f3c8a5e0535259fddf027b17b1215367488b3565c573b9d/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c30e5c4655ba46152d722ec7468e8302195e6db362ec1ae2c206bc64f6030e43", size = 470960 }, - { url = "https://files.pythonhosted.org/packages/b8/61/403ce188c4c495bc99dff921a0ad3d9d352dd6d3c4b629f3638b7f0cf79b/ormsgpack-1.11.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7138a341f9e2c08c59368f03d3be25e8b87b3baaf10d30fb1f6f6b52f3d47944", size = 381174 }, - { url = "https://files.pythonhosted.org/packages/14/a8/94c94bc48c68da4374870a851eea03fc5a45eb041182ad4c5ed9acfc05a4/ormsgpack-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:d4bd8589b78a11026d47f4edf13c1ceab9088bb12451f34396afe6497db28a27", size = 112314 }, - { url = "https://files.pythonhosted.org/packages/19/d0/aa4cf04f04e4cc180ce7a8d8ddb5a7f3af883329cbc59645d94d3ba157a5/ormsgpack-1.11.0-cp312-cp312-win_arm64.whl", hash = "sha256:e5e746a1223e70f111d4001dab9585ac8639eee8979ca0c8db37f646bf2961da", size = 106072 }, - { url = "https://files.pythonhosted.org/packages/8b/35/e34722edb701d053cf2240f55974f17b7dbfd11fdef72bd2f1835bcebf26/ormsgpack-1.11.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e7b36ab7b45cb95217ae1f05f1318b14a3e5ef73cb00804c0f06233f81a14e8", size = 368502 }, - { url = "https://files.pythonhosted.org/packages/2f/6a/c2fc369a79d6aba2aa28c8763856c95337ac7fcc0b2742185cd19397212a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43402d67e03a9a35cc147c8c03f0c377cad016624479e1ee5b879b8425551484", size = 195344 }, - { url = "https://files.pythonhosted.org/packages/8b/6a/0f8e24b7489885534c1a93bdba7c7c434b9b8638713a68098867db9f254c/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:64fd992f932764d6306b70ddc755c1bc3405c4c6a69f77a36acf7af1c8f5ada4", size = 206045 }, - { url = "https://files.pythonhosted.org/packages/99/71/8b460ba264f3c6f82ef5b1920335720094e2bd943057964ce5287d6df83a/ormsgpack-1.11.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0362fb7fe4a29c046c8ea799303079a09372653a1ce5a5a588f3bbb8088368d0", size = 207641 }, - { url = "https://files.pythonhosted.org/packages/50/cf/f369446abaf65972424ed2651f2df2b7b5c3b735c93fc7fa6cfb81e34419/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:de2f7a65a9d178ed57be49eba3d0fc9b833c32beaa19dbd4ba56014d3c20b152", size = 377211 }, - { url = "https://files.pythonhosted.org/packages/2f/3f/948bb0047ce0f37c2efc3b9bb2bcfdccc61c63e0b9ce8088d4903ba39dcf/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:f38cfae95461466055af966fc922d06db4e1654966385cda2828653096db34da", size = 470973 }, - { url = "https://files.pythonhosted.org/packages/31/a4/92a8114d1d017c14aaa403445060f345df9130ca532d538094f38e535988/ormsgpack-1.11.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c88396189d238f183cea7831b07a305ab5c90d6d29b53288ae11200bd956357b", size = 381161 }, - { url = "https://files.pythonhosted.org/packages/d0/64/5b76447da654798bfcfdfd64ea29447ff2b7f33fe19d0e911a83ad5107fc/ormsgpack-1.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:5403d1a945dd7c81044cebeca3f00a28a0f4248b33242a5d2d82111628043725", size = 112321 }, - { url = "https://files.pythonhosted.org/packages/46/5e/89900d06db9ab81e7ec1fd56a07c62dfbdcda398c435718f4252e1dc52a0/ormsgpack-1.11.0-cp313-cp313-win_arm64.whl", hash = "sha256:c57357b8d43b49722b876edf317bdad9e6d52071b523fdd7394c30cd1c67d5a0", size = 106084 }, - { url = "https://files.pythonhosted.org/packages/4c/0b/c659e8657085c8c13f6a0224789f422620cef506e26573b5434defe68483/ormsgpack-1.11.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d390907d90fd0c908211592c485054d7a80990697ef4dff4e436ac18e1aab98a", size = 368497 }, - { url = "https://files.pythonhosted.org/packages/1b/0e/451e5848c7ed56bd287e8a2b5cb5926e54466f60936e05aec6cb299f9143/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6153c2e92e789509098e04c9aa116b16673bd88ec78fbe0031deeb34ab642d10", size = 195385 }, - { url = "https://files.pythonhosted.org/packages/4c/28/90f78cbbe494959f2439c2ec571f08cd3464c05a6a380b0d621c622122a9/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c2b2c2a065a94d742212b2018e1fecd8f8d72f3c50b53a97d1f407418093446d", size = 206114 }, - { url = "https://files.pythonhosted.org/packages/fb/db/34163f4c0923bea32dafe42cd878dcc66795a3e85669bc4b01c1e2b92a7b/ormsgpack-1.11.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:110e65b5340f3d7ef8b0009deae3c6b169437e6b43ad5a57fd1748085d29d2ac", size = 207679 }, - { url = "https://files.pythonhosted.org/packages/b6/14/04ee741249b16f380a9b4a0cc19d4134d0b7c74bab27a2117da09e525eb9/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c27e186fca96ab34662723e65b420919910acbbc50fc8e1a44e08f26268cb0e0", size = 377237 }, - { url = "https://files.pythonhosted.org/packages/89/ff/53e588a6aaa833237471caec679582c2950f0e7e1a8ba28c1511b465c1f4/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d56b1f877c13d499052d37a3db2378a97d5e1588d264f5040b3412aee23d742c", size = 471021 }, - { url = "https://files.pythonhosted.org/packages/a6/f9/f20a6d9ef2be04da3aad05e8f5699957e9a30c6d5c043a10a296afa7e890/ormsgpack-1.11.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c88e28cd567c0a3269f624b4ade28142d5e502c8e826115093c572007af5be0a", size = 381205 }, - { url = "https://files.pythonhosted.org/packages/f8/64/96c07d084b479ac8b7821a77ffc8d3f29d8b5c95ebfdf8db1c03dff02762/ormsgpack-1.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:8811160573dc0a65f62f7e0792c4ca6b7108dfa50771edb93f9b84e2d45a08ae", size = 112374 }, - { url = "https://files.pythonhosted.org/packages/88/a5/5dcc18b818d50213a3cadfe336bb6163a102677d9ce87f3d2f1a1bee0f8c/ormsgpack-1.11.0-cp314-cp314-win_arm64.whl", hash = "sha256:23e30a8d3c17484cf74e75e6134322255bd08bc2b5b295cc9c442f4bae5f3c2d", size = 106056 }, - { url = "https://files.pythonhosted.org/packages/19/2b/776d1b411d2be50f77a6e6e94a25825cca55dcacfe7415fd691a144db71b/ormsgpack-1.11.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:2905816502adfaf8386a01dd85f936cd378d243f4f5ee2ff46f67f6298dc90d5", size = 368661 }, - { url = "https://files.pythonhosted.org/packages/a9/0c/81a19e6115b15764db3d241788f9fac093122878aaabf872cc545b0c4650/ormsgpack-1.11.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c04402fb9a0a9b9f18fbafd6d5f8398ee99b3ec619fb63952d3a954bc9d47daa", size = 195539 }, - { url = "https://files.pythonhosted.org/packages/97/86/e5b50247a61caec5718122feb2719ea9d451d30ac0516c288c1dbc6408e8/ormsgpack-1.11.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a025ec07ac52056ecfd9e57b5cbc6fff163f62cb9805012b56cda599157f8ef2", size = 207718 }, +version = "1.12.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/67/d5ef41c3b4a94400be801984ef7c7fc9623e1a82b643e74eeec367e7462b/ormsgpack-1.12.0.tar.gz", hash = "sha256:94be818fdbb0285945839b88763b269987787cb2f7ef280cad5d6ec815b7e608", size = 49959 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/e8/35f11ce9313111488b26b3035e4cbe55caa27909c0b6c8b5b5cd59f9661e/ormsgpack-1.12.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:766f2f3b512d85cd375b26a8b1329b99843560b50b93d3880718e634ad4a5de5", size = 369574 }, + { url = "https://files.pythonhosted.org/packages/61/b0/77461587f412d4e598d3687bafe23455ed0f26269f44be20252eddaa624e/ormsgpack-1.12.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84b285b1f3f185aad7da45641b873b30acfd13084cf829cf668c4c6480a81583", size = 195893 }, + { url = "https://files.pythonhosted.org/packages/c6/67/e197ceb04c3b550589e5407fc9fdae10f4e2e2eba5fdac921a269e02e974/ormsgpack-1.12.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e23604fc79fe110292cb365f4c8232e64e63a34f470538be320feae3921f271b", size = 206503 }, + { url = "https://files.pythonhosted.org/packages/0b/b1/7fa8ba82a25cef678983c7976f85edeef5014f5c26495f338258e6a3cf1c/ormsgpack-1.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc32b156c113a0fae2975051417d8d9a7a5247c34b2d7239410c46b75ce9348a", size = 208257 }, + { url = "https://files.pythonhosted.org/packages/ce/b1/759e999390000d2589e6d0797f7265e6ec28378547075d28d3736248ab63/ormsgpack-1.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:94ac500dd10c20fa8b8a23bc55606250bfe711bf9716828d9f3d44dfd1f25668", size = 377852 }, + { url = "https://files.pythonhosted.org/packages/51/e7/0af737c94272494d9d84a3c29cc42c973ef7fd2342917020906596db863c/ormsgpack-1.12.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:c5201ff7ec24f721f813a182885a17064cffdbe46b2412685a52e6374a872c8f", size = 471456 }, + { url = "https://files.pythonhosted.org/packages/f4/ba/c81f0aa4f19fbf457213395945b672e6fde3ce777e3587456e7f0fca2147/ormsgpack-1.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a9740bb3839c9368aacae1cbcfc474ee6976458f41cc135372b7255d5206c953", size = 381813 }, + { url = "https://files.pythonhosted.org/packages/ce/15/429c72d64323503fd42cc4ca8398930ded8aa8b3470df8a86b3bbae7a35c/ormsgpack-1.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:8ed37f29772432048b58174e920a1d4c4cde0404a5d448d3d8bbcc95d86a6918", size = 112949 }, + { url = "https://files.pythonhosted.org/packages/55/b9/e72c451a40f8c57bfc229e0b8e536ecea7203c8f0a839676df2ffb605c62/ormsgpack-1.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:b03994bbec5d6d42e03d6604e327863f885bde67aa61e06107ce1fa5bdd3e71d", size = 106689 }, + { url = "https://files.pythonhosted.org/packages/13/16/13eab1a75da531b359105fdee90dda0b6bd1ca0a09880250cf91d8bdfdea/ormsgpack-1.12.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0f3981ba3cba80656012090337e548e597799e14b41e3d0b595ab5ab05a23d7f", size = 369620 }, + { url = "https://files.pythonhosted.org/packages/a0/c1/cbcc38b7af4ce58d8893e56d3595c0c8dcd117093bf048f889cf351bdba0/ormsgpack-1.12.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:901f6f55184d6776dbd5183cbce14caf05bf7f467eef52faf9b094686980bf71", size = 195925 }, + { url = "https://files.pythonhosted.org/packages/5c/59/4fa4dc0681490e12b75333440a1c0fd9741b0ebff272b1db4a29d35c2021/ormsgpack-1.12.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e13b15412571422b711b40f45e3fe6d993ea3314b5e97d1a853fe99226c5effc", size = 206594 }, + { url = "https://files.pythonhosted.org/packages/39/67/249770896bc32bb91b22c30256961f935d0915cbcf6e289a7fc961d9b14c/ormsgpack-1.12.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91fa8a452553a62e5fb3fbab471e7faf7b3bec3c87a2f355ebf3d7aab290fe4f", size = 208307 }, + { url = "https://files.pythonhosted.org/packages/07/0a/e041a248cd72f2f4c07e155913e0a3ede4c86cf21a40ae6cd79f135f2847/ormsgpack-1.12.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:74ec101f69624695eec4ce7c953192d97748254abe78fb01b591f06d529e1952", size = 377844 }, + { url = "https://files.pythonhosted.org/packages/d8/71/6f7773e4ffda73a358ce4bba69b3e8bee9d40a7a06315e4c1cd7a3ea9d02/ormsgpack-1.12.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:9bbf7896580848326c1f9bd7531f264e561f98db7e08e15aa75963d83832c717", size = 471572 }, + { url = "https://files.pythonhosted.org/packages/65/29/af6769a4289c07acc71e7bda1d64fb31800563147d73142686e185e82348/ormsgpack-1.12.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7567917da613b8f8d591c1674e411fd3404bea41ef2b9a0e0a1e049c0f9406d7", size = 381842 }, + { url = "https://files.pythonhosted.org/packages/0b/dd/0a86195ee7a1a96c088aefc8504385e881cf56f4563ed81bafe21cbf1fb0/ormsgpack-1.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:4e418256c5d8622b8bc92861936f7c6a0131355e7bcad88a42102ae8227f8a1c", size = 113008 }, + { url = "https://files.pythonhosted.org/packages/4c/57/fafc79e32f3087f6f26f509d80b8167516326bfea38d30502627c01617e0/ormsgpack-1.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:433ace29aa02713554f714c62a4e4dcad0c9e32674ba4f66742c91a4c3b1b969", size = 106648 }, + { url = "https://files.pythonhosted.org/packages/b3/cf/5d58d9b132128d2fe5d586355dde76af386554abef00d608f66b913bff1f/ormsgpack-1.12.0-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:e57164be4ca34b64e210ec515059193280ac84df4d6f31a6fcbfb2fc8436de55", size = 369803 }, + { url = "https://files.pythonhosted.org/packages/67/42/968a2da361eaff2e4cbb17c82c7599787babf16684110ad70409646cc1e4/ormsgpack-1.12.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:904f96289deaa92fc6440b122edc27c5bdc28234edd63717f6d853d88c823a83", size = 195991 }, + { url = "https://files.pythonhosted.org/packages/03/f0/9696c6c6cf8ad35170f0be8d0ef3523cc258083535f6c8071cb8235ebb8b/ormsgpack-1.12.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b291d086e524a1062d57d1b7b5a8bcaaf29caebf0212fec12fd86240bd33633", size = 208316 }, ] [[package]] @@ -1291,21 +1158,6 @@ version = "0.4.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061 }, - { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037 }, - { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324 }, - { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505 }, - { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242 }, - { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474 }, - { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575 }, - { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736 }, - { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019 }, - { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376 }, - { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988 }, - { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615 }, - { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066 }, - { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655 }, - { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789 }, { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750 }, { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780 }, { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308 }, @@ -1419,7 +1271,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.12.3" +version = "2.12.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-types" }, @@ -1427,80 +1279,70 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383 } +sdist = { url = "https://files.pythonhosted.org/packages/96/ad/a17bc283d7d81837c061c49e3eaa27a45991759a1b7eae1031921c6bd924/pydantic-2.12.4.tar.gz", hash = "sha256:0f8cb9555000a4b5b617f66bfd2566264c4984b27589d3b845685983e8ea85ac", size = 821038 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431 }, + { url = "https://files.pythonhosted.org/packages/82/2f/e68750da9b04856e2a7ec56fc6f034a5a79775e9b9a81882252789873798/pydantic-2.12.4-py3-none-any.whl", hash = "sha256:92d3d202a745d46f9be6df459ac5a064fdaa3c1c4cd8adcfa332ccf3c05f871e", size = 463400 }, ] [[package]] name = "pydantic-core" -version = "2.41.4" +version = "2.41.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz", hash = "sha256:70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5", size = 457557 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/81/d3b3e95929c4369d30b2a66a91db63c8ed0a98381ae55a45da2cd1cc1288/pydantic_core-2.41.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ab06d77e053d660a6faaf04894446df7b0a7e7aba70c2797465a0a1af00fc887", size = 2099043 }, - { url = "https://files.pythonhosted.org/packages/58/da/46fdac49e6717e3a94fc9201403e08d9d61aa7a770fab6190b8740749047/pydantic_core-2.41.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c53ff33e603a9c1179a9364b0a24694f183717b2e0da2b5ad43c316c956901b2", size = 1910699 }, - { url = "https://files.pythonhosted.org/packages/1e/63/4d948f1b9dd8e991a5a98b77dd66c74641f5f2e5225fee37994b2e07d391/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:304c54176af2c143bd181d82e77c15c41cbacea8872a2225dd37e6544dce9999", size = 1952121 }, - { url = "https://files.pythonhosted.org/packages/b2/a7/e5fc60a6f781fc634ecaa9ecc3c20171d238794cef69ae0af79ac11b89d7/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025ba34a4cf4fb32f917d5d188ab5e702223d3ba603be4d8aca2f82bede432a4", size = 2041590 }, - { url = "https://files.pythonhosted.org/packages/70/69/dce747b1d21d59e85af433428978a1893c6f8a7068fa2bb4a927fba7a5ff/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9f5f30c402ed58f90c70e12eff65547d3ab74685ffe8283c719e6bead8ef53f", size = 2219869 }, - { url = "https://files.pythonhosted.org/packages/83/6a/c070e30e295403bf29c4df1cb781317b6a9bac7cd07b8d3acc94d501a63c/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd96e5d15385d301733113bcaa324c8bcf111275b7675a9c6e88bfb19fc05e3b", size = 2345169 }, - { url = "https://files.pythonhosted.org/packages/f0/83/06d001f8043c336baea7fd202a9ac7ad71f87e1c55d8112c50b745c40324/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98f348cbb44fae6e9653c1055db7e29de67ea6a9ca03a5fa2c2e11a47cff0e47", size = 2070165 }, - { url = "https://files.pythonhosted.org/packages/14/0a/e567c2883588dd12bcbc110232d892cf385356f7c8a9910311ac997ab715/pydantic_core-2.41.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec22626a2d14620a83ca583c6f5a4080fa3155282718b6055c2ea48d3ef35970", size = 2189067 }, - { url = "https://files.pythonhosted.org/packages/f4/1d/3d9fca34273ba03c9b1c5289f7618bc4bd09c3ad2289b5420481aa051a99/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a95d4590b1f1a43bf33ca6d647b990a88f4a3824a8c4572c708f0b45a5290ed", size = 2132997 }, - { url = "https://files.pythonhosted.org/packages/52/70/d702ef7a6cd41a8afc61f3554922b3ed8d19dd54c3bd4bdbfe332e610827/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:f9672ab4d398e1b602feadcffcdd3af44d5f5e6ddc15bc7d15d376d47e8e19f8", size = 2307187 }, - { url = "https://files.pythonhosted.org/packages/68/4c/c06be6e27545d08b802127914156f38d10ca287a9e8489342793de8aae3c/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:84d8854db5f55fead3b579f04bda9a36461dab0730c5d570e1526483e7bb8431", size = 2305204 }, - { url = "https://files.pythonhosted.org/packages/b0/e5/35ae4919bcd9f18603419e23c5eaf32750224a89d41a8df1a3704b69f77e/pydantic_core-2.41.4-cp312-cp312-win32.whl", hash = "sha256:9be1c01adb2ecc4e464392c36d17f97e9110fbbc906bcbe1c943b5b87a74aabd", size = 1972536 }, - { url = "https://files.pythonhosted.org/packages/1e/c2/49c5bb6d2a49eb2ee3647a93e3dae7080c6409a8a7558b075027644e879c/pydantic_core-2.41.4-cp312-cp312-win_amd64.whl", hash = "sha256:d682cf1d22bab22a5be08539dca3d1593488a99998f9f412137bc323179067ff", size = 2031132 }, - { url = "https://files.pythonhosted.org/packages/06/23/936343dbcba6eec93f73e95eb346810fc732f71ba27967b287b66f7b7097/pydantic_core-2.41.4-cp312-cp312-win_arm64.whl", hash = "sha256:833eebfd75a26d17470b58768c1834dfc90141b7afc6eb0429c21fc5a21dcfb8", size = 1969483 }, - { url = "https://files.pythonhosted.org/packages/13/d0/c20adabd181a029a970738dfe23710b52a31f1258f591874fcdec7359845/pydantic_core-2.41.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:85e050ad9e5f6fe1004eec65c914332e52f429bc0ae12d6fa2092407a462c746", size = 2105688 }, - { url = "https://files.pythonhosted.org/packages/00/b6/0ce5c03cec5ae94cca220dfecddc453c077d71363b98a4bbdb3c0b22c783/pydantic_core-2.41.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7393f1d64792763a48924ba31d1e44c2cfbc05e3b1c2c9abb4ceeadd912cced", size = 1910807 }, - { url = "https://files.pythonhosted.org/packages/68/3e/800d3d02c8beb0b5c069c870cbb83799d085debf43499c897bb4b4aaff0d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94dab0940b0d1fb28bcab847adf887c66a27a40291eedf0b473be58761c9799a", size = 1956669 }, - { url = "https://files.pythonhosted.org/packages/60/a4/24271cc71a17f64589be49ab8bd0751f6a0a03046c690df60989f2f95c2c/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de7c42f897e689ee6f9e93c4bec72b99ae3b32a2ade1c7e4798e690ff5246e02", size = 2051629 }, - { url = "https://files.pythonhosted.org/packages/68/de/45af3ca2f175d91b96bfb62e1f2d2f1f9f3b14a734afe0bfeff079f78181/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:664b3199193262277b8b3cd1e754fb07f2c6023289c815a1e1e8fb415cb247b1", size = 2224049 }, - { url = "https://files.pythonhosted.org/packages/af/8f/ae4e1ff84672bf869d0a77af24fd78387850e9497753c432875066b5d622/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95b253b88f7d308b1c0b417c4624f44553ba4762816f94e6986819b9c273fb2", size = 2342409 }, - { url = "https://files.pythonhosted.org/packages/18/62/273dd70b0026a085c7b74b000394e1ef95719ea579c76ea2f0cc8893736d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1351f5bbdbbabc689727cb91649a00cb9ee7203e0a6e54e9f5ba9e22e384b84", size = 2069635 }, - { url = "https://files.pythonhosted.org/packages/30/03/cf485fff699b4cdaea469bc481719d3e49f023241b4abb656f8d422189fc/pydantic_core-2.41.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1affa4798520b148d7182da0615d648e752de4ab1a9566b7471bc803d88a062d", size = 2194284 }, - { url = "https://files.pythonhosted.org/packages/f9/7e/c8e713db32405dfd97211f2fc0a15d6bf8adb7640f3d18544c1f39526619/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7b74e18052fea4aa8dea2fb7dbc23d15439695da6cbe6cfc1b694af1115df09d", size = 2137566 }, - { url = "https://files.pythonhosted.org/packages/04/f7/db71fd4cdccc8b75990f79ccafbbd66757e19f6d5ee724a6252414483fb4/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:285b643d75c0e30abda9dc1077395624f314a37e3c09ca402d4015ef5979f1a2", size = 2316809 }, - { url = "https://files.pythonhosted.org/packages/76/63/a54973ddb945f1bca56742b48b144d85c9fc22f819ddeb9f861c249d5464/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f52679ff4218d713b3b33f88c89ccbf3a5c2c12ba665fb80ccc4192b4608dbab", size = 2311119 }, - { url = "https://files.pythonhosted.org/packages/f8/03/5d12891e93c19218af74843a27e32b94922195ded2386f7b55382f904d2f/pydantic_core-2.41.4-cp313-cp313-win32.whl", hash = "sha256:ecde6dedd6fff127c273c76821bb754d793be1024bc33314a120f83a3c69460c", size = 1981398 }, - { url = "https://files.pythonhosted.org/packages/be/d8/fd0de71f39db91135b7a26996160de71c073d8635edfce8b3c3681be0d6d/pydantic_core-2.41.4-cp313-cp313-win_amd64.whl", hash = "sha256:d081a1f3800f05409ed868ebb2d74ac39dd0c1ff6c035b5162356d76030736d4", size = 2030735 }, - { url = "https://files.pythonhosted.org/packages/72/86/c99921c1cf6650023c08bfab6fe2d7057a5142628ef7ccfa9921f2dda1d5/pydantic_core-2.41.4-cp313-cp313-win_arm64.whl", hash = "sha256:f8e49c9c364a7edcbe2a310f12733aad95b022495ef2a8d653f645e5d20c1564", size = 1973209 }, - { url = "https://files.pythonhosted.org/packages/36/0d/b5706cacb70a8414396efdda3d72ae0542e050b591119e458e2490baf035/pydantic_core-2.41.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ed97fd56a561f5eb5706cebe94f1ad7c13b84d98312a05546f2ad036bafe87f4", size = 1877324 }, - { url = "https://files.pythonhosted.org/packages/de/2d/cba1fa02cfdea72dfb3a9babb067c83b9dff0bbcb198368e000a6b756ea7/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a870c307bf1ee91fc58a9a61338ff780d01bfae45922624816878dce784095d2", size = 1884515 }, - { url = "https://files.pythonhosted.org/packages/07/ea/3df927c4384ed9b503c9cc2d076cf983b4f2adb0c754578dfb1245c51e46/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25e97bc1f5f8f7985bdc2335ef9e73843bb561eb1fa6831fdfc295c1c2061cf", size = 2042819 }, - { url = "https://files.pythonhosted.org/packages/6a/ee/df8e871f07074250270a3b1b82aad4cd0026b588acd5d7d3eb2fcb1471a3/pydantic_core-2.41.4-cp313-cp313t-win_amd64.whl", hash = "sha256:d405d14bea042f166512add3091c1af40437c2e7f86988f3915fabd27b1e9cd2", size = 1995866 }, - { url = "https://files.pythonhosted.org/packages/fc/de/b20f4ab954d6d399499c33ec4fafc46d9551e11dc1858fb7f5dca0748ceb/pydantic_core-2.41.4-cp313-cp313t-win_arm64.whl", hash = "sha256:19f3684868309db5263a11bace3c45d93f6f24afa2ffe75a647583df22a2ff89", size = 1970034 }, - { url = "https://files.pythonhosted.org/packages/54/28/d3325da57d413b9819365546eb9a6e8b7cbd9373d9380efd5f74326143e6/pydantic_core-2.41.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:e9205d97ed08a82ebb9a307e92914bb30e18cdf6f6b12ca4bedadb1588a0bfe1", size = 2102022 }, - { url = "https://files.pythonhosted.org/packages/9e/24/b58a1bc0d834bf1acc4361e61233ee217169a42efbdc15a60296e13ce438/pydantic_core-2.41.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:82df1f432b37d832709fbcc0e24394bba04a01b6ecf1ee87578145c19cde12ac", size = 1905495 }, - { url = "https://files.pythonhosted.org/packages/fb/a4/71f759cc41b7043e8ecdaab81b985a9b6cad7cec077e0b92cff8b71ecf6b/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3b4cc4539e055cfa39a3763c939f9d409eb40e85813257dcd761985a108554", size = 1956131 }, - { url = "https://files.pythonhosted.org/packages/b0/64/1e79ac7aa51f1eec7c4cda8cbe456d5d09f05fdd68b32776d72168d54275/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1eb1754fce47c63d2ff57fdb88c351a6c0150995890088b33767a10218eaa4e", size = 2052236 }, - { url = "https://files.pythonhosted.org/packages/e9/e3/a3ffc363bd4287b80f1d43dc1c28ba64831f8dfc237d6fec8f2661138d48/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6ab5ab30ef325b443f379ddb575a34969c333004fca5a1daa0133a6ffaad616", size = 2223573 }, - { url = "https://files.pythonhosted.org/packages/28/27/78814089b4d2e684a9088ede3790763c64693c3d1408ddc0a248bc789126/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31a41030b1d9ca497634092b46481b937ff9397a86f9f51bd41c4767b6fc04af", size = 2342467 }, - { url = "https://files.pythonhosted.org/packages/92/97/4de0e2a1159cb85ad737e03306717637842c88c7fd6d97973172fb183149/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a44ac1738591472c3d020f61c6df1e4015180d6262ebd39bf2aeb52571b60f12", size = 2063754 }, - { url = "https://files.pythonhosted.org/packages/0f/50/8cb90ce4b9efcf7ae78130afeb99fd1c86125ccdf9906ef64b9d42f37c25/pydantic_core-2.41.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d72f2b5e6e82ab8f94ea7d0d42f83c487dc159c5240d8f83beae684472864e2d", size = 2196754 }, - { url = "https://files.pythonhosted.org/packages/34/3b/ccdc77af9cd5082723574a1cc1bcae7a6acacc829d7c0a06201f7886a109/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:c4d1e854aaf044487d31143f541f7aafe7b482ae72a022c664b2de2e466ed0ad", size = 2137115 }, - { url = "https://files.pythonhosted.org/packages/ca/ba/e7c7a02651a8f7c52dc2cff2b64a30c313e3b57c7d93703cecea76c09b71/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b568af94267729d76e6ee5ececda4e283d07bbb28e8148bb17adad93d025d25a", size = 2317400 }, - { url = "https://files.pythonhosted.org/packages/2c/ba/6c533a4ee8aec6b812c643c49bb3bd88d3f01e3cebe451bb85512d37f00f/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6d55fb8b1e8929b341cc313a81a26e0d48aa3b519c1dbaadec3a6a2b4fcad025", size = 2312070 }, - { url = "https://files.pythonhosted.org/packages/22/ae/f10524fcc0ab8d7f96cf9a74c880243576fd3e72bd8ce4f81e43d22bcab7/pydantic_core-2.41.4-cp314-cp314-win32.whl", hash = "sha256:5b66584e549e2e32a1398df11da2e0a7eff45d5c2d9db9d5667c5e6ac764d77e", size = 1982277 }, - { url = "https://files.pythonhosted.org/packages/b4/dc/e5aa27aea1ad4638f0c3fb41132f7eb583bd7420ee63204e2d4333a3bbf9/pydantic_core-2.41.4-cp314-cp314-win_amd64.whl", hash = "sha256:557a0aab88664cc552285316809cab897716a372afaf8efdbef756f8b890e894", size = 2024608 }, - { url = "https://files.pythonhosted.org/packages/3e/61/51d89cc2612bd147198e120a13f150afbf0bcb4615cddb049ab10b81b79e/pydantic_core-2.41.4-cp314-cp314-win_arm64.whl", hash = "sha256:3f1ea6f48a045745d0d9f325989d8abd3f1eaf47dd00485912d1a3a63c623a8d", size = 1967614 }, - { url = "https://files.pythonhosted.org/packages/0d/c2/472f2e31b95eff099961fa050c376ab7156a81da194f9edb9f710f68787b/pydantic_core-2.41.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6c1fe4c5404c448b13188dd8bd2ebc2bdd7e6727fa61ff481bcc2cca894018da", size = 1876904 }, - { url = "https://files.pythonhosted.org/packages/4a/07/ea8eeb91173807ecdae4f4a5f4b150a520085b35454350fc219ba79e66a3/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:523e7da4d43b113bf8e7b49fa4ec0c35bf4fe66b2230bfc5c13cc498f12c6c3e", size = 1882538 }, - { url = "https://files.pythonhosted.org/packages/1e/29/b53a9ca6cd366bfc928823679c6a76c7a4c69f8201c0ba7903ad18ebae2f/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5729225de81fb65b70fdb1907fcf08c75d498f4a6f15af005aabb1fdadc19dfa", size = 2041183 }, - { url = "https://files.pythonhosted.org/packages/c7/3d/f8c1a371ceebcaf94d6dd2d77c6cf4b1c078e13a5837aee83f760b4f7cfd/pydantic_core-2.41.4-cp314-cp314t-win_amd64.whl", hash = "sha256:de2cfbb09e88f0f795fd90cf955858fc2c691df65b1f21f0aa00b99f3fbc661d", size = 1993542 }, - { url = "https://files.pythonhosted.org/packages/8a/ac/9fc61b4f9d079482a290afe8d206b8f490e9fd32d4fc03ed4fc698214e01/pydantic_core-2.41.4-cp314-cp314t-win_arm64.whl", hash = "sha256:d34f950ae05a83e0ede899c595f312ca976023ea1db100cd5aa188f7005e3ab0", size = 1973897 }, - { url = "https://files.pythonhosted.org/packages/b0/12/5ba58daa7f453454464f92b3ca7b9d7c657d8641c48e370c3ebc9a82dd78/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:a1b2cfec3879afb742a7b0bcfa53e4f22ba96571c9e54d6a3afe1052d17d843b", size = 2122139 }, - { url = "https://files.pythonhosted.org/packages/21/fb/6860126a77725c3108baecd10fd3d75fec25191d6381b6eb2ac660228eac/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:d175600d975b7c244af6eb9c9041f10059f20b8bbffec9e33fdd5ee3f67cdc42", size = 1936674 }, - { url = "https://files.pythonhosted.org/packages/de/be/57dcaa3ed595d81f8757e2b44a38240ac5d37628bce25fb20d02c7018776/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f184d657fa4947ae5ec9c47bd7e917730fa1cbb78195037e32dcbab50aca5ee", size = 1956398 }, - { url = "https://files.pythonhosted.org/packages/2f/1d/679a344fadb9695f1a6a294d739fbd21d71fa023286daeea8c0ed49e7c2b/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ed810568aeffed3edc78910af32af911c835cc39ebbfacd1f0ab5dd53028e5c", size = 2138674 }, - { url = "https://files.pythonhosted.org/packages/c4/48/ae937e5a831b7c0dc646b2ef788c27cd003894882415300ed21927c21efa/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:4f5d640aeebb438517150fdeec097739614421900e4a08db4a3ef38898798537", size = 2112087 }, - { url = "https://files.pythonhosted.org/packages/5e/db/6db8073e3d32dae017da7e0d16a9ecb897d0a4d92e00634916e486097961/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:4a9ab037b71927babc6d9e7fc01aea9e66dc2a4a34dff06ef0724a4049629f94", size = 1920387 }, - { url = "https://files.pythonhosted.org/packages/0d/c1/dd3542d072fcc336030d66834872f0328727e3b8de289c662faa04aa270e/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4dab9484ec605c3016df9ad4fd4f9a390bc5d816a3b10c6550f8424bb80b18c", size = 1951495 }, - { url = "https://files.pythonhosted.org/packages/2b/c6/db8d13a1f8ab3f1eb08c88bd00fd62d44311e3456d1e85c0e59e0a0376e7/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8a5028425820731d8c6c098ab642d7b8b999758e24acae03ed38a66eca8335", size = 2139008 }, +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403 }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206 }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307 }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258 }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917 }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186 }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164 }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146 }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788 }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133 }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852 }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679 }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766 }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005 }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622 }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725 }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040 }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691 }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897 }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302 }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877 }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680 }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960 }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102 }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039 }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126 }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489 }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288 }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255 }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760 }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092 }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385 }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832 }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585 }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078 }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914 }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560 }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244 }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955 }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906 }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607 }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769 }, + { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441 }, + { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291 }, + { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632 }, + { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905 }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495 }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388 }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879 }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017 }, ] [[package]] @@ -1532,16 +1374,6 @@ version = "6.0.3" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063 }, - { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973 }, - { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116 }, - { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011 }, - { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870 }, - { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089 }, - { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181 }, - { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658 }, - { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003 }, - { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344 }, { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669 }, { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252 }, { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081 }, @@ -1574,80 +1406,66 @@ wheels = [ [[package]] name = "regex" -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 }, +version = "2025.11.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/a9/546676f25e573a4cf00fe8e119b78a37b6a8fe2dc95cda877b30889c9c45/regex-2025.11.3.tar.gz", hash = "sha256:1fedc720f9bb2494ce31a58a1631f9c82df6a09b49c19517ea5cc280b4541e01", size = 414669 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/a7/dda24ebd49da46a197436ad96378f17df30ceb40e52e859fc42cac45b850/regex-2025.11.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:c1e448051717a334891f2b9a620fe36776ebf3dd8ec46a0b877c8ae69575feb4", size = 489081 }, + { url = "https://files.pythonhosted.org/packages/19/22/af2dc751aacf88089836aa088a1a11c4f21a04707eb1b0478e8e8fb32847/regex-2025.11.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9b5aca4d5dfd7fbfbfbdaf44850fcc7709a01146a797536a8f84952e940cca76", size = 291123 }, + { url = "https://files.pythonhosted.org/packages/a3/88/1a3ea5672f4b0a84802ee9891b86743438e7c04eb0b8f8c4e16a42375327/regex-2025.11.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:04d2765516395cf7dda331a244a3282c0f5ae96075f728629287dfa6f76ba70a", size = 288814 }, + { url = "https://files.pythonhosted.org/packages/fb/8c/f5987895bf42b8ddeea1b315c9fedcfe07cadee28b9c98cf50d00adcb14d/regex-2025.11.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d9903ca42bfeec4cebedba8022a7c97ad2aab22e09573ce9976ba01b65e4361", size = 798592 }, + { url = "https://files.pythonhosted.org/packages/99/2a/6591ebeede78203fa77ee46a1c36649e02df9eaa77a033d1ccdf2fcd5d4e/regex-2025.11.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:639431bdc89d6429f6721625e8129413980ccd62e9d3f496be618a41d205f160", size = 864122 }, + { url = "https://files.pythonhosted.org/packages/94/d6/be32a87cf28cf8ed064ff281cfbd49aefd90242a83e4b08b5a86b38e8eb4/regex-2025.11.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f117efad42068f9715677c8523ed2be1518116d1c49b1dd17987716695181efe", size = 912272 }, + { url = "https://files.pythonhosted.org/packages/62/11/9bcef2d1445665b180ac7f230406ad80671f0fc2a6ffb93493b5dd8cd64c/regex-2025.11.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4aecb6f461316adf9f1f0f6a4a1a3d79e045f9b71ec76055a791affa3b285850", size = 803497 }, + { url = "https://files.pythonhosted.org/packages/e5/a7/da0dc273d57f560399aa16d8a68ae7f9b57679476fc7ace46501d455fe84/regex-2025.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3b3a5f320136873cc5561098dfab677eea139521cb9a9e8db98b7e64aef44cbc", size = 787892 }, + { url = "https://files.pythonhosted.org/packages/da/4b/732a0c5a9736a0b8d6d720d4945a2f1e6f38f87f48f3173559f53e8d5d82/regex-2025.11.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:75fa6f0056e7efb1f42a1c34e58be24072cb9e61a601340cc1196ae92326a4f9", size = 858462 }, + { url = "https://files.pythonhosted.org/packages/0c/f5/a2a03df27dc4c2d0c769220f5110ba8c4084b0bfa9ab0f9b4fcfa3d2b0fc/regex-2025.11.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:dbe6095001465294f13f1adcd3311e50dd84e5a71525f20a10bd16689c61ce0b", size = 850528 }, + { url = "https://files.pythonhosted.org/packages/d6/09/e1cd5bee3841c7f6eb37d95ca91cdee7100b8f88b81e41c2ef426910891a/regex-2025.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:454d9b4ae7881afbc25015b8627c16d88a597479b9dea82b8c6e7e2e07240dc7", size = 789866 }, + { url = "https://files.pythonhosted.org/packages/eb/51/702f5ea74e2a9c13d855a6a85b7f80c30f9e72a95493260193c07f3f8d74/regex-2025.11.3-cp313-cp313-win32.whl", hash = "sha256:28ba4d69171fc6e9896337d4fc63a43660002b7da53fc15ac992abcf3410917c", size = 266189 }, + { url = "https://files.pythonhosted.org/packages/8b/00/6e29bb314e271a743170e53649db0fdb8e8ff0b64b4f425f5602f4eb9014/regex-2025.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:bac4200befe50c670c405dc33af26dad5a3b6b255dd6c000d92fe4629f9ed6a5", size = 277054 }, + { url = "https://files.pythonhosted.org/packages/25/f1/b156ff9f2ec9ac441710764dda95e4edaf5f36aca48246d1eea3f1fd96ec/regex-2025.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:2292cd5a90dab247f9abe892ac584cb24f0f54680c73fcb4a7493c66c2bf2467", size = 270325 }, + { url = "https://files.pythonhosted.org/packages/20/28/fd0c63357caefe5680b8ea052131acbd7f456893b69cc2a90cc3e0dc90d4/regex-2025.11.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:1eb1ebf6822b756c723e09f5186473d93236c06c579d2cc0671a722d2ab14281", size = 491984 }, + { url = "https://files.pythonhosted.org/packages/df/ec/7014c15626ab46b902b3bcc4b28a7bae46d8f281fc7ea9c95e22fcaaa917/regex-2025.11.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1e00ec2970aab10dc5db34af535f21fcf32b4a31d99e34963419636e2f85ae39", size = 292673 }, + { url = "https://files.pythonhosted.org/packages/23/ab/3b952ff7239f20d05f1f99e9e20188513905f218c81d52fb5e78d2bf7634/regex-2025.11.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a4cb042b615245d5ff9b3794f56be4138b5adc35a4166014d31d1814744148c7", size = 291029 }, + { url = "https://files.pythonhosted.org/packages/21/7e/3dc2749fc684f455f162dcafb8a187b559e2614f3826877d3844a131f37b/regex-2025.11.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44f264d4bf02f3176467d90b294d59bf1db9fe53c141ff772f27a8b456b2a9ed", size = 807437 }, + { url = "https://files.pythonhosted.org/packages/1b/0b/d529a85ab349c6a25d1ca783235b6e3eedf187247eab536797021f7126c6/regex-2025.11.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7be0277469bf3bd7a34a9c57c1b6a724532a0d235cd0dc4e7f4316f982c28b19", size = 873368 }, + { url = "https://files.pythonhosted.org/packages/7d/18/2d868155f8c9e3e9d8f9e10c64e9a9f496bb8f7e037a88a8bed26b435af6/regex-2025.11.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0d31e08426ff4b5b650f68839f5af51a92a5b51abd8554a60c2fbc7c71f25d0b", size = 914921 }, + { url = "https://files.pythonhosted.org/packages/2d/71/9d72ff0f354fa783fe2ba913c8734c3b433b86406117a8db4ea2bf1c7a2f/regex-2025.11.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e43586ce5bd28f9f285a6e729466841368c4a0353f6fd08d4ce4630843d3648a", size = 812708 }, + { url = "https://files.pythonhosted.org/packages/e7/19/ce4bf7f5575c97f82b6e804ffb5c4e940c62609ab2a0d9538d47a7fdf7d4/regex-2025.11.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:0f9397d561a4c16829d4e6ff75202c1c08b68a3bdbfe29dbfcdb31c9830907c6", size = 795472 }, + { url = "https://files.pythonhosted.org/packages/03/86/fd1063a176ffb7b2315f9a1b08d17b18118b28d9df163132615b835a26ee/regex-2025.11.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:dd16e78eb18ffdb25ee33a0682d17912e8cc8a770e885aeee95020046128f1ce", size = 868341 }, + { url = "https://files.pythonhosted.org/packages/12/43/103fb2e9811205e7386366501bc866a164a0430c79dd59eac886a2822950/regex-2025.11.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:ffcca5b9efe948ba0661e9df0fa50d2bc4b097c70b9810212d6b62f05d83b2dd", size = 854666 }, + { url = "https://files.pythonhosted.org/packages/7d/22/e392e53f3869b75804762c7c848bd2dd2abf2b70fb0e526f58724638bd35/regex-2025.11.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c56b4d162ca2b43318ac671c65bd4d563e841a694ac70e1a976ac38fcf4ca1d2", size = 799473 }, + { url = "https://files.pythonhosted.org/packages/4f/f9/8bd6b656592f925b6845fcbb4d57603a3ac2fb2373344ffa1ed70aa6820a/regex-2025.11.3-cp313-cp313t-win32.whl", hash = "sha256:9ddc42e68114e161e51e272f667d640f97e84a2b9ef14b7477c53aac20c2d59a", size = 268792 }, + { url = "https://files.pythonhosted.org/packages/e5/87/0e7d603467775ff65cd2aeabf1b5b50cc1c3708556a8b849a2fa4dd1542b/regex-2025.11.3-cp313-cp313t-win_amd64.whl", hash = "sha256:7a7c7fdf755032ffdd72c77e3d8096bdcb0eb92e89e17571a196f03d88b11b3c", size = 280214 }, + { url = "https://files.pythonhosted.org/packages/8d/d0/2afc6f8e94e2b64bfb738a7c2b6387ac1699f09f032d363ed9447fd2bb57/regex-2025.11.3-cp313-cp313t-win_arm64.whl", hash = "sha256:df9eb838c44f570283712e7cff14c16329a9f0fb19ca492d21d4b7528ee6821e", size = 271469 }, + { url = "https://files.pythonhosted.org/packages/31/e9/f6e13de7e0983837f7b6d238ad9458800a874bf37c264f7923e63409944c/regex-2025.11.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9697a52e57576c83139d7c6f213d64485d3df5bf84807c35fa409e6c970801c6", size = 489089 }, + { url = "https://files.pythonhosted.org/packages/a3/5c/261f4a262f1fa65141c1b74b255988bd2fa020cc599e53b080667d591cfc/regex-2025.11.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e18bc3f73bd41243c9b38a6d9f2366cd0e0137a9aebe2d8ff76c5b67d4c0a3f4", size = 291059 }, + { url = "https://files.pythonhosted.org/packages/8e/57/f14eeb7f072b0e9a5a090d1712741fd8f214ec193dba773cf5410108bb7d/regex-2025.11.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:61a08bcb0ec14ff4e0ed2044aad948d0659604f824cbd50b55e30b0ec6f09c73", size = 288900 }, + { url = "https://files.pythonhosted.org/packages/3c/6b/1d650c45e99a9b327586739d926a1cd4e94666b1bd4af90428b36af66dc7/regex-2025.11.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c9c30003b9347c24bcc210958c5d167b9e4f9be786cb380a7d32f14f9b84674f", size = 799010 }, + { url = "https://files.pythonhosted.org/packages/99/ee/d66dcbc6b628ce4e3f7f0cbbb84603aa2fc0ffc878babc857726b8aab2e9/regex-2025.11.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4e1e592789704459900728d88d41a46fe3969b82ab62945560a31732ffc19a6d", size = 864893 }, + { url = "https://files.pythonhosted.org/packages/bf/2d/f238229f1caba7ac87a6c4153d79947fb0261415827ae0f77c304260c7d3/regex-2025.11.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6538241f45eb5a25aa575dbba1069ad786f68a4f2773a29a2bd3dd1f9de787be", size = 911522 }, + { url = "https://files.pythonhosted.org/packages/bd/3d/22a4eaba214a917c80e04f6025d26143690f0419511e0116508e24b11c9b/regex-2025.11.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce22519c989bb72a7e6b36a199384c53db7722fe669ba891da75907fe3587db", size = 803272 }, + { url = "https://files.pythonhosted.org/packages/84/b1/03188f634a409353a84b5ef49754b97dbcc0c0f6fd6c8ede505a8960a0a4/regex-2025.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:66d559b21d3640203ab9075797a55165d79017520685fb407b9234d72ab63c62", size = 787958 }, + { url = "https://files.pythonhosted.org/packages/99/6a/27d072f7fbf6fadd59c64d210305e1ff865cc3b78b526fd147db768c553b/regex-2025.11.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:669dcfb2e38f9e8c69507bace46f4889e3abbfd9b0c29719202883c0a603598f", size = 859289 }, + { url = "https://files.pythonhosted.org/packages/9a/70/1b3878f648e0b6abe023172dacb02157e685564853cc363d9961bcccde4e/regex-2025.11.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:32f74f35ff0f25a5021373ac61442edcb150731fbaa28286bbc8bb1582c89d02", size = 850026 }, + { url = "https://files.pythonhosted.org/packages/dd/d5/68e25559b526b8baab8e66839304ede68ff6727237a47727d240006bd0ff/regex-2025.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e6c7a21dffba883234baefe91bc3388e629779582038f75d2a5be918e250f0ed", size = 789499 }, + { url = "https://files.pythonhosted.org/packages/fc/df/43971264857140a350910d4e33df725e8c94dd9dee8d2e4729fa0d63d49e/regex-2025.11.3-cp314-cp314-win32.whl", hash = "sha256:795ea137b1d809eb6836b43748b12634291c0ed55ad50a7d72d21edf1cd565c4", size = 271604 }, + { url = "https://files.pythonhosted.org/packages/01/6f/9711b57dc6894a55faf80a4c1b5aa4f8649805cb9c7aef46f7d27e2b9206/regex-2025.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:9f95fbaa0ee1610ec0fc6b26668e9917a582ba80c52cc6d9ada15e30aa9ab9ad", size = 280320 }, + { url = "https://files.pythonhosted.org/packages/f1/7e/f6eaa207d4377481f5e1775cdeb5a443b5a59b392d0065f3417d31d80f87/regex-2025.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:dfec44d532be4c07088c3de2876130ff0fbeeacaa89a137decbbb5f665855a0f", size = 273372 }, + { url = "https://files.pythonhosted.org/packages/c3/06/49b198550ee0f5e4184271cee87ba4dfd9692c91ec55289e6282f0f86ccf/regex-2025.11.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ba0d8a5d7f04f73ee7d01d974d47c5834f8a1b0224390e4fe7c12a3a92a78ecc", size = 491985 }, + { url = "https://files.pythonhosted.org/packages/ce/bf/abdafade008f0b1c9da10d934034cb670432d6cf6cbe38bbb53a1cfd6cf8/regex-2025.11.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:442d86cf1cfe4faabf97db7d901ef58347efd004934da045c745e7b5bd57ac49", size = 292669 }, + { url = "https://files.pythonhosted.org/packages/f9/ef/0c357bb8edbd2ad8e273fcb9e1761bc37b8acbc6e1be050bebd6475f19c1/regex-2025.11.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:fd0a5e563c756de210bb964789b5abe4f114dacae9104a47e1a649b910361536", size = 291030 }, + { url = "https://files.pythonhosted.org/packages/79/06/edbb67257596649b8fb088d6aeacbcb248ac195714b18a65e018bf4c0b50/regex-2025.11.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf3490bcbb985a1ae97b2ce9ad1c0f06a852d5b19dde9b07bdf25bf224248c95", size = 807674 }, + { url = "https://files.pythonhosted.org/packages/f4/d9/ad4deccfce0ea336296bd087f1a191543bb99ee1c53093dcd4c64d951d00/regex-2025.11.3-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3809988f0a8b8c9dcc0f92478d6501fac7200b9ec56aecf0ec21f4a2ec4b6009", size = 873451 }, + { url = "https://files.pythonhosted.org/packages/13/75/a55a4724c56ef13e3e04acaab29df26582f6978c000ac9cd6810ad1f341f/regex-2025.11.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f4ff94e58e84aedb9c9fce66d4ef9f27a190285b451420f297c9a09f2b9abee9", size = 914980 }, + { url = "https://files.pythonhosted.org/packages/67/1e/a1657ee15bd9116f70d4a530c736983eed997b361e20ecd8f5ca3759d5c5/regex-2025.11.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eb542fd347ce61e1321b0a6b945d5701528dca0cd9759c2e3bb8bd57e47964d", size = 812852 }, + { url = "https://files.pythonhosted.org/packages/b8/6f/f7516dde5506a588a561d296b2d0044839de06035bb486b326065b4c101e/regex-2025.11.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d6c2d5919075a1f2e413c00b056ea0c2f065b3f5fe83c3d07d325ab92dce51d6", size = 795566 }, + { url = "https://files.pythonhosted.org/packages/d9/dd/3d10b9e170cc16fb34cb2cef91513cf3df65f440b3366030631b2984a264/regex-2025.11.3-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:3f8bf11a4827cc7ce5a53d4ef6cddd5ad25595d3c1435ef08f76825851343154", size = 868463 }, + { url = "https://files.pythonhosted.org/packages/f5/8e/935e6beff1695aa9085ff83195daccd72acc82c81793df480f34569330de/regex-2025.11.3-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:22c12d837298651e5550ac1d964e4ff57c3f56965fc1812c90c9fb2028eaf267", size = 854694 }, + { url = "https://files.pythonhosted.org/packages/92/12/10650181a040978b2f5720a6a74d44f841371a3d984c2083fc1752e4acf6/regex-2025.11.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:62ba394a3dda9ad41c7c780f60f6e4a70988741415ae96f6d1bf6c239cf01379", size = 799691 }, + { url = "https://files.pythonhosted.org/packages/67/90/8f37138181c9a7690e7e4cb388debbd389342db3c7381d636d2875940752/regex-2025.11.3-cp314-cp314t-win32.whl", hash = "sha256:4bf146dca15cdd53224a1bf46d628bd7590e4a07fbb69e720d561aea43a32b38", size = 274583 }, + { url = "https://files.pythonhosted.org/packages/8f/cd/867f5ec442d56beb56f5f854f40abcfc75e11d10b11fdb1869dd39c63aaf/regex-2025.11.3-cp314-cp314t-win_amd64.whl", hash = "sha256:adad1a1bcf1c9e76346e091d22d23ac54ef28e1365117d99521631078dfec9de", size = 284286 }, + { url = "https://files.pythonhosted.org/packages/20/31/32c0c4610cbc070362bf1d2e4ea86d1ea29014d400a6d6c2486fcfd57766/regex-2025.11.3-cp314-cp314t-win_arm64.whl", hash = "sha256:c54f768482cef41e219720013cd05933b6f971d9562544d691c68699bf2b6801", size = 274741 }, ] [[package]] @@ -1708,14 +1526,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/f0/f2/840d7b9496825333f532d2e3976b8eadbf52034178aac53630d09fe6e1ef/sqlalchemy-2.0.44.tar.gz", hash = "sha256:0ae7454e1ab1d780aee69fd2aae7d6b8670a581d8847f2d1e0f7ddfbf47e5a22", size = 9819830 } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/c4/59c7c9b068e6813c898b771204aad36683c96318ed12d4233e1b18762164/sqlalchemy-2.0.44-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:72fea91746b5890f9e5e0997f16cbf3d53550580d76355ba2d998311b17b2250", size = 2139675 }, - { url = "https://files.pythonhosted.org/packages/d6/ae/eeb0920537a6f9c5a3708e4a5fc55af25900216bdb4847ec29cfddf3bf3a/sqlalchemy-2.0.44-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:585c0c852a891450edbb1eaca8648408a3cc125f18cf433941fa6babcc359e29", size = 2127726 }, - { url = "https://files.pythonhosted.org/packages/d8/d5/2ebbabe0379418eda8041c06b0b551f213576bfe4c2f09d77c06c07c8cc5/sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9b94843a102efa9ac68a7a30cd46df3ff1ed9c658100d30a725d10d9c60a2f44", size = 3327603 }, - { url = "https://files.pythonhosted.org/packages/45/e5/5aa65852dadc24b7d8ae75b7efb8d19303ed6ac93482e60c44a585930ea5/sqlalchemy-2.0.44-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:119dc41e7a7defcefc57189cfa0e61b1bf9c228211aba432b53fb71ef367fda1", size = 3337842 }, - { url = "https://files.pythonhosted.org/packages/41/92/648f1afd3f20b71e880ca797a960f638d39d243e233a7082c93093c22378/sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0765e318ee9179b3718c4fd7ba35c434f4dd20332fbc6857a5e8df17719c24d7", size = 3264558 }, - { url = "https://files.pythonhosted.org/packages/40/cf/e27d7ee61a10f74b17740918e23cbc5bc62011b48282170dc4c66da8ec0f/sqlalchemy-2.0.44-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2e7b5b079055e02d06a4308d0481658e4f06bc7ef211567edc8f7d5dce52018d", size = 3301570 }, - { url = "https://files.pythonhosted.org/packages/3b/3d/3116a9a7b63e780fb402799b6da227435be878b6846b192f076d2f838654/sqlalchemy-2.0.44-cp312-cp312-win32.whl", hash = "sha256:846541e58b9a81cce7dee8329f352c318de25aa2f2bbe1e31587eb1f057448b4", size = 2103447 }, - { url = "https://files.pythonhosted.org/packages/25/83/24690e9dfc241e6ab062df82cc0df7f4231c79ba98b273fa496fb3dd78ed/sqlalchemy-2.0.44-cp312-cp312-win_amd64.whl", hash = "sha256:7cbcb47fd66ab294703e1644f78971f6f2f1126424d2b300678f419aa73c7b6e", size = 2130912 }, { url = "https://files.pythonhosted.org/packages/45/d3/c67077a2249fdb455246e6853166360054c331db4613cda3e31ab1cadbef/sqlalchemy-2.0.44-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ff486e183d151e51b1d694c7aa1695747599bb00b9f5f604092b54b74c64a8e1", size = 2135479 }, { url = "https://files.pythonhosted.org/packages/2b/91/eabd0688330d6fd114f5f12c4f89b0d02929f525e6bf7ff80aa17ca802af/sqlalchemy-2.0.44-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0b1af8392eb27b372ddb783b317dea0f650241cea5bd29199b22235299ca2e45", size = 2123212 }, { url = "https://files.pythonhosted.org/packages/b0/bb/43e246cfe0e81c018076a16036d9b548c4cc649de241fa27d8d9ca6f85ab/sqlalchemy-2.0.44-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b61188657e3a2b9ac4e8f04d6cf8e51046e28175f79464c67f2fd35bceb0976", size = 3255353 }, @@ -1758,13 +1568,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728 }, - { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049 }, - { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008 }, - { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665 }, - { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230 }, - { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688 }, - { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694 }, { url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802 }, { url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995 }, { url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948 }, @@ -1869,21 +1672,6 @@ version = "3.6.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160 } wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744 }, - { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816 }, - { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035 }, - { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914 }, - { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163 }, - { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411 }, - { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883 }, - { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392 }, - { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898 }, - { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655 }, - { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001 }, - { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431 }, - { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617 }, - { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534 }, - { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876 }, { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738 }, { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821 }, { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127 }, @@ -1957,22 +1745,6 @@ dependencies = [ ] sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169 } wheels = [ - { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000 }, - { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338 }, - { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909 }, - { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940 }, - { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825 }, - { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705 }, - { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518 }, - { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267 }, - { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797 }, - { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535 }, - { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324 }, - { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803 }, - { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220 }, - { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589 }, - { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213 }, - { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330 }, { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980 }, { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424 }, { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821 }, @@ -2046,23 +1818,6 @@ version = "0.25.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513 } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/fc/f26eb6ef91ae723a03e16eddb198abcfce2bc5a42e224d44cc8b6765e57e/zstandard-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b", size = 795738 }, - { url = "https://files.pythonhosted.org/packages/aa/1c/d920d64b22f8dd028a8b90e2d756e431a5d86194caa78e3819c7bf53b4b3/zstandard-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00", size = 640436 }, - { url = "https://files.pythonhosted.org/packages/53/6c/288c3f0bd9fcfe9ca41e2c2fbfd17b2097f6af57b62a81161941f09afa76/zstandard-0.25.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64", size = 5343019 }, - { url = "https://files.pythonhosted.org/packages/1e/15/efef5a2f204a64bdb5571e6161d49f7ef0fffdbca953a615efbec045f60f/zstandard-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea", size = 5063012 }, - { url = "https://files.pythonhosted.org/packages/b7/37/a6ce629ffdb43959e92e87ebdaeebb5ac81c944b6a75c9c47e300f85abdf/zstandard-0.25.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb", size = 5394148 }, - { url = "https://files.pythonhosted.org/packages/e3/79/2bf870b3abeb5c070fe2d670a5a8d1057a8270f125ef7676d29ea900f496/zstandard-0.25.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a", size = 5451652 }, - { url = "https://files.pythonhosted.org/packages/53/60/7be26e610767316c028a2cbedb9a3beabdbe33e2182c373f71a1c0b88f36/zstandard-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902", size = 5546993 }, - { url = "https://files.pythonhosted.org/packages/85/c7/3483ad9ff0662623f3648479b0380d2de5510abf00990468c286c6b04017/zstandard-0.25.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f", size = 5046806 }, - { url = "https://files.pythonhosted.org/packages/08/b3/206883dd25b8d1591a1caa44b54c2aad84badccf2f1de9e2d60a446f9a25/zstandard-0.25.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b", size = 5576659 }, - { url = "https://files.pythonhosted.org/packages/9d/31/76c0779101453e6c117b0ff22565865c54f48f8bd807df2b00c2c404b8e0/zstandard-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6", size = 4953933 }, - { url = "https://files.pythonhosted.org/packages/18/e1/97680c664a1bf9a247a280a053d98e251424af51f1b196c6d52f117c9720/zstandard-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91", size = 5268008 }, - { url = "https://files.pythonhosted.org/packages/1e/73/316e4010de585ac798e154e88fd81bb16afc5c5cb1a72eeb16dd37e8024a/zstandard-0.25.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708", size = 5433517 }, - { url = "https://files.pythonhosted.org/packages/5b/60/dd0f8cfa8129c5a0ce3ea6b7f70be5b33d2618013a161e1ff26c2b39787c/zstandard-0.25.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512", size = 5814292 }, - { url = "https://files.pythonhosted.org/packages/fc/5f/75aafd4b9d11b5407b641b8e41a57864097663699f23e9ad4dbb91dc6bfe/zstandard-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa", size = 5360237 }, - { url = "https://files.pythonhosted.org/packages/ff/8d/0309daffea4fcac7981021dbf21cdb2e3427a9e76bafbcdbdf5392ff99a4/zstandard-0.25.0-cp312-cp312-win32.whl", hash = "sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd", size = 436922 }, - { url = "https://files.pythonhosted.org/packages/79/3b/fa54d9015f945330510cb5d0b0501e8253c127cca7ebe8ba46a965df18c5/zstandard-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01", size = 506276 }, - { url = "https://files.pythonhosted.org/packages/ea/6b/8b51697e5319b1f9ac71087b0af9a40d8a6288ff8025c36486e0c12abcc4/zstandard-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9", size = 462679 }, { url = "https://files.pythonhosted.org/packages/35/0b/8df9c4ad06af91d39e94fa96cc010a24ac4ef1378d3efab9223cc8593d40/zstandard-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94", size = 795735 }, { url = "https://files.pythonhosted.org/packages/3f/06/9ae96a3e5dcfd119377ba33d4c42a7d89da1efabd5cb3e366b156c45ff4d/zstandard-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1", size = 640440 }, { url = "https://files.pythonhosted.org/packages/d9/14/933d27204c2bd404229c69f445862454dcc101cd69ef8c6068f15aaec12c/zstandard-0.25.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f", size = 5343070 }, From 27f0b314fc023c7ed3029da1932bed26dab899da Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 6 Nov 2025 12:43:17 +0100 Subject: [PATCH 104/113] Update poetry.lock --- .../langgraph/python/examples/poetry.lock | 399 ++++++++---------- .../langgraph/python/examples/pyproject.toml | 1 + 2 files changed, 175 insertions(+), 225 deletions(-) diff --git a/integrations/langgraph/python/examples/poetry.lock b/integrations/langgraph/python/examples/poetry.lock index 6bb4f1e00..58a6626f1 100644 --- a/integrations/langgraph/python/examples/poetry.lock +++ b/integrations/langgraph/python/examples/poetry.lock @@ -1,17 +1,16 @@ -# This file is automatically @generated by Poetry 2.1.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "ag-ui-langgraph" -version = "0.0.17" +version = "0.0.18a0" description = "Implementation of the AG-UI protocol for LangGraph." optional = false python-versions = "<3.14,>=3.10" -groups = ["main"] files = [] develop = false [package.dependencies] -ag-ui-protocol = "==0.1.9" +ag-ui-protocol = "==0.2.0a0" langchain = ">=0.3.0" langchain-core = ">=0.3.0" langgraph = ">=0.3.25,<1.1.0" @@ -25,14 +24,13 @@ url = ".." [[package]] name = "ag-ui-protocol" -version = "0.1.9" +version = "0.2.0a0" description = "" optional = false python-versions = "<4.0,>=3.9" -groups = ["main"] files = [ - {file = "ag_ui_protocol-0.1.9-py3-none-any.whl", hash = "sha256:44c1238b0576a3915b3a16e1b3855724e08e92ebc96b1ff29379fbd3bfbd400b"}, - {file = "ag_ui_protocol-0.1.9.tar.gz", hash = "sha256:94d75e3919ff75e0b608a7eed445062ea0e6f11cd33b3386a7649047e0c7abd3"}, + {file = "ag_ui_protocol-0.2.0a0-py3-none-any.whl", hash = "sha256:3f1fbf7ea1f0333ce8034cdc67df192b3c1a85a6c39dc866c35f9329df85b9cf"}, + {file = "ag_ui_protocol-0.2.0a0.tar.gz", hash = "sha256:422bc284f9ab7019d2796641bac96faddd20eba815e1bad6122d72be1f989b80"}, ] [package.dependencies] @@ -44,7 +42,6 @@ version = "2.6.1" description = "Happy Eyeballs for asyncio" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"}, {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"}, @@ -56,7 +53,6 @@ version = "3.11.16" description = "Async http client/server framework (asyncio)" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb46bb0f24813e6cede6cc07b1961d4b04f331f7112a23b5e21f567da4ee50aa"}, {file = "aiohttp-3.11.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:54eb3aead72a5c19fad07219acd882c1643a1027fbcdefac9b502c267242f955"}, @@ -151,7 +147,7 @@ propcache = ">=0.2.0" yarl = ">=1.17.0,<2.0" [package.extras] -speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] [[package]] name = "aiosignal" @@ -159,7 +155,6 @@ version = "1.3.2" description = "aiosignal: a list of registered asynchronous callbacks" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, @@ -174,7 +169,6 @@ version = "0.7.0" description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, @@ -182,19 +176,19 @@ files = [ [[package]] name = "anthropic" -version = "0.61.0" +version = "0.72.0" description = "The official Python library for the anthropic API" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ - {file = "anthropic-0.61.0-py3-none-any.whl", hash = "sha256:798c8e6cc61e6315143c3f5847d2f220c45f1e69f433436872a237413ca58803"}, - {file = "anthropic-0.61.0.tar.gz", hash = "sha256:af4b3b8f3bc4626cca6af2d412e301974da1747179341ad9e271bdf5cbd2f008"}, + {file = "anthropic-0.72.0-py3-none-any.whl", hash = "sha256:0e9f5a7582f038cab8efbb4c959e49ef654a56bfc7ba2da51b5a7b8a84de2e4d"}, + {file = "anthropic-0.72.0.tar.gz", hash = "sha256:8971fe76dcffc644f74ac3883069beb1527641115ae0d6eb8fa21c1ce4082f7a"}, ] [package.dependencies] anyio = ">=3.5.0,<5" distro = ">=1.7.0,<2" +docstring-parser = ">=0.15,<1" httpx = ">=0.25.0,<1" jiter = ">=0.4.0,<1" pydantic = ">=1.9.0,<3" @@ -202,7 +196,7 @@ sniffio = "*" typing-extensions = ">=4.10,<5" [package.extras] -aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"] +aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.9)"] bedrock = ["boto3 (>=1.28.57)", "botocore (>=1.31.57)"] vertex = ["google-auth[requests] (>=2,<3)"] @@ -212,7 +206,6 @@ version = "4.9.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, @@ -225,7 +218,7 @@ typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} [package.extras] doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] -test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] +test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"] trio = ["trio (>=0.26.1)"] [[package]] @@ -234,19 +227,18 @@ version = "25.3.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, ] [package.extras] -benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] -cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] -dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] -tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] -tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] +tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"] [[package]] name = "cachetools" @@ -254,7 +246,6 @@ version = "5.5.2" description = "Extensible memoizing collections and decorators" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a"}, {file = "cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4"}, @@ -266,7 +257,6 @@ version = "2025.1.31" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe"}, {file = "certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651"}, @@ -278,8 +268,6 @@ version = "1.17.1" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.8" -groups = ["main"] -markers = "platform_python_implementation == \"PyPy\"" files = [ {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"}, {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"}, @@ -359,7 +347,6 @@ version = "3.4.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"}, {file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"}, @@ -461,7 +448,6 @@ version = "8.1.8" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, @@ -476,8 +462,6 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["main"] -markers = "platform_system == \"Windows\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -489,7 +473,6 @@ version = "0.6.7" description = "Easily serialize dataclasses to and from JSON." optional = false python-versions = "<4.0,>=3.7" -groups = ["main"] files = [ {file = "dataclasses_json-0.6.7-py3-none-any.whl", hash = "sha256:0dbf33f26c8d5305befd61b39d2b3414e8a407bedc2834dea9b8d642666fb40a"}, {file = "dataclasses_json-0.6.7.tar.gz", hash = "sha256:b6b3e528266ea45b9535223bc53ca645f5208833c29229e847b3f26a1cc55fc0"}, @@ -505,19 +488,33 @@ version = "1.9.0" description = "Distro - an OS platform information API" optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, ] +[[package]] +name = "docstring-parser" +version = "0.17.0" +description = "Parse Python docstrings in reST, Google and Numpydoc format" +optional = false +python-versions = ">=3.8" +files = [ + {file = "docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708"}, + {file = "docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912"}, +] + +[package.extras] +dev = ["pre-commit (>=2.16.0)", "pydoctor (>=25.4.0)", "pytest"] +docs = ["pydoctor (>=25.4.0)"] +test = ["pytest"] + [[package]] name = "dotenv" version = "0.9.9" description = "Deprecated package" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "dotenv-0.9.9-py2.py3-none-any.whl", hash = "sha256:29cf74a087b31dafdb5a446b6d7e11cbce8ed2741540e2339c69fbef92c94ce9"}, ] @@ -531,7 +528,6 @@ version = "0.115.12" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, {file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, @@ -552,7 +548,6 @@ version = "1.2.0" description = "Infer file type and MIME type of any file/buffer. No external dependencies." optional = false python-versions = "*" -groups = ["main"] files = [ {file = "filetype-1.2.0-py2.py3-none-any.whl", hash = "sha256:7ce71b6880181241cf7ac8697a2f1eb6a8bd9b429f7ad6d27b8db9ba5f1c2d25"}, {file = "filetype-1.2.0.tar.gz", hash = "sha256:66b56cd6474bf41d8c54660347d37afcc3f7d1970648de365c102ef77548aadb"}, @@ -564,7 +559,6 @@ version = "1.5.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, @@ -662,21 +656,21 @@ files = [ [[package]] name = "google-ai-generativelanguage" -version = "0.6.18" +version = "0.9.0" description = "Google Ai Generativelanguage API client library" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ - {file = "google_ai_generativelanguage-0.6.18-py3-none-any.whl", hash = "sha256:13d8174fea90b633f520789d32df7b422058fd5883b022989c349f1017db7fcf"}, - {file = "google_ai_generativelanguage-0.6.18.tar.gz", hash = "sha256:274ba9fcf69466ff64e971d565884434388e523300afd468fc8e3033cd8e606e"}, + {file = "google_ai_generativelanguage-0.9.0-py3-none-any.whl", hash = "sha256:59f61e54cb341e602073098389876594c4d12e458617727558bb2628a86f3eb2"}, + {file = "google_ai_generativelanguage-0.9.0.tar.gz", hash = "sha256:2524748f413917446febc8e0879dc0d4f026a064f89f17c42b81bea77ab76c84"}, ] [package.dependencies] google-api-core = {version = ">=1.34.1,<2.0.dev0 || >=2.11.dev0,<3.0.0", extras = ["grpc"]} google-auth = ">=2.14.1,<2.24.0 || >2.24.0,<2.25.0 || >2.25.0,<3.0.0" +grpcio = ">=1.33.2,<2.0.0" proto-plus = [ - {version = ">=1.22.3,<2.0.0"}, + {version = ">=1.22.3,<2.0.0", markers = "python_version < \"3.13\""}, {version = ">=1.25.0,<2.0.0", markers = "python_version >= \"3.13\""}, ] protobuf = ">=3.20.2,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" @@ -687,7 +681,6 @@ version = "2.25.1" description = "Google API client core library" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "google_api_core-2.25.1-py3-none-any.whl", hash = "sha256:8a2a56c1fef82987a524371f99f3bd0143702fecc670c72e600c1cda6bf8dbb7"}, {file = "google_api_core-2.25.1.tar.gz", hash = "sha256:d2aaa0b13c78c61cb3f4282c464c046e45fbd75755683c9c525e6e8f7ed0a5e8"}, @@ -699,7 +692,7 @@ googleapis-common-protos = ">=1.56.2,<2.0.0" grpcio = {version = ">=1.49.1,<2.0.0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""} grpcio-status = {version = ">=1.49.1,<2.0.0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""} proto-plus = [ - {version = ">=1.22.3,<2.0.0"}, + {version = ">=1.22.3,<2.0.0", markers = "python_version < \"3.13\""}, {version = ">=1.25.0,<2.0.0", markers = "python_version >= \"3.13\""}, ] protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<7.0.0" @@ -707,7 +700,7 @@ requests = ">=2.18.0,<3.0.0" [package.extras] async-rest = ["google-auth[aiohttp] (>=2.35.0,<3.0.0)"] -grpc = ["grpcio (>=1.33.2,<2.0.0)", "grpcio (>=1.49.1,<2.0.0) ; python_version >= \"3.11\"", "grpcio-status (>=1.33.2,<2.0.0)", "grpcio-status (>=1.49.1,<2.0.0) ; python_version >= \"3.11\""] +grpc = ["grpcio (>=1.33.2,<2.0.0)", "grpcio (>=1.49.1,<2.0.0)", "grpcio-status (>=1.33.2,<2.0.0)", "grpcio-status (>=1.49.1,<2.0.0)"] grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"] grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0.0)"] @@ -717,7 +710,6 @@ version = "2.40.3" description = "Google Authentication Library" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "google_auth-2.40.3-py2.py3-none-any.whl", hash = "sha256:1370d4593e86213563547f97a92752fc658456fe4514c809544f330fed45a7ca"}, {file = "google_auth-2.40.3.tar.gz", hash = "sha256:500c3a29adedeb36ea9cf24b8d10858e152f2412e3ca37829b3fa18e33d63b77"}, @@ -731,11 +723,11 @@ rsa = ">=3.1.4,<5" [package.extras] aiohttp = ["aiohttp (>=3.6.2,<4.0.0)", "requests (>=2.20.0,<3.0.0)"] enterprise-cert = ["cryptography", "pyopenssl"] -pyjwt = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"] -pyopenssl = ["cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] +pyjwt = ["cryptography (<39.0.0)", "cryptography (>=38.0.3)", "pyjwt (>=2.0)"] +pyopenssl = ["cryptography (<39.0.0)", "cryptography (>=38.0.3)", "pyopenssl (>=20.0.0)"] reauth = ["pyu2f (>=0.1.5)"] requests = ["requests (>=2.20.0,<3.0.0)"] -testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "cryptography (<39.0.0) ; python_version < \"3.8\"", "cryptography (>=38.0.3)", "flask", "freezegun", "grpcio", "mock", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"] +testing = ["aiohttp (<3.10.0)", "aiohttp (>=3.6.2,<4.0.0)", "aioresponses", "cryptography (<39.0.0)", "cryptography (>=38.0.3)", "flask", "freezegun", "grpcio", "mock", "oauth2client", "packaging", "pyjwt (>=2.0)", "pyopenssl (<24.3.0)", "pyopenssl (>=20.0.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-localserver", "pyu2f (>=0.1.5)", "requests (>=2.20.0,<3.0.0)", "responses", "urllib3"] urllib3 = ["packaging", "urllib3"] [[package]] @@ -744,7 +736,6 @@ version = "1.70.0" description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "googleapis_common_protos-1.70.0-py3-none-any.whl", hash = "sha256:b8bfcca8c25a2bb253e0e0b0adaf8c00773e5e6af6fd92397576680b807e0fd8"}, {file = "googleapis_common_protos-1.70.0.tar.gz", hash = "sha256:0e1b44e0ea153e6594f9f394fef15193a68aaaea2d843f83e2742717ca753257"}, @@ -762,8 +753,6 @@ version = "3.2.0" description = "Lightweight in-process concurrent programming" optional = false python-versions = ">=3.9" -groups = ["main"] -markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\"" files = [ {file = "greenlet-3.2.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:b7a7b7f2bad3ca72eb2fa14643f1c4ca11d115614047299d89bc24a3b11ddd09"}, {file = "greenlet-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60e77242e38e99ecaede853755bbd8165e0b20a2f1f3abcaa6f0dceb826a7411"}, @@ -832,7 +821,6 @@ version = "1.74.0" description = "HTTP/2-based RPC framework" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "grpcio-1.74.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:85bd5cdf4ed7b2d6438871adf6afff9af7096486fcf51818a81b77ef4dd30907"}, {file = "grpcio-1.74.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:68c8ebcca945efff9d86d8d6d7bfb0841cf0071024417e2d7f45c5e46b5b08eb"}, @@ -896,7 +884,6 @@ version = "1.74.0" description = "Status proto mapping for gRPC" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "grpcio_status-1.74.0-py3-none-any.whl", hash = "sha256:52cdbd759a6760fc8f668098a03f208f493dd5c76bf8e02598bbbaf1f6fc2876"}, {file = "grpcio_status-1.74.0.tar.gz", hash = "sha256:c58c1b24aa454e30f1fc6a7e0dbbc194c54a408143971a94b5f4e40bb5831432"}, @@ -913,7 +900,6 @@ version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, @@ -925,7 +911,6 @@ version = "1.0.8" description = "A minimal low-level HTTP client." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "httpcore-1.0.8-py3-none-any.whl", hash = "sha256:5254cf149bcb5f75e9d1b2b9f729ea4a4b883d1ad7379fc632b727cec23674be"}, {file = "httpcore-1.0.8.tar.gz", hash = "sha256:86e94505ed24ea06514883fd44d2bc02d90e77e7979c8eb71b90f41d364a1bad"}, @@ -947,7 +932,6 @@ version = "0.27.2" description = "The next generation HTTP client." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, {file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, @@ -961,7 +945,7 @@ idna = "*" sniffio = "*" [package.extras] -brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""] +brotli = ["brotli", "brotlicffi"] cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (==1.*)"] @@ -973,7 +957,6 @@ version = "0.4.0" description = "Consume Server-Sent Event (SSE) messages with HTTPX." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "httpx-sse-0.4.0.tar.gz", hash = "sha256:1e81a3a3070ce322add1d3529ed42eb5f70817f45ed6ec915ab753f961139721"}, {file = "httpx_sse-0.4.0-py3-none-any.whl", hash = "sha256:f329af6eae57eaa2bdfd962b42524764af68075ea87370a2de920af5341e318f"}, @@ -985,7 +968,6 @@ version = "3.10" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, @@ -1000,7 +982,6 @@ version = "0.8.2" description = "Fast iterable JSON parser." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"}, {file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"}, @@ -1086,7 +1067,6 @@ version = "1.33" description = "Apply JSON-Patches (RFC 6902)" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" -groups = ["main"] files = [ {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"}, @@ -1101,7 +1081,6 @@ version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, @@ -1109,30 +1088,23 @@ files = [ [[package]] name = "langchain" -version = "0.3.23" +version = "1.0.3" description = "Building applications with LLMs through composability" optional = false -python-versions = "<4.0,>=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain-0.3.23-py3-none-any.whl", hash = "sha256:084f05ee7e80b7c3f378ebadd7309f2a37868ce2906fa0ae64365a67843ade3d"}, - {file = "langchain-0.3.23.tar.gz", hash = "sha256:d95004afe8abebb52d51d6026270248da3f4b53d93e9bf699f76005e0c83ad34"}, + {file = "langchain-1.0.3-py3-none-any.whl", hash = "sha256:a7d57964ed16278c991de4ab15516a81937a58c5ac7d7aadccb18431ad8179b2"}, + {file = "langchain-1.0.3.tar.gz", hash = "sha256:f96d8d185cb8cbba9793f5c648e7d5eeec688f8e3778f700d75d89d6570ae11e"}, ] [package.dependencies] -langchain-core = ">=0.3.51,<1.0.0" -langchain-text-splitters = ">=0.3.8,<1.0.0" -langsmith = ">=0.1.17,<0.4" +langchain-core = ">=1.0.0,<2.0.0" +langgraph = ">=1.0.2,<1.1.0" pydantic = ">=2.7.4,<3.0.0" -PyYAML = ">=5.3" -requests = ">=2,<3" -SQLAlchemy = ">=1.4,<3" [package.extras] anthropic = ["langchain-anthropic"] aws = ["langchain-aws"] -azure-ai = ["langchain-azure-ai"] -cohere = ["langchain-cohere"] community = ["langchain-community"] deepseek = ["langchain-deepseek"] fireworks = ["langchain-fireworks"] @@ -1149,151 +1121,166 @@ xai = ["langchain-xai"] [[package]] name = "langchain-anthropic" -version = "0.3.18" -description = "An integration package connecting AnthropicMessages and LangChain" +version = "1.0.1" +description = "Integration package connecting Claude (Anthropic) APIs and LangChain" optional = false -python-versions = ">=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain_anthropic-0.3.18-py3-none-any.whl", hash = "sha256:1be6ece317f08b3d780671fd4425b1dd05fd291a751e3debe3d4704bcf785082"}, - {file = "langchain_anthropic-0.3.18.tar.gz", hash = "sha256:f18970ae58fc4d79c8431dd67f8ab777de5e6d2f92285c8c9af1999cd126fb0a"}, + {file = "langchain_anthropic-1.0.1-py3-none-any.whl", hash = "sha256:a883f1030c50c2422a57985c0a89b1f49e9e0abe3117d212e510e3b838df7417"}, + {file = "langchain_anthropic-1.0.1.tar.gz", hash = "sha256:cd4c2f5d5d85d3aba290ea7b9976371d3e25fd58f6d70cfd0ef3323787862edc"}, ] [package.dependencies] -anthropic = ">=0.60.0,<1" -langchain-core = ">=0.3.72,<1.0.0" +anthropic = ">=0.69.0,<1.0.0" +langchain-core = ">=1.0.0,<2.0.0" pydantic = ">=2.7.4,<3.0.0" [[package]] -name = "langchain-community" -version = "0.3.21" -description = "Community contributed LangChain integrations." +name = "langchain-classic" +version = "1.0.0" +description = "Building applications with LLMs through composability" optional = false -python-versions = "<4.0,>=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain_community-0.3.21-py3-none-any.whl", hash = "sha256:8cb9bbb7ef15e5eea776193528dd0e0e1299047146d0c78b6c696ae2dc62e81f"}, - {file = "langchain_community-0.3.21.tar.gz", hash = "sha256:b87b9992cbeea7553ed93e3d39faf9893a8690318485f7dc861751c7878729f7"}, + {file = "langchain_classic-1.0.0-py3-none-any.whl", hash = "sha256:97f71f150c10123f5511c08873f030e35ede52311d729a7688c721b4e1e01f33"}, + {file = "langchain_classic-1.0.0.tar.gz", hash = "sha256:a63655609254ebc36d660eb5ad7c06c778b2e6733c615ffdac3eac4fbe2b12c5"}, ] [package.dependencies] -aiohttp = ">=3.8.3,<4.0.0" -dataclasses-json = ">=0.5.7,<0.7" -httpx-sse = ">=0.4.0,<1.0.0" -langchain = ">=0.3.23,<1.0.0" -langchain-core = ">=0.3.51,<1.0.0" -langsmith = ">=0.1.125,<0.4" -numpy = ">=1.26.2,<3" -pydantic-settings = ">=2.4.0,<3.0.0" -PyYAML = ">=5.3" -requests = ">=2,<3" -SQLAlchemy = ">=1.4,<3" -tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10" +langchain-core = ">=1.0.0,<2.0.0" +langchain-text-splitters = ">=1.0.0,<2.0.0" +langsmith = ">=0.1.17,<1.0.0" +pydantic = ">=2.7.4,<3.0.0" +pyyaml = ">=5.3.0,<7.0.0" +requests = ">=2.0.0,<3.0.0" +sqlalchemy = ">=1.4.0,<3.0.0" + +[package.extras] +anthropic = ["langchain-anthropic"] +aws = ["langchain-aws"] +deepseek = ["langchain-deepseek"] +fireworks = ["langchain-fireworks"] +google-genai = ["langchain-google-genai"] +google-vertexai = ["langchain-google-vertexai"] +groq = ["langchain-groq"] +mistralai = ["langchain-mistralai"] +ollama = ["langchain-ollama"] +openai = ["langchain-openai"] +perplexity = ["langchain-perplexity"] +together = ["langchain-together"] +xai = ["langchain-xai"] [[package]] -name = "langchain-core" -version = "0.3.72" -description = "Building applications with LLMs through composability" +name = "langchain-community" +version = "0.4.1" +description = "Community contributed LangChain integrations." optional = false -python-versions = ">=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain_core-0.3.72-py3-none-any.whl", hash = "sha256:9fa15d390600eb6b6544397a7aa84be9564939b6adf7a2b091179ea30405b240"}, - {file = "langchain_core-0.3.72.tar.gz", hash = "sha256:4de3828909b3d7910c313242ab07b241294650f5cb6eac17738dd3638b1cd7de"}, + {file = "langchain_community-0.4.1-py3-none-any.whl", hash = "sha256:2135abb2c7748a35c84613108f7ebf30f8505b18c3c18305ffaecfc7651f6c6a"}, + {file = "langchain_community-0.4.1.tar.gz", hash = "sha256:f3b211832728ee89f169ddce8579b80a085222ddb4f4ed445a46e977d17b1e85"}, ] [package.dependencies] -jsonpatch = ">=1.33,<2.0" -langsmith = ">=0.3.45" -packaging = ">=23.2" -pydantic = ">=2.7.4" -PyYAML = ">=5.3" +aiohttp = ">=3.8.3,<4.0.0" +dataclasses-json = ">=0.6.7,<0.7.0" +httpx-sse = ">=0.4.0,<1.0.0" +langchain-classic = ">=1.0.0,<2.0.0" +langchain-core = ">=1.0.1,<2.0.0" +langsmith = ">=0.1.125,<1.0.0" +numpy = [ + {version = ">=1.26.2", markers = "python_version < \"3.13\""}, + {version = ">=2.1.0", markers = "python_version >= \"3.13\""}, +] +pydantic-settings = ">=2.10.1,<3.0.0" +PyYAML = ">=5.3.0,<7.0.0" +requests = ">=2.32.5,<3.0.0" +SQLAlchemy = ">=1.4.0,<3.0.0" tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0" -typing-extensions = ">=4.7" [[package]] -name = "langchain-experimental" -version = "0.3.4" +name = "langchain-core" +version = "1.0.3" description = "Building applications with LLMs through composability" optional = false -python-versions = "<4.0,>=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain_experimental-0.3.4-py3-none-any.whl", hash = "sha256:2e587306aea36b60fa5e5fc05dc7281bee9f60a806f0bf9d30916e0ee096af80"}, - {file = "langchain_experimental-0.3.4.tar.gz", hash = "sha256:937c4259ee4a639c618d19acf0e2c5c2898ef127050346edc5655259aa281a21"}, + {file = "langchain_core-1.0.3-py3-none-any.whl", hash = "sha256:64f1bd45f04b174bbfd54c135a8adc52f4902b347c15a117d6383b412bf558a5"}, + {file = "langchain_core-1.0.3.tar.gz", hash = "sha256:10744945d21168fb40d1162a5f1cf69bf0137ff6ad2b12c87c199a5297410887"}, ] [package.dependencies] -langchain-community = ">=0.3.0,<0.4.0" -langchain-core = ">=0.3.28,<0.4.0" +jsonpatch = ">=1.33.0,<2.0.0" +langsmith = ">=0.3.45,<1.0.0" +packaging = ">=23.2.0,<26.0.0" +pydantic = ">=2.7.4,<3.0.0" +pyyaml = ">=5.3.0,<7.0.0" +tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0" +typing-extensions = ">=4.7.0,<5.0.0" [[package]] name = "langchain-google-genai" -version = "2.1.9" +version = "3.0.1" description = "An integration package connecting Google's genai package and LangChain" optional = false -python-versions = "<4.0,>=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain_google_genai-2.1.9-py3-none-any.whl", hash = "sha256:8d3aab59706b8f8920a22bcfd63c5000ce430fe61db6ecdec262977d1a0be5b8"}, - {file = "langchain_google_genai-2.1.9.tar.gz", hash = "sha256:cd5d6f644b8dac3e312e30101bb97541aab240e82678e87a4df039ee1dc77531"}, + {file = "langchain_google_genai-3.0.1-py3-none-any.whl", hash = "sha256:2420396c75d3911af42af1bffb2c2ddd3fff73f9db9d619963429b5385e5f55e"}, + {file = "langchain_google_genai-3.0.1.tar.gz", hash = "sha256:d3f82fd274d2e9ca86448d5f89ac37b37b2d3cdfa6dec1af7bc792317b11dde7"}, ] [package.dependencies] filetype = ">=1.2.0,<2.0.0" -google-ai-generativelanguage = ">=0.6.18,<0.7.0" -langchain-core = ">=0.3.68,<0.4.0" -pydantic = ">=2,<3" +google-ai-generativelanguage = ">=0.7.0,<1.0.0" +langchain-core = ">=1.0.0,<2.0.0" +pydantic = ">=2.0.0,<3.0.0" [[package]] name = "langchain-openai" -version = "0.3.13" +version = "1.0.2" description = "An integration package connecting OpenAI and LangChain" optional = false -python-versions = "<4.0,>=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain_openai-0.3.13-py3-none-any.whl", hash = "sha256:2ca3f1865df32d03c3bd85c77f11f0ffd81b157b4e363291741c65c81463606a"}, - {file = "langchain_openai-0.3.13.tar.gz", hash = "sha256:75038efbf686f4b5fe2b6bdb75c43790d563ecd61984fd1d51d6d51c53609d64"}, + {file = "langchain_openai-1.0.2-py3-none-any.whl", hash = "sha256:b3eb9b82752063b46452aa868d8c8bc1604e57631648c3bc325bba58d3aeb143"}, + {file = "langchain_openai-1.0.2.tar.gz", hash = "sha256:621e8295c52db9a1fc74806a0bd227ea215c132c6c5e421d2982c9ee78468769"}, ] [package.dependencies] -langchain-core = ">=0.3.52,<1.0.0" -openai = ">=1.68.2,<2.0.0" -tiktoken = ">=0.7,<1" +langchain-core = ">=1.0.2,<2.0.0" +openai = ">=1.109.1,<3.0.0" +tiktoken = ">=0.7.0,<1.0.0" [[package]] name = "langchain-text-splitters" -version = "0.3.8" +version = "1.0.0" description = "LangChain text splitting utilities" optional = false -python-versions = "<4.0,>=3.9" -groups = ["main"] +python-versions = "<4.0.0,>=3.10.0" files = [ - {file = "langchain_text_splitters-0.3.8-py3-none-any.whl", hash = "sha256:e75cc0f4ae58dcf07d9f18776400cf8ade27fadd4ff6d264df6278bb302f6f02"}, - {file = "langchain_text_splitters-0.3.8.tar.gz", hash = "sha256:116d4b9f2a22dda357d0b79e30acf005c5518177971c66a9f1ab0edfdb0f912e"}, + {file = "langchain_text_splitters-1.0.0-py3-none-any.whl", hash = "sha256:f00c8219d3468f2c5bd951b708b6a7dd9bc3c62d0cfb83124c377f7170f33b2e"}, + {file = "langchain_text_splitters-1.0.0.tar.gz", hash = "sha256:d8580a20ad7ed10b432feb273e5758b2cc0902d094919629cec0e1ad691a6744"}, ] [package.dependencies] -langchain-core = ">=0.3.51,<1.0.0" +langchain-core = ">=1.0.0,<2.0.0" [[package]] name = "langgraph" -version = "0.6.1" +version = "1.0.2" description = "Building stateful, multi-actor applications with LLMs" optional = false -python-versions = ">=3.9" -groups = ["main"] +python-versions = ">=3.10" files = [ - {file = "langgraph-0.6.1-py3-none-any.whl", hash = "sha256:2736027faeb6cd5c0f1ab51a5345594cfcb5eb5beeb5ac1799a58fcecf4b4eae"}, - {file = "langgraph-0.6.1.tar.gz", hash = "sha256:e4399ac5ad0b70f58fa28d6fe05a41b84c15959f270d6d1a86edab4e92ae148b"}, + {file = "langgraph-1.0.2-py3-none-any.whl", hash = "sha256:b3d56b8c01de857b5fb1da107e8eab6e30512a377685eeedb4f76456724c9729"}, + {file = "langgraph-1.0.2.tar.gz", hash = "sha256:dae1af08d6025cb1fcaed68f502c01af7d634d9044787c853a46c791cfc52f67"}, ] [package.dependencies] langchain-core = ">=0.1" -langgraph-checkpoint = ">=2.1.0,<3.0.0" -langgraph-prebuilt = ">=0.6.0,<0.7.0" -langgraph-sdk = ">=0.2.0,<0.3.0" +langgraph-checkpoint = ">=2.1.0,<4.0.0" +langgraph-prebuilt = ">=1.0.2,<1.1.0" +langgraph-sdk = ">=0.2.2,<0.3.0" pydantic = ">=2.7.4" xxhash = ">=3.5.0" @@ -1303,7 +1290,6 @@ version = "2.1.1" description = "Library with base interfaces for LangGraph checkpoint savers." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "langgraph_checkpoint-2.1.1-py3-none-any.whl", hash = "sha256:5a779134fd28134a9a83d078be4450bbf0e0c79fdf5e992549658899e6fc5ea7"}, {file = "langgraph_checkpoint-2.1.1.tar.gz", hash = "sha256:72038c0f9e22260cb9bff1f3ebe5eb06d940b7ee5c1e4765019269d4f21cf92d"}, @@ -1315,30 +1301,28 @@ ormsgpack = ">=1.10.0" [[package]] name = "langgraph-prebuilt" -version = "0.6.1" +version = "1.0.2" description = "Library with high-level APIs for creating and executing LangGraph agents and tools." optional = false -python-versions = ">=3.9" -groups = ["main"] +python-versions = ">=3.10" files = [ - {file = "langgraph_prebuilt-0.6.1-py3-none-any.whl", hash = "sha256:a3a970451371ec66509c6969505286a5d92132af7062d0b2b6dab08c2e27b50f"}, - {file = "langgraph_prebuilt-0.6.1.tar.gz", hash = "sha256:574c409113e02d3c58157877c5ea638faa80647b259027647ab88830d7ecef00"}, + {file = "langgraph_prebuilt-1.0.2-py3-none-any.whl", hash = "sha256:d9499f7c449fb637ee7b87e3f6a3b74095f4202053c74d33894bd839ea4c57c7"}, + {file = "langgraph_prebuilt-1.0.2.tar.gz", hash = "sha256:9896dbabf04f086eb59df4294f54ab5bdb21cd78e27e0a10e695dffd1cc6097d"}, ] [package.dependencies] -langchain-core = ">=0.3.67" -langgraph-checkpoint = ">=2.1.0,<3.0.0" +langchain-core = ">=1.0.0" +langgraph-checkpoint = ">=2.1.0,<4.0.0" [[package]] name = "langgraph-sdk" -version = "0.2.0" +version = "0.2.9" description = "SDK for interacting with LangGraph API" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ - {file = "langgraph_sdk-0.2.0-py3-none-any.whl", hash = "sha256:150722264f225c4d47bbe7394676be102fdbf04c4400a0dd1bd41a70c6430cc7"}, - {file = "langgraph_sdk-0.2.0.tar.gz", hash = "sha256:cd8b5f6595e5571be5cbffd04cf936978ab8f5d1005517c99715947ef871e246"}, + {file = "langgraph_sdk-0.2.9-py3-none-any.whl", hash = "sha256:fbf302edadbf0fb343596f91c597794e936ef68eebc0d3e1d358b6f9f72a1429"}, + {file = "langgraph_sdk-0.2.9.tar.gz", hash = "sha256:b3bd04c6be4fa382996cd2be8fbc1e7cc94857d2bc6b6f4599a7f2a245975303"}, ] [package.dependencies] @@ -1351,7 +1335,6 @@ version = "0.3.45" description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "langsmith-0.3.45-py3-none-any.whl", hash = "sha256:5b55f0518601fa65f3bb6b1a3100379a96aa7b3ed5e9380581615ba9c65ed8ed"}, {file = "langsmith-0.3.45.tar.gz", hash = "sha256:1df3c6820c73ed210b2c7bc5cdb7bfa19ddc9126cd03fdf0da54e2e171e6094d"}, @@ -1381,7 +1364,6 @@ version = "3.26.1" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "marshmallow-3.26.1-py3-none-any.whl", hash = "sha256:3350409f20a70a7e4e11a27661187b77cdcaeb20abca41c1454fe33636bea09c"}, {file = "marshmallow-3.26.1.tar.gz", hash = "sha256:e6d8affb6cb61d39d26402096dc0aee12d5a26d490a121f118d2e81dc0719dc6"}, @@ -1401,7 +1383,6 @@ version = "6.4.3" description = "multidict implementation" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "multidict-6.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32a998bd8a64ca48616eac5a8c1cc4fa38fb244a3facf2eeb14abe186e0f6cc5"}, {file = "multidict-6.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a54ec568f1fc7f3c313c2f3b16e5db346bf3660e1309746e7fccbbfded856188"}, @@ -1515,7 +1496,6 @@ version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." optional = false python-versions = ">=3.5" -groups = ["main"] files = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, @@ -1527,7 +1507,6 @@ version = "2.2.4" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.10" -groups = ["main"] files = [ {file = "numpy-2.2.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9"}, {file = "numpy-2.2.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e642d86b8f956098b564a45e6f6ce68a22c2c97a04f5acd3f221f57b8cb850ae"}, @@ -1588,14 +1567,13 @@ files = [ [[package]] name = "openai" -version = "1.74.0" +version = "2.2.0" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ - {file = "openai-1.74.0-py3-none-any.whl", hash = "sha256:aff3e0f9fb209836382ec112778667027f4fd6ae38bdb2334bc9e173598b092a"}, - {file = "openai-1.74.0.tar.gz", hash = "sha256:592c25b8747a7cad33a841958f5eb859a785caea9ee22b9e4f4a2ec062236526"}, + {file = "openai-2.2.0-py3-none-any.whl", hash = "sha256:d222e63436e33f3134a3d7ce490dc2d2f146fa98036eb65cc225df3ce163916f"}, + {file = "openai-2.2.0.tar.gz", hash = "sha256:bc49d077a8bf0e370eec4d038bc05e232c20855a19df0b58e5b3e5a8da7d33e0"}, ] [package.dependencies] @@ -1609,6 +1587,7 @@ tqdm = ">4" typing-extensions = ">=4.11,<5" [package.extras] +aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"] datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] realtime = ["websockets (>=13,<16)"] voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"] @@ -1619,7 +1598,6 @@ version = "3.10.16" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "orjson-3.10.16-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:4cb473b8e79154fa778fb56d2d73763d977be3dcc140587e07dbc545bbfc38f8"}, {file = "orjson-3.10.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:622a8e85eeec1948690409a19ca1c7d9fd8ff116f4861d261e6ae2094fe59a00"}, @@ -1697,7 +1675,6 @@ version = "1.10.0" description = "Fast, correct Python msgpack library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "ormsgpack-1.10.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:8a52c7ce7659459f3dc8dec9fd6a6c76f855a0a7e2b61f26090982ac10b95216"}, {file = "ormsgpack-1.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:060f67fe927582f4f63a1260726d019204b72f460cf20930e6c925a1d129f373"}, @@ -1748,7 +1725,6 @@ version = "24.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"}, {file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"}, @@ -1760,7 +1736,6 @@ version = "0.3.1" description = "Accelerated property cache" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"}, {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"}, @@ -1868,7 +1843,6 @@ version = "1.26.1" description = "Beautiful, Pythonic protocol buffers" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "proto_plus-1.26.1-py3-none-any.whl", hash = "sha256:13285478c2dcf2abb829db158e1047e2f1e8d63a077d94263c2b88b043c75a66"}, {file = "proto_plus-1.26.1.tar.gz", hash = "sha256:21a515a4c4c0088a773899e23c7bbade3d18f9c66c73edd4c7ee3816bc96a012"}, @@ -1886,7 +1860,6 @@ version = "6.31.1" description = "" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "protobuf-6.31.1-cp310-abi3-win32.whl", hash = "sha256:7fa17d5a29c2e04b7d90e5e32388b8bfd0e7107cd8e616feef7ed3fa6bdab5c9"}, {file = "protobuf-6.31.1-cp310-abi3-win_amd64.whl", hash = "sha256:426f59d2964864a1a366254fa703b8632dcec0790d8862d30034d8245e1cd447"}, @@ -1905,7 +1878,6 @@ version = "0.6.1" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, @@ -1917,7 +1889,6 @@ version = "0.4.2" description = "A collection of ASN.1-based protocols modules" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a"}, {file = "pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6"}, @@ -1932,8 +1903,6 @@ version = "2.22" description = "C parser in Python" optional = false python-versions = ">=3.8" -groups = ["main"] -markers = "platform_python_implementation == \"PyPy\"" files = [ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, @@ -1945,7 +1914,6 @@ version = "2.11.3" description = "Data validation using Python type hints" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "pydantic-2.11.3-py3-none-any.whl", hash = "sha256:a082753436a07f9ba1289c6ffa01cd93db3548776088aa917cc43b63f68fa60f"}, {file = "pydantic-2.11.3.tar.gz", hash = "sha256:7471657138c16adad9322fe3070c0116dd6c3ad8d649300e3cbdfe91f4db4ec3"}, @@ -1959,7 +1927,7 @@ typing-inspection = ">=0.4.0" [package.extras] email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] +timezone = ["tzdata"] [[package]] name = "pydantic-core" @@ -1967,7 +1935,6 @@ version = "2.33.1" description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "pydantic_core-2.33.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3077cfdb6125cc8dab61b155fdd714663e401f0e6883f9632118ec12cf42df26"}, {file = "pydantic_core-2.33.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ffab8b2908d152e74862d276cf5017c81a2f3719f14e8e3e8d6b83fda863927"}, @@ -2075,22 +2042,24 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydantic-settings" -version = "2.8.1" +version = "2.11.0" description = "Settings management using Pydantic" optional = false -python-versions = ">=3.8" -groups = ["main"] +python-versions = ">=3.9" files = [ - {file = "pydantic_settings-2.8.1-py3-none-any.whl", hash = "sha256:81942d5ac3d905f7f3ee1a70df5dfb62d5569c12f51a5a647defc1c3d9ee2e9c"}, - {file = "pydantic_settings-2.8.1.tar.gz", hash = "sha256:d5c663dfbe9db9d5e1c646b2e161da12f0d734d422ee56f567d0ea2cee4e8585"}, + {file = "pydantic_settings-2.11.0-py3-none-any.whl", hash = "sha256:fe2cea3413b9530d10f3a5875adffb17ada5c1e1bab0b2885546d7310415207c"}, + {file = "pydantic_settings-2.11.0.tar.gz", hash = "sha256:d0e87a1c7d33593beb7194adb8470fc426e95ba02af83a0f23474a04c9a08180"}, ] [package.dependencies] pydantic = ">=2.7.0" python-dotenv = ">=0.21.0" +typing-inspection = ">=0.4.0" [package.extras] +aws-secrets-manager = ["boto3 (>=1.35.0)", "boto3-stubs[secretsmanager]"] azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] +gcp-secret-manager = ["google-cloud-secret-manager (>=2.23.1)"] toml = ["tomli (>=2.0.1)"] yaml = ["pyyaml (>=6.0.1)"] @@ -2100,7 +2069,6 @@ version = "1.1.0" description = "Read key-value pairs from a .env file and set them as environment variables" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, @@ -2115,7 +2083,6 @@ version = "6.0.2" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, @@ -2178,7 +2145,6 @@ version = "2024.11.6" description = "Alternative regular expression module, to replace re." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"}, {file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"}, @@ -2278,19 +2244,18 @@ files = [ [[package]] name = "requests" -version = "2.32.3" +version = "2.32.5" description = "Python HTTP for Humans." optional = false -python-versions = ">=3.8" -groups = ["main"] +python-versions = ">=3.9" files = [ - {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, - {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, + {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, + {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, ] [package.dependencies] certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" +charset_normalizer = ">=2,<4" idna = ">=2.5,<4" urllib3 = ">=1.21.1,<3" @@ -2304,7 +2269,6 @@ version = "1.0.0" description = "A utility belt for advanced users of python-requests" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -groups = ["main"] files = [ {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, @@ -2319,7 +2283,6 @@ version = "4.9.1" description = "Pure-Python RSA implementation" optional = false python-versions = "<4,>=3.6" -groups = ["main"] files = [ {file = "rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762"}, {file = "rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75"}, @@ -2334,7 +2297,6 @@ version = "1.3.1" description = "Sniff out which async library your code is running under" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, @@ -2346,7 +2308,6 @@ version = "2.0.40" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "SQLAlchemy-2.0.40-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ae9597cab738e7cc823f04a704fb754a9249f0b6695a6aeb63b74055cd417a96"}, {file = "SQLAlchemy-2.0.40-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37a5c21ab099a83d669ebb251fddf8f5cee4d75ea40a5a1653d9c43d60e20867"}, @@ -2442,7 +2403,6 @@ version = "0.46.2" description = "The little ASGI library that shines." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"}, {file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"}, @@ -2460,7 +2420,6 @@ version = "9.1.2" description = "Retry code until it succeeds" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "tenacity-9.1.2-py3-none-any.whl", hash = "sha256:f77bf36710d8b73a50b2dd155c97b870017ad21afe6ab300326b0371b3b05138"}, {file = "tenacity-9.1.2.tar.gz", hash = "sha256:1169d376c297e7de388d18b4481760d478b0e99a777cad3a9c86e556f4b697cb"}, @@ -2476,7 +2435,6 @@ version = "0.9.0" description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "tiktoken-0.9.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:586c16358138b96ea804c034b8acf3f5d3f0258bd2bc3b0227af4af5d622e382"}, {file = "tiktoken-0.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d9c59ccc528c6c5dd51820b3474402f69d9a9e1d656226848ad68a8d5b2e5108"}, @@ -2524,7 +2482,6 @@ version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, @@ -2546,7 +2503,6 @@ version = "4.13.2" description = "Backported and Experimental Type Hints for Python 3.8+" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, @@ -2558,7 +2514,6 @@ version = "0.9.0" description = "Runtime inspection utilities for typing module." optional = false python-versions = "*" -groups = ["main"] files = [ {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, @@ -2574,7 +2529,6 @@ version = "0.4.0" description = "Runtime typing introspection tools" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, @@ -2589,14 +2543,13 @@ version = "2.4.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, ] [package.extras] -brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] @@ -2607,7 +2560,6 @@ version = "0.34.1" description = "The lightning-fast ASGI server." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "uvicorn-0.34.1-py3-none-any.whl", hash = "sha256:984c3a8c7ca18ebaad15995ee7401179212c59521e67bfc390c07fa2b8d2e065"}, {file = "uvicorn-0.34.1.tar.gz", hash = "sha256:af981725fc4b7ffc5cb3b0e9eda6258a90c4b52cb2a83ce567ae0a7ae1757afc"}, @@ -2618,7 +2570,7 @@ click = ">=7.0" h11 = ">=0.8" [package.extras] -standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"] +standard = ["colorama (>=0.4)", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] [[package]] name = "xxhash" @@ -2626,7 +2578,6 @@ version = "3.5.0" description = "Python binding for xxHash" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "xxhash-3.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ece616532c499ee9afbb83078b1b952beffef121d989841f7f4b3dc5ac0fd212"}, {file = "xxhash-3.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3171f693dbc2cef6477054a665dc255d996646b4023fe56cb4db80e26f4cc520"}, @@ -2759,7 +2710,6 @@ version = "1.19.0" description = "Yet another URL library" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "yarl-1.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0bae32f8ebd35c04d6528cedb4a26b8bf25339d3616b04613b97347f919b76d3"}, {file = "yarl-1.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8015a076daf77823e7ebdcba474156587391dab4e70c732822960368c01251e6"}, @@ -2861,7 +2811,6 @@ version = "0.23.0" description = "Zstandard bindings for Python" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "zstandard-0.23.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bf0a05b6059c0528477fba9054d09179beb63744355cab9f38059548fedd46a9"}, {file = "zstandard-0.23.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fc9ca1c9718cb3b06634c7c8dec57d24e9438b2aa9a0f02b8bb36bf478538880"}, @@ -2969,6 +2918,6 @@ cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\ cffi = ["cffi (>=1.11)"] [metadata] -lock-version = "2.1" +lock-version = "2.0" python-versions = ">=3.12,<3.14" -content-hash = "6f71ccd98fc91a3afa08c4407cce479e3dd9d2212015a800fec035fa97c33db0" +content-hash = "4c35ba27df33f05f4bc754cc44eeebad8cee1d14a78a9697483a2bdfbad359d5" diff --git a/integrations/langgraph/python/examples/pyproject.toml b/integrations/langgraph/python/examples/pyproject.toml index 218f05e09..efccd802e 100644 --- a/integrations/langgraph/python/examples/pyproject.toml +++ b/integrations/langgraph/python/examples/pyproject.toml @@ -4,6 +4,7 @@ version = "0.1.0" description = "" readme = "README.md" packages = [{ include = "agents" }] +authors = ["Ran Shem Tov"] [project] name = "agents" From 80937e2dac1481c9ed520ffc7144161e3135647e Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 6 Nov 2025 13:02:14 +0100 Subject: [PATCH 105/113] Force CI --- CLAUDE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CLAUDE.md b/CLAUDE.md index 6e771634e..765ff030c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -19,6 +19,7 @@ pnpm dev # Run linting pnpm lint + # Run type checking pnpm check-types From 5cceaf4d57e5591e934d731897e4314c5a723d5c Mon Sep 17 00:00:00 2001 From: ran Date: Thu, 6 Nov 2025 13:03:40 +0100 Subject: [PATCH 106/113] test new single endpoint --- apps/dojo/package.json | 10 +- .../[integrationId]/[[...slug]]/route.ts | 32 +--- pnpm-lock.yaml | 167 +++++++++++++----- 3 files changed, 131 insertions(+), 78 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index c31b1913d..368f3382d 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251104211725", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251104211725", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251104211725", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251104211725", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251104211725", + "@copilotkit/react-core": "0.0.0-v1-5-single-endpoint-20251106115759", + "@copilotkit/react-ui": "0.0.0-v1-5-single-endpoint-20251106115759", + "@copilotkit/runtime": "0.0.0-v1-5-single-endpoint-20251106115759", + "@copilotkit/runtime-client-gql": "0.0.0-v1-5-single-endpoint-20251106115759", + "@copilotkit/shared": "0.0.0-v1-5-single-endpoint-20251106115759", "@copilotkitnext/runtime": "0.0.20", "@copilotkitnext/react": "0.0.20", "@mastra/client-js": "^0.16.8", diff --git a/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts index 5256d2b84..007913f91 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts @@ -5,42 +5,26 @@ import { copilotRuntimeNextJSAppRouterEndpoint, } from "@copilotkit/runtime"; import { agentsIntegrations } from "@/agents"; -import { handle } from "hono/vercel"; -async function createApp(integrationId: string) { +import { NextRequest } from "next/server"; + +export async function POST(request: NextRequest) { + const integrationId = request.url.split("/").pop(); + const integration = agentsIntegrations.find((i) => i.id === integrationId); if (!integration) { - throw new Error(`Integration not found: ${integrationId}`); + return new Response("Integration not found", { status: 404 }); } const agents = await integration.agents(); - const runtime = new CopilotRuntime({ // @ts-ignore for now agents, }); - - return copilotRuntimeNextJSAppRouterEndpoint({ + const { handleRequest } = copilotRuntimeNextJSAppRouterEndpoint({ runtime, serviceAdapter: new ExperimentalEmptyAdapter(), endpoint: `/api/copilotkit/${integrationId}`, }); -} -async function routeHandler( - request: Request, - { params }: { params: Promise<{ integrationId: string }> } -) { - const { integrationId } = await params; - try { - const app = await createApp(integrationId); - return handle(app)(request); - } catch (error) { - return new Response( - error instanceof Error ? error.message : "Integration not found", - { status: 404 } - ); - } + return handleRequest(request); } - -export const GET = routeHandler; -export const POST = routeHandler; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 80af3a5eb..daadf2aa5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -128,20 +128,20 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251104211725 - version: 0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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) + specifier: 0.0.0-v1-5-single-endpoint-20251106115759 + version: 0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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: 0.0.0-feat-cpk-1-5-20251104211725 - version: 0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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) + specifier: 0.0.0-v1-5-single-endpoint-20251106115759 + version: 0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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: 0.0.0-feat-cpk-1-5-20251104211725 - version: 0.0.0-feat-cpk-1-5-20251104211725(11e8d990ef61bbafaa75597e5e9ed522) + specifier: 0.0.0-v1-5-single-endpoint-20251106115759 + version: 0.0.0-v1-5-single-endpoint-20251106115759(11e8d990ef61bbafaa75597e5e9ed522) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251104211725 - version: 0.0.0-feat-cpk-1-5-20251104211725(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-v1-5-single-endpoint-20251106115759 + version: 0.0.0-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251104211725 - version: 0.0.0-feat-cpk-1-5-20251104211725 + specifier: 0.0.0-v1-5-single-endpoint-20251106115759 + version: 0.0.0-v1-5-single-endpoint-20251106115759 '@copilotkitnext/react': specifier: 0.0.20 version: 0.0.20(@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) @@ -526,7 +526,7 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(2e6c3d49f6c2f234f3a715a40804546d) + version: 1.10.6(fd98da3164a8f33e40360d9abc7c5d40) '@mastra/client-js': specifier: ^0.16.8 version: 0.16.8(openapi-types@12.1.3)(zod@3.25.76) @@ -975,6 +975,9 @@ packages: '@ag-ui/client@0.0.35': resolution: {integrity: sha512-rHtMQSU232dZeVx9qAGt1+j4ar4RWqwFanXcyNxAwbAh0XrY7VZeXFBDUeazy1LtBoViS7xehX8V1Ssf1a+bUw==} + '@ag-ui/client@0.0.40-alpha.11': + resolution: {integrity: sha512-n04KBxlAdsUhAtD6aa5B9Y779fRrnDMNAb22EGm/L60eHhvocVEqztqb05+s84bSnVhncoX7aD2Da8Y3B+kjew==} + '@ag-ui/client@0.0.40-alpha.6': resolution: {integrity: sha512-QIgOY8nJvv3mrDz9OXyaoxwj3Js28YPYXz+myRQ2idR1ghoKq0V9MEZrXoHOE4O6Z7PnUSw5z7zZIemh7YK/5w==} @@ -984,12 +987,18 @@ packages: '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} + '@ag-ui/core@0.0.40-alpha.11': + resolution: {integrity: sha512-zGOl1NSF3QOgHCniu58BeicIuCRPiuxQFmDFXb5asciI60LLM9GdF+E58EwUczMsq/+ouK5lNp9lKdrduiURWg==} + '@ag-ui/core@0.0.40-alpha.6': resolution: {integrity: sha512-XkZAnmtewucr0yayWxK2GEcOoxaHZ6cSZZKkVFKAEOPJuUwFCFstqS3vh0Z5rUy2ZE8eh8WJylBHidiCRW4yuA==} '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} + '@ag-ui/encoder@0.0.40-alpha.11': + resolution: {integrity: sha512-T/sLvCIpDK2H7I3/XI3Sa8kMRBuvpZTs+zRJfcpFyzLWfDbqovOXLACmMeruap7tlmk2IPXcY9CVUmJsQPBwjw==} + '@ag-ui/encoder@0.0.40-alpha.6': resolution: {integrity: sha512-q+bpJGp4fMjQplHowmbNaOQrICHzmk1J394jZXmTv/RjysNHtcDrWHythXBiPAnNRutYeqsG6bQJ5PASbQYiqg==} @@ -1002,6 +1011,9 @@ packages: '@ag-ui/proto@0.0.35': resolution: {integrity: sha512-+rz3LAYHcR3D2xVgRKa7QE5mp+cwmZs6j+1XxG5dT7HNdg51uKea12L57EVY2bxE3JzpAvCIgOjFEmQCNH82pw==} + '@ag-ui/proto@0.0.40-alpha.11': + resolution: {integrity: sha512-AlPaBBDdVAl8ZAu6fW/knFI4XDmSQJHDy6ADi+va8Hx4oPcG7cI9WhBaEVqETDLqhglRrFfGMt7KeQL+1NMo8Q==} + '@ag-ui/proto@0.0.40-alpha.6': resolution: {integrity: sha512-xFw9igIC7OGdq/t1biUXRMinaC0sPLkavjj2oz820KaJe1uZOTSRfAK1qEgswoHJU1N4vRg0RQDEhd1wN8+GGg==} @@ -1594,28 +1606,28 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251104211725': - resolution: {integrity: sha512-2DJICzMws6CfBfskspQNC9UhrgSJTbqeW6Q1j0rUiY1NwaY1tL/Cb4r1nOEOCUwYibz7UVt8cUKMLjTJQ12WsA==} + '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106115759': + resolution: {integrity: sha512-WV/YAEBGjtjLCzB09423+v04PvRImXCT6yFMMwxSD5Io2wdxlftc2GSd3Lzbi1pZRFK5UZTPwRP9dxYTcsTszA==} peerDependencies: - '@copilotkitnext/core': 0.0.20 - '@copilotkitnext/react': 0.0.20 + '@copilotkitnext/core': 0.0.21-alpha.0 + '@copilotkitnext/react': 0.0.21-alpha.0 react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251104211725': - resolution: {integrity: sha512-Br5DDwEZShoU3zFq+NmiQIRZt0s8Pm0P8g8gkiINhq+BQmeOyjtxz6T5a3G3+LWlRp1K9KVec/THLQFgq7gx8A==} + '@copilotkit/react-ui@0.0.0-v1-5-single-endpoint-20251106115759': + resolution: {integrity: sha512-YP5KeG5myff19iW13W3+ASMvMwJQSyyKDmb0LdKQLO42lfjndxjV0d2NI1KuWQbERShmI7zJKkB48C9yR2mdpQ==} peerDependencies: '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251104211725': - resolution: {integrity: sha512-8yP7OL929NrCCfvc2Bt+D5JDE1xeWK/7zTE+PMh5cSSCbelrnnm0yquhWgBGVhccaKmbEdX427cR07qqoxDOtw==} + '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106115759': + resolution: {integrity: sha512-hpXBhKNN6d5kSmBI4wQoRNR8NOn77yjtmy0F2Z7UhpKuGktIPIxHJs5kTa046WAyG4hrCBogbw/LpAnbuAvQZA==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251104211725': - resolution: {integrity: sha512-sZ37dY3Q6KpyVbI47XghG43RS6WPNLdBaiRIMdL3cFAzIHf3B7UKl1fKicr0+QoX+2/LU+IJt1PkE0hGeAk4CQ==} + '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106115759': + resolution: {integrity: sha512-SXgsoBBOOkWZ/v4N/ubBEryG4b9UscW2D4XUIbvyWrnaG4NS4gL0PUdKQAOFf0YCayP6XZdtq4U5LkOJrlX1Dg==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1632,14 +1644,14 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251104211725': - resolution: {integrity: sha512-iAiDV3SFRkGwIfCJAqRN0HkMQdQ+hBhHfK97k7dv8fzINGj5PXV9HyequubwT39HW4KzIHdTb578YpYFa2uLCQ==} + '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106115759': + resolution: {integrity: sha512-IsOythIO9YqccAw1lnp+XPFsGudzWTVWqt3Bglb+u8if+C7lEPFer8gFMS8u/xGGoTUt7JPg1rn3c2o5taWGIw==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} - '@copilotkitnext/agent@0.0.20': - resolution: {integrity: sha512-OUMrhmak0mwcrk3+msBkL1xQ3U3eL4/y+DTQ2Y0EGTok67dOeaigmZJPvCysGjsXMJRQuJ54c3mNw3MmMZ4a3w==} + '@copilotkitnext/agent@0.0.21-alpha.0': + resolution: {integrity: sha512-xWsL3MW42eX02tXD7JcC72uDTXKq2nbslpuljnBR6fbSR+T76A6Cstn+i5t3DZEaYiW5s3R2Orux8ICtD1YAiQ==} engines: {node: '>=18'} '@copilotkitnext/core@0.0.20': @@ -1659,10 +1671,20 @@ packages: peerDependencies: openai: ^5.9.0 + '@copilotkitnext/runtime@0.0.21-alpha.0': + resolution: {integrity: sha512-Tjffkl6ZqMSeLtvdPkPr/spPwR6gjpuJoqkA6T1ssiHTD+apnMe3913r32OFgE6DKasUc0sgkss9g1G7Id/hTw==} + engines: {node: '>=18'} + peerDependencies: + openai: ^5.9.0 + '@copilotkitnext/shared@0.0.20': resolution: {integrity: sha512-YNLIrEPq4m6fA8afCE0tbKorNNM8iCjy+j2PKVSNDFjqUKhuReqmgck1vQWTPISz5iXGwbb/OW9WHU4z8fTqfg==} engines: {node: '>=18'} + '@copilotkitnext/shared@0.0.21-alpha.0': + resolution: {integrity: sha512-3YGrFI7zzjy3OtYqGHMUYAyT95dWkBLzgOwUgpdo28UZp6f2PrifplJFxLSBThx7V306p87qBG545FZxB9nouA==} + engines: {node: '>=18'} + '@copilotkitnext/web-inspector@0.0.20': resolution: {integrity: sha512-vsVrxG4+HvnpHFzMko1Deqz83AepfY2civUXEo88yUykPxElZOGmGMztts4diwyTRfTz57JtFCTbAFQwCzvQuA==} engines: {node: '>=18'} @@ -10404,6 +10426,18 @@ snapshots: uuid: 11.1.0 zod: 3.25.76 + '@ag-ui/client@0.0.40-alpha.11': + dependencies: + '@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 + untruncate-json: 0.0.1 + uuid: 11.1.0 + zod: 3.25.76 + '@ag-ui/client@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 @@ -10426,6 +10460,11 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 + '@ag-ui/core@0.0.40-alpha.11': + dependencies: + rxjs: 7.8.1 + zod: 3.25.76 + '@ag-ui/core@0.0.40-alpha.6': dependencies: rxjs: 7.8.1 @@ -10436,6 +10475,11 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 + '@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/encoder@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 @@ -10462,6 +10506,12 @@ snapshots: '@ag-ui/core': 0.0.35 '@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.10.0 + '@protobuf-ts/protoc': 2.11.1 + '@ag-ui/proto@0.0.40-alpha.6': dependencies: '@ag-ui/core': 0.0.40-alpha.6 @@ -11547,11 +11597,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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-core@0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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': 0.0.0-feat-cpk-1-5-20251104211725(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 - '@copilotkitnext/core': 0.0.20 + '@copilotkit/runtime-client-gql': 0.0.0-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 '@copilotkitnext/react': 0.0.20(@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 @@ -11565,12 +11614,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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@0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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': 0.0.0-feat-cpk-1-5-20251104211725(@copilotkitnext/core@0.0.20)(@copilotkitnext/react@0.0.20(@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-20251104211725(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 - '@copilotkitnext/core': 0.0.20 + '@copilotkit/react-core': 0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 '@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) @@ -11587,9 +11635,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251104211725(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11598,7 +11646,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251104211725(11e8d990ef61bbafaa75597e5e9ed522)': + '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106115759(11e8d990ef61bbafaa75597e5e9ed522)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11606,9 +11654,9 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251104211725 - '@copilotkitnext/agent': 0.0.20 - '@copilotkitnext/runtime': 0.0.20(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 + '@copilotkitnext/agent': 0.0.21-alpha.0 + '@copilotkitnext/runtime': 0.0.21-alpha.0(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.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) @@ -11624,6 +11672,7 @@ snapshots: graphql-scalars: 1.25.0(graphql@16.11.0) graphql-yoga: 5.16.0(graphql@16.11.0) groq-sdk: 0.5.0 + 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 @@ -11782,13 +11831,13 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(2e6c3d49f6c2f234f3a715a40804546d)': + '@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.6 + '@ag-ui/encoder': 0.0.40-alpha.11 '@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.6 + '@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) @@ -11964,7 +12013,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251104211725': + '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106115759': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -11988,9 +12037,9 @@ snapshots: transitivePeerDependencies: - encoding - '@copilotkitnext/agent@0.0.20': + '@copilotkitnext/agent@0.0.21-alpha.0': dependencies: - '@ag-ui/client': 0.0.40-alpha.6 + '@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) @@ -12047,12 +12096,32 @@ snapshots: openai: 5.12.2(ws@8.18.3)(zod@3.25.76) rxjs: 7.8.1 + '@copilotkitnext/runtime@0.0.21-alpha.0(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': + dependencies: + '@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-alpha.0 + cors: 2.8.5 + express: 4.21.2 + hono: 4.10.3 + openai: 5.12.2(ws@8.18.3)(zod@3.25.76) + rxjs: 7.8.1 + transitivePeerDependencies: + - supports-color + '@copilotkitnext/shared@0.0.20': dependencies: '@ag-ui/client': 0.0.40-alpha.6 partial-json: 0.1.7 uuid: 11.1.0 + '@copilotkitnext/shared@0.0.21-alpha.0': + dependencies: + '@ag-ui/client': 0.0.40-alpha.11 + partial-json: 0.1.7 + uuid: 11.1.0 + '@copilotkitnext/web-inspector@0.0.20': dependencies: '@ag-ui/client': 0.0.40-alpha.6 @@ -15829,7 +15898,7 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 20.19.24 + '@types/node': 22.18.13 form-data: 4.0.4 '@types/node@18.19.130': @@ -18352,7 +18421,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.13.2) + retry-axios: 2.6.0(axios@1.13.2(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -21204,7 +21273,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.13.2): + retry-axios@2.6.0(axios@1.13.2(debug@4.4.3)): dependencies: axios: 1.13.2(debug@4.4.3) From e36f309128a767b27340a7c98dedef7035d3b94b Mon Sep 17 00:00:00 2001 From: ran Date: Thu, 6 Nov 2025 13:33:56 +0100 Subject: [PATCH 107/113] test new single endpoint --- apps/dojo/package.json | 10 ++-- pnpm-lock.yaml | 115 ++++++++++++++++++++++++----------------- 2 files changed, 73 insertions(+), 52 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 368f3382d..bfca1131a 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-v1-5-single-endpoint-20251106115759", - "@copilotkit/react-ui": "0.0.0-v1-5-single-endpoint-20251106115759", - "@copilotkit/runtime": "0.0.0-v1-5-single-endpoint-20251106115759", - "@copilotkit/runtime-client-gql": "0.0.0-v1-5-single-endpoint-20251106115759", - "@copilotkit/shared": "0.0.0-v1-5-single-endpoint-20251106115759", + "@copilotkit/react-core": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkit/react-ui": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkit/runtime": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkit/runtime-client-gql": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkit/shared": "0.0.0-v1-5-single-endpoint-20251106120810", "@copilotkitnext/runtime": "0.0.20", "@copilotkitnext/react": "0.0.20", "@mastra/client-js": "^0.16.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index daadf2aa5..8812a9008 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -128,20 +128,20 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-v1-5-single-endpoint-20251106115759 - version: 0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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: 0.0.0-v1-5-single-endpoint-20251106115759 - version: 0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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: 0.0.0-v1-5-single-endpoint-20251106115759 - version: 0.0.0-v1-5-single-endpoint-20251106115759(11e8d990ef61bbafaa75597e5e9ed522) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(11e8d990ef61bbafaa75597e5e9ed522) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-v1-5-single-endpoint-20251106115759 - version: 0.0.0-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-v1-5-single-endpoint-20251106115759 - version: 0.0.0-v1-5-single-endpoint-20251106115759 + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810 '@copilotkitnext/react': specifier: 0.0.20 version: 0.0.20(@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) @@ -378,7 +378,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -409,7 +409,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -440,7 +440,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -480,7 +480,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -511,7 +511,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -557,7 +557,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -625,7 +625,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -653,7 +653,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -681,7 +681,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -718,7 +718,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -755,7 +755,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -783,7 +783,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -817,7 +817,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -866,7 +866,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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) + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) tsup: 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) @@ -1606,8 +1606,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106115759': - resolution: {integrity: sha512-WV/YAEBGjtjLCzB09423+v04PvRImXCT6yFMMwxSD5Io2wdxlftc2GSd3Lzbi1pZRFK5UZTPwRP9dxYTcsTszA==} + '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-vXEzqawPOxlOKNQtIdrzy3HeRd2pKyUrwbcRpCEluOU4vSZxlgjQ5k2Ira0idYI97lXPjPhW3KV/3Prfo/v8/A==} peerDependencies: '@copilotkitnext/core': 0.0.21-alpha.0 '@copilotkitnext/react': 0.0.21-alpha.0 @@ -1615,19 +1615,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-v1-5-single-endpoint-20251106115759': - resolution: {integrity: sha512-YP5KeG5myff19iW13W3+ASMvMwJQSyyKDmb0LdKQLO42lfjndxjV0d2NI1KuWQbERShmI7zJKkB48C9yR2mdpQ==} + '@copilotkit/react-ui@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-VDPT4x+q+t5jCAeVhaLCH6IevpsWgTPI/ZHDNX2H+bMc4xInU4KHpkP0yxe+pdTozGoo+9vzsv1L/A5cvcwGog==} peerDependencies: '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106115759': - resolution: {integrity: sha512-hpXBhKNN6d5kSmBI4wQoRNR8NOn77yjtmy0F2Z7UhpKuGktIPIxHJs5kTa046WAyG4hrCBogbw/LpAnbuAvQZA==} + '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-+ix2lDWqq8auo3t/2pZ5xfTr4fJVwBwDwyYsB6JWCTFkra3fLi0NEXXajEiWdNuTowiEDfXeRkhA+3yUj7JfsQ==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106115759': - resolution: {integrity: sha512-SXgsoBBOOkWZ/v4N/ubBEryG4b9UscW2D4XUIbvyWrnaG4NS4gL0PUdKQAOFf0YCayP6XZdtq4U5LkOJrlX1Dg==} + '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-jNTidnLjt0kJn9yOAksVyyT8c280/rQGwUcefZX8H/Uz8bzhqrg9A8794uasIVejVYcviDrm4to7wVVlpIW25w==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1644,8 +1644,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106115759': - resolution: {integrity: sha512-IsOythIO9YqccAw1lnp+XPFsGudzWTVWqt3Bglb+u8if+C7lEPFer8gFMS8u/xGGoTUt7JPg1rn3c2o5taWGIw==} + '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-ACp6FsN7XLx7+UBMejYrMuo9tI94w+Lsuqzi+DRKmBiABCAqct/oHuPlNSrPZnMxVTw3+J1yry448H7p/HA+nQ==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11597,10 +11597,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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-core@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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': 0.0.0-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 + '@copilotkit/runtime-client-gql': 0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 '@copilotkitnext/react': 0.0.20(@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 @@ -11614,11 +11614,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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': 0.0.0-v1-5-single-endpoint-20251106115759(@copilotkitnext/react@0.0.20(@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-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 + '@copilotkit/react-core': 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 '@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) @@ -11635,9 +11635,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106115759(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11646,7 +11646,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106115759(11e8d990ef61bbafaa75597e5e9ed522)': + '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106120810(11e8d990ef61bbafaa75597e5e9ed522)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11654,7 +11654,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106115759 + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 '@copilotkitnext/agent': 0.0.21-alpha.0 '@copilotkitnext/runtime': 0.0.21-alpha.0(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) @@ -12013,7 +12013,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106115759': + '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106120810': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -15827,7 +15827,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.19.24 + '@types/node': 22.18.13 '@types/hast@2.3.10': dependencies: @@ -21906,6 +21906,27 @@ snapshots: ts-interface-checker@0.1.13: {} + 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(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.24) + 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.5 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.5) + esbuild: 0.25.11 + jest-util: 29.7.0 + 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 From a2288df6a21964797dd6ab364749e098cc3bc2d9 Mon Sep 17 00:00:00 2001 From: ran Date: Thu, 6 Nov 2025 13:40:45 +0100 Subject: [PATCH 108/113] test new single endpoint --- apps/dojo/package.json | 4 +- pnpm-lock.yaml | 171 ++++++++++------------------------------- 2 files changed, 44 insertions(+), 131 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index bfca1131a..74cfcc7c8 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -31,8 +31,8 @@ "@copilotkit/runtime": "0.0.0-v1-5-single-endpoint-20251106120810", "@copilotkit/runtime-client-gql": "0.0.0-v1-5-single-endpoint-20251106120810", "@copilotkit/shared": "0.0.0-v1-5-single-endpoint-20251106120810", - "@copilotkitnext/runtime": "0.0.20", - "@copilotkitnext/react": "0.0.20", + "@copilotkitnext/runtime": "0.0.21-alpha.0", + "@copilotkitnext/react": "0.0.21-alpha.0", "@mastra/client-js": "^0.16.8", "@mastra/core": "^0.23.3", "@mastra/dynamodb": "^0.15.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8812a9008..0aa7bc556 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -129,10 +129,10 @@ importers: version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': specifier: 0.0.0-v1-5-single-endpoint-20251106120810 - version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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) + version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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: 0.0.0-v1-5-single-endpoint-20251106120810 - version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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) + version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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: 0.0.0-v1-5-single-endpoint-20251106120810 version: 0.0.0-v1-5-single-endpoint-20251106120810(11e8d990ef61bbafaa75597e5e9ed522) @@ -143,11 +143,11 @@ importers: specifier: 0.0.0-v1-5-single-endpoint-20251106120810 version: 0.0.0-v1-5-single-endpoint-20251106120810 '@copilotkitnext/react': - specifier: 0.0.20 - version: 0.0.20(@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-alpha.0 + version: 0.0.21-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/runtime': - specifier: 0.0.20 - version: 0.0.20(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + specifier: 0.0.21-alpha.0 + version: 0.0.21-alpha.0(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) '@mastra/client-js': specifier: ^0.16.8 version: 0.16.8(openapi-types@12.1.3)(zod@3.25.76) @@ -378,7 +378,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -409,7 +409,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -440,7 +440,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -480,7 +480,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -511,7 +511,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -557,7 +557,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -625,7 +625,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -653,7 +653,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -681,7 +681,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -718,7 +718,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -755,7 +755,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -783,7 +783,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -817,7 +817,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -866,7 +866,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -978,9 +978,6 @@ packages: '@ag-ui/client@0.0.40-alpha.11': resolution: {integrity: sha512-n04KBxlAdsUhAtD6aa5B9Y779fRrnDMNAb22EGm/L60eHhvocVEqztqb05+s84bSnVhncoX7aD2Da8Y3B+kjew==} - '@ag-ui/client@0.0.40-alpha.6': - resolution: {integrity: sha512-QIgOY8nJvv3mrDz9OXyaoxwj3Js28YPYXz+myRQ2idR1ghoKq0V9MEZrXoHOE4O6Z7PnUSw5z7zZIemh7YK/5w==} - '@ag-ui/core@0.0.35': resolution: {integrity: sha512-YAqrln3S3fdo+Hs5FFQPODXiBttyilv/E3xSSHCuxqC0Y/Fp3+VqyDx97BorO3NVp2VKZ9cG2nsO3cbmcTwkQw==} @@ -990,18 +987,12 @@ packages: '@ag-ui/core@0.0.40-alpha.11': resolution: {integrity: sha512-zGOl1NSF3QOgHCniu58BeicIuCRPiuxQFmDFXb5asciI60LLM9GdF+E58EwUczMsq/+ouK5lNp9lKdrduiURWg==} - '@ag-ui/core@0.0.40-alpha.6': - resolution: {integrity: sha512-XkZAnmtewucr0yayWxK2GEcOoxaHZ6cSZZKkVFKAEOPJuUwFCFstqS3vh0Z5rUy2ZE8eh8WJylBHidiCRW4yuA==} - '@ag-ui/encoder@0.0.35': resolution: {integrity: sha512-Ym0h0ZKIiD1Ld3+e3v/WQSogY62xs72ysoEBW1kt+dDs79QazBsW5ZlcBBj2DelEs9NrczQLxTVEvrkcvhrHqA==} '@ag-ui/encoder@0.0.40-alpha.11': resolution: {integrity: sha512-T/sLvCIpDK2H7I3/XI3Sa8kMRBuvpZTs+zRJfcpFyzLWfDbqovOXLACmMeruap7tlmk2IPXcY9CVUmJsQPBwjw==} - '@ag-ui/encoder@0.0.40-alpha.6': - resolution: {integrity: sha512-q+bpJGp4fMjQplHowmbNaOQrICHzmk1J394jZXmTv/RjysNHtcDrWHythXBiPAnNRutYeqsG6bQJ5PASbQYiqg==} - '@ag-ui/langgraph@0.0.18': resolution: {integrity: sha512-soWSV8+xR91jMArZUJoRv85UCgTi3Zt3u3gTMZhvs1t6fGFpAi6+hEQ4AqP13Rgvg90IlmIU8MTWo2k0OZDnoA==} peerDependencies: @@ -1014,9 +1005,6 @@ packages: '@ag-ui/proto@0.0.40-alpha.11': resolution: {integrity: sha512-AlPaBBDdVAl8ZAu6fW/knFI4XDmSQJHDy6ADi+va8Hx4oPcG7cI9WhBaEVqETDLqhglRrFfGMt7KeQL+1NMo8Q==} - '@ag-ui/proto@0.0.40-alpha.6': - resolution: {integrity: sha512-xFw9igIC7OGdq/t1biUXRMinaC0sPLkavjj2oz820KaJe1uZOTSRfAK1qEgswoHJU1N4vRg0RQDEhd1wN8+GGg==} - '@ai-sdk/anthropic@2.0.23': resolution: {integrity: sha512-ZEBiiv1UhjGjBwUU63pFhLK5LCSlNDb1idY9K1oZHm5/Fda1cuTojf32tOp0opH0RPbPAN/F8fyyNjbU33n9Kw==} engines: {node: '>=18'} @@ -1654,39 +1642,29 @@ packages: resolution: {integrity: sha512-xWsL3MW42eX02tXD7JcC72uDTXKq2nbslpuljnBR6fbSR+T76A6Cstn+i5t3DZEaYiW5s3R2Orux8ICtD1YAiQ==} engines: {node: '>=18'} - '@copilotkitnext/core@0.0.20': - resolution: {integrity: sha512-rtTNP27ellPQouLF7f5nH7JgUJXe70gVncHcBEfXuN6kNqG/36pHQHbkJXO2o2EfHyG9vfWTT8sOMy97NfY+Pw==} + '@copilotkitnext/core@0.0.21-alpha.0': + resolution: {integrity: sha512-U8xkrzJavIodgEasPgTdG2cLGpphrZ+2o/yMzVEBrXk1vOmwI8Uz7IJEk9SwEY8cu9JN71twM0IW4r4TXQx6Xg==} engines: {node: '>=18'} - '@copilotkitnext/react@0.0.20': - resolution: {integrity: sha512-ZtSD0zDlh/bGGe8ymPFAYiaFMobC4ffPpCvsLoQUnlg/qeOCMtwokCeE8St1AwiLMm1bt1SnKAesBQN/xAFxFQ==} + '@copilotkitnext/react@0.0.21-alpha.0': + resolution: {integrity: sha512-p7UwiU7MuK/ouxowEMxe6JdfZU56cTffnuPRqAdcqfctRN2wzzQY1ZIDhv3yIf6LOaqEv297AWQ4JZJ6Qe0/lA==} engines: {node: '>=18'} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@copilotkitnext/runtime@0.0.20': - resolution: {integrity: sha512-s5l8dr0ID5j2EU1EyLa3MQLwFPzTcMYe1AdAFA4m2B8eu1X0WQWSkVY7pIs0D3PJysQ7RvPvcrmn5V3h5ACEcg==} - engines: {node: '>=18'} - peerDependencies: - openai: ^5.9.0 - '@copilotkitnext/runtime@0.0.21-alpha.0': resolution: {integrity: sha512-Tjffkl6ZqMSeLtvdPkPr/spPwR6gjpuJoqkA6T1ssiHTD+apnMe3913r32OFgE6DKasUc0sgkss9g1G7Id/hTw==} engines: {node: '>=18'} peerDependencies: openai: ^5.9.0 - '@copilotkitnext/shared@0.0.20': - resolution: {integrity: sha512-YNLIrEPq4m6fA8afCE0tbKorNNM8iCjy+j2PKVSNDFjqUKhuReqmgck1vQWTPISz5iXGwbb/OW9WHU4z8fTqfg==} - engines: {node: '>=18'} - '@copilotkitnext/shared@0.0.21-alpha.0': resolution: {integrity: sha512-3YGrFI7zzjy3OtYqGHMUYAyT95dWkBLzgOwUgpdo28UZp6f2PrifplJFxLSBThx7V306p87qBG545FZxB9nouA==} engines: {node: '>=18'} - '@copilotkitnext/web-inspector@0.0.20': - resolution: {integrity: sha512-vsVrxG4+HvnpHFzMko1Deqz83AepfY2civUXEo88yUykPxElZOGmGMztts4diwyTRfTz57JtFCTbAFQwCzvQuA==} + '@copilotkitnext/web-inspector@0.0.21-alpha.0': + resolution: {integrity: sha512-KY7nWdhEH99ileRtgiVPjC/O6ijHHZwIUUfA33F4V/v/Nx/8ndbdPIw1m7Wg/uVmg54oeFMwr2ZYxRXCXmCGgQ==} engines: {node: '>=18'} '@emnapi/core@1.6.0': @@ -10438,18 +10416,6 @@ snapshots: uuid: 11.1.0 zod: 3.25.76 - '@ag-ui/client@0.0.40-alpha.6': - dependencies: - '@ag-ui/core': 0.0.40-alpha.6 - '@ag-ui/encoder': 0.0.40-alpha.6 - '@ag-ui/proto': 0.0.40-alpha.6 - '@types/uuid': 10.0.0 - fast-json-patch: 3.1.1 - rxjs: 7.8.1 - untruncate-json: 0.0.1 - uuid: 11.1.0 - zod: 3.25.76 - '@ag-ui/core@0.0.35': dependencies: rxjs: 7.8.1 @@ -10465,11 +10431,6 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.40-alpha.6': - dependencies: - rxjs: 7.8.1 - zod: 3.25.76 - '@ag-ui/encoder@0.0.35': dependencies: '@ag-ui/core': 0.0.35 @@ -10480,11 +10441,6 @@ snapshots: '@ag-ui/core': 0.0.40-alpha.11 '@ag-ui/proto': 0.0.40-alpha.11 - '@ag-ui/encoder@0.0.40-alpha.6': - dependencies: - '@ag-ui/core': 0.0.40-alpha.6 - '@ag-ui/proto': 0.0.40-alpha.6 - '@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 @@ -10512,12 +10468,6 @@ snapshots: '@bufbuild/protobuf': 2.10.0 '@protobuf-ts/protoc': 2.11.1 - '@ag-ui/proto@0.0.40-alpha.6': - dependencies: - '@ag-ui/core': 0.0.40-alpha.6 - '@bufbuild/protobuf': 2.10.0 - '@protobuf-ts/protoc': 2.11.1 - '@ai-sdk/anthropic@2.0.23(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 @@ -11597,11 +11547,11 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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-core@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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': 0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 - '@copilotkitnext/react': 0.0.20(@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-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) '@scarf/scarf': 1.4.0 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) @@ -11614,9 +11564,9 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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': 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.20(@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-core': 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 '@headlessui/react': 2.2.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0) @@ -12050,21 +12000,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@copilotkitnext/core@0.0.20': + '@copilotkitnext/core@0.0.21-alpha.0': dependencies: - '@ag-ui/client': 0.0.40-alpha.6 - '@copilotkitnext/shared': 0.0.20 + '@ag-ui/client': 0.0.40-alpha.11 + '@copilotkitnext/shared': 0.0.21-alpha.0 rxjs: 7.8.1 zod: 3.25.76 zod-to-json-schema: 3.24.6(zod@3.25.76) - '@copilotkitnext/react@0.0.20(@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-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)': dependencies: - '@ag-ui/client': 0.0.40-alpha.6 - '@ag-ui/core': 0.0.40-alpha.6 - '@copilotkitnext/core': 0.0.20 - '@copilotkitnext/shared': 0.0.20 - '@copilotkitnext/web-inspector': 0.0.20 + '@ag-ui/client': 0.0.40-alpha.11 + '@ag-ui/core': 0.0.40-alpha.11 + '@copilotkitnext/core': 0.0.21-alpha.0 + '@copilotkitnext/shared': 0.0.21-alpha.0 + '@copilotkitnext/web-inspector': 0.0.21-alpha.0 '@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.4(@types/react@19.2.2)(react@19.2.0) @@ -12086,16 +12036,6 @@ snapshots: - '@types/react-dom' - supports-color - '@copilotkitnext/runtime@0.0.20(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': - dependencies: - '@ag-ui/client': 0.0.40-alpha.6 - '@ag-ui/core': 0.0.40-alpha.6 - '@ag-ui/encoder': 0.0.40-alpha.6 - '@copilotkitnext/shared': 0.0.20 - hono: 4.10.3 - openai: 5.12.2(ws@8.18.3)(zod@3.25.76) - rxjs: 7.8.1 - '@copilotkitnext/runtime@0.0.21-alpha.0(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': dependencies: '@ag-ui/client': 0.0.40-alpha.11 @@ -12110,22 +12050,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@copilotkitnext/shared@0.0.20': - dependencies: - '@ag-ui/client': 0.0.40-alpha.6 - partial-json: 0.1.7 - uuid: 11.1.0 - '@copilotkitnext/shared@0.0.21-alpha.0': dependencies: '@ag-ui/client': 0.0.40-alpha.11 partial-json: 0.1.7 uuid: 11.1.0 - '@copilotkitnext/web-inspector@0.0.20': + '@copilotkitnext/web-inspector@0.0.21-alpha.0': dependencies: - '@ag-ui/client': 0.0.40-alpha.6 - '@copilotkitnext/core': 0.0.20 + '@ag-ui/client': 0.0.40-alpha.11 + '@copilotkitnext/core': 0.0.21-alpha.0 lit: 3.3.1 lucide: 0.525.0 @@ -21906,27 +21840,6 @@ snapshots: ts-interface-checker@0.1.13: {} - 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))(esbuild@0.25.11)(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24))(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.24) - 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.5 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.5) - esbuild: 0.25.11 - jest-util: 29.7.0 - 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 From 7a4bc8a122350a5249fe550c85f8dfb763b5c019 Mon Sep 17 00:00:00 2001 From: Markus Ecker Date: Thu, 6 Nov 2025 14:48:09 +0100 Subject: [PATCH 109/113] bump versions --- integrations/adk-middleware/typescript/src/index.ts | 6 +----- integrations/agno/typescript/package.json | 2 +- integrations/community/spring-ai/typescript/package.json | 2 +- integrations/crew-ai/typescript/package.json | 2 +- integrations/llama-index/typescript/package.json | 2 +- integrations/pydantic-ai/typescript/package.json | 2 +- sdks/python/pyproject.toml | 2 +- sdks/typescript/packages/cli/package.json | 2 +- sdks/typescript/packages/client/package.json | 2 +- sdks/typescript/packages/core/package.json | 2 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 12 files changed, 12 insertions(+), 16 deletions(-) diff --git a/integrations/adk-middleware/typescript/src/index.ts b/integrations/adk-middleware/typescript/src/index.ts index 565200c7e..5a4057f85 100644 --- a/integrations/adk-middleware/typescript/src/index.ts +++ b/integrations/adk-middleware/typescript/src/index.ts @@ -1,7 +1,3 @@ import { HttpAgent } from "@ag-ui/client"; -export class ADKAgent extends HttpAgent { - public override get maxVersion(): string { - return "0.0.39"; - } -} +export class ADKAgent extends HttpAgent {} diff --git a/integrations/agno/typescript/package.json b/integrations/agno/typescript/package.json index 05b9cd0dc..a1747e3ab 100644 --- a/integrations/agno/typescript/package.json +++ b/integrations/agno/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/agno", "author": "Manu Hortet ", - "version": "0.0.2", + "version": "0.0.3", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", diff --git a/integrations/community/spring-ai/typescript/package.json b/integrations/community/spring-ai/typescript/package.json index a3441a42f..b379310cd 100644 --- a/integrations/community/spring-ai/typescript/package.json +++ b/integrations/community/spring-ai/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/spring-ai", "author": "Pascal Wilbrink", - "version": "0.0.1", + "version": "0.0.2", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", diff --git a/integrations/crew-ai/typescript/package.json b/integrations/crew-ai/typescript/package.json index b5c334022..de7c8b1da 100644 --- a/integrations/crew-ai/typescript/package.json +++ b/integrations/crew-ai/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/crewai", "author": "Markus Ecker ", - "version": "0.0.2", + "version": "0.0.3", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", diff --git a/integrations/llama-index/typescript/package.json b/integrations/llama-index/typescript/package.json index bb2226b9b..6b37b380a 100644 --- a/integrations/llama-index/typescript/package.json +++ b/integrations/llama-index/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/llamaindex", "author": "Logan Markewich ", - "version": "0.1.4", + "version": "0.1.5", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", diff --git a/integrations/pydantic-ai/typescript/package.json b/integrations/pydantic-ai/typescript/package.json index e53c3a2ae..d1b203e9d 100644 --- a/integrations/pydantic-ai/typescript/package.json +++ b/integrations/pydantic-ai/typescript/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/pydantic-ai", "author": "Steven Hartland ", - "version": "0.0.1", + "version": "0.0.2", "main": "./dist/index.js", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", diff --git a/sdks/python/pyproject.toml b/sdks/python/pyproject.toml index f38eb2dff..84eadcfee 100644 --- a/sdks/python/pyproject.toml +++ b/sdks/python/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ag-ui-protocol" -version = "0.2.0a0" +version = "0.1.10" description = "" authors = ["Markus Ecker "] readme = "README.md" diff --git a/sdks/typescript/packages/cli/package.json b/sdks/typescript/packages/cli/package.json index b3a480309..08d7a16d6 100644 --- a/sdks/typescript/packages/cli/package.json +++ b/sdks/typescript/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-ag-ui-app", "author": "Markus Ecker ", - "version": "0.0.40-alpha.11", + "version": "0.0.40", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/client/package.json b/sdks/typescript/packages/client/package.json index a64abc9f0..908c96199 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -1,7 +1,7 @@ { "name": "@ag-ui/client", "author": "Markus Ecker ", - "version": "0.0.40-alpha.11", + "version": "0.0.40", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/core/package.json b/sdks/typescript/packages/core/package.json index 5e5aba046..4f066b79e 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-alpha.11", + "version": "0.0.40", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/encoder/package.json b/sdks/typescript/packages/encoder/package.json index 2167df068..efe085cfd 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-alpha.11", + "version": "0.0.40", "private": false, "publishConfig": { "access": "public" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index f485dcfea..685b5fe8e 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-alpha.11", + "version": "0.0.40", "private": false, "publishConfig": { "access": "public" From 4c19e5d1214247edde361eaea22a208f3c39e12b Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Thu, 6 Nov 2025 10:08:45 -0800 Subject: [PATCH 110/113] chore: Upgrade to v0.0.21 of vnext and latest tag of CopilotKit --- apps/dojo/package.json | 17 +- package.json | 4 +- pnpm-lock.yaml | 1933 +++++++++++++++++++++++++++------------- 3 files changed, 1340 insertions(+), 614 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 8a8cd3d68..11be75479 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -28,14 +28,15 @@ "@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", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkitnext/core": "0.0.21", + "@copilotkitnext/react": "0.0.21", + "@copilotkitnext/runtime": "0.0.21", + "@copilotkitnext/agent": "0.0.21", "@mastra/client-js": "^0.15.2", "@mastra/core": "^0.20.2", "@mastra/dynamodb": "^0.15.6", diff --git a/package.json b/package.json index 4fc939193..645bcc826 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,9 @@ "@browserbasehq/stagehand>openai": "^4.62.1", "@mastra/core>ai": "5.0.59", "@openrouter/ai-sdk-provider>ai": "5.0.59", - "ai": "5.0.59" + "ai": "5.0.59", + "streamdown": "1.3.0", + "mermaid": "11.12.0" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0758e2016..1bc081ade 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,15 +4,24 @@ 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 + streamdown: 1.3.0 + mermaid: 11.12.0 + 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,34 +43,34 @@ 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: @@ -127,47 +136,50 @@ importers: specifier: ^2.0.42 version: 2.0.52(zod@3.25.76) '@copilotkit/react-core': - specifier: 1.10.6 - version: 1.10.6(@types/react@19.2.2)(graphql@16.11.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(@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-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(@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-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(43a54c62826e391639c20a8a0387b983) '@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-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 1.10.6 - version: 1.10.6 + specifier: 0.0.0-feat-cpk-1-5-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323 '@copilotkitnext/agent': - specifier: 0.0.19-alpha.0 - version: 0.0.19-alpha.0 + specifier: 0.0.21 + version: 0.0.21 + '@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@4.104.0(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) + 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/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)) + version: 0.15.6(@mastra/core@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)) + version: 0.15.1(@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)) + version: 0.10.15(@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) + version: 0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(zod@3.25.76) '@mdx-js/loader': specifier: ^3.1.0 version: 3.1.1 @@ -358,7 +370,7 @@ importers: 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) + 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(@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) @@ -379,13 +391,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 +416,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.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(@types/node@20.19.24))(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 +447,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.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(@types/node@20.19.24))(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 +478,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.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(@types/node@20.19.24))(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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) '@langchain/langgraph-sdk': - specifier: ^0.1.2 - version: 0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) partial-json: specifier: ^0.1.7 version: 0.1.7 @@ -506,19 +518,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.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(@types/node@20.19.24))(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 +549,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.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(@types/node@20.19.24))(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(44bb7de6433f14640bc8666b3b9131fb) '@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.9(openapi-types@12.1.3)(zod@3.25.76) rxjs: specifier: 7.8.1 version: 7.8.1 @@ -577,59 +589,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.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(@types/node@20.19.24))(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.64(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.19(@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.11(@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.19.0 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 +663,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.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(@types/node@20.19.24))(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 +691,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.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(@types/node@20.19.24))(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 +719,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.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(@types/node@20.19.24))(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 +756,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.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(@types/node@20.19.24))(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 +793,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.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(@types/node@20.19.24))(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 +821,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.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(@types/node@20.19.24))(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 +848,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.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(@types/node@20.19.24))(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: @@ -885,26 +900,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.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(@types/node@20.19.24))(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 +928,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 ts-jest: - specifier: ^29.1.2 + specifier: ^29.4.5 version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: - specifier: ^8.0.2 + 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 +957,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 ts-jest: - specifier: ^29.1.2 + specifier: ^29.4.5 version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) tsup: - specifier: ^8.0.2 + 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 +978,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 +992,18 @@ importers: version: 29.5.14 jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@20.19.21) + version: 29.7.0 ts-jest: - specifier: ^29.1.2 + specifier: ^29.4.5 version: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@29.7.0)(jest@29.7.0)(typescript@5.9.3) ts-proto: - specifier: ^2.7.0 - version: 2.7.7 + specifier: ^2.8.2 + version: 2.8.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 packages: @@ -1008,8 +1023,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,8 +1032,8 @@ 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': + resolution: {integrity: sha512-3HFpBzDp9SX4qmSdwYNug95l2XtWTaLIlBZ4Xk7wPES4y59BNSCPLtXQDvdnBi7ns+GqYyR8fRbv52vgN4SGhA==} '@ag-ui/core@0.0.40-alpha.11': resolution: {integrity: sha512-zGOl1NSF3QOgHCniu58BeicIuCRPiuxQFmDFXb5asciI60LLM9GdF+E58EwUczMsq/+ouK5lNp9lKdrduiURWg==} @@ -1026,8 +1041,8 @@ packages: '@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': + resolution: {integrity: sha512-etYEQ5zft2GNdxU6Wq/z5JtHwCXIXeY3XBGzAeu9WjFwYU8qVO52qaMc55FlDZ55jHASVfUs2UYXQS2ApTtrYg==} '@ag-ui/encoder@0.0.40-alpha.11': resolution: {integrity: sha512-T/sLvCIpDK2H7I3/XI3Sa8kMRBuvpZTs+zRJfcpFyzLWfDbqovOXLACmMeruap7tlmk2IPXcY9CVUmJsQPBwjw==} @@ -1041,8 +1056,8 @@ packages: '@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': + resolution: {integrity: sha512-rZpdttz9adJBDughHtW/89sc5jzk0cMo5np2TlMFKSopHvVoPaUv/Za73cfzBrAbUtNwnletZrcLCMtUWJ3Ipg==} '@ag-ui/proto@0.0.40-alpha.11': resolution: {integrity: sha512-AlPaBBDdVAl8ZAu6fW/knFI4XDmSQJHDy6ADi+va8Hx4oPcG7cI9WhBaEVqETDLqhglRrFfGMt7KeQL+1NMo8Q==} @@ -1053,24 +1068,54 @@ 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/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/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'} @@ -1089,6 +1134,18 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@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.64': + resolution: {integrity: sha512-+1mqxn42uB32DPZ6kurSyGAmL3MgCaDpkYU7zNDWI4NLy3Zg97RxTsI1jBCGIqkEVvRZKJlIMYtb89OvMnq3AQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@2.2.8': resolution: {integrity: sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==} engines: {node: '>=18'} @@ -1107,6 +1164,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@3.0.16': + resolution: {integrity: sha512-lsWQY9aDXHitw7C1QRYIbVGmgwyT98TF3MfM8alNIXKpdJdi+W782Rzd9f1RyOfgRmZ08gJ2EYNDhWNK7RqpEA==} + 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 +1178,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 +1190,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'} @@ -1559,8 +1618,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 +1645,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-20251106162323': + resolution: {integrity: sha512-vAO9ufGEYKsZPGqi9o5qcJ2Yf7LmPnZdHIh/k19FbjvEigYDpG6v1Bi5Ef4WxqsHQES4p569IV7/799cs+kUHw==} 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-20251106162323': + resolution: {integrity: sha512-udhP9iu3A8VXx9ts8mSeOK7A9NWnNwG9PaLbyr7NPoEBMZ9uo8NO90r99ISYdb4hBYx2zF6mzZMdMoozeDsFBw==} 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-20251106162323': + resolution: {integrity: sha512-wUuN0IKI/ANp8D1A3VjUaQ1saIqW6ae6PVdIK4M75q0mdtaAqB6XA6+ZpPdJF5+BtAvUnEVqva9cxvQZnfm8MQ==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251106162323': + resolution: {integrity: sha512-NnMncK27lML4/LKqAWVf18AduuT+SgIGmJWLpZMZ/xjo34oySuukS55YpIlmo+6UXGqQAnO0Qr4+ko95NnOltQ==} + 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,36 +1683,39 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': + resolution: {integrity: sha512-5978NLJeoTLTWqB0sA0yNDmyy6nFvdXGkxCVH3QHR2IWsG9BGUe6xzU7H34pVlYLGMwYzJlS9rf6NlU5P3iEyg==} + '@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': @@ -2715,6 +2790,10 @@ packages: resolution: {integrity: sha512-Nn0x9erQlK3zgtRU1Z8NUjLuyW0gzdclMsvLQ6wwLeDqV91pE+YKl6uQb+L2NUDs4F0N7c2Zncgz46HxrvPzuA==} engines: {node: '>=18'} + '@langchain/core@0.3.79': + resolution: {integrity: sha512-ZLAs5YMM5N2UXN3kExMglltJrKKoW7hs3KMZFlXUnD7a5DFKBYxPFMeXA4rT+uvTxuJRZPCYX0JKI5BhyAWx4A==} + engines: {node: '>=18'} + '@langchain/google-common@0.1.8': resolution: {integrity: sha512-8auqWw2PMPhcHQHS+nMN3tVZrUPgSLckUaFeOHDOeSBiDvBd4KCybPwyl2oCwMDGvmyIxvOOckkMdeGaJ92vpQ==} engines: {node: '>=18'} @@ -2869,6 +2948,11 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 + '@mastra/client-js@0.16.9': + resolution: {integrity: sha512-m9QbArYcZP7giUA4fI8L4eGA8TYusAgVCHTnKIomUOtVm3h9EBIa0+75jzUkydwdv6CB/gQ8VSP2FOlhrRtuSg==} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + '@mastra/core@0.12.1': resolution: {integrity: sha512-iWvkIBnhFXZH+XkpV7Yy0YJphVM7BBtnJmv0z9hHgcvo6poH8+YUpEAHsveuvt4rcvNkR34yfdEQxzhh5bcabA==} engines: {node: '>=20'} @@ -2881,6 +2965,18 @@ 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/core@0.24.0': + resolution: {integrity: sha512-lurtcdObDJE1Hb6p6Byu67i2mnNFVSE1ylVnbtcAqSXmfW7rRNx61B+inJmVSMZOu2gVtfoH3Q0tMrjBsJwm6g==} + engines: {node: '>=20'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + '@mastra/deployer@0.20.2': resolution: {integrity: sha512-pkD7ViXeAoMvb0bQAL7VHTjptXTDTOgkcpE/37edrdyF3/Smi3t5S8FStveGaNzrfx7O6ywHkRKXU8nL3c0wAg==} peerDependencies: @@ -2902,11 +2998,21 @@ packages: peerDependencies: '@mastra/core': '>=0.19.0-alpha.1 <0.21.0-0' + '@mastra/libsql@0.15.2': + resolution: {integrity: sha512-WBOIXal7nj7qDxryIMBx4DnWGyiw3+iDoT/2cuoKIVFSGVrf5tE3but5u2Dv8gawjM3DGizVCmJhv5cpSheOHg==} + peerDependencies: + '@mastra/core': '>=0.19.0-alpha.1 <0.22.0-0' + '@mastra/loggers@0.10.15': resolution: {integrity: sha512-/s4RPYTuTyJ8/oRU1ThHQaOal7/Bml5ARJhQBXIX3qcG3MIprRyPmtK1XrdLuuBuh7XpaWUFZFqW0pJaE1FLtw==} peerDependencies: '@mastra/core': '>=0.18.1-0 <0.21.0-0' + '@mastra/loggers@0.10.19': + resolution: {integrity: sha512-H4qTgqKt3YJxz6B1I0lOPqRpOpR8gEzYYNZ6iO/TGQ11r+wvug/i80MAKr0B1IBZvr9l18vr7wjYCdTxPqaAGg==} + peerDependencies: + '@mastra/core': '>=0.18.1-0 <0.25.0-0' + '@mastra/loggers@0.10.5': resolution: {integrity: sha512-H1Ry1s4mbBSE1MUekWFM/8RV6Dy8WoghIP+BVZlTR5edIkGY/a83CE/8wMTA8KUJLoj743dibubZna4dBgJvdA==} peerDependencies: @@ -2923,6 +3029,12 @@ packages: peerDependencies: '@mastra/core': '>=0.12.0-0 <0.13.0-0' + '@mastra/memory@0.15.11': + resolution: {integrity: sha512-HxcvJ+JBCEN9f8JQ+mPgxBm2K9Ln52aGsX0OeqG1sgt1vac60PqQi1MbywbiIsLxlMkVFysE2C/7bFh+d6vtjQ==} + peerDependencies: + '@mastra/core': '>=0.20.1-0 <0.25.0-0' + zod: ^3.25.0 || ^4.0.0 + '@mastra/memory@0.15.6': resolution: {integrity: sha512-k6X4nZ+YFhlW46YPKgTAuPYma+uebLQ2xYeDdx0BQvQyO6lWp9s9cpgSjCwOMzctPZqrxauOfzgWyyUUrFfwBw==} peerDependencies: @@ -2932,13 +3044,25 @@ packages: '@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/schema-compat@0.11.7': + resolution: {integrity: sha512-F/Q2myO7ar5+p2zRb1anGvLrUCKmdrJraXq9TWsWRp7frrcGUwlewf6Qo9+lp6NSumH0XlC/yvcjzzDwVzaMEw==} + peerDependencies: + ai: 5.0.59 zod: ^3.25.0 || ^4.0.0 '@mastra/server@0.20.2': @@ -3075,7 +3199,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': @@ -4930,9 +5054,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==} @@ -5026,8 +5147,11 @@ packages: '@types/node@20.19.21': resolution: {integrity: sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA==} - '@types/node@22.18.10': - resolution: {integrity: sha512-anNG/V/Efn/YZY4pRzbACnKxNKoBng2VTFydVu8RRs5hQjikP8CQfaeAV59VFSCzKNp90mXiVXW2QzV56rwMrg==} + '@types/node@20.19.24': + resolution: {integrity: sha512-FE5u0ezmi6y9OZEzlJfg37mqqf6ZDSF2V/NLjUyGrR9uTZ7Sb9F7bLNZ03S4XVUNRWGA7Ck4c1kK+YnuWjl+DA==} + + '@types/node@22.19.0': + resolution: {integrity: sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==} '@types/oracledb@6.5.2': resolution: {integrity: sha512-kK1eBS/Adeyis+3OlBDMeQQuasIDLUYXsi2T15ccNJ0iyUpQ4xDF7svFu3+bGVrI0CMBUclPciz+lsQR3JX3TQ==} @@ -5278,8 +5402,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 +5475,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 +5487,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==} @@ -5647,10 +5773,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'} @@ -6057,8 +6179,8 @@ packages: resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} engines: {node: '>=12'} - dagre-d3-es@7.0.13: - resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} + dagre-d3-es@7.0.11: + resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -6215,9 +6337,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} @@ -6945,6 +7064,12 @@ packages: engines: {node: '>=0.4.7'} hasBin: true + harden-react-markdown@1.1.5: + resolution: {integrity: sha512-u0OFAPakA/FE9ZCOgUakvB55ygfHiK0grQgKdztcTe73d6Dz/6Flz04hv6pPq7zzZYAgjeEZQwR2zQYifC0NVQ==} + peerDependencies: + react: '>=16.8.0' + react-markdown: '>=9.0.0' + has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -7323,6 +7448,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 +7774,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==} @@ -8129,8 +8253,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.12.1: - resolution: {integrity: sha512-UlIZrRariB11TY1RtTgUWp65tphtBv4CSq7vyS2ZZ2TgoMjs2nloq+wFqxiwcxlhHUvs7DPGgMjs2aeQxz5h9g==} + mermaid@11.12.0: + resolution: {integrity: sha512-ZudVx73BwrMJfCFmSSJT84y6u5brEoV8DOItdHomNLz32uBjNrelm7mg95X7g+C6UoQH/W6mBLGDEDv73JdxBg==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -8644,6 +8768,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'} @@ -9523,8 +9651,8 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - streamdown@1.4.0: - resolution: {integrity: sha512-ylhDSQ4HpK5/nAH9v7OgIIdGJxlJB2HoYrYkJNGrO8lMpnWuKUcrz/A8xAMwA6eILA27469vIavcOTjmxctrKg==} + streamdown@1.3.0: + resolution: {integrity: sha512-vFZdoWKUeagzKwGGOcEqkV1fcgXOJOQqrNBor5/hbaAE/e/ULxZoIHHJJd5KEuaSddCM9KuYtIuZi3WSttXTEA==} peerDependencies: react: ^18.0.0 || ^19.0.0 @@ -9658,11 +9786,6 @@ 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==} @@ -9702,10 +9825,6 @@ 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==} @@ -9807,8 +9926,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.3: + resolution: {integrity: sha512-TdXInqG+61pj/TvORqITWjvjTTsL1EZxwX49iEj89+xFAcqPT8tjChpAGQXzfcF4MJwvNiuoCEbBOKqVf3ds3g==} hasBin: true tsconfig-paths@3.15.0: @@ -10373,11 +10492,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,7 +10514,7 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.40-alpha.10': + '@ag-ui/core@0.0.40': dependencies: rxjs: 7.8.1 zod: 3.25.76 @@ -10410,22 +10529,22 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 - '@ag-ui/encoder@0.0.40-alpha.10': + '@ag-ui/encoder@0.0.40': dependencies: - '@ag-ui/core': 0.0.40-alpha.10 - '@ag-ui/proto': 0.0.40-alpha.10 + '@ag-ui/core': 0.0.40 + '@ag-ui/proto': 0.0.40 '@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.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@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@langchain/langgraph-sdk': 0.1.10(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) partial-json: 0.1.7 rxjs: 7.8.1 transitivePeerDependencies: @@ -10439,18 +10558,18 @@ snapshots: '@ag-ui/proto@0.0.35': dependencies: '@ag-ui/core': 0.0.35 - '@bufbuild/protobuf': 2.9.0 + '@bufbuild/protobuf': 2.10.0 - '@ag-ui/proto@0.0.40-alpha.10': + '@ag-ui/proto@0.0.40': dependencies: - '@ag-ui/core': 0.0.40-alpha.10 - '@bufbuild/protobuf': 2.9.0 + '@ag-ui/core': 0.0.40 + '@bufbuild/protobuf': 2.10.0 '@protobuf-ts/protoc': 2.11.1 '@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 +10578,30 @@ 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/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 +10610,24 @@ 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/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 @@ -10496,14 +10646,26 @@ snapshots: '@ai-sdk/provider-utils': 3.0.12(zod@3.25.76) zod: 3.25.76 - '@ai-sdk/provider-utils@2.2.8(zod@3.25.76)': + '@ai-sdk/openai@2.0.53(zod@3.25.76)': dependencies: - '@ai-sdk/provider': 1.1.3 - nanoid: 3.3.11 - secure-json-parse: 2.7.0 + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.12(zod@3.25.76) zod: 3.25.76 - '@ai-sdk/provider-utils@3.0.10(zod@3.25.76)': + '@ai-sdk/openai@2.0.64(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.16(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/provider-utils@2.2.8(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 1.1.3 + nanoid: 3.3.11 + secure-json-parse: 2.7.0 + zod: 3.25.76 + + '@ai-sdk/provider-utils@3.0.10(zod@3.25.76)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.0.0 @@ -10517,6 +10679,13 @@ snapshots: eventsource-parser: 3.0.6 zod: 3.25.76 + '@ai-sdk/provider-utils@3.0.16(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 +10694,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,6 +10708,13 @@ 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': @@ -11449,7 +11615,23 @@ snapshots: - encoding - utf-8-validate - '@bufbuild/protobuf@2.9.0': {} + '@browserbasehq/stagehand@1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)': + dependencies: + '@anthropic-ai/sdk': 0.27.3 + '@browserbasehq/sdk': 2.6.0 + '@playwright/test': 1.56.0 + deepmerge: 4.3.1 + dotenv: 16.6.1 + openai: 5.12.2(ws@8.18.3)(zod@3.25.76) + ws: 8.18.3 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@bufbuild/protobuf@2.10.0': {} '@cfworker/json-schema@4.1.1': {} @@ -11481,26 +11663,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-20251106162323(@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-20251106162323(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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-20251106162323(@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-20251106162323(@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-20251106162323(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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 +11695,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-20251106162323(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 1.10.6 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11526,7 +11714,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@1.10.6(iqshwn2xropb3vpfei3flnb2ay)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251106162323(43a54c62826e391639c20a8a0387b983)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11534,14 +11722,16 @@ 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-20251106162323 + '@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + '@langchain/community': 0.3.57(656fb6f0108e13d499f0a783d59c961f) + '@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.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) + '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) + '@langchain/openai': 0.4.9(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) '@scarf/scarf': 1.4.0 class-transformer: 0.5.1 class-validator: 0.14.2 @@ -11550,8 +11740,9 @@ snapshots: graphql-scalars: 1.24.2(graphql@16.11.0) graphql-yoga: 5.16.0(graphql@16.11.0) groq-sdk: 0.5.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) + 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.1.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@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-pretty: 11.3.0 @@ -11708,22 +11899,22 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(jkrvcwfv2zltibfgwihn5nuqn4)': + '@copilotkit/runtime@1.10.6(44bb7de6433f14640bc8666b3b9131fb)': 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/proto': 0.0.40-alpha.11 + '@ag-ui/encoder': 0.0.40 + '@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@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 '@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.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + '@langchain/community': 0.3.57(e200db21c867a52fd5423d70637b3198) + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) + '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) + '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) '@scarf/scarf': 1.4.0 class-transformer: 0.5.1 class-validator: 0.14.2 @@ -11732,8 +11923,8 @@ snapshots: graphql-scalars: 1.24.2(graphql@16.11.0) graphql-yoga: 5.16.0(graphql@16.11.0) groq-sdk: 0.5.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(ws@8.18.3) - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) + langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@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-pretty: 11.3.0 @@ -11890,6 +12081,18 @@ snapshots: - ws - youtubei.js + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': + 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,34 +12105,34 @@ 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) + '@ag-ui/client': 0.0.40-alpha.11 + '@ai-sdk/anthropic': 2.0.33(zod@3.25.76) + '@ai-sdk/google': 2.0.23(zod@3.25.76) + '@ai-sdk/openai': 2.0.64(zod@3.25.76) '@modelcontextprotocol/sdk': 1.20.0 - ai: 5.0.60(zod@3.25.76) + 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) @@ -11940,7 +12143,7 @@ snapshots: lucide-react: 0.525.0(react@19.2.0) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - streamdown: 1.4.0(@types/react@19.2.2)(react@19.2.0) + streamdown: 1.3.0(@types/react@19.2.2)(react@19.2.0) tailwind-merge: 3.3.1 ts-deepmerge: 7.0.3 tw-animate-css: 1.4.0 @@ -11951,26 +12154,44 @@ 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@4.104.0(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) rxjs: 7.8.1 + transitivePeerDependencies: + - supports-color + + '@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.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: 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 @@ -12360,128 +12581,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: @@ -12511,7 +12732,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 +12745,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 +12777,7 @@ snapshots: dependencies: '@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/expect-utils@29.7.0': @@ -12574,7 +12795,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.19.21 + '@types/node': 20.19.24 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -12596,7 +12817,7 @@ 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 exit: 0.1.2 @@ -12666,7 +12887,7 @@ 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/node': 20.19.24 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -12693,31 +12914,98 @@ 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.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': dependencies: '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 '@aws-sdk/client-bedrock-runtime': 3.910.0 '@aws-sdk/client-kendra': 3.910.0 '@aws-sdk/credential-provider-node': 3.910.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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@5.12.2(ws@8.18.3)(zod@3.25.76)) transitivePeerDependencies: - aws-crt - '@langchain/community@0.3.57(37emb7xvj5c4vxjobtfi323cve)': + '@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': + dependencies: + '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 + '@aws-sdk/client-bedrock-runtime': 3.910.0 + '@aws-sdk/client-kendra': 3.910.0 + '@aws-sdk/credential-provider-node': 3.910.0 + '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + transitivePeerDependencies: + - aws-crt + + '@langchain/community@0.3.57(656fb6f0108e13d499f0a783d59c961f)': dependencies: '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) '@ibm-cloud/watsonx-ai': 1.7.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))) + '@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.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/weaviate': 0.2.3(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) binary-extensions: 2.3.0 expr-eval: 2.0.2 flat: 5.0.2 ibm-cloud-sdk-core: 5.4.3 js-yaml: 4.1.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.1.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(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@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 + '@browserbasehq/sdk': 2.6.0 + '@smithy/util-utf8': 2.3.0 + '@upstash/redis': 1.35.6 + fast-xml-parser: 5.2.5 + google-auth-library: 8.9.0 + ignore: 5.3.2 + jsonwebtoken: 9.0.2 + pg: 8.16.3 + playwright: 1.56.0 + redis: 5.8.3 + weaviate-client: 3.9.0 + ws: 8.18.3 + transitivePeerDependencies: + - '@langchain/anthropic' + - '@langchain/aws' + - '@langchain/cerebras' + - '@langchain/cohere' + - '@langchain/deepseek' + - '@langchain/google-genai' + - '@langchain/google-vertexai' + - '@langchain/google-vertexai-web' + - '@langchain/groq' + - '@langchain/mistralai' + - '@langchain/ollama' + - '@langchain/xai' + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - axios + - encoding + - handlebars + - peggy + + '@langchain/community@0.3.57(e200db21c867a52fd5423d70637b3198)': + dependencies: + '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) + '@ibm-cloud/watsonx-ai': 1.7.0 + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + binary-extensions: 2.3.0 + expr-eval: 2.0.2 + flat: 5.0.2 + ibm-cloud-sdk-core: 5.4.3 + js-yaml: 4.1.0 + langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(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@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: @@ -12760,7 +13048,27 @@ 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.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': + dependencies: + '@cfworker/json-schema': 4.1.1 + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.21 + langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + + '@langchain/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.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76))': dependencies: '@cfworker/json-schema': 4.1.1 ansi-styles: 5.2.0 @@ -12780,14 +13088,14 @@ 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/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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': dependencies: '@cfworker/json-schema': 4.1.1 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.21 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(zod@3.25.76)) + langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) mustache: 4.2.0 p-queue: 6.6.2 p-retry: 4.6.2 @@ -12800,59 +13108,87 @@ snapshots: - '@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)': + '@langchain/google-common@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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@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-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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + uuid: 10.0.0 + zod-to-json-schema: 3.24.6(zod@3.25.76) + transitivePeerDependencies: + - zod + + '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': + dependencies: + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@langchain/google-common': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) google-auth-library: 8.9.0 transitivePeerDependencies: - encoding - supports-color - zod - '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': + '@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': + dependencies: + '@langchain/core': 0.3.79(@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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) + google-auth-library: 8.9.0 + transitivePeerDependencies: + - encoding + - supports-color + - zod + + '@langchain/langgraph-sdk@0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) react: 19.2.0 - '@langchain/langgraph-sdk@0.1.10(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': dependencies: '@types/json-schema': 7.0.15 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(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/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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@types/json-schema': 7.0.15 p-queue: 6.6.2 p-retry: 4.6.2 uuid: 9.0.1 optionalDependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@langchain/openai@0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': + '@langchain/openai@0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': + dependencies: + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + js-tiktoken: 1.0.21 + openai: 4.104.0(ws@8.18.3)(zod@3.25.76) + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + transitivePeerDependencies: + - encoding + - ws + + '@langchain/openai@0.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) js-tiktoken: 1.0.21 openai: 4.104.0(ws@8.18.3)(zod@3.25.76) zod: 3.25.76 @@ -12861,23 +13197,45 @@ 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)': + '@langchain/openai@0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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@5.12.2(ws@8.18.3)(zod@3.25.76)) js-tiktoken: 1.0.21 openai: 5.12.2(ws@8.18.3)(zod@3.25.76) zod: 3.25.76 transitivePeerDependencies: - ws - '@langchain/textsplitters@0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)))': + '@langchain/openai@0.6.16(@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.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@5.12.2(ws@8.18.3)(zod@3.25.76)))': + dependencies: + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + js-tiktoken: 1.0.21 + + '@langchain/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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': + dependencies: + '@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.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + js-tiktoken: 1.0.21 + + '@langchain/weaviate@0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': + dependencies: + '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + uuid: 10.0.0 + weaviate-client: 3.9.0 + transitivePeerDependencies: + - encoding - '@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) uuid: 10.0.0 weaviate-client: 3.9.0 transitivePeerDependencies: @@ -12967,12 +13325,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 +13347,15 @@ 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 @@ -13015,17 +13372,41 @@ 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/client-js@0.16.9(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.24.0(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/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) @@ -13040,7 +13421,7 @@ snapshots: '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.37.0 '@sindresorhus/slugify': 2.2.1 - ai: 4.3.19(react@19.2.0)(zod@3.25.76) + ai: 5.0.59(zod@3.25.76) date-fns: 3.6.0 dotenv: 16.6.1 hono: 4.9.12 @@ -13066,12 +13447,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,8 +13465,8 @@ 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) @@ -13101,7 +13481,7 @@ snapshots: '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.37.0 '@sindresorhus/slugify': 2.2.1 - ai: 4.3.19(react@19.2.0)(zod@3.25.76) + ai: 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 @@ -13130,18 +13510,145 @@ 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/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.1.0(@opentelemetry/api@1.9.0)) + '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@sindresorhus/slugify': 2.2.1 + ai: 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.13.1 + pino-pretty: 13.1.2 + radash: 12.1.1 + sift: 17.1.3 + xstate: 5.23.0 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + transitivePeerDependencies: + - '@hono/arktype-validator' + - '@hono/effect-validator' + - '@hono/typebox-validator' + - '@hono/valibot-validator' + - '@hono/zod-validator' + - '@sinclair/typebox' + - '@valibot/to-json-schema' + - arktype + - effect + - encoding + - openapi-types + - supports-color + - valibot + - zod-openapi + + '@mastra/core@0.24.0(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.7(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/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.37.0 + '@sindresorhus/slugify': 2.2.1 + ai: 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.13.1 + pino-pretty: 13.1.2 + radash: 12.1.1 + sift: 17.1.3 + xstate: 5.23.0 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + transitivePeerDependencies: + - '@hono/arktype-validator' + - '@hono/effect-validator' + - '@hono/typebox-validator' + - '@hono/valibot-validator' + - '@hono/zod-validator' + - '@sinclair/typebox' + - '@valibot/to-json-schema' + - arktype + - effect + - encoding + - openapi-types + - supports-color + - valibot + - zod-openapi + + '@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/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) + '@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) @@ -13172,47 +13679,61 @@ 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.6(@mastra/core@0.20.2(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) + '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76) electrodb: 3.4.7(@aws-sdk/client-dynamodb@3.910.0) transitivePeerDependencies: - - aws-crt + - aws-crt + + '@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.12.0(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))': + '@mastra/libsql@0.15.1(@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.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.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) 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.15(@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)(zod@3.25.76) + pino: 9.13.1 + pino-pretty: 13.1.2 + + '@mastra/loggers@0.10.19(@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) + '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76) pino: 9.13.1 pino-pretty: 13.1.2 - '@mastra/loggers@0.10.5(@mastra/core@0.12.1(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))': + '@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)(react@19.2.0)(zod@3.25.76) + '@mastra/core': 0.12.1(openapi-types@12.1.3)(zod@3.25.76) pino: 9.13.1 pino-pretty: 13.1.2 - '@mastra/mcp@0.13.4(@mastra/core@0.20.2(openapi-types@12.1.3)(react@19.2.0)(zod@3.25.76))(@types/json-schema@7.0.15)(zod@3.25.76)': + '@mastra/mcp@0.13.4(@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) + '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76) '@modelcontextprotocol/sdk': 1.20.0 date-fns: 4.1.0 exit-hook: 4.0.0 @@ -13225,11 +13746,11 @@ snapshots: - '@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 @@ -13242,14 +13763,33 @@ snapshots: 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.11(@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.7(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 + json-schema: 0.4.0 + pg: 8.16.3 + pg-pool: 3.10.1(pg@8.16.3) + postgres: 3.4.7 + redis: 5.8.3 + xxhash-wasm: 1.1.0 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + transitivePeerDependencies: + - pg-native + + '@mastra/memory@0.15.6(@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) + '@mastra/schema-compat': 0.11.4(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 @@ -13263,28 +13803,45 @@ snapshots: 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/schema-compat@0.10.5(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.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: 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-v3: zod-from-json-schema@0.0.5 + zod-to-json-schema: 3.24.6(zod@3.25.76) + + '@mastra/schema-compat@0.11.6(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.5.0 + zod-from-json-schema-v3: zod-from-json-schema@0.0.5 + zod-to-json-schema: 3.24.6(zod@3.25.76) + + '@mastra/schema-compat@0.11.7(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-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/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)(react@19.2.0)(zod@3.25.76) + '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76) zod: 3.25.76 '@mdx-js/loader@3.1.1': @@ -13424,9 +13981,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': @@ -15418,19 +15975,19 @@ snapshots: '@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 +16110,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,7 +16120,7 @@ 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 @@ -15581,7 +16136,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/hast@2.3.10': dependencies: @@ -15640,7 +16195,7 @@ snapshots: '@types/memcached@2.2.10': dependencies: - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/mime@1.3.5': {} @@ -15648,11 +16203,11 @@ 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': 20.19.24 form-data: 4.0.4 '@types/node@18.19.130': @@ -15663,13 +16218,17 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@22.18.10': + '@types/node@20.19.24': + dependencies: + undici-types: 6.21.0 + + '@types/node@22.19.0': dependencies: undici-types: 6.21.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 +16236,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 @@ -15708,27 +16267,27 @@ snapshots: '@types/send@0.17.5': dependencies: '@types/mime': 1.3.5 - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/send@1.2.0': dependencies: - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/serve-static@1.15.9': dependencies: '@types/http-errors': 2.0.5 - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/send': 0.17.5 '@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': {} @@ -15746,7 +16305,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/yargs-parser@21.0.3': {} @@ -15919,7 +16478,7 @@ snapshots: transitivePeerDependencies: - graphql - '@vercel/oidc@3.0.2': {} + '@vercel/oidc@3.0.3': {} '@webcontainer/env@1.1.1': {} @@ -15994,17 +16553,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 +16569,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 @@ -16358,8 +16921,6 @@ snapshots: chalk@5.2.0: {} - chalk@5.6.2: {} - char-regex@1.0.2: {} character-entities-html4@2.1.0: {} @@ -16546,6 +17107,21 @@ snapshots: dependencies: layout-base: 2.0.1 + create-jest@29.7.0: + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.19.21) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + create-jest@29.7.0(@types/node@20.19.21): dependencies: '@jest/types': 29.6.3 @@ -16561,6 +17137,21 @@ snapshots: - supports-color - ts-node + 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.24) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + crelt@1.0.6: {} cross-fetch@3.2.0: @@ -16762,7 +17353,7 @@ snapshots: d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dagre-d3-es@7.0.13: + dagre-d3-es@7.0.11: dependencies: d3: 7.9.0 lodash-es: 4.17.21 @@ -16878,8 +17469,6 @@ snapshots: dependencies: dequal: 2.0.3 - diff-match-patch@1.0.5: {} - diff-sequences@29.6.3: {} diff@5.2.0: {} @@ -17168,7 +17757,7 @@ snapshots: 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.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)): dependencies: debug: 3.2.7 optionalDependencies: @@ -17190,7 +17779,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.37.0(jiti@2.6.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-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.1(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.37.0(jiti@2.6.1)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -17924,6 +18513,12 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 + harden-react-markdown@1.1.5(react-markdown@10.1.0(@types/react@19.2.2)(react@19.2.0))(react@19.2.0): + dependencies: + react: 19.2.0 + react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0) + rehype-harden: 1.1.5 + has-bigints@1.1.0: {} has-flag@4.0.0: {} @@ -18231,17 +18826,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 +18961,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 @@ -18516,7 +19113,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,6 +19133,25 @@ snapshots: - babel-plugin-macros - supports-color + jest-cli@29.7.0: + 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 + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.19.21) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest-cli@29.7.0(@types/node@20.19.21): dependencies: '@jest/core': 29.7.0 @@ -18555,6 +19171,25 @@ snapshots: - supports-color - ts-node + 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.24) + exit: 0.1.2 + import-local: 3.2.0 + jest-config: 29.7.0(@types/node@20.19.24) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest-config@29.7.0(@types/node@20.19.21): dependencies: '@babel/core': 7.28.4 @@ -18585,6 +19220,36 @@ snapshots: - babel-plugin-macros - supports-color + jest-config@29.7.0(@types/node@20.19.24): + dependencies: + '@babel/core': 7.28.4 + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.4) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-json-comments: 3.1.1 + optionalDependencies: + '@types/node': 20.19.24 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + jest-diff@29.7.0: dependencies: chalk: 4.1.2 @@ -18609,7 +19274,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 +19284,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 +19323,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.19.21 + '@types/node': 20.19.24 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -18693,7 +19358,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,7 +19386,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 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -18767,7 +19432,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 +19451,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,11 +19460,23 @@ 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: + dependencies: + '@jest/core': 29.7.0 + '@jest/types': 29.6.3 + import-local: 3.2.0 + jest-cli: 29.7.0 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jest@29.7.0(@types/node@20.19.21): dependencies: '@jest/core': 29.7.0 @@ -18812,6 +19489,18 @@ snapshots: - supports-color - ts-node + 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.24) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + jiti@2.6.1: {} jose@5.10.0: {} @@ -18864,12 +19553,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,22 +19621,47 @@ 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.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@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.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) js-tiktoken: 1.0.21 js-yaml: 4.1.0 jsonpointer: 5.0.1 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + openapi-types: 12.1.3 + p-retry: 4.6.2 + uuid: 10.0.0 + yaml: 2.8.1 + zod: 3.25.76 + optionalDependencies: + '@langchain/aws': 0.1.15(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + axios: 1.12.2(debug@4.4.3) + handlebars: 4.7.8 + transitivePeerDependencies: + - '@opentelemetry/api' + - '@opentelemetry/exporter-trace-otlp-proto' + - '@opentelemetry/sdk-trace-base' + - openai + - ws + + 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.1.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(ws@8.18.3): + dependencies: + '@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.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + js-tiktoken: 1.0.21 + js-yaml: 4.1.0 + jsonpointer: 5.0.1 + langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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))) + '@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) axios: 1.12.2(debug@4.4.3) handlebars: 4.7.8 transitivePeerDependencies: @@ -18986,7 +19694,7 @@ snapshots: '@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)): + langsmith@0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 @@ -19221,14 +19929,14 @@ 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) + '@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.19(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) + '@mastra/mcp': 0.13.4(@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.1.0(@opentelemetry/api@1.9.0)) '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) @@ -19491,7 +20199,7 @@ snapshots: merge2@1.4.1: {} - mermaid@11.12.1: + mermaid@11.12.0: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 3.0.2 @@ -19502,7 +20210,7 @@ snapshots: cytoscape-fcose: 2.2.0(cytoscape@3.33.1) d3: 7.9.0 d3-sankey: 0.12.3 - dagre-d3-es: 7.0.13 + dagre-d3-es: 7.0.11 dayjs: 1.11.18 dompurify: 3.3.0 katex: 0.16.25 @@ -20260,6 +20968,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 @@ -20668,7 +21380,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: @@ -21417,16 +22129,16 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - streamdown@1.4.0(@types/react@19.2.2)(react@19.2.0): + streamdown@1.3.0(@types/react@19.2.2)(react@19.2.0): dependencies: clsx: 2.1.1 + harden-react-markdown: 1.1.5(react-markdown@10.1.0(@types/react@19.2.2)(react@19.2.0))(react@19.2.0) katex: 0.16.25 lucide-react: 0.542.0(react@19.2.0) marked: 16.4.1 - mermaid: 11.12.1 + mermaid: 11.12.0 react: 19.2.0 react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0) - rehype-harden: 1.1.5 rehype-katex: 7.0.1 rehype-raw: 7.0.0 remark-gfm: 4.0.1 @@ -21583,12 +22295,6 @@ 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: {} tailwind-merge@3.3.1: {} @@ -21634,8 +22340,6 @@ snapshots: dependencies: real-require: 0.2.0 - throttleit@2.1.0: {} - tinyexec@0.3.2: {} tinyexec@1.0.1: {} @@ -21693,7 +22397,7 @@ 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): + 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(@types/node@20.19.21))(typescript@5.9.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 @@ -21711,7 +22415,26 @@ snapshots: '@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(@types/node@20.19.24))(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.24) + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.7.3 + type-fest: 4.41.0 + typescript: 5.9.3 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.28.4 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.28.4) jest-util: 29.7.0 ts-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): @@ -21719,7 +22442,7 @@ snapshots: 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 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -21740,11 +22463,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.3: 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 @@ -21835,7 +22558,7 @@ snapshots: type-graphql@2.0.0-rc.1(class-validator@0.14.2)(graphql-scalars@1.24.2(graphql@16.11.0))(graphql@16.11.0): dependencies: '@graphql-yoga/subscription': 5.0.5 - '@types/node': 20.19.21 + '@types/node': 20.19.24 '@types/semver': 7.7.1 graphql: 16.11.0 graphql-query-complexity: 0.12.0(graphql@16.11.0) From d57c996973c03059dd7b33109c15396478b02aa0 Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Thu, 6 Nov 2025 10:28:22 -0800 Subject: [PATCH 111/113] Revert last three commits --- .github/workflows/auto-approve-community.yml | 193 - .gitignore | 4 - CLAUDE.md | 1 - README.md | 4 +- apps/dojo/package.json | 91 +- apps/dojo/src/agents.ts | 111 +- .../feature/vnext_chat/page.tsx | 39 - .../[integrationId]/[[...slug]]/route.ts | 6 +- apps/dojo/src/app/api/copilotkit/route.ts | 22 - .../[integrationId]/[[...slug]]/route.ts | 57 - apps/dojo/src/config.ts | 18 +- apps/dojo/src/env.ts | 4 +- apps/dojo/src/menu.ts | 33 +- apps/dojo/src/types/integration.ts | 3 +- apps/dojo/tsconfig.json | 6 +- docs/concepts/events.mdx | 117 +- docs/concepts/messages.mdx | 44 +- docs/concepts/middleware.mdx | 307 -- docs/concepts/serialization.mdx | 188 - docs/docs.json | 8 +- docs/drafts/activity-events.mdx | 262 + docs/drafts/multimodal-messages.mdx | 2 +- docs/drafts/overview.mdx | 21 +- docs/drafts/serialization.mdx | 316 ++ docs/sdk/js/client/abstract-agent.mdx | 70 - docs/sdk/js/client/compaction.mdx | 76 - docs/sdk/js/client/middleware.mdx | 408 -- docs/sdk/js/client/overview.mdx | 24 - docs/sdk/js/client/subscriber.mdx | 26 - docs/sdk/js/core/events.mdx | 100 +- docs/sdk/js/core/types.mdx | 71 +- docs/sdk/python/core/events.mdx | 103 +- docs/sdk/python/core/types.mdx | 88 +- integrations/a2a/typescript/.gitignore | 2 - integrations/a2a/typescript/.npmrc | 1 - integrations/a2a/typescript/README.md | 86 - integrations/a2a/typescript/jest.config.js | 10 - integrations/a2a/typescript/package.json | 52 - .../typescript/src/__tests__/agent.test.ts | 143 - .../typescript/src/__tests__/utils.test.ts | 191 - integrations/a2a/typescript/src/agent.ts | 360 -- integrations/a2a/typescript/src/index.ts | 3 - integrations/a2a/typescript/src/types.ts | 60 - integrations/a2a/typescript/src/utils.ts | 488 -- integrations/a2a/typescript/tsconfig.json | 24 - integrations/a2a/typescript/tsup.config.ts | 13 - .../python/src/ag_ui_adk/event_translator.py | 30 +- .../python/src/ag_ui_adk/utils/converters.py | 42 +- .../test_event_translator_comprehensive.py | 57 +- integrations/agno/typescript/package.json | 2 +- integrations/agno/typescript/src/index.ts | 6 +- .../spring-ai/typescript/package.json | 2 +- .../spring-ai/typescript/src/index.ts | 6 +- integrations/crew-ai/typescript/package.json | 2 +- integrations/crew-ai/typescript/src/index.ts | 6 +- .../langgraph/python/ag_ui_langgraph/agent.py | 49 +- .../langgraph/python/ag_ui_langgraph/utils.py | 115 +- .../agents/multimodal_messages/__init__.py | 51 - .../agents/multimodal_messages/agent.py | 90 - .../langgraph/python/examples/poetry.lock | 141 +- .../langgraph/python/examples/pyproject.toml | 1 - .../langgraph/python/examples/uv.lock | 591 +- integrations/langgraph/python/poetry.lock | 20 +- integrations/langgraph/python/pyproject.toml | 4 +- .../langgraph/python/tests/test_multimodal.py | 227 - .../src/agents/multimodal_messages/agent.ts | 120 - .../langgraph/typescript/package.json | 6 +- .../langgraph/typescript/src/utils.test.ts | 224 - .../langgraph/typescript/src/utils.ts | 155 +- .../llama-index/typescript/package.json | 2 +- .../llama-index/typescript/src/index.ts | 4 - .../mastra/typescript/examples/.gitignore | 1 - integrations/mastra/typescript/src/mastra.ts | 290 +- integrations/mastra/typescript/src/utils.ts | 117 +- .../pydantic-ai/typescript/package.json | 2 +- .../pydantic-ai/typescript/src/index.ts | 6 +- .../vercel-ai-sdk/typescript/src/index.ts | 335 +- middlewares/a2a-middleware/src/index.ts | 73 +- package.json | 12 +- pnpm-lock.yaml | 4829 ++++++++--------- sdks/python/README.md | 17 - sdks/python/ag_ui/core/__init__.py | 16 +- sdks/python/ag_ui/core/events.py | 27 +- sdks/python/ag_ui/core/types.py | 67 +- sdks/python/pyproject.toml | 2 +- sdks/python/tests/test_events.py | 74 +- sdks/python/tests/test_types.py | 86 +- sdks/typescript/README.md | 18 - sdks/typescript/packages/client/README.md | 27 - .../typescript/packages/client/jest.config.js | 6 - sdks/typescript/packages/client/package.json | 1 - .../src/agent/__tests__/agent-clone.test.ts | 81 - .../__tests__/agent-multiple-runs.test.ts | 67 +- .../agent/__tests__/agent-mutations.test.ts | 20 +- .../src/agent/__tests__/agent-result.test.ts | 77 +- .../src/agent/__tests__/agent-version.test.ts | 19 - .../src/agent/__tests__/subscriber.test.ts | 20 +- .../packages/client/src/agent/agent.ts | 203 +- .../packages/client/src/agent/http.ts | 15 - .../packages/client/src/agent/index.ts | 2 +- .../packages/client/src/agent/subscriber.ts | 18 - .../apply/__tests__/default.activity.test.ts | 381 -- .../__tests__/default.concurrent.test.ts | 30 +- .../src/apply/__tests__/default.state.test.ts | 23 +- .../__tests__/default.text-message.test.ts | 13 +- .../__tests__/default.tool-calls.test.ts | 28 +- .../apply/__tests__/run-started-input.test.ts | 416 -- .../packages/client/src/apply/default.ts | 171 +- .../packages/client/src/chunks/transform.ts | 5 +- .../src/compact/__tests__/compact.test.ts | 294 - .../packages/client/src/compact/compact.ts | 252 - .../packages/client/src/compact/index.ts | 1 - sdks/typescript/packages/client/src/index.ts | 1 - .../packages/client/src/legacy/convert.ts | 26 +- .../backward-compatibility-0-0-39.test.ts | 66 - .../__tests__/filter-tool-calls.test.ts | 184 - .../__tests__/function-middleware.test.ts | 86 - .../__tests__/middleware-live-events.test.ts | 98 - .../__tests__/middleware-usage-example.ts | 130 - .../__tests__/middleware-with-state.test.ts | 83 - .../middleware/__tests__/middleware.test.ts | 80 - .../backward-compatibility-0-0-39.ts | 54 - .../src/middleware/filter-tool-calls.ts | 104 - .../packages/client/src/middleware/index.ts | 4 - .../client/src/middleware/middleware.ts | 87 - sdks/typescript/packages/client/src/utils.ts | 14 +- sdks/typescript/packages/core/package.json | 2 +- .../src/__tests__/activity-events.test.ts | 54 - .../__tests__/backwards-compatibility.test.ts | 252 - .../src/__tests__/multimodal-messages.test.ts | 52 - sdks/typescript/packages/core/src/events.ts | 25 +- sdks/typescript/packages/core/src/types.ts | 64 +- sdks/typescript/packages/encoder/package.json | 2 +- sdks/typescript/packages/proto/package.json | 2 +- 134 files changed, 4094 insertions(+), 11727 deletions(-) delete mode 100644 .github/workflows/auto-approve-community.yml delete mode 100644 apps/dojo/src/app/[integrationId]/feature/vnext_chat/page.tsx delete mode 100644 apps/dojo/src/app/api/copilotkit/route.ts delete mode 100644 apps/dojo/src/app/api/copilotkitnext/[integrationId]/[[...slug]]/route.ts delete mode 100644 docs/concepts/middleware.mdx delete mode 100644 docs/concepts/serialization.mdx create mode 100644 docs/drafts/activity-events.mdx create mode 100644 docs/drafts/serialization.mdx delete mode 100644 docs/sdk/js/client/compaction.mdx delete mode 100644 docs/sdk/js/client/middleware.mdx delete mode 100644 integrations/a2a/typescript/.gitignore delete mode 100644 integrations/a2a/typescript/.npmrc delete mode 100644 integrations/a2a/typescript/README.md delete mode 100644 integrations/a2a/typescript/jest.config.js delete mode 100644 integrations/a2a/typescript/package.json delete mode 100644 integrations/a2a/typescript/src/__tests__/agent.test.ts delete mode 100644 integrations/a2a/typescript/src/__tests__/utils.test.ts delete mode 100644 integrations/a2a/typescript/src/agent.ts delete mode 100644 integrations/a2a/typescript/src/index.ts delete mode 100644 integrations/a2a/typescript/src/types.ts delete mode 100644 integrations/a2a/typescript/src/utils.ts delete mode 100644 integrations/a2a/typescript/tsconfig.json delete mode 100644 integrations/a2a/typescript/tsup.config.ts delete mode 100644 integrations/langgraph/python/examples/agents/multimodal_messages/__init__.py delete mode 100644 integrations/langgraph/python/examples/agents/multimodal_messages/agent.py delete mode 100644 integrations/langgraph/python/tests/test_multimodal.py delete mode 100644 integrations/langgraph/typescript/examples/src/agents/multimodal_messages/agent.ts delete mode 100644 integrations/langgraph/typescript/src/utils.test.ts delete mode 100644 sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts delete mode 100644 sdks/typescript/packages/client/src/agent/__tests__/agent-version.test.ts delete mode 100644 sdks/typescript/packages/client/src/apply/__tests__/default.activity.test.ts delete mode 100644 sdks/typescript/packages/client/src/apply/__tests__/run-started-input.test.ts delete mode 100644 sdks/typescript/packages/client/src/compact/__tests__/compact.test.ts delete mode 100644 sdks/typescript/packages/client/src/compact/compact.ts delete mode 100644 sdks/typescript/packages/client/src/compact/index.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/backward-compatibility-0-0-39.test.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/filter-tool-calls.test.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/function-middleware.test.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/middleware-live-events.test.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/middleware-usage-example.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/middleware-with-state.test.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/__tests__/middleware.test.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/backward-compatibility-0-0-39.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/filter-tool-calls.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/index.ts delete mode 100644 sdks/typescript/packages/client/src/middleware/middleware.ts delete mode 100644 sdks/typescript/packages/core/src/__tests__/activity-events.test.ts delete mode 100644 sdks/typescript/packages/core/src/__tests__/backwards-compatibility.test.ts delete mode 100644 sdks/typescript/packages/core/src/__tests__/multimodal-messages.test.ts 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 → -Your application-AG-UI protocol - - +Your application-AG-UI protocol ## 🚀 Getting Started Create a new AG-UI application in seconds: diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 11be75479..74cfcc7c8 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,37 +25,36 @@ "@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": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkitnext/core": "0.0.21", - "@copilotkitnext/react": "0.0.21", - "@copilotkitnext/runtime": "0.0.21", - "@copilotkitnext/agent": "0.0.21", - "@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-v1-5-single-endpoint-20251106120810", + "@copilotkit/react-ui": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkit/runtime": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkit/runtime-client-gql": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkit/shared": "0.0.0-v1-5-single-endpoint-20251106120810", + "@copilotkitnext/runtime": "0.0.21-alpha.0", + "@copilotkitnext/react": "0.0.21-alpha.0", + "@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", @@ -70,17 +67,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:*", @@ -89,21 +86,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 a1621c0b8..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[] = [ @@ -118,24 +116,24 @@ export const agentsIntegrations: AgentIntegrationConfig[] = [ }; }, }, - // { - // id: "mastra", - // agents: async () => { - // const mastraClient = new MastraClient({ - // baseUrl: envVars.mastraUrl, - // }); + { + id: "mastra", + agents: async () => { + const mastraClient = new MastraClient({ + baseUrl: envVars.mastraUrl, + }); - // return MastraAgent.getRemoteAgents({ - // mastraClient, - // }); - // }, - // }, - // { - // id: "mastra-agent-local", - // agents: async () => { - // return MastraAgent.getLocalAgents({ mastra }); - // }, - // }, + return MastraAgent.getRemoteAgents({ + mastraClient, + }); + }, + }, + { + id: "mastra-agent-local", + agents: async () => { + return MastraAgent.getLocalAgents({ mastra }); + }, + }, { id: "vercel-ai-sdk", agents: async () => { @@ -344,51 +342,38 @@ 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 () => { - // // A2A agents: building management, finance, it agents - // const agentUrls = [ - // envVars.a2aMiddlewareBuildingsManagementUrl, - // envVars.a2aMiddlewareFinanceUrl, - // envVars.a2aMiddlewareItUrl, - // ]; - // // AGUI orchestration/routing agent - // const orchestrationAgent = new HttpAgent({ - // url: envVars.a2aMiddlewareOrchestratorUrl, - // }); - // return { - // a2a_chat: new A2AMiddlewareAgent({ - // description: "Middleware that connects to remote A2A agents", - // agentUrls, - // orchestrationAgent, - // instructions: ` - // You are an HR agent. You are responsible for hiring employees and other typical HR tasks. + { + id: "a2a", + agents: async () => { + // A2A agents: building management, finance, it agents + const agentUrls = [ + envVars.a2aMiddlewareBuildingsManagementUrl, + envVars.a2aMiddlewareFinanceUrl, + envVars.a2aMiddlewareItUrl, + ]; + // AGUI orchestration/routing agent + const orchestrationAgent = new HttpAgent({ + url: envVars.a2aMiddlewareOrchestratorUrl, + }); + return { + a2a_chat: new A2AMiddlewareAgent({ + description: "Middleware that connects to remote A2A agents", + agentUrls, + orchestrationAgent, + instructions: ` + You are an HR agent. You are responsible for hiring employees and other typical HR tasks. - // It's very important to contact all the departments necessary to complete the task. - // For example, to hire an employee, you must contact all 3 departments: Finance, IT and Buildings Management. Help the Buildings Management department to find a table. + It's very important to contact all the departments necessary to complete the task. + For example, to hire an employee, you must contact all 3 departments: Finance, IT and Buildings Management. Help the Buildings Management department to find a table. - // You can make tool calls on behalf of other agents. - // DO NOT FORGET TO COMMUNICATE BACK TO THE RELEVANT AGENT IF MAKING A TOOL CALL ON BEHALF OF ANOTHER AGENT!!! + You can make tool calls on behalf of other agents. + DO NOT FORGET TO COMMUNICATE BACK TO THE RELEVANT AGENT IF MAKING A TOOL CALL ON BEHALF OF ANOTHER AGENT!!! - // When choosing a seat with the buildings management agent, You MUST use the \`pickTable\` tool to have the user pick a seat. - // The buildings management agent will then use the \`pickSeat\` tool to pick a seat. - // `, - // }), - // }; - // }, - // }, + When choosing a seat with the buildings management agent, You MUST use the \`pickTable\` tool to have the user pick a seat. + The buildings management agent will then use the \`pickSeat\` tool to pick a seat. + `, + }), + }; + }, + }, ]; 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]/[[...slug]]/route.ts b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts index e3e88fe85..007913f91 100644 --- a/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts +++ b/apps/dojo/src/app/api/copilotkit/[integrationId]/[[...slug]]/route.ts @@ -4,10 +4,10 @@ import { 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(); @@ -15,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 @@ -29,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/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/agno/typescript/package.json b/integrations/agno/typescript/package.json index ff345adec..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", 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 d0210ab80..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", 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 44b228076..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", 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 5751af75f..a67deae3b 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 26d515725..e64a0051e 100644 --- a/integrations/langgraph/python/pyproject.toml +++ b/integrations/langgraph/python/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "ag-ui-langgraph" -version = "0.0.18a0" +version = "0.0.17" description = "Implementation of the AG-UI protocol for LangGraph." authors = ["Ran Shem Tov "] readme = "README.md" @@ -10,7 +10,7 @@ exclude = [ [tool.poetry.dependencies] python = "<3.14,>=3.10" -ag-ui-protocol = "==0.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 c4ce0cbdb..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", @@ -29,8 +29,8 @@ "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/client": "workspace:*", 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 f88ac3d16..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", 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/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 1e7019c14..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", 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/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/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/package.json b/package.json index 645bcc826..61ec3fdd0 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ "check-types": "turbo run check-types", "test": "turbo run test", "create-integration": "pnpm dlx tsx create-integration.ts", - "bump": "pnpm --filter './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.6.2", @@ -35,9 +35,7 @@ "@browserbasehq/stagehand>openai": "^4.62.1", "@mastra/core>ai": "5.0.59", "@openrouter/ai-sdk-provider>ai": "5.0.59", - "ai": "5.0.59", - "streamdown": "1.3.0", - "mermaid": "11.12.0" + "ai": "5.0.59" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1bc081ade..0aa7bc556 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,8 +10,6 @@ overrides: '@mastra/core>ai': 5.0.59 '@openrouter/ai-sdk-provider>ai': 5.0.59 ai: 5.0.59 - streamdown: 1.3.0 - mermaid: 11.12.0 importers: @@ -75,12 +73,6 @@ importers: 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 @@ -133,98 +125,95 @@ 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: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(@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) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(@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) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(43a54c62826e391639c20a8a0387b983) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(11e8d990ef61bbafaa75597e5e9ed522) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323 - '@copilotkitnext/agent': - specifier: 0.0.21 - version: 0.0.21 - '@copilotkitnext/core': - specifier: 0.0.21 - version: 0.0.21 + specifier: 0.0.0-v1-5-single-endpoint-20251106120810 + version: 0.0.0-v1-5-single-endpoint-20251106120810 '@copilotkitnext/react': - 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) + specifier: 0.0.21-alpha.0 + version: 0.0.21-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/runtime': - specifier: 0.0.21 - version: 0.0.21(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) + specifier: 0.0.21-alpha.0 + version: 0.0.21-alpha.0(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)(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)(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)(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)(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)(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)(zod@3.25.76))(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 @@ -262,29 +251,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 @@ -292,92 +281,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))(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: @@ -423,7 +378,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -454,7 +409,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -485,7 +440,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -497,10 +452,10 @@ importers: dependencies: '@langchain/core': 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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + 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.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + 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 @@ -525,7 +480,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -556,7 +511,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -571,10 +526,10 @@ importers: version: 1.2.11(zod@3.25.76) '@copilotkit/runtime': specifier: ^1.10.5 - version: 1.10.6(44bb7de6433f14640bc8666b3b9131fb) + version: 1.10.6(fd98da3164a8f33e40360d9abc7c5d40) '@mastra/client-js': specifier: ^0.16.8 - version: 0.16.9(openapi-types@12.1.3)(zod@3.25.76) + version: 0.16.8(openapi-types@12.1.3)(zod@3.25.76) rxjs: specifier: 7.8.1 version: 7.8.1 @@ -602,7 +557,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -614,7 +569,7 @@ importers: dependencies: '@ai-sdk/openai': specifier: ^2.0.57 - version: 2.0.64(zod@3.25.76) + version: 2.0.57(zod@3.25.76) '@mastra/client-js': specifier: ^0.15.2 version: 0.15.2(openapi-types@12.1.3)(zod@3.25.76) @@ -626,10 +581,10 @@ importers: version: 0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/loggers': specifier: ^0.10.18 - version: 0.10.19(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) + version: 0.10.18(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) '@mastra/memory': specifier: ^0.15.10 - version: 0.15.11(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(zod@3.25.76) + 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) @@ -639,7 +594,7 @@ importers: devDependencies: '@types/node': specifier: ^22.18.13 - version: 22.19.0 + version: 22.18.13 mastra: specifier: ^0.15.1 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) @@ -670,7 +625,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -698,7 +653,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -726,7 +681,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -763,7 +718,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -800,7 +755,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -828,7 +783,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -862,7 +817,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -884,9 +839,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 @@ -914,7 +866,7 @@ importers: version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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(@types/node@20.19.24))(typescript@5.9.3) + 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.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) @@ -936,10 +888,10 @@ importers: version: 29.5.14 jest: specifier: ^29.7.0 - version: 29.7.0 + version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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) + 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.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) @@ -961,10 +913,10 @@ importers: version: 29.5.14 jest: specifier: ^29.7.0 - version: 29.7.0 + version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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) + 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.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) @@ -992,13 +944,13 @@ importers: version: 29.5.14 jest: specifier: ^29.7.0 - version: 29.7.0 + version: 29.7.0(@types/node@20.19.24) ts-jest: specifier: ^29.4.5 - 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) + 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.8.2 - version: 2.8.3 + version: 2.8.2 tsup: 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) @@ -1032,33 +984,24 @@ packages: '@ag-ui/core@0.0.37': resolution: {integrity: sha512-7bmjPn1Ol0Zo00F+MrPr0eOwH4AFZbhmq/ZMhCsrMILtVYBiBLcLU9QFBpBL3Zm9MCHha8b79N7JE2FzwcMaVA==} - '@ag-ui/core@0.0.40': - resolution: {integrity: sha512-3HFpBzDp9SX4qmSdwYNug95l2XtWTaLIlBZ4Xk7wPES4y59BNSCPLtXQDvdnBi7ns+GqYyR8fRbv52vgN4SGhA==} - '@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': - resolution: {integrity: sha512-etYEQ5zft2GNdxU6Wq/z5JtHwCXIXeY3XBGzAeu9WjFwYU8qVO52qaMc55FlDZ55jHASVfUs2UYXQS2ApTtrYg==} - '@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': - resolution: {integrity: sha512-rZpdttz9adJBDughHtW/89sc5jzk0cMo5np2TlMFKSopHvVoPaUv/Za73cfzBrAbUtNwnletZrcLCMtUWJ3Ipg==} - '@ag-ui/proto@0.0.40-alpha.11': resolution: {integrity: sha512-AlPaBBDdVAl8ZAu6fW/knFI4XDmSQJHDy6ADi+va8Hx4oPcG7cI9WhBaEVqETDLqhglRrFfGMt7KeQL+1NMo8Q==} @@ -1074,6 +1017,12 @@ packages: 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'} @@ -1104,6 +1053,12 @@ packages: 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'} @@ -1128,20 +1083,14 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/openai@2.0.52': - resolution: {integrity: sha512-n1arAo4+63e6/FFE6z/1ZsZbiOl4cfsoZ3F4i2X7LPIEea786Y2yd7Qdr7AdB4HTLVo3OSb1PHVIcQmvYIhmEA==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/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.64': - resolution: {integrity: sha512-+1mqxn42uB32DPZ6kurSyGAmL3MgCaDpkYU7zNDWI4NLy3Zg97RxTsI1jBCGIqkEVvRZKJlIMYtb89OvMnq3AQ==} + '@ai-sdk/openai@2.0.57': + resolution: {integrity: sha512-ad2e4Ah9KdLnchMcWFv2FfU1JCwm50b3+UZq2VhkO8qLYEh2kh/aVQomZyAsIbx5ft5nOv2KmDwZrefXkeKttQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -1164,8 +1113,8 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@3.0.16': - resolution: {integrity: sha512-lsWQY9aDXHitw7C1QRYIbVGmgwyT98TF3MfM8alNIXKpdJdi+W782Rzd9f1RyOfgRmZ08gJ2EYNDhWNK7RqpEA==} + '@ai-sdk/provider-utils@3.0.14': + resolution: {integrity: sha512-CYRU6L7IlR7KslSBVxvlqlybQvXJln/PI57O8swhOaDIURZbjRP2AY3igKgUsrmWqqnFFUHP+AwTN8xqJAknnA==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -1240,139 +1189,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' @@ -1380,28 +1329,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': @@ -1412,8 +1361,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 @@ -1422,8 +1371,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': @@ -1458,8 +1407,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': @@ -1470,8 +1419,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 @@ -1572,14 +1521,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 @@ -1592,12 +1541,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': @@ -1645,28 +1594,28 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-vAO9ufGEYKsZPGqi9o5qcJ2Yf7LmPnZdHIh/k19FbjvEigYDpG6v1Bi5Ef4WxqsHQES4p569IV7/799cs+kUHw==} + '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-vXEzqawPOxlOKNQtIdrzy3HeRd2pKyUrwbcRpCEluOU4vSZxlgjQ5k2Ira0idYI97lXPjPhW3KV/3Prfo/v8/A==} peerDependencies: - '@copilotkitnext/core': 0.0.21 - '@copilotkitnext/react': 0.0.21 + '@copilotkitnext/core': 0.0.21-alpha.0 + '@copilotkitnext/react': 0.0.21-alpha.0 react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-udhP9iu3A8VXx9ts8mSeOK7A9NWnNwG9PaLbyr7NPoEBMZ9uo8NO90r99ISYdb4hBYx2zF6mzZMdMoozeDsFBw==} + '@copilotkit/react-ui@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-VDPT4x+q+t5jCAeVhaLCH6IevpsWgTPI/ZHDNX2H+bMc4xInU4KHpkP0yxe+pdTozGoo+9vzsv1L/A5cvcwGog==} peerDependencies: '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-wUuN0IKI/ANp8D1A3VjUaQ1saIqW6ae6PVdIK4M75q0mdtaAqB6XA6+ZpPdJF5+BtAvUnEVqva9cxvQZnfm8MQ==} + '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-+ix2lDWqq8auo3t/2pZ5xfTr4fJVwBwDwyYsB6JWCTFkra3fLi0NEXXajEiWdNuTowiEDfXeRkhA+3yUj7JfsQ==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-NnMncK27lML4/LKqAWVf18AduuT+SgIGmJWLpZMZ/xjo34oySuukS55YpIlmo+6UXGqQAnO0Qr4+ko95NnOltQ==} + '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-jNTidnLjt0kJn9yOAksVyyT8c280/rQGwUcefZX8H/Uz8bzhqrg9A8794uasIVejVYcviDrm4to7wVVlpIW25w==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1683,46 +1632,46 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-5978NLJeoTLTWqB0sA0yNDmyy6nFvdXGkxCVH3QHR2IWsG9BGUe6xzU7H34pVlYLGMwYzJlS9rf6NlU5P3iEyg==} + '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106120810': + resolution: {integrity: sha512-ACp6FsN7XLx7+UBMejYrMuo9tI94w+Lsuqzi+DRKmBiABCAqct/oHuPlNSrPZnMxVTw3+J1yry448H7p/HA+nQ==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} - '@copilotkitnext/agent@0.0.21': - resolution: {integrity: sha512-xE/CUFJSS86YPf7DHNYQxQJv6v/+FitWjrnkUfqRB/Re19e55fMoUN08K4kHOZ+nbrZpBVVWsmQemRJOzRY04A==} + '@copilotkitnext/agent@0.0.21-alpha.0': + resolution: {integrity: sha512-xWsL3MW42eX02tXD7JcC72uDTXKq2nbslpuljnBR6fbSR+T76A6Cstn+i5t3DZEaYiW5s3R2Orux8ICtD1YAiQ==} engines: {node: '>=18'} - '@copilotkitnext/core@0.0.21': - resolution: {integrity: sha512-NsC67b5bRQMo74eGEcpKypz9F/pTDhmvYAujSDQTfxAZee9MNN46UE9Pb0UA/nuqB2tzx5Bj2NGz+7//d8Yemg==} + '@copilotkitnext/core@0.0.21-alpha.0': + resolution: {integrity: sha512-U8xkrzJavIodgEasPgTdG2cLGpphrZ+2o/yMzVEBrXk1vOmwI8Uz7IJEk9SwEY8cu9JN71twM0IW4r4TXQx6Xg==} engines: {node: '>=18'} - '@copilotkitnext/react@0.0.21': - resolution: {integrity: sha512-4KWpyooyzB+P/QcSCfb3pBgB1xWwPYbYWRjgJoUIDzFRepkeNf3d2c6RJu29q/8wnkUT+VVWCdMqgJF6d26C7A==} + '@copilotkitnext/react@0.0.21-alpha.0': + resolution: {integrity: sha512-p7UwiU7MuK/ouxowEMxe6JdfZU56cTffnuPRqAdcqfctRN2wzzQY1ZIDhv3yIf6LOaqEv297AWQ4JZJ6Qe0/lA==} engines: {node: '>=18'} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@copilotkitnext/runtime@0.0.21': - resolution: {integrity: sha512-JYTX/vXrGcg9oZc+hH1wFDeZQ0bhnRhLt+9uP8ET+iWftGU7OSo8wFzeWKQgGvwneZVEBxP2D0CLF3zySsjHwQ==} + '@copilotkitnext/runtime@0.0.21-alpha.0': + resolution: {integrity: sha512-Tjffkl6ZqMSeLtvdPkPr/spPwR6gjpuJoqkA6T1ssiHTD+apnMe3913r32OFgE6DKasUc0sgkss9g1G7Id/hTw==} engines: {node: '>=18'} peerDependencies: openai: ^5.9.0 - '@copilotkitnext/shared@0.0.21': - resolution: {integrity: sha512-cqdHt7td+UASHMyU7tOwQ6njrFSL5I7EtF7G7O7A6I/8lRYhv6Qhb8maAVAZclzDlV9zT2OANRJkfafDx+pxhA==} + '@copilotkitnext/shared@0.0.21-alpha.0': + resolution: {integrity: sha512-3YGrFI7zzjy3OtYqGHMUYAyT95dWkBLzgOwUgpdo28UZp6f2PrifplJFxLSBThx7V306p87qBG545FZxB9nouA==} engines: {node: '>=18'} - '@copilotkitnext/web-inspector@0.0.21': - resolution: {integrity: sha512-SOhWTDneRbzyZ/YLVd8w3it85DwPHBlT3iGkAt6/X5VDz4y6SaSiZDWefUnaE9SFRGcfYoaIVnDbnvpNaF0HJg==} + '@copilotkitnext/web-inspector@0.0.21-alpha.0': + resolution: {integrity: sha512-KY7nWdhEH99ileRtgiVPjC/O6ijHHZwIUUfA33F4V/v/Nx/8ndbdPIw1m7Wg/uVmg54oeFMwr2ZYxRXCXmCGgQ==} 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==} @@ -1739,158 +1688,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] @@ -1901,36 +1850,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': @@ -2296,10 +2249,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'} @@ -2786,10 +2735,6 @@ packages: youtubei.js: optional: true - '@langchain/core@0.3.78': - resolution: {integrity: sha512-Nn0x9erQlK3zgtRU1Z8NUjLuyW0gzdclMsvLQ6wwLeDqV91pE+YKl6uQb+L2NUDs4F0N7c2Zncgz46HxrvPzuA==} - engines: {node: '>=18'} - '@langchain/core@0.3.79': resolution: {integrity: sha512-ZLAs5YMM5N2UXN3kExMglltJrKKoW7hs3KMZFlXUnD7a5DFKBYxPFMeXA4rT+uvTxuJRZPCYX0JKI5BhyAWx4A==} engines: {node: '>=18'} @@ -2837,12 +2782,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'} @@ -2948,8 +2887,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - '@mastra/client-js@0.16.9': - resolution: {integrity: sha512-m9QbArYcZP7giUA4fI8L4eGA8TYusAgVCHTnKIomUOtVm3h9EBIa0+75jzUkydwdv6CB/gQ8VSP2FOlhrRtuSg==} + '@mastra/client-js@0.16.8': + resolution: {integrity: sha512-8YUiw+i0D52znwUI8CDeY7MkQum+nT5FxPcCorq8VP7u4xcF09do1aa5OFQZVEkok7SIhJzCJTiAI2B4NEczDQ==} peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -2971,57 +2910,46 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - '@mastra/core@0.24.0': - resolution: {integrity: sha512-lurtcdObDJE1Hb6p6Byu67i2mnNFVSE1ylVnbtcAqSXmfW7rRNx61B+inJmVSMZOu2gVtfoH3Q0tMrjBsJwm6g==} - 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==} - peerDependencies: - '@mastra/core': '>=0.19.0-alpha.1 <0.21.0-0' - '@mastra/libsql@0.15.2': resolution: {integrity: sha512-WBOIXal7nj7qDxryIMBx4DnWGyiw3+iDoT/2cuoKIVFSGVrf5tE3but5u2Dv8gawjM3DGizVCmJhv5cpSheOHg==} peerDependencies: '@mastra/core': '>=0.19.0-alpha.1 <0.22.0-0' - '@mastra/loggers@0.10.15': - resolution: {integrity: sha512-/s4RPYTuTyJ8/oRU1ThHQaOal7/Bml5ARJhQBXIX3qcG3MIprRyPmtK1XrdLuuBuh7XpaWUFZFqW0pJaE1FLtw==} + '@mastra/libsql@0.16.1': + resolution: {integrity: sha512-jkYCsv00qzhjq4nyscChovW8cfeb8r8VkgzW+iPU9SBLu7pDX2HGgC/WSvSOeH1Ll0twqL2iql6gKXGAnDmRfw==} peerDependencies: - '@mastra/core': '>=0.18.1-0 <0.21.0-0' + '@mastra/core': '>=0.21.2-0 <0.24.0-0' - '@mastra/loggers@0.10.19': - resolution: {integrity: sha512-H4qTgqKt3YJxz6B1I0lOPqRpOpR8gEzYYNZ6iO/TGQ11r+wvug/i80MAKr0B1IBZvr9l18vr7wjYCdTxPqaAGg==} + '@mastra/loggers@0.10.18': + resolution: {integrity: sha512-Ti711VpYqAwUbxEkYnJ11KeERROI7c6Nf9nNh/t85rCbLspLB/wpwX/FYH9/JUqC0fe5U2kKfergoTs9SKq9Qw==} peerDependencies: - '@mastra/core': '>=0.18.1-0 <0.25.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': @@ -3029,16 +2957,10 @@ packages: peerDependencies: '@mastra/core': '>=0.12.0-0 <0.13.0-0' - '@mastra/memory@0.15.11': - resolution: {integrity: sha512-HxcvJ+JBCEN9f8JQ+mPgxBm2K9Ln52aGsX0OeqG1sgt1vac60PqQi1MbywbiIsLxlMkVFysE2C/7bFh+d6vtjQ==} - peerDependencies: - '@mastra/core': '>=0.20.1-0 <0.25.0-0' - zod: ^3.25.0 || ^4.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': @@ -3059,12 +2981,6 @@ packages: ai: 5.0.59 zod: ^3.25.0 || ^4.0.0 - '@mastra/schema-compat@0.11.7': - resolution: {integrity: sha512-F/Q2myO7ar5+p2zRb1anGvLrUCKmdrJraXq9TWsWRp7frrcGUwlewf6Qo9+lp6NSumH0XlC/yvcjzzDwVzaMEw==} - peerDependencies: - ai: 5.0.59 - zod: ^3.25.0 || ^4.0.0 - '@mastra/server@0.20.2': resolution: {integrity: sha512-Cnuwh+6Evjf5K0R9Jt6euBR89wmTXNwbvuPpVD+LN3nBxwxJj0AcG5Yfy0rXJIur8UFW9aP8d6DwOvClLCKv/w==} peerDependencies: @@ -3091,8 +3007,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': @@ -3120,8 +3036,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' @@ -3223,8 +3139,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' @@ -3235,8 +3151,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' @@ -3587,14 +3503,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 @@ -3605,8 +3521,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 @@ -3623,8 +3539,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' @@ -3641,8 +3557,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' @@ -3659,8 +3575,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' @@ -3671,8 +3587,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' @@ -3704,6 +3620,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'} @@ -3950,6 +3869,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: @@ -4092,33 +4020,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==} @@ -4135,8 +4063,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 @@ -4194,8 +4122,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] @@ -4204,8 +4132,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] @@ -4214,8 +4142,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] @@ -4224,8 +4152,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] @@ -4234,8 +4162,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] @@ -4244,8 +4172,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] @@ -4254,8 +4182,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] @@ -4264,8 +4192,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] @@ -4274,8 +4202,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] @@ -4284,8 +4212,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] @@ -4294,8 +4222,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] @@ -4304,8 +4232,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] @@ -4314,8 +4242,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] @@ -4324,8 +4252,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] @@ -4334,8 +4262,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] @@ -4344,8 +4272,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] @@ -4354,8 +4282,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] @@ -4364,8 +4292,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] @@ -4374,8 +4302,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] @@ -4384,13 +4312,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] @@ -4399,16 +4327,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==} @@ -4472,52 +4400,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': @@ -4528,72 +4456,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': @@ -4620,32 +4548,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': @@ -4660,8 +4588,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': @@ -4680,65 +4608,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: @@ -4749,24 +4677,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==} @@ -4782,148 +4710,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==} @@ -5066,8 +4994,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==} @@ -5144,14 +5072,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.19.0': - resolution: {integrity: sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==} + '@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==} @@ -5191,14 +5119,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==} @@ -5227,8 +5155,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==} @@ -5236,66 +5164,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': @@ -5609,8 +5537,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==} @@ -5650,8 +5581,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: @@ -5685,8 +5616,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 @@ -5755,8 +5686,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==} @@ -5813,10 +5744,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'} @@ -5878,8 +5805,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==} @@ -5935,9 +5862,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==} @@ -5956,8 +5880,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==} @@ -6179,8 +6103,8 @@ packages: resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} engines: {node: '>=12'} - dagre-d3-es@7.0.11: - resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} + dagre-d3-es@7.0.13: + resolution: {integrity: sha512-efEhnxpSuwpYOKRm/L5KbqoZmNNukHa/Flty4Wp62JRvgH2ojwVgPgdYyr4twpieZnyRDdIH7PY2mopX26+j2Q==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -6210,8 +6134,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==} @@ -6383,11 +6307,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==} @@ -6483,8 +6407,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 @@ -6593,8 +6517,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: @@ -6964,8 +6888,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==} @@ -7033,8 +6957,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 @@ -7064,12 +6988,6 @@ packages: engines: {node: '>=0.4.7'} hasBin: true - harden-react-markdown@1.1.5: - resolution: {integrity: sha512-u0OFAPakA/FE9ZCOgUakvB55ygfHiK0grQgKdztcTe73d6Dz/6Flz04hv6pPq7zzZYAgjeEZQwR2zQYifC0NVQ==} - peerDependencies: - react: '>=16.8.0' - react-markdown: '>=9.0.0' - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -7206,10 +7124,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==} @@ -7887,8 +7801,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': '*' @@ -7925,76 +7839,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: @@ -8117,8 +8037,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==} @@ -8253,8 +8173,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.12.0: - resolution: {integrity: sha512-ZudVx73BwrMJfCFmSSJT84y6u5brEoV8DOItdHomNLz32uBjNrelm7mg95X7g+C6UoQH/W6mBLGDEDv73JdxBg==} + mermaid@11.12.1: + resolution: {integrity: sha512-UlIZrRariB11TY1RtTgUWp65tphtBv4CSq7vyS2ZZ2TgoMjs2nloq+wFqxiwcxlhHUvs7DPGgMjs2aeQxz5h9g==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -8478,10 +8398,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==} @@ -8606,8 +8522,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==} @@ -8912,8 +8828,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: @@ -9071,14 +8987,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==} @@ -9089,8 +9005,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==} @@ -9098,8 +9014,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==} @@ -9277,8 +9193,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: @@ -9370,8 +9286,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 @@ -9418,8 +9334,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 @@ -9586,9 +9502,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==} @@ -9651,8 +9564,8 @@ packages: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - streamdown@1.3.0: - resolution: {integrity: sha512-vFZdoWKUeagzKwGGOcEqkV1fcgXOJOQqrNBor5/hbaAE/e/ULxZoIHHJJd5KEuaSddCM9KuYtIuZi3WSttXTEA==} + streamdown@1.4.0: + resolution: {integrity: sha512-ylhDSQ4HpK5/nAH9v7OgIIdGJxlJB2HoYrYkJNGrO8lMpnWuKUcrz/A8xAMwA6eILA27469vIavcOTjmxctrKg==} peerDependencies: react: ^18.0.0 || ^19.0.0 @@ -9786,8 +9699,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - 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==} @@ -9797,17 +9710,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==} @@ -9831,6 +9740,10 @@ packages: 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'} @@ -9926,8 +9839,8 @@ packages: ts-proto-descriptors@2.0.0: resolution: {integrity: sha512-wHcTH3xIv11jxgkX5OyCSFfw27agpInAd6yh89hKG6zqIXnjW9SYqSER2CVQxdPj4czeOhGagNvZBEbJPy7qkw==} - ts-proto@2.8.3: - resolution: {integrity: sha512-TdXInqG+61pj/TvORqITWjvjTTsL1EZxwX49iEj89+xFAcqPT8tjChpAGQXzfcF4MJwvNiuoCEbBOKqVf3ds3g==} + ts-proto@2.8.2: + resolution: {integrity: sha512-OOgPvB+XQrFQUp0FQ/GYkXNQ5ngLO1lv0KcbPJy4siKlgMPpKbeApeJEy5fNtqwxQB/yMW5vecfrTV+reXLKng==} hasBin: true tsconfig-paths@3.15.0: @@ -10087,6 +10000,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'} @@ -10106,8 +10022,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==} @@ -10130,8 +10046,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==} @@ -10161,8 +10077,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' @@ -10240,8 +10156,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: @@ -10410,10 +10326,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'} @@ -10446,8 +10358,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==} @@ -10472,7 +10384,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 @@ -10514,11 +10426,6 @@ snapshots: rxjs: 7.8.1 zod: 3.25.76 - '@ag-ui/core@0.0.40': - dependencies: - rxjs: 7.8.1 - zod: 3.25.76 - '@ag-ui/core@0.0.40-alpha.11': dependencies: rxjs: 7.8.1 @@ -10529,22 +10436,17 @@ snapshots: '@ag-ui/core': 0.0.35 '@ag-ui/proto': 0.0.35 - '@ag-ui/encoder@0.0.40': - dependencies: - '@ag-ui/core': 0.0.40 - '@ag-ui/proto': 0.0.40 - '@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@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/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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/langgraph-sdk': 0.1.10(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@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: @@ -10560,12 +10462,6 @@ snapshots: '@ag-ui/core': 0.0.35 '@bufbuild/protobuf': 2.10.0 - '@ag-ui/proto@0.0.40': - dependencies: - '@ag-ui/core': 0.0.40 - '@bufbuild/protobuf': 2.10.0 - '@protobuf-ts/protoc': 2.11.1 - '@ag-ui/proto@0.0.40-alpha.11': dependencies: '@ag-ui/core': 0.0.40-alpha.11 @@ -10584,6 +10480,12 @@ snapshots: '@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 @@ -10616,6 +10518,12 @@ snapshots: '@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 @@ -10640,22 +10548,16 @@ 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)': - 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.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.64(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.16(zod@3.25.76) + '@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)': @@ -10679,7 +10581,7 @@ snapshots: eventsource-parser: 3.0.6 zod: 3.25.76 - '@ai-sdk/provider-utils@3.0.16(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 @@ -10720,7 +10622,7 @@ snapshots: '@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': {} @@ -10752,7 +10654,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': @@ -10760,7 +10662,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 @@ -10768,7 +10670,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': @@ -10777,347 +10679,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 @@ -11127,218 +11029,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 @@ -11348,213 +11248,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 @@ -11563,25 +11463,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': {} @@ -11599,22 +11499,6 @@ 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)': - dependencies: - '@anthropic-ai/sdk': 0.27.3 - '@browserbasehq/sdk': 2.6.0 - '@playwright/test': 1.56.0 - deepmerge: 4.3.1 - dotenv: 16.6.1 - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - ws: 8.18.3 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@browserbasehq/stagehand@1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76)': dependencies: '@anthropic-ai/sdk': 0.27.3 @@ -11663,12 +11547,11 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251106162323(@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-core@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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': 0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 - '@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) + '@copilotkit/runtime-client-gql': 0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 + '@copilotkitnext/react': 0.0.21-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) '@scarf/scarf': 1.4.0 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) @@ -11681,12 +11564,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251106162323(@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@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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': 0.0.0-feat-cpk-1-5-20251106162323(@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-20251106162323(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 - '@copilotkitnext/core': 0.0.21 + '@copilotkit/react-core': 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 '@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) @@ -11703,9 +11585,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11714,7 +11596,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251106162323(43a54c62826e391639c20a8a0387b983)': + '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106120810(11e8d990ef61bbafaa75597e5e9ed522)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11722,33 +11604,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': 0.0.0-feat-cpk-1-5-20251106162323 - '@copilotkitnext/agent': 0.0.21 - '@copilotkitnext/runtime': 0.0.21(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 + '@copilotkitnext/agent': 0.0.21-alpha.0 + '@copilotkitnext/runtime': 0.0.21-alpha.0(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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(656fb6f0108e13d499f0a783d59c961f) - '@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.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) - '@langchain/openai': 0.4.9(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@langchain/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 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.1.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(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) 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' @@ -11899,38 +11781,38 @@ snapshots: - ws - youtubei.js - '@copilotkit/runtime@1.10.6(44bb7de6433f14640bc8666b3b9131fb)': + '@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 - '@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@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 + '@ag-ui/encoder': 0.0.40-alpha.11 + '@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@5.12.2(ws@8.18.3)(zod@3.25.76))) - '@langchain/community': 0.3.57(e200db21c867a52fd5423d70637b3198) - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-gauth': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - '@langchain/langgraph-sdk': 0.0.70(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0) - '@langchain/openai': 0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) + '@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@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(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) 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' @@ -12081,7 +11963,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': + '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106120810': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -12105,37 +11987,37 @@ snapshots: transitivePeerDependencies: - encoding - '@copilotkitnext/agent@0.0.21': + '@copilotkitnext/agent@0.0.21-alpha.0': dependencies: '@ag-ui/client': 0.0.40-alpha.11 - '@ai-sdk/anthropic': 2.0.33(zod@3.25.76) - '@ai-sdk/google': 2.0.23(zod@3.25.76) - '@ai-sdk/openai': 2.0.64(zod@3.25.76) - '@modelcontextprotocol/sdk': 1.20.0 + '@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.21': + '@copilotkitnext/core@0.0.21-alpha.0': dependencies: '@ag-ui/client': 0.0.40-alpha.11 - '@copilotkitnext/shared': 0.0.21 + '@copilotkitnext/shared': 0.0.21-alpha.0 rxjs: 7.8.1 zod: 3.25.76 zod-to-json-schema: 3.24.6(zod@3.25.76) - '@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)': + '@copilotkitnext/react@0.0.21-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)': dependencies: '@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 + '@copilotkitnext/core': 0.0.21-alpha.0 + '@copilotkitnext/shared': 0.0.21-alpha.0 + '@copilotkitnext/web-inspector': 0.0.21-alpha.0 '@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 @@ -12143,7 +12025,7 @@ snapshots: lucide-react: 0.525.0(react@19.2.0) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - streamdown: 1.3.0(@types/react@19.2.2)(react@19.2.0) + streamdown: 1.4.0(@types/react@19.2.2)(react@19.2.0) tailwind-merge: 3.3.1 ts-deepmerge: 7.0.3 tw-animate-css: 1.4.0 @@ -12154,26 +12036,12 @@ snapshots: - '@types/react-dom' - supports-color - '@copilotkitnext/runtime@0.0.21(openai@4.104.0(ws@8.18.3)(zod@3.25.76))': - dependencies: - '@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) - rxjs: 7.8.1 - transitivePeerDependencies: - - supports-color - - '@copilotkitnext/runtime@0.0.21(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': + '@copilotkitnext/runtime@0.0.21-alpha.0(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': dependencies: '@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 + '@copilotkitnext/shared': 0.0.21-alpha.0 cors: 2.8.5 express: 4.21.2 hono: 4.10.3 @@ -12182,26 +12050,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@copilotkitnext/shared@0.0.21': + '@copilotkitnext/shared@0.0.21-alpha.0': dependencies: '@ag-ui/client': 0.0.40-alpha.11 partial-json: 0.1.7 uuid: 11.1.0 - '@copilotkitnext/web-inspector@0.0.21': + '@copilotkitnext/web-inspector@0.0.21-alpha.0': dependencies: '@ag-ui/client': 0.0.40-alpha.11 - '@copilotkitnext/core': 0.0.21 + '@copilotkitnext/core': 0.0.21-alpha.0 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 @@ -12228,107 +12096,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 @@ -12343,13 +12215,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': @@ -12385,7 +12257,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': {} @@ -12570,7 +12442,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': @@ -12713,10 +12585,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': @@ -12777,7 +12645,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.24 + '@types/node': 24.9.2 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -12795,7 +12663,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.19.24 + '@types/node': 24.9.2 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -12819,7 +12687,7 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 '@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 @@ -12853,7 +12721,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: @@ -12864,7 +12732,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 @@ -12888,7 +12756,7 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 20.19.24 - '@types/yargs': 17.0.33 + '@types/yargs': 17.0.34 chalk: 4.1.2 '@jridgewell/gen-mapping@0.3.13': @@ -12914,107 +12782,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@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@aws-sdk/client-bedrock-agent-runtime': 3.910.0 - '@aws-sdk/client-bedrock-runtime': 3.910.0 - '@aws-sdk/client-kendra': 3.910.0 - '@aws-sdk/credential-provider-node': 3.910.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - transitivePeerDependencies: - - aws-crt - - '@langchain/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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(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.79(@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(656fb6f0108e13d499f0a783d59c961f)': - dependencies: - '@browserbasehq/stagehand': 1.14.0(@playwright/test@1.56.0)(deepmerge@4.3.1)(dotenv@16.6.1)(openai@4.104.0(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) - '@ibm-cloud/watsonx-ai': 1.7.0 - '@langchain/core': 0.3.79(@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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/weaviate': 0.2.3(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - binary-extensions: 2.3.0 - expr-eval: 2.0.2 - flat: 5.0.2 - ibm-cloud-sdk-core: 5.4.3 - js-yaml: 4.1.0 - langchain: 0.3.36(@langchain/aws@0.1.15(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(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@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 - '@browserbasehq/sdk': 2.6.0 - '@smithy/util-utf8': 2.3.0 - '@upstash/redis': 1.35.6 - fast-xml-parser: 5.2.5 - google-auth-library: 8.9.0 - ignore: 5.3.2 - jsonwebtoken: 9.0.2 - pg: 8.16.3 - playwright: 1.56.0 - redis: 5.8.3 - weaviate-client: 3.9.0 - ws: 8.18.3 - transitivePeerDependencies: - - '@langchain/anthropic' - - '@langchain/aws' - - '@langchain/cerebras' - - '@langchain/cohere' - - '@langchain/deepseek' - - '@langchain/google-genai' - - '@langchain/google-vertexai' - - '@langchain/google-vertexai-web' - - '@langchain/groq' - - '@langchain/mistralai' - - '@langchain/ollama' - - '@langchain/xai' - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - axios - - encoding - - handlebars - - peggy - - '@langchain/community@0.3.57(e200db21c867a52fd5423d70637b3198)': + '@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@5.12.2(ws@8.18.3)(zod@3.25.76))(zod@3.25.76) '@ibm-cloud/watsonx-ai': 1.7.0 - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/weaviate': 0.2.3(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + '@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@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(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@5.12.2(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 @@ -13024,7 +12825,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: @@ -13048,14 +12849,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@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))': dependencies: '@cfworker/json-schema': 4.1.1 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.21 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + 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 @@ -13068,127 +12869,48 @@ snapshots: - '@opentelemetry/sdk-trace-base' - openai - '@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.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.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@4.104.0(ws@8.18.3)(zod@3.25.76)) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - '@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))': - dependencies: - '@cfworker/json-schema': 4.1.1 - ansi-styles: 5.2.0 - camelcase: 6.3.0 - decamelize: 1.2.0 - js-tiktoken: 1.0.21 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - mustache: 4.2.0 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 10.0.0 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - '@langchain/google-common@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@langchain/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-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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@4.104.0(ws@8.18.3)(zod@3.25.76)) - uuid: 10.0.0 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - zod - - '@langchain/google-gauth@0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/google-common': 0.1.8(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) - google-auth-library: 8.9.0 - transitivePeerDependencies: - - encoding - - supports-color - - zod - - '@langchain/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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76)': - dependencies: - '@langchain/core': 0.3.79(@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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(zod@3.25.76) + '@langchain/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@5.12.2(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@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)) 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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react@19.2.0)': + '@langchain/langgraph-sdk@0.1.10(@langchain/core@0.3.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.79(@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.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': - dependencies: - '@types/json-schema': 7.0.15 - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.1 - optionalDependencies: - '@langchain/core': 0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@langchain/core': 0.3.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/openai@0.4.9(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - encoding - - ws - - '@langchain/openai@0.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': + '@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: - '@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.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 @@ -13197,45 +12919,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@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - openai: 5.12.2(ws@8.18.3)(zod@3.25.76) - zod: 3.25.76 - transitivePeerDependencies: - - ws - - '@langchain/openai@0.6.16(@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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3)': - dependencies: - '@langchain/core': 0.3.79(@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@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@langchain/core': 0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) - js-tiktoken: 1.0.21 - - '@langchain/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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(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.79(@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@5.12.2(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@5.12.2(ws@8.18.3)(zod@3.25.76)) - uuid: 10.0.0 - weaviate-client: 3.9.0 - transitivePeerDependencies: - - encoding - - '@langchain/weaviate@0.2.3(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))': - dependencies: - '@langchain/core': 0.3.79(@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: @@ -13376,11 +13067,11 @@ snapshots: - valibot - zod-openapi - '@mastra/client-js@0.16.9(openapi-types@12.1.3)(zod@3.25.76)': + '@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.24.0(openapi-types@12.1.3)(zod@3.25.76) + '@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 @@ -13408,27 +13099,27 @@ snapshots: '@ai-sdk/ui-utils': 1.2.11(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: 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 @@ -13468,17 +13159,17 @@ snapshots: '@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: 5.0.59(zod@3.25.76) @@ -13491,7 +13182,7 @@ 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 @@ -13531,17 +13222,17 @@ snapshots: '@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.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: 5.0.59(zod@3.25.76) @@ -13555,71 +13246,7 @@ snapshots: json-schema-to-zod: 2.6.1 p-map: 7.0.3 p-retry: 7.1.0 - pino: 9.13.1 - pino-pretty: 13.1.2 - radash: 12.1.1 - sift: 17.1.3 - xstate: 5.23.0 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - transitivePeerDependencies: - - '@hono/arktype-validator' - - '@hono/effect-validator' - - '@hono/typebox-validator' - - '@hono/valibot-validator' - - '@hono/zod-validator' - - '@sinclair/typebox' - - '@valibot/to-json-schema' - - arktype - - effect - - encoding - - openapi-types - - supports-color - - valibot - - zod-openapi - - '@mastra/core@0.24.0(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.7(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/exporter-trace-otlp-grpc': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 2.1.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.37.0 - '@sindresorhus/slugify': 2.2.1 - ai: 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.13.1 + pino: 9.14.0 pino-pretty: 13.1.2 radash: 12.1.1 sift: 17.1.3 @@ -13644,15 +13271,15 @@ snapshots: '@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) + '@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) @@ -13662,15 +13289,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) @@ -13679,12 +13306,12 @@ snapshots: - supports-color - typescript - '@mastra/dynamodb@0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(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)(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 @@ -13696,7 +13323,7 @@ snapshots: - bufferutil - utf-8-validate - '@mastra/libsql@0.15.1(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))': + '@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.20.2(openapi-types@12.1.3)(zod@3.25.76) @@ -13704,43 +13331,43 @@ snapshots: - bufferutil - utf-8-validate - '@mastra/libsql@0.15.2(@mastra/core@0.20.2(openapi-types@12.1.3)(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)(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)(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)(zod@3.25.76) - pino: 9.13.1 + pino: 9.14.0 pino-pretty: 13.1.2 - '@mastra/loggers@0.10.19(@mastra/core@0.20.2(openapi-types@12.1.3)(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.20.2(openapi-types@12.1.3)(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/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.13.1 + pino: 9.14.0 pino-pretty: 13.1.2 - '@mastra/mcp@0.13.4(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(@types/json-schema@7.0.15)(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)': 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)(zod@3.25.76) - '@modelcontextprotocol/sdk': 1.20.0 + '@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' @@ -13757,17 +13384,17 @@ 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 - '@mastra/memory@0.15.11(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76))(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)(zod@3.25.76) - '@mastra/schema-compat': 0.11.7(ai@5.0.59(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) '@upstash/redis': 1.35.6 ai: 5.0.59(zod@3.25.76) ai-v5: ai@5.0.60(zod@3.25.76) @@ -13777,17 +13404,17 @@ 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 - '@mastra/memory@0.15.6(@mastra/core@0.20.2(openapi-types@12.1.3)(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: - '@mastra/core': 0.20.2(openapi-types@12.1.3)(zod@3.25.76) - '@mastra/schema-compat': 0.11.4(ai@5.0.59(zod@3.25.76))(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) @@ -13797,7 +13424,7 @@ 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) @@ -13817,7 +13444,7 @@ snapshots: 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) @@ -13826,16 +13453,7 @@ snapshots: 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-v3: zod-from-json-schema@0.0.5 - zod-to-json-schema: 3.24.6(zod@3.25.76) - - '@mastra/schema-compat@0.11.7(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.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) @@ -13891,7 +13509,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 @@ -13921,8 +13539,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 @@ -13936,7 +13554,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: @@ -13992,10 +13610,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) @@ -14037,12 +13655,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 @@ -14052,7 +13670,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 @@ -14061,7 +13679,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 @@ -14174,7 +13792,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: @@ -14192,7 +13810,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: @@ -14218,7 +13836,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 @@ -14250,7 +13868,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: @@ -14259,7 +13877,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: @@ -14268,7 +13886,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 @@ -14298,7 +13916,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: @@ -14342,7 +13960,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: @@ -14375,7 +13993,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: @@ -14427,7 +14045,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) @@ -14440,7 +14058,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 @@ -14457,7 +14075,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: @@ -14498,7 +14116,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 @@ -14557,37 +14175,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: @@ -14600,10 +14218,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)': @@ -14619,11 +14237,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: @@ -14660,11 +14278,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)': @@ -14674,19 +14292,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: @@ -14697,13 +14315,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 @@ -14928,6 +14548,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 @@ -15072,25 +14699,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': {} @@ -15100,21 +14727,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 @@ -15131,7 +14758,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 @@ -15150,135 +14777,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': {} @@ -15372,88 +14999,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': @@ -15464,120 +15092,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': @@ -15608,49 +15236,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 @@ -15671,10 +15299,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': @@ -15693,82 +15321,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: @@ -15778,169 +15403,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': {} @@ -15953,24 +15578,24 @@ 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: @@ -16123,20 +15748,20 @@ snapshots: '@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.24 + '@types/node': 22.18.13 '@types/hast@2.3.10': dependencies: @@ -16151,7 +15776,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': {} @@ -16207,24 +15832,24 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 20.19.24 + '@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@20.19.24': + '@types/node@22.18.13': dependencies: undici-types: 6.21.0 - '@types/node@22.19.0': + '@types/node@24.9.2': dependencies: - undici-types: 6.21.0 + undici-types: 7.16.0 '@types/oracledb@6.5.2': dependencies: @@ -16264,20 +15889,20 @@ 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.24 - '@types/send@1.2.0': + '@types/send@1.2.1': dependencies: '@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.24 - '@types/send': 0.17.5 + '@types/send': 0.17.6 '@types/stack-utils@2.0.3': {} @@ -16301,7 +15926,7 @@ snapshots: '@types/uuid@10.0.0': {} - '@types/validator@13.15.3': {} + '@types/validator@13.15.4': {} '@types/ws@8.18.1': dependencies: @@ -16309,19 +15934,19 @@ snapshots: '@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 @@ -16330,56 +15955,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 @@ -16390,20 +16015,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': {} @@ -16710,7 +16335,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 @@ -16720,13 +16353,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 @@ -16746,34 +16379,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: {} @@ -16781,7 +16414,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.8.16: {} + baseline-browser-mapping@2.8.21: {} bignumber.js@9.3.1: {} @@ -16839,13 +16472,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: @@ -16872,9 +16505,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: @@ -16908,7 +16541,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001750: {} + caniuse-lite@1.0.30001751: {} case-anything@2.1.13: {} @@ -16957,8 +16590,6 @@ snapshots: dependencies: readdirp: 4.1.2 - chownr@3.0.0: {} - ci-info@3.9.0: {} citty@0.1.6: @@ -16971,9 +16602,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: @@ -17007,7 +16638,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: @@ -17051,8 +16682,6 @@ snapshots: commondir@1.0.1: {} - compare-versions@6.1.1: {} - concat-map@0.0.1: {} concurrently@9.2.1: @@ -17070,7 +16699,7 @@ snapshots: consola@3.4.2: {} - console-table-printer@2.14.6: + console-table-printer@2.15.0: dependencies: simple-wcswidth: 1.1.2 @@ -17107,36 +16736,6 @@ snapshots: dependencies: layout-base: 2.0.1 - create-jest@29.7.0: - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.19.21) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - create-jest@29.7.0(@types/node@20.19.21): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.19.21) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-jest@29.7.0(@types/node@20.19.24): dependencies: '@jest/types': 29.6.3 @@ -17353,7 +16952,7 @@ snapshots: d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - dagre-d3-es@7.0.11: + dagre-d3-es@7.0.13: dependencies: d3: 7.9.0 lodash-es: 4.17.21 @@ -17386,7 +16985,7 @@ snapshots: dateformat@4.6.3: {} - dayjs@1.11.18: {} + dayjs@1.11.19: {} debug@2.6.9: dependencies: @@ -17507,15 +17106,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: @@ -17675,34 +17274,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: {} @@ -17714,19 +17313,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: @@ -17738,37 +17337,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@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 @@ -17777,9 +17376,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@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 @@ -17791,13 +17390,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 @@ -17807,7 +17406,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 @@ -17816,11 +17415,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 @@ -17828,7 +17427,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 @@ -17851,21 +17450,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 @@ -18205,9 +17803,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: @@ -18368,7 +17966,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 @@ -18456,7 +18054,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 @@ -18513,12 +18111,6 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - harden-react-markdown@1.1.5(react-markdown@10.1.0(@types/react@19.2.2)(react@19.2.0))(react@19.2.0): - dependencies: - react: 19.2.0 - react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0) - rehype-harden: 1.1.5 - has-bigints@1.1.0: {} has-flag@4.0.0: {} @@ -18708,18 +18300,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: {} @@ -18763,7 +18345,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 @@ -18773,7 +18355,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(debug@4.4.3)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -19049,8 +18631,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 @@ -19059,8 +18641,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 @@ -19133,44 +18715,6 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0: - 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 - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.19.21) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest-cli@29.7.0(@types/node@20.19.21): - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.19.21) - exit: 0.1.2 - import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.19.21) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest-cli@29.7.0(@types/node@20.19.24): dependencies: '@jest/core': 29.7.0 @@ -19190,42 +18734,12 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.19.21): - dependencies: - '@babel/core': 7.28.4 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.4) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.19.21 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - jest-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 @@ -19323,7 +18837,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 20.19.24 + '@types/node': 24.9.2 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -19347,7 +18861,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 @@ -19389,7 +18903,7 @@ snapshots: '@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 @@ -19406,15 +18920,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 @@ -19465,30 +18979,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0: - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - - jest@29.7.0(@types/node@20.19.21): - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.19.21) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - jest@29.7.0(@types/node@20.19.24): dependencies: '@jest/core': 29.7.0 @@ -19621,53 +19111,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@5.12.2(ws@8.18.3)(zod@3.25.76))))(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(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@5.12.2(ws@8.18.3)(zod@3.25.76)) - '@langchain/openai': 0.6.16(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.78(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) + '@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@5.12.2(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@5.12.2(ws@8.18.3)(zod@3.25.76))) - axios: 1.12.2(debug@4.4.3) - handlebars: 4.7.8 - transitivePeerDependencies: - - '@opentelemetry/api' - - '@opentelemetry/exporter-trace-otlp-proto' - - '@opentelemetry/sdk-trace-base' - - openai - - ws - - 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.1.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.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(axios@1.12.2)(handlebars@4.7.8)(openai@5.12.2(ws@8.18.3)(zod@3.25.76))(ws@8.18.3): - dependencies: - '@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.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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)))(ws@8.18.3) - '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - js-tiktoken: 1.0.21 - js-yaml: 4.1.0 - jsonpointer: 5.0.1 - langsmith: 0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@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.79(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76))) - axios: 1.12.2(debug@4.4.3) + '@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 @@ -19679,26 +19145,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)): - dependencies: - '@types/uuid': 10.0.0 - chalk: 4.1.2 - console-table-printer: 2.14.6 - p-queue: 6.6.2 - p-retry: 4.6.2 - semver: 7.7.3 - uuid: 10.0.0 - optionalDependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/exporter-trace-otlp-proto': 0.203.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.1.0(@opentelemetry/api@1.9.0) - openai: 4.104.0(ws@8.18.3)(zod@3.25.76) - - langsmith@0.3.74(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.203.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.1.0(@opentelemetry/api@1.9.0))(openai@5.12.2(ws@8.18.3)(zod@3.25.76)): + 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 @@ -19706,7 +19157,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) + '@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: {} @@ -19726,7 +19177,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: @@ -19743,50 +19194,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-x64@1.30.1: + lightningcss-darwin-arm64@1.30.2: optional: true - lightningcss-freebsd-x64@1.30.1: + lightningcss-darwin-x64@1.30.2: optional: true - lightningcss-linux-arm-gnueabihf@1.30.1: + lightningcss-freebsd-x64@1.30.2: optional: true - lightningcss-linux-arm64-gnu@1.30.1: + lightningcss-linux-arm-gnueabihf@1.30.2: optional: true - lightningcss-linux-arm64-musl@1.30.1: + lightningcss-linux-arm64-gnu@1.30.2: optional: true - lightningcss-linux-x64-gnu@1.30.1: + lightningcss-linux-arm64-musl@1.30.2: optional: true - lightningcss-linux-x64-musl@1.30.1: + lightningcss-linux-x64-gnu@1.30.2: optional: true - lightningcss-win32-arm64-msvc@1.30.1: + lightningcss-linux-x64-musl@1.30.2: optional: true - lightningcss-win32-x64-msvc@1.30.1: + lightningcss-win32-arm64-msvc@1.30.2: optional: true - lightningcss@1.30.1: + lightningcss-win32-x64-msvc@1.30.2: + optional: true + + 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: {} @@ -19896,7 +19351,7 @@ snapshots: lucide@0.525.0: {} - magic-string@0.30.19: + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -19935,16 +19390,16 @@ snapshots: '@expo/devcert': 1.2.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.19(@mastra/core@0.20.2(openapi-types@12.1.3)(zod@3.25.76)) - '@mastra/mcp': 0.13.4(@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.1.0(@opentelemetry/api@1.9.0)) - '@opentelemetry/core': 2.1.0(@opentelemetry/api@1.9.0) + '@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 @@ -19982,8 +19437,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: @@ -20140,7 +19595,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: @@ -20199,7 +19654,7 @@ snapshots: merge2@1.4.1: {} - mermaid@11.12.0: + mermaid@11.12.1: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 3.0.2 @@ -20210,8 +19665,8 @@ snapshots: cytoscape-fcose: 2.2.0(cytoscape@3.33.1) d3: 7.9.0 d3-sankey: 0.12.3 - dagre-d3-es: 7.0.11 - dayjs: 1.11.18 + dagre-d3-es: 7.0.13 + dayjs: 1.11.19 dompurify: 3.3.0 katex: 0.16.25 khroma: 2.1.0 @@ -20668,10 +20123,6 @@ snapshots: minipass@7.1.2: {} - minizlib@3.1.0: - dependencies: - minipass: 7.1.2 - mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -20731,7 +20182,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) @@ -20785,7 +20236,7 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.23: {} + node-releases@2.0.26: {} normalize-path@3.0.0: {} @@ -21127,8 +20578,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 @@ -21137,7 +20589,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 @@ -21218,7 +20669,7 @@ snapshots: posthog-node@4.18.0: dependencies: - axios: 1.12.2(debug@4.4.3) + axios: 1.13.1 transitivePeerDependencies: - debug @@ -21271,101 +20722,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: @@ -21578,13 +21029,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: {} @@ -21633,7 +21084,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: @@ -21721,7 +21172,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 @@ -21739,7 +21190,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 @@ -21756,9 +21207,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(debug@4.4.3)): dependencies: - axios: 1.12.2(debug@4.4.3) + axios: 1.13.2(debug@4.4.3) retry@0.13.1: {} @@ -21766,12 +21217,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: @@ -21808,32 +21259,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: {} @@ -22079,8 +21530,6 @@ snapshots: slash@3.0.0: {} - slow-redact@0.3.2: {} - sonic-boom@4.2.0: dependencies: atomic-sleep: 1.0.0 @@ -22129,16 +21578,16 @@ snapshots: es-errors: 1.3.0 internal-slot: 1.1.0 - streamdown@1.3.0(@types/react@19.2.2)(react@19.2.0): + streamdown@1.4.0(@types/react@19.2.2)(react@19.2.0): dependencies: clsx: 2.1.1 - harden-react-markdown: 1.1.5(react-markdown@10.1.0(@types/react@19.2.2)(react@19.2.0))(react@19.2.0) katex: 0.16.25 lucide-react: 0.542.0(react@19.2.0) marked: 16.4.1 - mermaid: 11.12.0 + mermaid: 11.12.1 react: 19.2.0 react-markdown: 10.1.0(@types/react@19.2.2)(react@19.2.0) + rehype-harden: 1.1.5 rehype-katex: 7.0.1 rehype-raw: 7.0.0 remark-gfm: 4.0.1 @@ -22295,26 +21744,18 @@ snapshots: supports-preserve-symlinks-flag@1.0.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 @@ -22344,6 +21785,8 @@ snapshots: tinyexec@1.0.1: {} + tinyexec@1.0.2: {} + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) @@ -22397,27 +21840,7 @@ 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))(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) - 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(@types/node@20.19.24))(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 @@ -22431,30 +21854,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) - 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): - dependencies: - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - handlebars: 4.7.8 - jest: 29.7.0 - 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) + babel-jest: 29.7.0(@babel/core@7.28.5) jest-util: 29.7.0 ts-poet@6.12.0: @@ -22465,7 +21868,7 @@ snapshots: dependencies: '@bufbuild/protobuf': 2.10.0 - ts-proto@2.8.3: + ts-proto@2.8.2: dependencies: '@bufbuild/protobuf': 2.10.0 case-anything: 2.1.13 @@ -22483,18 +21886,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 @@ -22511,8 +21914,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 @@ -22555,14 +21958,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.24 + '@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: @@ -22640,6 +22043,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.16.0: {} + unicorn-magic@0.3.0: {} unified@10.1.2: @@ -22665,7 +22070,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: {} @@ -22673,7 +22078,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 @@ -22707,10 +22112,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: @@ -22721,8 +22126,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: {} @@ -22761,9 +22166,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 @@ -22830,7 +22235,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: {} @@ -23024,8 +22429,6 @@ snapshots: yallist@4.0.0: {} - yallist@5.0.0: {} - yaml@2.8.1: {} yargs-parser@21.1.1: {} @@ -23054,7 +22457,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/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 1a768d257..68577739a 100644 --- a/sdks/typescript/packages/client/package.json +++ b/sdks/typescript/packages/client/package.json @@ -28,7 +28,6 @@ "@ag-ui/encoder": "workspace:*", "@ag-ui/proto": "workspace:*", "@types/uuid": "^10.0.0", - "compare-versions": "^6.1.1", "fast-json-patch": "^3.1.1", "rxjs": "7.8.1", "untruncate-json": "^0.0.1", diff --git a/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts b/sdks/typescript/packages/client/src/agent/__tests__/agent-clone.test.ts 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 5284d6fcb..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" 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 fc330ef77..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" diff --git a/sdks/typescript/packages/proto/package.json b/sdks/typescript/packages/proto/package.json index 0c23f56ed..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" From 094e6a59560a89b85f5eae90fbdd749218072277 Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Thu, 6 Nov 2025 10:37:13 -0800 Subject: [PATCH 112/113] deps: Upgrade to vnext 0.0.21 and latest CPK v1.5 --- apps/dojo/package.json | 15 ++--- pnpm-lock.yaml | 139 +++++++++++++++++++++-------------------- 2 files changed, 80 insertions(+), 74 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index 74cfcc7c8..d6eedd50c 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,13 +26,14 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-v1-5-single-endpoint-20251106120810", - "@copilotkit/react-ui": "0.0.0-v1-5-single-endpoint-20251106120810", - "@copilotkit/runtime": "0.0.0-v1-5-single-endpoint-20251106120810", - "@copilotkit/runtime-client-gql": "0.0.0-v1-5-single-endpoint-20251106120810", - "@copilotkit/shared": "0.0.0-v1-5-single-endpoint-20251106120810", - "@copilotkitnext/runtime": "0.0.21-alpha.0", - "@copilotkitnext/react": "0.0.21-alpha.0", + "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251106162323", + "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251106162323", + "@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", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0aa7bc556..3d786a46f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -128,26 +128,29 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-v1-5-single-endpoint-20251106120810 - version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(@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: 0.0.0-v1-5-single-endpoint-20251106120810 - version: 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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) + specifier: 0.0.0-feat-cpk-1-5-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(@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: 0.0.0-v1-5-single-endpoint-20251106120810 - version: 0.0.0-v1-5-single-endpoint-20251106120810(11e8d990ef61bbafaa75597e5e9ed522) + specifier: 0.0.0-feat-cpk-1-5-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(11e8d990ef61bbafaa75597e5e9ed522) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-v1-5-single-endpoint-20251106120810 - version: 0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) + specifier: 0.0.0-feat-cpk-1-5-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0) '@copilotkit/shared': - specifier: 0.0.0-v1-5-single-endpoint-20251106120810 - version: 0.0.0-v1-5-single-endpoint-20251106120810 + specifier: 0.0.0-feat-cpk-1-5-20251106162323 + version: 0.0.0-feat-cpk-1-5-20251106162323 + '@copilotkitnext/core': + specifier: 0.0.21 + version: 0.0.21 '@copilotkitnext/react': - specifier: 0.0.21-alpha.0 - version: 0.0.21-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.21-alpha.0 - version: 0.0.21-alpha.0(openai@5.12.2(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.16.8 version: 0.16.8(openapi-types@12.1.3)(zod@3.25.76) @@ -1594,28 +1597,28 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106120810': - resolution: {integrity: sha512-vXEzqawPOxlOKNQtIdrzy3HeRd2pKyUrwbcRpCEluOU4vSZxlgjQ5k2Ira0idYI97lXPjPhW3KV/3Prfo/v8/A==} + '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251106162323': + resolution: {integrity: sha512-vAO9ufGEYKsZPGqi9o5qcJ2Yf7LmPnZdHIh/k19FbjvEigYDpG6v1Bi5Ef4WxqsHQES4p569IV7/799cs+kUHw==} peerDependencies: - '@copilotkitnext/core': 0.0.21-alpha.0 - '@copilotkitnext/react': 0.0.21-alpha.0 + '@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@0.0.0-v1-5-single-endpoint-20251106120810': - resolution: {integrity: sha512-VDPT4x+q+t5jCAeVhaLCH6IevpsWgTPI/ZHDNX2H+bMc4xInU4KHpkP0yxe+pdTozGoo+9vzsv1L/A5cvcwGog==} + '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251106162323': + resolution: {integrity: sha512-udhP9iu3A8VXx9ts8mSeOK7A9NWnNwG9PaLbyr7NPoEBMZ9uo8NO90r99ISYdb4hBYx2zF6mzZMdMoozeDsFBw==} peerDependencies: '@copilotkitnext/core': 0.0.20 react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106120810': - resolution: {integrity: sha512-+ix2lDWqq8auo3t/2pZ5xfTr4fJVwBwDwyYsB6JWCTFkra3fLi0NEXXajEiWdNuTowiEDfXeRkhA+3yUj7JfsQ==} + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251106162323': + resolution: {integrity: sha512-wUuN0IKI/ANp8D1A3VjUaQ1saIqW6ae6PVdIK4M75q0mdtaAqB6XA6+ZpPdJF5+BtAvUnEVqva9cxvQZnfm8MQ==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106120810': - resolution: {integrity: sha512-jNTidnLjt0kJn9yOAksVyyT8c280/rQGwUcefZX8H/Uz8bzhqrg9A8794uasIVejVYcviDrm4to7wVVlpIW25w==} + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251106162323': + resolution: {integrity: sha512-NnMncK27lML4/LKqAWVf18AduuT+SgIGmJWLpZMZ/xjo34oySuukS55YpIlmo+6UXGqQAnO0Qr4+ko95NnOltQ==} peerDependencies: '@ag-ui/client': '>=0.0.39' '@ag-ui/core': '>=0.0.39' @@ -1632,39 +1635,39 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106120810': - resolution: {integrity: sha512-ACp6FsN7XLx7+UBMejYrMuo9tI94w+Lsuqzi+DRKmBiABCAqct/oHuPlNSrPZnMxVTw3+J1yry448H7p/HA+nQ==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': + resolution: {integrity: sha512-5978NLJeoTLTWqB0sA0yNDmyy6nFvdXGkxCVH3QHR2IWsG9BGUe6xzU7H34pVlYLGMwYzJlS9rf6NlU5P3iEyg==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} - '@copilotkitnext/agent@0.0.21-alpha.0': - resolution: {integrity: sha512-xWsL3MW42eX02tXD7JcC72uDTXKq2nbslpuljnBR6fbSR+T76A6Cstn+i5t3DZEaYiW5s3R2Orux8ICtD1YAiQ==} + '@copilotkitnext/agent@0.0.21': + resolution: {integrity: sha512-xE/CUFJSS86YPf7DHNYQxQJv6v/+FitWjrnkUfqRB/Re19e55fMoUN08K4kHOZ+nbrZpBVVWsmQemRJOzRY04A==} engines: {node: '>=18'} - '@copilotkitnext/core@0.0.21-alpha.0': - resolution: {integrity: sha512-U8xkrzJavIodgEasPgTdG2cLGpphrZ+2o/yMzVEBrXk1vOmwI8Uz7IJEk9SwEY8cu9JN71twM0IW4r4TXQx6Xg==} + '@copilotkitnext/core@0.0.21': + resolution: {integrity: sha512-NsC67b5bRQMo74eGEcpKypz9F/pTDhmvYAujSDQTfxAZee9MNN46UE9Pb0UA/nuqB2tzx5Bj2NGz+7//d8Yemg==} engines: {node: '>=18'} - '@copilotkitnext/react@0.0.21-alpha.0': - resolution: {integrity: sha512-p7UwiU7MuK/ouxowEMxe6JdfZU56cTffnuPRqAdcqfctRN2wzzQY1ZIDhv3yIf6LOaqEv297AWQ4JZJ6Qe0/lA==} + '@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.21-alpha.0': - resolution: {integrity: sha512-Tjffkl6ZqMSeLtvdPkPr/spPwR6gjpuJoqkA6T1ssiHTD+apnMe3913r32OFgE6DKasUc0sgkss9g1G7Id/hTw==} + '@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.21-alpha.0': - resolution: {integrity: sha512-3YGrFI7zzjy3OtYqGHMUYAyT95dWkBLzgOwUgpdo28UZp6f2PrifplJFxLSBThx7V306p87qBG545FZxB9nouA==} + '@copilotkitnext/shared@0.0.21': + resolution: {integrity: sha512-cqdHt7td+UASHMyU7tOwQ6njrFSL5I7EtF7G7O7A6I/8lRYhv6Qhb8maAVAZclzDlV9zT2OANRJkfafDx+pxhA==} engines: {node: '>=18'} - '@copilotkitnext/web-inspector@0.0.21-alpha.0': - resolution: {integrity: sha512-KY7nWdhEH99ileRtgiVPjC/O6ijHHZwIUUfA33F4V/v/Nx/8ndbdPIw1m7Wg/uVmg54oeFMwr2ZYxRXCXmCGgQ==} + '@copilotkitnext/web-inspector@0.0.21': + resolution: {integrity: sha512-SOhWTDneRbzyZ/YLVd8w3it85DwPHBlT3iGkAt6/X5VDz4y6SaSiZDWefUnaE9SFRGcfYoaIVnDbnvpNaF0HJg==} engines: {node: '>=18'} '@emnapi/core@1.6.0': @@ -11547,11 +11550,12 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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-core@0.0.0-feat-cpk-1-5-20251106162323(@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': 0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 - '@copilotkitnext/react': 0.0.21-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) + '@copilotkit/runtime-client-gql': 0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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) @@ -11564,11 +11568,12 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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@0.0.0-feat-cpk-1-5-20251106162323(@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': 0.0.0-v1-5-single-endpoint-20251106120810(@copilotkitnext/react@0.0.21-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))(@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-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 + '@copilotkit/react-core': 0.0.0-feat-cpk-1-5-20251106162323(@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-20251106162323(graphql@16.11.0)(react@19.2.0) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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) @@ -11585,9 +11590,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-v1-5-single-endpoint-20251106120810(graphql@16.11.0)(react@19.2.0)': + '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0)': dependencies: - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 '@urql/core': 5.2.0(graphql@16.11.0) react: 19.2.0 untruncate-json: 0.0.1 @@ -11596,7 +11601,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-v1-5-single-endpoint-20251106120810(11e8d990ef61bbafaa75597e5e9ed522)': + '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251106162323(11e8d990ef61bbafaa75597e5e9ed522)': dependencies: '@ag-ui/client': link:sdks/typescript/packages/client '@ag-ui/core': link:sdks/typescript/packages/core @@ -11604,9 +11609,9 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-v1-5-single-endpoint-20251106120810 - '@copilotkitnext/agent': 0.0.21-alpha.0 - '@copilotkitnext/runtime': 0.0.21-alpha.0(openai@5.12.2(ws@8.18.3)(zod@3.25.76)) + '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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.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) @@ -11963,7 +11968,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-v1-5-single-endpoint-20251106120810': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0 @@ -11987,7 +11992,7 @@ snapshots: transitivePeerDependencies: - encoding - '@copilotkitnext/agent@0.0.21-alpha.0': + '@copilotkitnext/agent@0.0.21': dependencies: '@ag-ui/client': 0.0.40-alpha.11 '@ai-sdk/anthropic': 2.0.39(zod@3.25.76) @@ -12000,21 +12005,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@copilotkitnext/core@0.0.21-alpha.0': + '@copilotkitnext/core@0.0.21': dependencies: '@ag-ui/client': 0.0.40-alpha.11 - '@copilotkitnext/shared': 0.0.21-alpha.0 + '@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.21-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.11 '@ag-ui/core': 0.0.40-alpha.11 - '@copilotkitnext/core': 0.0.21-alpha.0 - '@copilotkitnext/shared': 0.0.21-alpha.0 - '@copilotkitnext/web-inspector': 0.0.21-alpha.0 + '@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.4(@types/react@19.2.2)(react@19.2.0) @@ -12036,12 +12041,12 @@ snapshots: - '@types/react-dom' - supports-color - '@copilotkitnext/runtime@0.0.21-alpha.0(openai@5.12.2(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.11 '@ag-ui/core': 0.0.40-alpha.11 '@ag-ui/encoder': 0.0.40-alpha.11 - '@copilotkitnext/shared': 0.0.21-alpha.0 + '@copilotkitnext/shared': 0.0.21 cors: 2.8.5 express: 4.21.2 hono: 4.10.3 @@ -12050,16 +12055,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@copilotkitnext/shared@0.0.21-alpha.0': + '@copilotkitnext/shared@0.0.21': dependencies: '@ag-ui/client': 0.0.40-alpha.11 partial-json: 0.1.7 uuid: 11.1.0 - '@copilotkitnext/web-inspector@0.0.21-alpha.0': + '@copilotkitnext/web-inspector@0.0.21': dependencies: '@ag-ui/client': 0.0.40-alpha.11 - '@copilotkitnext/core': 0.0.21-alpha.0 + '@copilotkitnext/core': 0.0.21 lit: 3.3.1 lucide: 0.525.0 @@ -18355,7 +18360,7 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.13.2(debug@4.4.3)) + retry-axios: 2.6.0(axios@1.13.2) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color @@ -21207,7 +21212,7 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - retry-axios@2.6.0(axios@1.13.2(debug@4.4.3)): + retry-axios@2.6.0(axios@1.13.2): dependencies: axios: 1.13.2(debug@4.4.3) From 981e1cee3c13dbc35b854a339b18ab6afc206fb9 Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Fri, 7 Nov 2025 08:02:03 -0800 Subject: [PATCH 113/113] chore: Update to latest CPK build --- apps/dojo/package.json | 10 +++---- pnpm-lock.yaml | 64 +++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/dojo/package.json b/apps/dojo/package.json index d6eedd50c..c429c40c9 100644 --- a/apps/dojo/package.json +++ b/apps/dojo/package.json @@ -26,11 +26,11 @@ "@ag-ui/spring-ai": "workspace:*", "@ag-ui/vercel-ai-sdk": "workspace:*", "@ai-sdk/openai": "^2.0.57", - "@copilotkit/react-core": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/react-ui": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/runtime": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/runtime-client-gql": "0.0.0-feat-cpk-1-5-20251106162323", - "@copilotkit/shared": "0.0.0-feat-cpk-1-5-20251106162323", + "@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", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d786a46f..69110f6a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -128,20 +128,20 @@ importers: specifier: ^2.0.57 version: 2.0.57(zod@3.25.76) '@copilotkit/react-core': - specifier: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(@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) + 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: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(@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) + 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: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(11e8d990ef61bbafaa75597e5e9ed522) + specifier: 0.0.0-feat-cpk-1-5-20251107155707 + version: 0.0.0-feat-cpk-1-5-20251107155707(11e8d990ef61bbafaa75597e5e9ed522) '@copilotkit/runtime-client-gql': - specifier: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323(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: 0.0.0-feat-cpk-1-5-20251106162323 - version: 0.0.0-feat-cpk-1-5-20251106162323 + 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 @@ -1597,8 +1597,8 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-vAO9ufGEYKsZPGqi9o5qcJ2Yf7LmPnZdHIh/k19FbjvEigYDpG6v1Bi5Ef4WxqsHQES4p569IV7/799cs+kUHw==} + '@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 @@ -1606,19 +1606,19 @@ packages: react-dom: ^18 || ^19 || ^19.0.0-rc zod: '>=3.0.0' - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-udhP9iu3A8VXx9ts8mSeOK7A9NWnNwG9PaLbyr7NPoEBMZ9uo8NO90r99ISYdb4hBYx2zF6mzZMdMoozeDsFBw==} + '@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@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-wUuN0IKI/ANp8D1A3VjUaQ1saIqW6ae6PVdIK4M75q0mdtaAqB6XA6+ZpPdJF5+BtAvUnEVqva9cxvQZnfm8MQ==} + '@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-20251106162323': - resolution: {integrity: sha512-NnMncK27lML4/LKqAWVf18AduuT+SgIGmJWLpZMZ/xjo34oySuukS55YpIlmo+6UXGqQAnO0Qr4+ko95NnOltQ==} + '@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' @@ -1635,8 +1635,8 @@ packages: '@ag-ui/langgraph': '>=0.0.18' '@ag-ui/proto': '>=0.0.39' - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': - resolution: {integrity: sha512-5978NLJeoTLTWqB0sA0yNDmyy6nFvdXGkxCVH3QHR2IWsG9BGUe6xzU7H34pVlYLGMwYzJlS9rf6NlU5P3iEyg==} + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251107155707': + resolution: {integrity: sha512-O7iK4bhxPH8rU+1KSSAae8S8A5RYXCz1oeoJchafNhbnozXtOfHdlV2D0VHHYqadiiVVbCH2XHiIItZSpl5wIg==} '@copilotkit/shared@1.10.6': resolution: {integrity: sha512-56Rltf4fDBqCpl1ZXARypt5NdE4LTg3tGPPLurZpgPmm31Lv5EAHpfjC7I55vt9A0mXWlTCHtCrpiaAlTyzGJw==} @@ -11550,10 +11550,10 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@copilotkit/react-core@0.0.0-feat-cpk-1-5-20251106162323(@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-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': 0.0.0-feat-cpk-1-5-20251106162323(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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 @@ -11568,11 +11568,11 @@ snapshots: - graphql - supports-color - '@copilotkit/react-ui@0.0.0-feat-cpk-1-5-20251106162323(@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@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': 0.0.0-feat-cpk-1-5-20251106162323(@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-20251106162323(graphql@16.11.0)(react@19.2.0) - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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 @@ -11590,9 +11590,9 @@ snapshots: - supports-color - zod - '@copilotkit/runtime-client-gql@0.0.0-feat-cpk-1-5-20251106162323(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': 0.0.0-feat-cpk-1-5-20251106162323 + '@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 @@ -11601,7 +11601,7 @@ snapshots: - encoding - graphql - '@copilotkit/runtime@0.0.0-feat-cpk-1-5-20251106162323(11e8d990ef61bbafaa75597e5e9ed522)': + '@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 @@ -11609,7 +11609,7 @@ snapshots: '@ag-ui/langgraph': link:integrations/langgraph/typescript '@ag-ui/proto': link:sdks/typescript/packages/proto '@anthropic-ai/sdk': 0.57.0 - '@copilotkit/shared': 0.0.0-feat-cpk-1-5-20251106162323 + '@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) @@ -11968,7 +11968,7 @@ snapshots: - ws - youtubei.js - '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251106162323': + '@copilotkit/shared@0.0.0-feat-cpk-1-5-20251107155707': dependencies: '@ag-ui/core': 0.0.37 '@segment/analytics-node': 2.3.0