diff --git a/packages/mcp-cloudflare/package.json b/packages/mcp-cloudflare/package.json index c2d91316d..2edda60f8 100644 --- a/packages/mcp-cloudflare/package.json +++ b/packages/mcp-cloudflare/package.json @@ -50,6 +50,7 @@ "@ai-sdk/react": "catalog:", "@cloudflare/workers-oauth-provider": "catalog:", "@modelcontextprotocol/sdk": "catalog:", + "@modelcontextprotocol/server": "catalog:", "@radix-ui/react-accordion": "catalog:", "@radix-ui/react-slot": "catalog:", "@sentry/cloudflare": "catalog:", diff --git a/packages/mcp-cloudflare/src/server/lib/mcp-handler.ts b/packages/mcp-cloudflare/src/server/lib/mcp-handler.ts index 40788d36c..d681d89bb 100644 --- a/packages/mcp-cloudflare/src/server/lib/mcp-handler.ts +++ b/packages/mcp-cloudflare/src/server/lib/mcp-handler.ts @@ -13,13 +13,12 @@ */ import type { ExportedHandler } from "@cloudflare/workers-types"; -import { CfWorkerJsonSchemaValidator } from "@modelcontextprotocol/sdk/validation/cfworker"; import * as Sentry from "@sentry/cloudflare"; import { buildServer } from "@sentry/mcp-core/server"; import { ACTIVE_SKILLS, - parseSkills, type Skill, + parseSkills, } from "@sentry/mcp-core/skills"; import { logWarn } from "@sentry/mcp-core/telem/logging"; import type { ServerContext } from "@sentry/mcp-core/types"; @@ -450,20 +449,23 @@ async function handleAuthenticatedMcpRequest( auth.kind === "oauth" ? auth.onUpstreamUnauthorized : undefined, }; - // Create and configure MCP server with tools filtered by context - // Context is captured in tool handler closures during buildServer() - // Use CfWorkerJsonSchemaValidator for Cloudflare Workers (ajv is not compatible with workerd) - const server = buildServer({ - context: serverContext, - agentMode: isAgentMode, - experimentalMode: isExperimentalMode, - jsonSchemaValidator: new CfWorkerJsonSchemaValidator(), - }); - - // Run MCP handler - context already captured in closures - return createMcpHandler(server, { - route: url.pathname, - })(request, env, ctx); + // The modern handler requires a factory and creates a fresh SDK v2 server + // for every request. Context remains request-scoped through tool closures. + return createMcpHandler( + () => + buildServer({ + context: serverContext, + agentMode: isAgentMode, + experimentalMode: isExperimentalMode, + sdkVersion: "v2", + }), + { + route: url.pathname, + // The Agents handler rejects browser Origins by default except localhost. + // Permit only the hostname serving this authenticated endpoint. + allowedOriginHostnames: [url.hostname], + }, + )(request, env, ctx); } /** diff --git a/packages/mcp-cloudflare/src/test-utils/ajv-stub.ts b/packages/mcp-cloudflare/src/test-utils/ajv-stub.ts index 547825d9a..78739144c 100644 --- a/packages/mcp-cloudflare/src/test-utils/ajv-stub.ts +++ b/packages/mcp-cloudflare/src/test-utils/ajv-stub.ts @@ -1,12 +1,13 @@ /** * Stub for ajv module to bypass CJS require() issues in workerd runtime. * - * The MCP SDK imports ajv at module level (even when using CfWorkerJsonSchemaValidator). - * ajv uses CJS require() for JSON files which fails in workerd. + * The legacy MCP SDK imports ajv at module level even though the hosted v2 path + * uses the SDK's workerd-compatible default validator. ajv uses CJS require() + * for JSON files which fails in workerd. * See: https://github.com/cloudflare/workers-sdk/issues/9822 * - * This stub provides the minimal API surface that the SDK imports, - * but is never actually used since we use CfWorkerJsonSchemaValidator. + * This stub provides the minimal API surface required by that legacy import; + * hosted MCP requests do not invoke it. */ export class Ajv { diff --git a/packages/mcp-cloudflare/vitest.config.ts b/packages/mcp-cloudflare/vitest.config.ts index 107a16573..4f7f9f85f 100644 --- a/packages/mcp-cloudflare/vitest.config.ts +++ b/packages/mcp-cloudflare/vitest.config.ts @@ -33,12 +33,13 @@ export default defineConfig({ /** * Workaround for ajv CJS compatibility in workerd runtime. * - * The MCP SDK imports ajv at module level (even when using CfWorkerJsonSchemaValidator). - * ajv uses CJS require() for JSON files which fails in workerd. + * The legacy MCP SDK imports ajv at module level even though hosted requests use + * the v2 SDK's workerd-compatible default validator. ajv uses CJS require() for + * JSON files which fails in workerd. * See: https://github.com/cloudflare/workers-sdk/issues/9822 * - * This is TEST-ONLY - production uses CfWorkerJsonSchemaValidator which - * doesn't actually invoke ajv, but the import still triggers the CJS issue. + * This is TEST-ONLY: hosted MCP requests do not invoke ajv, but importing the + * legacy SDK still triggers the CJS issue. */ resolve: { alias: { diff --git a/packages/mcp-core/package.json b/packages/mcp-core/package.json index a0e0066c5..ec7ae7080 100644 --- a/packages/mcp-core/package.json +++ b/packages/mcp-core/package.json @@ -167,6 +167,7 @@ "@logtape/logtape": "^1.1.1", "@logtape/sentry": "^1.1.1", "@modelcontextprotocol/sdk": "catalog:", + "@modelcontextprotocol/server": "catalog:", "@sentry/core": "catalog:", "ai": "catalog:", "dotenv": "catalog:", diff --git a/packages/mcp-core/src/server.test.ts b/packages/mcp-core/src/server.test.ts index fc9a5e203..af187801d 100644 --- a/packages/mcp-core/src/server.test.ts +++ b/packages/mcp-core/src/server.test.ts @@ -1,12 +1,13 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js"; +import { McpServer as ModernMcpServer } from "@modelcontextprotocol/server"; import { type Span, setUser, startSpan } from "@sentry/core"; +import { mswServer } from "@sentry/mcp-server-mocks"; import { http, HttpResponse } from "msw"; import { beforeEach, describe, expect, it, vi } from "vitest"; -import { mswServer } from "@sentry/mcp-server-mocks"; import { z } from "zod"; -import { buildServer } from "./server"; import { structuredResult } from "./internal/tool-helpers/results"; +import { buildServer } from "./server"; import type { Skill } from "./skills"; import { getGeneratedTextFromStructuredContent, @@ -152,6 +153,38 @@ describe("buildServer", () => { ...options, }); + it("registers and executes tools with the SDK v2 server", async () => { + const server = buildServer({ + context: baseContext, + tools: { + v2_tool: createMockTool("v2_tool", { + inputSchema: { value: z.string() }, + handler: async ({ value }) => `v2:${value}`, + }), + }, + sdkVersion: "v2", + }); + + expect(server).toBeInstanceOf(ModernMcpServer); + const registeredTools = ( + server as unknown as { + _registeredTools: Record< + string, + { + handler: (params: Record) => Promise; + } + >; + } + )._registeredTools; + + expect(registeredTools.v2_tool).toBeDefined(); + await expect( + registeredTools.v2_tool?.handler({ value: "ok" }), + ).resolves.toMatchObject({ + content: [{ type: "text", text: "v2:ok" }], + }); + }); + describe("telemetry context", () => { it("generates compatibility text for structured-only tool output", async () => { const server = buildServer({ diff --git a/packages/mcp-core/src/server.ts b/packages/mcp-core/src/server.ts index e127bbd49..fc1406ea7 100644 --- a/packages/mcp-core/src/server.ts +++ b/packages/mcp-core/src/server.ts @@ -1,4 +1,4 @@ -import type { ServerOptions } from "@modelcontextprotocol/sdk/server/index.js"; +import { McpServer as LegacyMcpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; /** * MCP Server Configuration and Request Handling Infrastructure. * @@ -19,8 +19,8 @@ import type { ServerOptions } from "@modelcontextprotocol/sdk/server/index.js"; * }); * ``` */ -import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; +import { McpServer as ModernMcpServer } from "@modelcontextprotocol/server"; import { type SpanAttributeValue, getActiveSpan, @@ -34,11 +34,10 @@ import { formatErrorForUser } from "./internal/error-handling"; import type { Skill } from "./skills"; import { type LogIssueOptions, logIssue } from "./telem/logging"; import { - type RegisteredToolHandlerExtra, type ToolRegistry, executeToolHandler, - getFilteredInputSchema, getAvailableTools, + getFilteredInputSchema, injectConstraintParams, resolveToolDescription, } from "./tools/catalog-runtime/availability"; @@ -123,70 +122,65 @@ function structuredOutputToCallToolResult( * await startStdio(server, context); * ``` * - * @example Usage with Cloudflare Workers - * ```typescript - * import { buildServer } from "@sentry/mcp-core/server"; - * import { createMcpHandler } from "agents/mcp"; - * import { CfWorkerJsonSchemaValidator } from "@modelcontextprotocol/sdk/validation/cfworker"; - * - * const serverContext = buildContextFromOAuth(); - * // Context is captured in closures during buildServer() - * // Use CfWorkerJsonSchemaValidator for Cloudflare Workers (ajv is not compatible) - * const server = buildServer({ - * context: serverContext, - * jsonSchemaValidator: new CfWorkerJsonSchemaValidator(), - * }); - * - * // Context already available to tool handlers via closures - * return createMcpHandler(server, { route: "/mcp" })(request, env, ctx); - * ``` */ +type McpServer = LegacyMcpServer | ModernMcpServer; + +type BuildServerOptions = { + context: ServerContext; + agentMode?: boolean; + experimentalMode?: boolean; + tools?: ToolRegistry; +}; + +export function buildServer( + options: BuildServerOptions & { sdkVersion: "v2" }, +): ModernMcpServer; +export function buildServer(options: BuildServerOptions): LegacyMcpServer; export function buildServer({ context, agentMode = false, experimentalMode = false, tools: customTools, - jsonSchemaValidator, -}: { - context: ServerContext; - agentMode?: boolean; - experimentalMode?: boolean; - tools?: ToolRegistry; - /** - * JSON Schema validator for MCP protocol validation. - * - * By default, uses AjvJsonSchemaValidator which requires Node.js. - * For Cloudflare Workers or other edge runtimes, use CfWorkerJsonSchemaValidator: - * - * ```typescript - * import { CfWorkerJsonSchemaValidator } from "@modelcontextprotocol/sdk/validation/cfworker"; - * buildServer({ context, jsonSchemaValidator: new CfWorkerJsonSchemaValidator() }); - * ``` - */ - jsonSchemaValidator?: ServerOptions["jsonSchemaValidator"]; + sdkVersion = "v1", +}: BuildServerOptions & { + sdkVersion?: "v1" | "v2"; }): McpServer { - const server = new McpServer( - { - name: MCP_SERVER_NAME, - version: LIB_VERSION, - }, - { jsonSchemaValidator }, - ); - const contextWithModes: ServerContext = { ...context, agentMode, experimentalMode, }; + const serverInfo = { + name: MCP_SERVER_NAME, + version: LIB_VERSION, + }; - configureServer({ + if (sdkVersion === "v2") { + const server = new ModernMcpServer(serverInfo); + const registrations = configureServer({ + server, + context: contextWithModes, + agentMode, + experimentalMode, + tools: customTools, + }); + for (const { name, config, handler } of registrations) { + server.registerTool(name, config, handler); + } + return wrapMcpServerWithSentry(server); + } + + const server = new LegacyMcpServer(serverInfo); + const registrations = configureServer({ server, context: contextWithModes, agentMode, experimentalMode, tools: customTools, }); - + for (const { name, config, handler } of registrations) { + server.registerTool(name, config, handler); + } return wrapMcpServerWithSentry(server); } @@ -212,6 +206,7 @@ function configureServer({ experimentalMode?: boolean; tools?: ToolRegistry; }) { + const registrations = []; const registry: ToolRegistry = agentMode ? { use_sentry: tools.use_sentry } : (customTools ?? tools); @@ -267,183 +262,185 @@ function configureServer({ directToolNames: contextWithToolAvailability.directToolNames, }); - server.registerTool( - tool.name, - { - description: resolvedDescription, - inputSchema: filteredInputSchema, - outputSchema: tool.outputSchema, - annotations: tool.annotations, - }, - async (params: unknown, extra: RegisteredToolHandlerExtra) => { - // Get the active MCP server span and attach request-scoped attributes. - const activeSpan = getActiveSpan(); - - if (activeSpan) { - activeSpan.setAttribute("app.server.mode.agent", agentMode); - activeSpan.setAttribute( - "app.server.mode.experimental", - experimentalMode, - ); - if (context.transport) { - activeSpan.setAttribute("app.transport", context.transport); - } - if (context.clientFamily) { - activeSpan.setAttribute("app.client.family", context.clientFamily); - } - if (context.constraints.organizationSlug) { - activeSpan.setAttribute( - "app.constraint.organization_slug", - context.constraints.organizationSlug, - ); - } - if (context.constraints.projectSlug) { - activeSpan.setAttribute( - "app.constraint.project_slug", - context.constraints.projectSlug, - ); - } - if (grantedSkillIds?.length) { - for (const skill of grantedSkillIds) { - activeSpan.setAttribute( - getSkillGrantedAttributeName(skill), - true, - ); - } - } - } + const toolRegistration = { + description: resolvedDescription, + inputSchema: filteredInputSchema, + outputSchema: tool.outputSchema, + annotations: tool.annotations, + }; + const handleToolCall = async (params: unknown): Promise => { + // Get the active MCP server span and attach request-scoped attributes. + const activeSpan = getActiveSpan(); - if (context.userId) { - const user = { - id: context.userId, - ...(context.userIpAddress - ? { ip_address: context.userIpAddress } - : {}), - }; - setUser(user); - } - if (context.clientId) { - setTag("client.id", context.clientId); + if (activeSpan) { + activeSpan.setAttribute("app.server.mode.agent", agentMode); + activeSpan.setAttribute( + "app.server.mode.experimental", + experimentalMode, + ); + if (context.transport) { + activeSpan.setAttribute("app.transport", context.transport); } if (context.clientFamily) { - setTag("app.client.family", context.clientFamily); + activeSpan.setAttribute("app.client.family", context.clientFamily); } - if (context.transport) { - setTag("app.transport", context.transport); + if (context.constraints.organizationSlug) { + activeSpan.setAttribute( + "app.constraint.organization_slug", + context.constraints.organizationSlug, + ); } - setTag("app.server.mode.agent", agentMode); - setTag("app.server.mode.experimental", experimentalMode); - - try { - const rawParams = - params && typeof params === "object" && !Array.isArray(params) - ? (params as Record) - : {}; - // Apply constraints as parameters, handling aliases (e.g., projectSlug → projectSlugOrId) - const paramsWithConstraints = injectConstraintParams( - rawParams, - tool, - contextWithToolAvailability, + if (context.constraints.projectSlug) { + activeSpan.setAttribute( + "app.constraint.project_slug", + context.constraints.projectSlug, ); - - if (activeSpan) { - // Intentional GenAI semconv extension: per-key attrs like http.request.header.. - for (const [key, value] of Object.entries(paramsWithConstraints)) { - const attributeValue = - value == null || typeof value === "object" - ? JSON.stringify(value) - : value; - activeSpan.setAttribute( - `gen_ai.tool.call.arguments.${key}`, - attributeValue as SpanAttributeValue | undefined, - ); - } + } + if (grantedSkillIds?.length) { + for (const skill of grantedSkillIds) { + activeSpan.setAttribute(getSkillGrantedAttributeName(skill), true); } + } + } - const output = await executeToolHandler({ - tool, - params: rawParams, - context: contextWithToolAvailability, - }); + if (context.userId) { + const user = { + id: context.userId, + ...(context.userIpAddress + ? { ip_address: context.userIpAddress } + : {}), + }; + setUser(user); + } + if (context.clientId) { + setTag("client.id", context.clientId); + } + if (context.clientFamily) { + setTag("app.client.family", context.clientFamily); + } + if (context.transport) { + setTag("app.transport", context.transport); + } + setTag("app.server.mode.agent", agentMode); + setTag("app.server.mode.experimental", experimentalMode); - if (activeSpan) { - activeSpan.setStatus({ - code: 1, // ok - }); - } + try { + const rawParams = + params && typeof params === "object" && !Array.isArray(params) + ? (params as Record) + : {}; + // Apply constraints as parameters, handling aliases (e.g., projectSlug → projectSlugOrId) + const paramsWithConstraints = injectConstraintParams( + rawParams, + tool, + contextWithToolAvailability, + ); - // if the tool returns a string, assume it's a message - if (typeof output === "string") { - return { - content: [ - { - type: "text" as const, - text: output, - }, - ], - }; - } - // if the tool returns a list, assume it's a content list - if (Array.isArray(output)) { - return { - content: output, - }; - } - // Some tools return a full MCP CallToolResult for custom content - // payloads such as images or resources. - if (isCallToolResult(output)) { - return output; - } - if (isStructuredToolOutput(output)) { - return structuredOutputToCallToolResult(output); - } - throw new Error(`Invalid tool output: ${output}`); - } catch (error) { - if (activeSpan) { - activeSpan.setStatus({ - code: 2, // error - }); - activeSpan.recordException(error); + if (activeSpan) { + // Intentional GenAI semconv extension: per-key attrs like http.request.header.. + for (const [key, value] of Object.entries(paramsWithConstraints)) { + const attributeValue = + value == null || typeof value === "object" + ? JSON.stringify(value) + : value; + activeSpan.setAttribute( + `gen_ai.tool.call.arguments.${key}`, + attributeValue as SpanAttributeValue | undefined, + ); } + } - // Upstream 401 during a tool call — route via the transport so it - // can revoke the MCP grant; swallow callback errors since the - // formatted tool response still needs to land. - if ( - isApiAuthenticationErrorDeep(error) && - context.onUpstreamUnauthorized - ) { - try { - await context.onUpstreamUnauthorized(); - } catch {} - } + const output = await executeToolHandler({ + tool, + params: rawParams, + context: contextWithToolAvailability, + }); + + if (activeSpan) { + activeSpan.setStatus({ + code: 1, // ok + }); + } - // CRITICAL: Tool errors MUST be returned as formatted text responses, - // NOT thrown as exceptions. This ensures consistent error handling - // and prevents the MCP client from receiving raw error objects. - // - // The formatErrorForUser function provides user-friendly error messages - // with appropriate formatting for different error types: - // - UserInputError: Clear guidance for fixing input problems - // - ConfigurationError: Clear guidance for fixing configuration issues - // - LLMProviderError: Clear messaging for AI provider availability issues - // - ApiError: HTTP status context with helpful messaging - // - System errors: Sentry event IDs for debugging - // - // DO NOT change this to throw error - it breaks error handling! + // if the tool returns a string, assume it's a message + if (typeof output === "string") { return { content: [ { type: "text" as const, - text: await formatErrorForUser(error, { - transport: context.transport, - }), + text: output, }, ], - isError: true, }; } - }, - ); + // if the tool returns a list, assume it's a content list + if (Array.isArray(output)) { + return { + content: output, + }; + } + // Some tools return a full MCP CallToolResult for custom content + // payloads such as images or resources. + if (isCallToolResult(output)) { + return output; + } + if (isStructuredToolOutput(output)) { + return structuredOutputToCallToolResult(output); + } + throw new Error(`Invalid tool output: ${output}`); + } catch (error) { + if (activeSpan) { + activeSpan.setStatus({ + code: 2, // error + }); + activeSpan.recordException(error); + } + + // Upstream 401 during a tool call — route via the transport so it + // can revoke the MCP grant; swallow callback errors since the + // formatted tool response still needs to land. + if ( + isApiAuthenticationErrorDeep(error) && + context.onUpstreamUnauthorized + ) { + try { + await context.onUpstreamUnauthorized(); + } catch {} + } + + // CRITICAL: Tool errors MUST be returned as formatted text responses, + // NOT thrown as exceptions. This ensures consistent error handling + // and prevents the MCP client from receiving raw error objects. + // + // The formatErrorForUser function provides user-friendly error messages + // with appropriate formatting for different error types: + // - UserInputError: Clear guidance for fixing input problems + // - ConfigurationError: Clear guidance for fixing configuration issues + // - LLMProviderError: Clear messaging for AI provider availability issues + // - ApiError: HTTP status context with helpful messaging + // - System errors: Sentry event IDs for debugging + // + // DO NOT change this to throw error - it breaks error handling! + return { + content: [ + { + type: "text" as const, + text: await formatErrorForUser(error, { + transport: context.transport, + }), + }, + ], + isError: true, + }; + } + }; + + registrations.push({ + name: tool.name, + config: toolRegistration, + handler: handleToolCall, + }); } + + return registrations; } diff --git a/packages/mcp-core/src/tools/special/use-sentry/handler.ts b/packages/mcp-core/src/tools/special/use-sentry/handler.ts index a49b1b87e..3117a476f 100644 --- a/packages/mcp-core/src/tools/special/use-sentry/handler.ts +++ b/packages/mcp-core/src/tools/special/use-sentry/handler.ts @@ -1,13 +1,13 @@ -import { z } from "zod"; -import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js"; import { experimental_createMCPClient } from "@ai-sdk/mcp"; +import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js"; +import { z } from "zod"; +import type { ToolCall } from "../../../internal/agents/callEmbeddedAgent"; import { defineTool } from "../../../internal/tool-helpers/define"; -import type { ServerContext } from "../../../types"; -import { useSentryAgent } from "./agent"; import { buildServer } from "../../../server"; +import type { ServerContext } from "../../../types"; import tools from "../../index"; import { CATALOG_INFRASTRUCTURE_TOOL_NAMES } from "../../surfaces"; -import type { ToolCall } from "../../../internal/agents/callEmbeddedAgent"; +import { useSentryAgent } from "./agent"; /** * Format tool calls into a readable trace @@ -106,10 +106,6 @@ export default defineTool({ // Build internal MCP server with the provided context. // Context is captured in tool handler closures during buildServer(). - // We do not thread a jsonSchemaValidator here because the current SDK only - // uses it for elicitation responses, and use_sentry does not use elicitation - // today. If embedded-agent flows add elicitation later, Cloudflare agent mode - // will need to pass CfWorkerJsonSchemaValidator through this path as well. const server = buildServer({ context, experimentalMode: context.experimentalMode ?? false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 430657e6d..68cd8d274 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,8 +16,8 @@ catalogs: specifier: ^3.0.23 version: 3.0.23 '@ai-sdk/react': - specifier: ^3.0.66 - version: 3.0.66 + specifier: ^3.0.232 + version: 3.0.232 '@ast-grep/cli': specifier: ^0.43.0 version: 0.43.0 @@ -33,6 +33,9 @@ catalogs: '@cloudflare/workers-types': specifier: ^4.20260405.1 version: 4.20260405.1 + '@modelcontextprotocol/server': + specifier: 2.0.0-beta.4 + version: 2.0.0-beta.4 '@radix-ui/react-accordion': specifier: ^1.2.11 version: 1.2.11 @@ -73,8 +76,8 @@ catalogs: specifier: ^4.6.0 version: 4.6.0 agents: - specifier: ^0.3.10 - version: 0.3.10 + specifier: 0.0.0-d163561f + version: 0.0.0-d163561f ai: specifier: ^6.0.64 version: 6.0.64 @@ -118,11 +121,11 @@ catalogs: specifier: ^10.1.2 version: 10.1.2 react: - specifier: ^19.1.0 - version: 19.1.0 + specifier: ^19.1.8 + version: 19.2.7 react-dom: - specifier: ^19.1.0 - version: 19.1.0 + specifier: ^19.1.8 + version: 19.2.7 react-markdown: specifier: ^9.1.0 version: 9.1.0 @@ -173,7 +176,7 @@ catalogs: version: 4.4.3 overrides: - '@modelcontextprotocol/sdk': ^1.26.0 + '@modelcontextprotocol/sdk': 1.29.0 fast-xml-parser: 5.7.2 undici: ^7.24.4 @@ -219,10 +222,10 @@ importers: version: 1.4.0(typescript@5.8.3) vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) vitest-evals: specifier: 'catalog:' - version: 0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))) + version: 0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0))) devDependencies: '@types/json-schema': specifier: ^7.0.15 @@ -248,7 +251,7 @@ importers: version: 5.8.3 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) packages/mcp-cloudflare: dependencies: @@ -260,28 +263,31 @@ importers: version: 3.0.23(zod@4.4.3) '@ai-sdk/react': specifier: 'catalog:' - version: 3.0.66(react@19.1.0)(zod@4.4.3) + version: 3.0.232(react@19.2.7)(zod@4.4.3) '@cloudflare/workers-oauth-provider': specifier: 'catalog:' version: 0.3.0 '@modelcontextprotocol/sdk': - specifier: ^1.26.0 - version: 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + specifier: 1.29.0 + version: 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + '@modelcontextprotocol/server': + specifier: 'catalog:' + version: 2.0.0-beta.4 '@radix-ui/react-accordion': specifier: 'catalog:' - version: 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@radix-ui/react-slot': specifier: 'catalog:' - version: 1.2.3(@types/react@19.1.8)(react@19.1.0) + version: 1.2.3(@types/react@19.1.8)(react@19.2.7) '@sentry/cloudflare': specifier: 'catalog:' version: 10.54.0(@cloudflare/workers-types@4.20260405.1) '@sentry/react': specifier: 'catalog:' - version: 10.54.0(react@19.1.0) + version: 10.54.0(react@19.2.7) agents: specifier: 'catalog:' - version: 0.3.10(@ai-sdk/openai@3.0.23(zod@4.4.3))(@ai-sdk/react@3.0.66(react@19.1.0)(zod@4.4.3))(@cloudflare/ai-chat@0.0.4)(@cloudflare/codemode@0.3.4(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ai@6.0.64(zod@4.4.3))(zod@4.4.3))(@cloudflare/workers-types@4.20260405.1)(ai@6.0.64(zod@4.4.3))(react@19.1.0)(zod@4.4.3) + version: 0.0.0-d163561f(@ai-sdk/react@3.0.232(react@19.2.7)(zod@4.4.3))(@babel/core@7.28.0)(@babel/runtime@7.28.4)(@cloudflare/workers-types@4.20260405.1)(@modelcontextprotocol/client@2.0.0-beta.4)(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0-beta.4)(ai@6.0.64(zod@4.4.3))(react@19.2.7)(rolldown@1.0.0-beta.23)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))(zod@4.4.3) ai: specifier: 'catalog:' version: 6.0.64(zod@4.4.3) @@ -302,22 +308,22 @@ importers: version: 4.11.4 lucide-react: specifier: 'catalog:' - version: 0.503.0(react@19.1.0) + version: 0.503.0(react@19.2.7) react: specifier: 'catalog:' - version: 19.1.0 + version: 19.2.7 react-dom: specifier: 'catalog:' - version: 19.1.0(react@19.1.0) + version: 19.2.7(react@19.2.7) react-markdown: specifier: 'catalog:' - version: 9.1.0(@types/react@19.1.8)(react@19.1.0) + version: 9.1.0(@types/react@19.1.8)(react@19.2.7) react-router-dom: specifier: ^7.11.0 - version: 7.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 7.11.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) react-scroll-to-bottom: specifier: ^4.2.0 - version: 4.2.0(@babel/core@7.28.0)(react@19.1.0) + version: 4.2.0(@babel/core@7.28.0)(react@19.2.7) remark-gfm: specifier: 'catalog:' version: 4.0.1 @@ -410,8 +416,11 @@ importers: specifier: ^1.1.1 version: 1.1.1(@logtape/logtape@1.1.1) '@modelcontextprotocol/sdk': - specifier: ^1.26.0 - version: 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + specifier: 1.29.0 + version: 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + '@modelcontextprotocol/server': + specifier: 'catalog:' + version: 2.0.0-beta.4 '@sentry/core': specifier: 'catalog:' version: 10.54.0 @@ -456,8 +465,8 @@ importers: packages/mcp-server: dependencies: '@modelcontextprotocol/sdk': - specifier: ^1.26.0 - version: 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + specifier: 1.29.0 + version: 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) '@sentry/core': specifier: 'catalog:' version: 10.54.0 @@ -494,7 +503,7 @@ importers: version: 5.8.3 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) packages/mcp-server-evals: dependencies: @@ -505,8 +514,8 @@ importers: specifier: 'catalog:' version: 3.0.23(zod@4.4.3) '@modelcontextprotocol/sdk': - specifier: ^1.26.0 - version: 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + specifier: 1.29.0 + version: 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) '@sentry/mcp-core': specifier: workspace:* version: link:../mcp-core @@ -533,10 +542,10 @@ importers: version: 5.8.3 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) vitest-evals: specifier: 'catalog:' - version: 0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))) + version: 0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0))) zod: specifier: 'catalog:' version: 4.4.3 @@ -565,8 +574,8 @@ importers: specifier: 'catalog:' version: 3.0.23(zod@4.4.3) '@modelcontextprotocol/sdk': - specifier: ^1.26.0 - version: 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + specifier: 1.29.0 + version: 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) '@sentry/core': specifier: 'catalog:' version: 10.54.0 @@ -606,7 +615,7 @@ importers: version: 5.8.3 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) packages/smoke-tests: devDependencies: @@ -615,7 +624,7 @@ importers: version: 22.16.0 vitest: specifier: 'catalog:' - version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + version: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) packages: @@ -625,6 +634,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/gateway@3.0.153': + resolution: {integrity: sha512-R5r567od2Olqze/lL2dVS4wVOVyVqG6sJ3cEUI/kW12XQJYKf8fetyxWPYS0ZFe87QPcsh3Z3sDnrMAtAIiS3Q==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/gateway@3.0.29': resolution: {integrity: sha512-zf6yXT+7DcVGWG7ntxVCYC48X/opsWlO5ePvgH8W9DaEVUtkemqKUEzBqowQ778PkZo8sqMnRfD0+fi9HamRRQ==} engines: {node: '>=18'} @@ -649,12 +664,22 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@4.0.40': + resolution: {integrity: sha512-OL5IrpUm9Y8Dwy+w/vvFwPotS6m52O9W0op2oXgXdCROMJIBalBI0oro6OIBYkPxvm5Xg02GSkoQN25RlR0bnw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider@3.0.14': + resolution: {integrity: sha512-5X1k57JBJ4H7H1QjX7CnJYAB1I19r/trVZTMcSms7/kLNZ8RaU4Nt2agcwZzv82Hfx6Q7/TOLU7agAKeFfc8cA==} + engines: {node: '>=18'} + '@ai-sdk/provider@3.0.6': resolution: {integrity: sha512-hSfoJtLtpMd7YxKM+iTqlJ0ZB+kJ83WESMiWuWrNVey3X8gg97x0OdAAaeAeclZByCX3UdPOTqhvJdK8qYA3ww==} engines: {node: '>=18'} - '@ai-sdk/react@3.0.66': - resolution: {integrity: sha512-bYxfXaNErVDiUaNlvNXaX+3oKLAeEyHiReJd54i+JTD3HEgRuazHfggzL0MidPnFJmlSZDHRRTGXxhMYh426QA==} + '@ai-sdk/react@3.0.232': + resolution: {integrity: sha512-cfdwM3RMGYNO3RoF/Y61Mp1LEqdT6GyvOOAp7DNsgPyuybnTngoWFVYoLvsdBGYZImgaX1IXi6NLhXH9OY3VLg==} engines: {node: '>=18'} peerDependencies: react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 @@ -663,10 +688,6 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@apidevtools/json-schema-ref-parser@11.9.3': - resolution: {integrity: sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==} - engines: {node: '>= 16'} - '@ast-grep/cli-darwin-arm64@0.43.0': resolution: {integrity: sha512-0i63gSBbgriPaRpFsbP3yETxolHPK2JAZbpcGbFOytB7QTnKAguwhlKmIOkUGKfsCzYiEq1awY0EBmvjMONXOg==} engines: {node: '>= 10'} @@ -720,6 +741,10 @@ packages: resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} + '@babel/code-frame@8.0.0': + resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/compat-data@7.28.0': resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} engines: {node: '>=6.9.0'} @@ -732,14 +757,36 @@ packages: resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} engines: {node: '>=6.9.0'} + '@babel/generator@8.0.0': + resolution: {integrity: sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-annotate-as-pure@8.0.0': + resolution: {integrity: sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-compilation-targets@7.27.2': resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@8.0.1': + resolution: {integrity: sha512-++t3ZktzlLmASAxIlxeXQK9Z2YwUafYGYcvGBFevqOqt16HozVHStUoQvWD09fzAZOb/uJGpUTBuGK41AJAuOA==} + engines: {node: ^22.18.0 || >=24.11.0} + peerDependencies: + '@babel/core': ^8.0.0 + '@babel/helper-globals@7.28.0': resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} + '@babel/helper-globals@8.0.0': + resolution: {integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==} + engines: {node: ^22.18.0 || >=24.11.0} + + '@babel/helper-member-expression-to-functions@8.0.0': + resolution: {integrity: sha512-xkXrMbtk87Gk7+oKBVmBc6EORg/Qwx++AHESldmHkpvG8wgccdhJJFwrzqlF382Fk8wfXhJHWE/g/43QvEGNPQ==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} @@ -750,18 +797,46 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@8.0.0': + resolution: {integrity: sha512-3W6satvtPuCUkUx63S2jMoW9EQNYkADgs1HTfufmL7gCmAulHMKupA/12WNz4A0GMMFn/YnWWwqOT9IZrJHQjg==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-plugin-utils@7.27.1': resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@8.0.1': + resolution: {integrity: sha512-3PKFgjTyPlhFhorfP+SjKQxLViIL++zWjFOO4hGriYU+Bsm983DxEM1JmDRJVWXV0O9npu+xXRqz7Pbd3mh70g==} + engines: {node: ^22.18.0 || >=24.11.0} + peerDependencies: + '@babel/core': ^8.0.0 + + '@babel/helper-replace-supers@8.0.1': + resolution: {integrity: sha512-B1SZADIcy3tmH8CmWvj4SHi/oAPom4UL3uknTc2QRNsPVLFk/sPnZvQL/8kj7Y5omvjMqie0vklvs6XM4OLW5Q==} + engines: {node: ^22.18.0 || >=24.11.0} + peerDependencies: + '@babel/core': ^8.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@8.0.0': + resolution: {integrity: sha512-xmCA9kP3IhySsqhzwIdWGlDN/1A4cCKNBO/uwZx/3YzmDoMePwno2Q5/Bq0q+tYaKbeF940YiKV/kaW8Mzvpjw==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@8.0.0': + resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-validator-identifier@7.27.1': resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@8.0.4': + resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -775,6 +850,23 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@8.0.4': + resolution: {integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==} + engines: {node: ^22.18.0 || >=24.11.0} + hasBin: true + + '@babel/plugin-proposal-decorators@8.0.2': + resolution: {integrity: sha512-+C6O6KKXU7BBq1GNaIkFJxrALUVGRcr+WeWm4OcuRl3h+l/CmNfcTLMrT2Lm3uvGBimBH/8pEBRrXJFLoO67Gg==} + engines: {node: ^22.18.0 || >=24.11.0} + peerDependencies: + '@babel/core': ^8.0.0 + + '@babel/plugin-syntax-decorators@8.0.1': + resolution: {integrity: sha512-NI+0S/6MvR6GlcQFwjDZ+WIc2qvG6TXN534lYs9llNldwW4b7Dh6KTtk030FA0xWdYGs4t1lWo+OEWN8wGB+Nw==} + engines: {node: ^22.18.0 || >=24.11.0} + peerDependencies: + '@babel/core': ^8.0.0 + '@babel/plugin-transform-react-jsx-self@7.27.1': resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} engines: {node: '>=6.9.0'} @@ -803,14 +895,26 @@ packages: resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} + '@babel/template@8.0.0': + resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/traverse@7.28.0': resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} engines: {node: '>=6.9.0'} + '@babel/traverse@8.0.4': + resolution: {integrity: sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/types@7.28.0': resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} engines: {node: '>=6.9.0'} + '@babel/types@8.0.4': + resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==} + engines: {node: ^22.18.0 || >=24.11.0} + '@biomejs/biome@1.9.4': resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} engines: {node: '>=14.21.3'} @@ -886,18 +990,10 @@ packages: '@clack/prompts@0.8.2': resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} - '@cloudflare/ai-chat@0.0.4': - resolution: {integrity: sha512-NGQRt34X/UI+mx9fss7LmTTNBDVlFrtu+7JFoaykLUI738w9gjDplsMbOenCRbSr7UW4ngHGnv3YWUmV99eEnQ==} - peerDependencies: - agents: ^0.3.4 - ai: ^6.0.0 - react: ^19.0.0 - zod: ^3.25.0 || ^4.0.0 - - '@cloudflare/codemode@0.3.4': - resolution: {integrity: sha512-GDzPUnEqgp9qBNYvrjoO1iODXtOjWVhbyvVE40TJ/oaYvHsOgsaws4TnIKDM/+JK8uG3S3GAJ2+ixDIEuicIdw==} + '@cloudflare/codemode@0.4.3': + resolution: {integrity: sha512-S6LIqj/NnmFRFxm3j0tPEGMF8HQF5DpV7sQg/W+U48YmnznTKOBcbS8eiV7SxBpIITLuMBcL4KpTDm1RDL20pA==} peerDependencies: - '@modelcontextprotocol/sdk': ^1.26.0 + '@modelcontextprotocol/sdk': 1.29.0 '@tanstack/ai': '>=0.8.0 <1.0.0' ai: ^6.0.0 zod: ^4.0.0 @@ -1075,6 +1171,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.28.1': + resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.5': resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} engines: {node: '>=18'} @@ -1087,6 +1189,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.28.1': + resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.5': resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} engines: {node: '>=18'} @@ -1099,6 +1207,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.28.1': + resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.5': resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} engines: {node: '>=18'} @@ -1111,6 +1225,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.28.1': + resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.5': resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} engines: {node: '>=18'} @@ -1123,6 +1243,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.28.1': + resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.5': resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} engines: {node: '>=18'} @@ -1135,6 +1261,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.28.1': + resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.5': resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} engines: {node: '>=18'} @@ -1147,6 +1279,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.28.1': + resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.5': resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} engines: {node: '>=18'} @@ -1159,6 +1297,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.28.1': + resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.5': resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} engines: {node: '>=18'} @@ -1171,6 +1315,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.28.1': + resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.5': resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} engines: {node: '>=18'} @@ -1183,6 +1333,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.28.1': + resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.5': resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} engines: {node: '>=18'} @@ -1195,6 +1351,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.28.1': + resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.5': resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} engines: {node: '>=18'} @@ -1207,6 +1369,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.28.1': + resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.5': resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} engines: {node: '>=18'} @@ -1219,6 +1387,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.28.1': + resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.5': resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} engines: {node: '>=18'} @@ -1231,6 +1405,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.28.1': + resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.5': resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} engines: {node: '>=18'} @@ -1243,6 +1423,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.28.1': + resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.5': resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} engines: {node: '>=18'} @@ -1255,6 +1441,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.28.1': + resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.5': resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} engines: {node: '>=18'} @@ -1267,6 +1459,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.28.1': + resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.5': resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} engines: {node: '>=18'} @@ -1279,6 +1477,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.28.1': + resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.5': resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} engines: {node: '>=18'} @@ -1291,6 +1495,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.28.1': + resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.5': resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} engines: {node: '>=18'} @@ -1303,6 +1513,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.28.1': + resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.5': resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} engines: {node: '>=18'} @@ -1315,12 +1531,24 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.28.1': + resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openharmony-arm64@0.27.3': resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.28.1': + resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.5': resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} engines: {node: '>=18'} @@ -1333,6 +1561,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.28.1': + resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.5': resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} engines: {node: '>=18'} @@ -1345,6 +1579,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.28.1': + resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.5': resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} engines: {node: '>=18'} @@ -1357,6 +1597,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.28.1': + resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.5': resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} engines: {node: '>=18'} @@ -1369,6 +1615,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.28.1': + resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@hono/node-server@1.19.9': resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} engines: {node: '>=18.14.1'} @@ -1703,9 +1955,6 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@jsdevtools/ono@7.1.3': - resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - '@jsdoc/salty@0.2.9': resolution: {integrity: sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==} engines: {node: '>=v12.0.0'} @@ -1718,8 +1967,16 @@ packages: peerDependencies: '@logtape/logtape': ^1.1.1 - '@modelcontextprotocol/sdk@1.26.0': - resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} + '@modelcontextprotocol/client@2.0.0-beta.4': + resolution: {integrity: sha512-VNHA/UXDk7mCpVl+jOg5B4WMRRD2OEl+it360Lhi6HiCbrIB2f6pZ0cqSDKXQVUtZvqnhdQHzZAM9h8EKWhq/A==} + engines: {node: '>=20'} + + '@modelcontextprotocol/core@2.0.0-beta.4': + resolution: {integrity: sha512-nsMXd4wQBKzmph6r+WOhum+mXjDYljTAqwY/XUg3hLtvNOQ8+JVqBSJOVCMJvx9lXhTpTOPrGZ3BuNiaNPjSvg==} + engines: {node: '>=20'} + + '@modelcontextprotocol/sdk@1.29.0': + resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -1728,6 +1985,10 @@ packages: '@cfworker/json-schema': optional: true + '@modelcontextprotocol/server@2.0.0-beta.4': + resolution: {integrity: sha512-pjMZcNEt1dOq0aJCcY3b7w1Ayh+qmQN2xlfTELcGV9yiAjEGIczBPBLWWW0k0zzo5T8kiv15jtKPsWeHGxLvLg==} + engines: {node: '>=20'} + '@mswjs/interceptors@0.39.2': resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} engines: {node: '>=18'} @@ -2027,6 +2288,23 @@ packages: cpu: [x64] os: [win32] + '@rolldown/plugin-babel@0.2.3': + resolution: {integrity: sha512-+zEk16yGlz1F9STiRr6uG9hmIXb6nprjLczV/htGptYuLoCuxb+itZ03RKCEeOhBpDDd1NU7qF6x1VLMUp62bw==} + engines: {node: '>=22.12.0 || ^24.0.0'} + peerDependencies: + '@babel/core': ^7.29.0 || ^8.0.0-rc.1 + '@babel/plugin-transform-runtime': ^7.29.0 || ^8.0.0-rc.1 + '@babel/runtime': ^7.27.0 || ^8.0.0-rc.1 + rolldown: ^1.0.0-rc.5 + vite: ^8.0.0 + peerDependenciesMeta: + '@babel/plugin-transform-runtime': + optional: true + '@babel/runtime': + optional: true + vite: + optional: true + '@rolldown/pluginutils@1.0.0-beta.19': resolution: {integrity: sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==} @@ -2451,15 +2729,15 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/jsesc@2.5.1': + resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - '@types/lodash@4.17.20': - resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} - '@types/markdown-it@14.1.2': resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} @@ -2512,6 +2790,10 @@ packages: resolution: {integrity: sha512-Fw28YZpRnA3cAHHDlkt7xQHiJ0fcL+NRcIqsocZQUSmbzeIKRpwttJjik5ZGanXP+vlA4SbTg+AbA3bP363l+w==} engines: {node: '>= 20'} + '@vercel/oidc@3.2.0': + resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} + engines: {node: '>= 20'} + '@vitejs/plugin-react@4.6.0': resolution: {integrity: sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2575,33 +2857,56 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.17.0: + resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agents@0.3.10: - resolution: {integrity: sha512-hKj3nbej14GA2SgE6/stQheJF35LCS7DxMuHG0QDl1/npnnECYyG0Yf5DXl6AvJAZOFNDwT3iEzKi8yLZngPDA==} + agents@0.0.0-d163561f: + resolution: {integrity: sha512-t1FcctJNkgJ9OdNWOADhr7XeAgJlitsruw3Ss4HWCOOxT5ZAgxS9afLoyYj5wfo4ZyuDQ3ZMgfPLRzIrtq3PWw==} hasBin: true peerDependencies: - '@ai-sdk/openai': ^3.0.0 - '@ai-sdk/react': ^3.0.0 - '@cloudflare/ai-chat': ^0.0.6 - '@cloudflare/codemode': ^0.0.6 + '@ai-sdk/react': ^3.0.204 + '@modelcontextprotocol/client': 2.0.0-beta.4 + '@modelcontextprotocol/sdk': 1.29.0 + '@modelcontextprotocol/server': 2.0.0-beta.4 + '@tanstack/ai': '>=0.10.2 <1.0.0' + '@x402/core': ^2.0.0 + '@x402/evm': ^2.0.0 ai: ^6.0.0 + chat: ^4.29.0 + just-bash: ^3.0.0 react: ^19.0.0 - viem: '>=2.0.0' - x402: ^0.7.1 - zod: ^3.25.0 || ^4.0.0 + vite: '>=6.0.0 <9.0.0' + zod: ^4.0.0 peerDependenciesMeta: - '@ai-sdk/openai': - optional: true '@ai-sdk/react': optional: true - viem: + '@tanstack/ai': + optional: true + '@x402/core': + optional: true + '@x402/evm': + optional: true + ai: + optional: true + chat: optional: true - x402: + just-bash: + optional: true + vite: optional: true + ai@6.0.230: + resolution: {integrity: sha512-TQKOUPL7GLirkGvA2/sxA3bNzPeTY2w30mOyzwfQyiB8WvTQTr08mGgBBETPHwKIefgYF8HbLeVMgEahRVsX/Q==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ai@6.0.64: resolution: {integrity: sha512-eH+6FC2THf0rXamPOBAPGNBuMvqv4gE5+IKoWVBrO1TkrjwRiuP3+P6yl7/HcXzN9JLbVe3lL8yaTIfn0ZwvxQ==} engines: {node: '>=18'} @@ -3092,6 +3397,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.28.1: + resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -3131,6 +3441,10 @@ packages: resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==} engines: {node: '>=18.0.0'} + eventsource-parser@3.1.0: + resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==} + engines: {node: '>=18.0.0'} + eventsource@3.0.7: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} engines: {node: '>=18.0.0'} @@ -3477,13 +3791,12 @@ packages: js-base64@3.7.8: resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - js2xmlparser@4.0.2: resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} @@ -3509,11 +3822,6 @@ packages: json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - json-schema-to-typescript@15.0.4: - resolution: {integrity: sha512-Su9oK8DR4xCmDsLlyvadkXzX6+GGXJpbhwoLtOGArAG61dvbW4YQmSEno2y66ahpIdmLMg6YUf/QHLgiwvkrHQ==} - engines: {node: '>=16.0.0'} - hasBin: true - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -3949,8 +4257,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.6: - resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} + nanoid@5.1.16: + resolution: {integrity: sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ==} engines: {node: ^18 || >=20} hasBin: true @@ -4061,13 +4369,18 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - partyserver@0.1.2: - resolution: {integrity: sha512-9ca0wnl8JPYUzPZst76dNndnLxHPnqUHnpYeVa7/+k3rzQeFuPkI9InqOanupkVmEvRTW2/HIKu/wfAeAqTorw==} + partyserver@0.5.8: + resolution: {integrity: sha512-htgSwiBcBu9zIYLrsxBAOvdkjukHvncbTk0nDrJgfruvZ08rxtEN1Ab4T7j9osykP80Bq3zA2oWFd3ngc4Z9uw==} peerDependencies: - '@cloudflare/workers-types': ^4.20240729.0 + '@cloudflare/workers-types': ^4.20260424.1 - partysocket@1.1.11: - resolution: {integrity: sha512-P0EtOQiAwvLriqLgdThcSaREfz3bP77LkLSdmXq680BosPKvGSoGTh/d0g3S+UNmaqcw89Ad7JXHHKyRx3xU9Q==} + partysocket@1.3.0: + resolution: {integrity: sha512-1zToNyolZFK/7nuAw/K2bZrNzFqaZyRoCEkS+9vG6WSC5ikrN6qWRe96q6ImU51uptz2r+dAwSkwhJVdQi4LiA==} + peerDependencies: + react: '>=17' + peerDependenciesMeta: + react: + optional: true path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -4112,6 +4425,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -4135,11 +4452,6 @@ packages: deprecated: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. hasBin: true - prettier@3.6.2: - resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} - engines: {node: '>=14'} - hasBin: true - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -4171,10 +4483,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} - engines: {node: '>=0.6'} - qs@6.14.1: resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} @@ -4200,10 +4508,10 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@19.1.0: - resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + react-dom@19.2.7: + resolution: {integrity: sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==} peerDependencies: - react: ^19.1.0 + react: ^19.2.7 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -4240,8 +4548,8 @@ packages: peerDependencies: react: '>= 16.8.6' - react@19.1.0: - resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + react@19.2.7: + resolution: {integrity: sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==} engines: {node: '>=0.10.0'} readable-stream@3.6.2: @@ -4351,8 +4659,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - scheduler@0.26.0: - resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -5026,6 +5334,11 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5081,6 +5394,13 @@ snapshots: '@ai-sdk/provider-utils': 4.0.11(zod@4.4.3) zod: 4.4.3 + '@ai-sdk/gateway@3.0.153(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 3.0.14 + '@ai-sdk/provider-utils': 4.0.40(zod@4.4.3) + '@vercel/oidc': 3.2.0 + zod: 4.4.3 + '@ai-sdk/gateway@3.0.29(zod@4.4.3)': dependencies: '@ai-sdk/provider': 3.0.6 @@ -5108,16 +5428,27 @@ snapshots: eventsource-parser: 3.0.6 zod: 4.4.3 + '@ai-sdk/provider-utils@4.0.40(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 3.0.14 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.0 + zod: 4.4.3 + + '@ai-sdk/provider@3.0.14': + dependencies: + json-schema: 0.4.0 + '@ai-sdk/provider@3.0.6': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@3.0.66(react@19.1.0)(zod@4.4.3)': + '@ai-sdk/react@3.0.232(react@19.2.7)(zod@4.4.3)': dependencies: - '@ai-sdk/provider-utils': 4.0.11(zod@4.4.3) - ai: 6.0.64(zod@4.4.3) - react: 19.1.0 - swr: 2.3.4(react@19.1.0) + '@ai-sdk/provider-utils': 4.0.40(zod@4.4.3) + ai: 6.0.230(zod@4.4.3) + react: 19.2.7 + swr: 2.3.4(react@19.2.7) throttleit: 2.1.0 transitivePeerDependencies: - zod @@ -5127,12 +5458,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.12 '@jridgewell/trace-mapping': 0.3.29 - '@apidevtools/json-schema-ref-parser@11.9.3': - dependencies: - '@jsdevtools/ono': 7.1.3 - '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 - '@ast-grep/cli-darwin-arm64@0.43.0': optional: true @@ -5172,6 +5497,11 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@8.0.0': + dependencies: + '@babel/helper-validator-identifier': 8.0.4 + js-tokens: 10.0.0 + '@babel/compat-data@7.28.0': {} '@babel/core@7.28.0': @@ -5202,6 +5532,19 @@ snapshots: '@jridgewell/trace-mapping': 0.3.29 jsesc: 3.1.0 + '@babel/generator@8.0.0': + dependencies: + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + '@types/jsesc': 2.5.1 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@8.0.0': + dependencies: + '@babel/types': 8.0.4 + '@babel/helper-compilation-targets@7.27.2': dependencies: '@babel/compat-data': 7.28.0 @@ -5210,8 +5553,26 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-create-class-features-plugin@8.0.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-annotate-as-pure': 8.0.0 + '@babel/helper-member-expression-to-functions': 8.0.0 + '@babel/helper-optimise-call-expression': 8.0.0 + '@babel/helper-replace-supers': 8.0.1(@babel/core@7.28.0) + '@babel/helper-skip-transparent-expression-wrappers': 8.0.0 + '@babel/traverse': 8.0.4 + semver: 7.7.4 + '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@8.0.0': {} + + '@babel/helper-member-expression-to-functions@8.0.0': + dependencies: + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.28.0 @@ -5228,12 +5589,36 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-optimise-call-expression@8.0.0': + dependencies: + '@babel/types': 8.0.4 + '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-plugin-utils@8.0.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + + '@babel/helper-replace-supers@8.0.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-member-expression-to-functions': 8.0.0 + '@babel/helper-optimise-call-expression': 8.0.0 + '@babel/traverse': 8.0.4 + + '@babel/helper-skip-transparent-expression-wrappers@8.0.0': + dependencies: + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@8.0.0': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@8.0.4': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helpers@7.27.6': @@ -5245,6 +5630,22 @@ snapshots: dependencies: '@babel/types': 7.28.0 + '@babel/parser@8.0.4': + dependencies: + '@babel/types': 8.0.4 + + '@babel/plugin-proposal-decorators@8.0.2(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 8.0.1(@babel/core@7.28.0) + '@babel/helper-plugin-utils': 8.0.1(@babel/core@7.28.0) + '@babel/plugin-syntax-decorators': 8.0.1(@babel/core@7.28.0) + + '@babel/plugin-syntax-decorators@8.0.1(@babel/core@7.28.0)': + dependencies: + '@babel/core': 7.28.0 + '@babel/helper-plugin-utils': 8.0.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0)': dependencies: '@babel/core': 7.28.0 @@ -5271,6 +5672,12 @@ snapshots: '@babel/parser': 7.28.0 '@babel/types': 7.28.0 + '@babel/template@8.0.0': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 + '@babel/traverse@7.28.0': dependencies: '@babel/code-frame': 7.27.1 @@ -5283,11 +5690,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@8.0.4': + dependencies: + '@babel/code-frame': 8.0.0 + '@babel/generator': 8.0.0 + '@babel/helper-globals': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/template': 8.0.0 + '@babel/types': 8.0.4 + obug: 2.1.1 + '@babel/types@7.28.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@8.0.4': + dependencies: + '@babel/helper-string-parser': 8.0.0 + '@babel/helper-validator-identifier': 8.0.4 + '@biomejs/biome@1.9.4': optionalDependencies: '@biomejs/cli-darwin-arm64': 1.9.4 @@ -5349,19 +5771,12 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 - '@cloudflare/ai-chat@0.0.4(agents@0.3.10)(ai@6.0.64(zod@4.4.3))(react@19.1.0)(zod@4.4.3)': - dependencies: - agents: 0.3.10(@ai-sdk/openai@3.0.23(zod@4.4.3))(@ai-sdk/react@3.0.66(react@19.1.0)(zod@4.4.3))(@cloudflare/ai-chat@0.0.4)(@cloudflare/codemode@0.3.4(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ai@6.0.64(zod@4.4.3))(zod@4.4.3))(@cloudflare/workers-types@4.20260405.1)(ai@6.0.64(zod@4.4.3))(react@19.1.0)(zod@4.4.3) - ai: 6.0.64(zod@4.4.3) - react: 19.1.0 - zod: 4.4.3 - - '@cloudflare/codemode@0.3.4(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ai@6.0.64(zod@4.4.3))(zod@4.4.3)': + '@cloudflare/codemode@0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ai@6.0.64(zod@4.4.3))(zod@4.4.3)': dependencies: '@types/json-schema': 7.0.15 - acorn: 8.16.0 + acorn: 8.17.0 optionalDependencies: - '@modelcontextprotocol/sdk': 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) ai: 6.0.64(zod@4.4.3) zod: 4.4.3 @@ -5532,153 +5947,231 @@ snapshots: '@esbuild/aix-ppc64@0.27.3': optional: true + '@esbuild/aix-ppc64@0.28.1': + optional: true + '@esbuild/android-arm64@0.25.5': optional: true '@esbuild/android-arm64@0.27.3': optional: true + '@esbuild/android-arm64@0.28.1': + optional: true + '@esbuild/android-arm@0.25.5': optional: true '@esbuild/android-arm@0.27.3': optional: true + '@esbuild/android-arm@0.28.1': + optional: true + '@esbuild/android-x64@0.25.5': optional: true '@esbuild/android-x64@0.27.3': optional: true + '@esbuild/android-x64@0.28.1': + optional: true + '@esbuild/darwin-arm64@0.25.5': optional: true '@esbuild/darwin-arm64@0.27.3': optional: true + '@esbuild/darwin-arm64@0.28.1': + optional: true + '@esbuild/darwin-x64@0.25.5': optional: true '@esbuild/darwin-x64@0.27.3': optional: true + '@esbuild/darwin-x64@0.28.1': + optional: true + '@esbuild/freebsd-arm64@0.25.5': optional: true '@esbuild/freebsd-arm64@0.27.3': optional: true + '@esbuild/freebsd-arm64@0.28.1': + optional: true + '@esbuild/freebsd-x64@0.25.5': optional: true '@esbuild/freebsd-x64@0.27.3': optional: true + '@esbuild/freebsd-x64@0.28.1': + optional: true + '@esbuild/linux-arm64@0.25.5': optional: true '@esbuild/linux-arm64@0.27.3': optional: true + '@esbuild/linux-arm64@0.28.1': + optional: true + '@esbuild/linux-arm@0.25.5': optional: true '@esbuild/linux-arm@0.27.3': optional: true + '@esbuild/linux-arm@0.28.1': + optional: true + '@esbuild/linux-ia32@0.25.5': optional: true '@esbuild/linux-ia32@0.27.3': optional: true + '@esbuild/linux-ia32@0.28.1': + optional: true + '@esbuild/linux-loong64@0.25.5': optional: true '@esbuild/linux-loong64@0.27.3': optional: true + '@esbuild/linux-loong64@0.28.1': + optional: true + '@esbuild/linux-mips64el@0.25.5': optional: true '@esbuild/linux-mips64el@0.27.3': optional: true + '@esbuild/linux-mips64el@0.28.1': + optional: true + '@esbuild/linux-ppc64@0.25.5': optional: true '@esbuild/linux-ppc64@0.27.3': optional: true + '@esbuild/linux-ppc64@0.28.1': + optional: true + '@esbuild/linux-riscv64@0.25.5': optional: true '@esbuild/linux-riscv64@0.27.3': optional: true + '@esbuild/linux-riscv64@0.28.1': + optional: true + '@esbuild/linux-s390x@0.25.5': optional: true '@esbuild/linux-s390x@0.27.3': optional: true + '@esbuild/linux-s390x@0.28.1': + optional: true + '@esbuild/linux-x64@0.25.5': optional: true '@esbuild/linux-x64@0.27.3': optional: true + '@esbuild/linux-x64@0.28.1': + optional: true + '@esbuild/netbsd-arm64@0.25.5': optional: true '@esbuild/netbsd-arm64@0.27.3': optional: true + '@esbuild/netbsd-arm64@0.28.1': + optional: true + '@esbuild/netbsd-x64@0.25.5': optional: true '@esbuild/netbsd-x64@0.27.3': optional: true + '@esbuild/netbsd-x64@0.28.1': + optional: true + '@esbuild/openbsd-arm64@0.25.5': optional: true '@esbuild/openbsd-arm64@0.27.3': optional: true + '@esbuild/openbsd-arm64@0.28.1': + optional: true + '@esbuild/openbsd-x64@0.25.5': optional: true '@esbuild/openbsd-x64@0.27.3': optional: true + '@esbuild/openbsd-x64@0.28.1': + optional: true + '@esbuild/openharmony-arm64@0.27.3': optional: true + '@esbuild/openharmony-arm64@0.28.1': + optional: true + '@esbuild/sunos-x64@0.25.5': optional: true '@esbuild/sunos-x64@0.27.3': optional: true + '@esbuild/sunos-x64@0.28.1': + optional: true + '@esbuild/win32-arm64@0.25.5': optional: true '@esbuild/win32-arm64@0.27.3': optional: true + '@esbuild/win32-arm64@0.28.1': + optional: true + '@esbuild/win32-ia32@0.25.5': optional: true '@esbuild/win32-ia32@0.27.3': optional: true + '@esbuild/win32-ia32@0.28.1': + optional: true + '@esbuild/win32-x64@0.25.5': optional: true '@esbuild/win32-x64@0.27.3': optional: true + '@esbuild/win32-x64@0.28.1': + optional: true + '@hono/node-server@1.19.9(hono@4.11.4)': dependencies: hono: 4.11.4 @@ -5941,8 +6434,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@jsdevtools/ono@7.1.3': {} - '@jsdoc/salty@0.2.9': dependencies: lodash: 4.17.21 @@ -5954,7 +6445,21 @@ snapshots: '@logtape/logtape': 1.1.1 '@sentry/core': 9.34.0 - '@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3)': + '@modelcontextprotocol/client@2.0.0-beta.4': + dependencies: + '@modelcontextprotocol/core': 2.0.0-beta.4 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.6 + jose: 6.1.3 + pkce-challenge: 5.0.0 + zod: 4.4.3 + + '@modelcontextprotocol/core@2.0.0-beta.4': + dependencies: + zod: 4.4.3 + + '@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3)': dependencies: '@hono/node-server': 1.19.9(hono@4.11.4) ajv: 8.17.1 @@ -5978,6 +6483,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@modelcontextprotocol/server@2.0.0-beta.4': + dependencies: + '@modelcontextprotocol/core': 2.0.0-beta.4 + zod: 4.4.3 + '@mswjs/interceptors@0.39.2': dependencies: '@open-draft/deferred-promise': 2.2.0 @@ -6077,120 +6587,120 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.8)(react@19.2.7)': dependencies: - react: 19.1.0 + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-context@1.1.2(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.8)(react@19.2.7)': dependencies: - react: 19.1.0 + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-direction@1.1.1(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.8)(react@19.2.7)': dependencies: - react: 19.1.0 + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-id@1.1.1(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.8)(react@19.2.7)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) optionalDependencies: '@types/react': 19.1.8 '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.8)(react@19.2.7)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.8)(react@19.2.7)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.8)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.8)(react@19.2.7) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.8)(react@19.2.7)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) - react: 19.1.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.2.7) + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.8)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.8)(react@19.2.7)': dependencies: - react: 19.1.0 + react: 19.2.7 optionalDependencies: '@types/react': 19.1.8 @@ -6234,6 +6744,15 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-beta.23': optional: true + '@rolldown/plugin-babel@0.2.3(@babel/core@7.28.0)(@babel/runtime@7.28.4)(rolldown@1.0.0-beta.23)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))': + dependencies: + '@babel/core': 7.28.0 + picomatch: 4.0.5 + rolldown: 1.0.0-beta.23 + optionalDependencies: + '@babel/runtime': 7.28.4 + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) + '@rolldown/pluginutils@1.0.0-beta.19': {} '@rolldown/pluginutils@1.0.0-beta.23': {} @@ -6430,11 +6949,11 @@ snapshots: '@opentelemetry/semantic-conventions': 1.41.1 '@sentry/core': 10.54.0 - '@sentry/react@10.54.0(react@19.1.0)': + '@sentry/react@10.54.0(react@19.2.7)': dependencies: '@sentry/browser': 10.54.0 '@sentry/core': 10.54.0 - react: 19.1.0 + react: 19.2.7 '@sentry/vite-plugin@4.6.1': dependencies: @@ -6592,12 +7111,12 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/jsesc@2.5.1': {} + '@types/json-schema@7.0.15': {} '@types/linkify-it@5.0.0': {} - '@types/lodash@4.17.20': {} - '@types/markdown-it@14.1.2': dependencies: '@types/linkify-it': 5.0.0 @@ -6646,6 +7165,8 @@ snapshots: '@vercel/oidc@3.1.0': {} + '@vercel/oidc@3.2.0': {} + '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))': dependencies: '@babel/core': 7.28.0 @@ -6667,32 +7188,32 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))': + '@vitest/mocker@4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.10.2(@types/node@22.16.0)(typescript@5.8.3) - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) + vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0) - '@vitest/mocker@4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))': + '@vitest/mocker@4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.10.2(@types/node@22.16.0)(typescript@5.9.3) - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) + vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0) - '@vitest/mocker@4.1.2(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))': + '@vitest/mocker@4.1.2(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.10.2(@types/node@24.0.10)(typescript@5.8.3) - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0) '@vitest/mocker@4.1.2(msw@2.10.2(@types/node@24.0.10)(typescript@5.9.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))': dependencies: @@ -6744,36 +7265,51 @@ snapshots: acorn@8.16.0: {} + acorn@8.17.0: {} + agent-base@6.0.2: dependencies: debug: 4.4.3 transitivePeerDependencies: - supports-color - agents@0.3.10(@ai-sdk/openai@3.0.23(zod@4.4.3))(@ai-sdk/react@3.0.66(react@19.1.0)(zod@4.4.3))(@cloudflare/ai-chat@0.0.4)(@cloudflare/codemode@0.3.4(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ai@6.0.64(zod@4.4.3))(zod@4.4.3))(@cloudflare/workers-types@4.20260405.1)(ai@6.0.64(zod@4.4.3))(react@19.1.0)(zod@4.4.3): + agents@0.0.0-d163561f(@ai-sdk/react@3.0.232(react@19.2.7)(zod@4.4.3))(@babel/core@7.28.0)(@babel/runtime@7.28.4)(@cloudflare/workers-types@4.20260405.1)(@modelcontextprotocol/client@2.0.0-beta.4)(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@modelcontextprotocol/server@2.0.0-beta.4)(ai@6.0.64(zod@4.4.3))(react@19.2.7)(rolldown@1.0.0-beta.23)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))(zod@4.4.3): dependencies: + '@babel/plugin-proposal-decorators': 8.0.2(@babel/core@7.28.0) '@cfworker/json-schema': 4.1.1 - '@cloudflare/ai-chat': 0.0.4(agents@0.3.10)(ai@6.0.64(zod@4.4.3))(react@19.1.0)(zod@4.4.3) - '@cloudflare/codemode': 0.3.4(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ai@6.0.64(zod@4.4.3))(zod@4.4.3) - '@modelcontextprotocol/sdk': 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) - ai: 6.0.64(zod@4.4.3) + '@cloudflare/codemode': 0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(ai@6.0.64(zod@4.4.3))(zod@4.4.3) + '@modelcontextprotocol/client': 2.0.0-beta.4 + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + '@modelcontextprotocol/server': 2.0.0-beta.4 + '@rolldown/plugin-babel': 0.2.3(@babel/core@7.28.0)(@babel/runtime@7.28.4)(rolldown@1.0.0-beta.23)(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) cron-schedule: 6.0.0 - escape-html: 1.0.3 - json-schema: 0.4.0 - json-schema-to-typescript: 15.0.4 + esbuild: 0.28.1 mimetext: 3.0.28 - nanoid: 5.1.6 - partyserver: 0.1.2(@cloudflare/workers-types@4.20260405.1) - partysocket: 1.1.11 - react: 19.1.0 + nanoid: 5.1.16 + partyserver: 0.5.8(@cloudflare/workers-types@4.20260405.1) + partysocket: 1.3.0(react@19.2.7) + react: 19.2.7 + yaml: 2.9.0 yargs: 18.0.0 zod: 4.4.3 optionalDependencies: - '@ai-sdk/openai': 3.0.23(zod@4.4.3) - '@ai-sdk/react': 3.0.66(react@19.1.0)(zod@4.4.3) + '@ai-sdk/react': 3.0.232(react@19.2.7)(zod@4.4.3) + ai: 6.0.64(zod@4.4.3) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) transitivePeerDependencies: + - '@babel/core' + - '@babel/plugin-transform-runtime' + - '@babel/runtime' - '@cloudflare/workers-types' - - supports-color + - rolldown + + ai@6.0.230(zod@4.4.3): + dependencies: + '@ai-sdk/gateway': 3.0.153(zod@4.4.3) + '@ai-sdk/provider': 3.0.14 + '@ai-sdk/provider-utils': 4.0.40(zod@4.4.3) + '@opentelemetry/api': 1.9.1 + zod: 4.4.3 ai@6.0.64(zod@4.4.3): dependencies: @@ -7241,6 +7777,35 @@ snapshots: '@esbuild/win32-ia32': 0.27.3 '@esbuild/win32-x64': 0.27.3 + esbuild@0.28.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.1 + '@esbuild/android-arm': 0.28.1 + '@esbuild/android-arm64': 0.28.1 + '@esbuild/android-x64': 0.28.1 + '@esbuild/darwin-arm64': 0.28.1 + '@esbuild/darwin-x64': 0.28.1 + '@esbuild/freebsd-arm64': 0.28.1 + '@esbuild/freebsd-x64': 0.28.1 + '@esbuild/linux-arm': 0.28.1 + '@esbuild/linux-arm64': 0.28.1 + '@esbuild/linux-ia32': 0.28.1 + '@esbuild/linux-loong64': 0.28.1 + '@esbuild/linux-mips64el': 0.28.1 + '@esbuild/linux-ppc64': 0.28.1 + '@esbuild/linux-riscv64': 0.28.1 + '@esbuild/linux-s390x': 0.28.1 + '@esbuild/linux-x64': 0.28.1 + '@esbuild/netbsd-arm64': 0.28.1 + '@esbuild/netbsd-x64': 0.28.1 + '@esbuild/openbsd-arm64': 0.28.1 + '@esbuild/openbsd-x64': 0.28.1 + '@esbuild/openharmony-arm64': 0.28.1 + '@esbuild/sunos-x64': 0.28.1 + '@esbuild/win32-arm64': 0.28.1 + '@esbuild/win32-ia32': 0.28.1 + '@esbuild/win32-x64': 0.28.1 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -7265,6 +7830,8 @@ snapshots: eventsource-parser@3.0.6: {} + eventsource-parser@3.1.0: {} + eventsource@3.0.7: dependencies: eventsource-parser: 3.0.6 @@ -7314,7 +7881,7 @@ snapshots: once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.0 + qs: 6.14.1 range-parser: 1.2.1 router: 2.2.0 send: 1.2.0 @@ -7354,6 +7921,10 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fdir@6.5.0(picomatch@4.0.5): + optionalDependencies: + picomatch: 4.0.5 + fflate@0.8.3: {} file-set@5.2.2: @@ -7620,11 +8191,9 @@ snapshots: js-base64@3.7.8: {} - js-tokens@4.0.0: {} + js-tokens@10.0.0: {} - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 + js-tokens@4.0.0: {} js2xmlparser@4.0.2: dependencies: @@ -7662,18 +8231,6 @@ snapshots: json-parse-even-better-errors@2.3.1: {} - json-schema-to-typescript@15.0.4: - dependencies: - '@apidevtools/json-schema-ref-parser': 11.9.3 - '@types/json-schema': 7.0.15 - '@types/lodash': 4.17.20 - is-glob: 4.0.3 - js-yaml: 4.1.0 - lodash: 4.17.21 - minimist: 1.2.8 - prettier: 3.6.2 - tinyglobby: 0.2.15 - json-schema-traverse@1.0.0: {} json-schema-typed@8.0.2: {} @@ -7807,9 +8364,9 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.503.0(react@19.1.0): + lucide-react@0.503.0(react@19.2.7): dependencies: - react: 19.1.0 + react: 19.2.7 magic-string@0.30.17: dependencies: @@ -8180,7 +8737,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 + debug: 4.4.3 decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -8387,7 +8944,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.6: {} + nanoid@5.1.16: {} napi-build-utils@2.0.0: {} @@ -8487,14 +9044,16 @@ snapshots: parseurl@1.3.3: {} - partyserver@0.1.2(@cloudflare/workers-types@4.20260405.1): + partyserver@0.5.8(@cloudflare/workers-types@4.20260405.1): dependencies: '@cloudflare/workers-types': 4.20260405.1 - nanoid: 5.1.6 + nanoid: 5.1.16 - partysocket@1.1.11: + partysocket@1.3.0(react@19.2.7): dependencies: event-target-polyfill: 0.0.4 + optionalDependencies: + react: 19.2.7 path-exists@4.0.0: {} @@ -8523,6 +9082,8 @@ snapshots: picomatch@4.0.3: {} + picomatch@4.0.5: {} + pidtree@0.6.0: {} pkce-challenge@5.0.0: {} @@ -8553,8 +9114,6 @@ snapshots: tar-fs: 2.1.3 tunnel-agent: 0.6.0 - prettier@3.6.2: {} - progress@2.0.3: {} prop-types@15.7.2: @@ -8585,10 +9144,6 @@ snapshots: punycode@2.3.1: {} - qs@6.14.0: - dependencies: - side-channel: 1.1.0 - qs@6.14.1: dependencies: side-channel: 1.1.0 @@ -8615,14 +9170,14 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dom@19.1.0(react@19.1.0): + react-dom@19.2.7(react@19.2.7): dependencies: - react: 19.1.0 - scheduler: 0.26.0 + react: 19.2.7 + scheduler: 0.27.0 react-is@16.13.1: {} - react-markdown@9.1.0(@types/react@19.1.8)(react@19.1.0): + react-markdown@9.1.0(@types/react@19.1.8)(react@19.2.7): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -8631,7 +9186,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 mdast-util-to-hast: 13.2.0 - react: 19.1.0 + react: 19.2.7 remark-parse: 11.0.0 remark-rehype: 11.1.2 unified: 11.0.5 @@ -8642,21 +9197,21 @@ snapshots: react-refresh@0.17.0: {} - react-router-dom@7.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-router-dom@7.11.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - react-router: 7.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.2.7 + react-dom: 19.2.7(react@19.2.7) + react-router: 7.11.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - react-router@7.11.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-router@7.11.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: cookie: 1.0.2 - react: 19.1.0 + react: 19.2.7 set-cookie-parser: 2.7.2 optionalDependencies: - react-dom: 19.1.0(react@19.1.0) + react-dom: 19.2.7(react@19.2.7) - react-scroll-to-bottom@4.2.0(@babel/core@7.28.0)(react@19.1.0): + react-scroll-to-bottom@4.2.0(@babel/core@7.28.0)(react@19.2.7): dependencies: '@babel/runtime-corejs3': 7.28.0 '@emotion/css': 11.1.3(@babel/core@7.28.0) @@ -8664,13 +9219,13 @@ snapshots: core-js: 3.18.3 math-random: 2.0.1 prop-types: 15.7.2 - react: 19.1.0 + react: 19.2.7 simple-update-in: 2.2.0 transitivePeerDependencies: - '@babel/core' - supports-color - react@19.1.0: {} + react@19.2.7: {} readable-stream@3.6.2: dependencies: @@ -8854,7 +9409,7 @@ snapshots: safer-buffer@2.1.2: {} - scheduler@0.26.0: {} + scheduler@0.27.0: {} semver@6.3.1: {} @@ -9107,11 +9662,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swr@2.3.4(react@19.1.0): + swr@2.3.4(react@19.2.7): dependencies: dequal: 2.0.3 - react: 19.1.0 - use-sync-external-store: 1.5.0(react@19.1.0) + react: 19.2.7 + use-sync-external-store: 1.5.0(react@19.2.7) tailwind-merge@3.3.1: {} @@ -9384,9 +9939,9 @@ snapshots: urlpattern-polyfill@10.1.0: {} - use-sync-external-store@1.5.0(react@19.1.0): + use-sync-external-store@1.5.0(react@19.2.7): dependencies: - react: 19.1.0 + react: 19.2.7 util-deprecate@1.0.2: {} @@ -9406,11 +9961,11 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3): + vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0): dependencies: esbuild: 0.25.5 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 postcss: 8.5.6 rollup: 4.44.1 tinyglobby: 0.2.15 @@ -9420,13 +9975,13 @@ snapshots: jiti: 2.4.2 lightningcss: 1.30.1 tsx: 4.20.3 - yaml: 2.8.3 + yaml: 2.9.0 vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3): dependencies: esbuild: 0.25.5 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 postcss: 8.5.6 rollup: 4.44.1 tinyglobby: 0.2.15 @@ -9438,20 +9993,36 @@ snapshots: tsx: 4.20.3 yaml: 2.8.3 - vitest-evals@0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))): + vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0): + dependencies: + esbuild: 0.25.5 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 + postcss: 8.5.6 + rollup: 4.44.1 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.0.10 + fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.30.1 + tsx: 4.20.3 + yaml: 2.9.0 + + vitest-evals@0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0))): dependencies: tinyrainbow: 3.1.0 - vitest: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) - vitest-evals@0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3))): + vitest-evals@0.4.0(tinyrainbow@3.1.0)(vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0))): dependencies: tinyrainbow: 3.1.0 - vitest: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + vitest: 4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) - vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)): + vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.8.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -9468,7 +10039,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) + vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -9476,10 +10047,10 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)): + vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@22.16.0)(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(msw@2.10.2(@types/node@22.16.0)(typescript@5.9.3))(vite@6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -9496,7 +10067,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) + vite: 6.3.5(@types/node@22.16.0)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -9504,10 +10075,10 @@ snapshots: transitivePeerDependencies: - msw - vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)): + vitest@4.1.2(@opentelemetry/api@1.9.1)(@types/node@24.0.10)(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3)) + '@vitest/mocker': 4.1.2(msw@2.10.2(@types/node@24.0.10)(typescript@5.8.3))(vite@6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -9524,7 +10095,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.8.3) + vite: 6.3.5(@types/node@24.0.10)(jiti@2.4.2)(lightningcss@1.30.1)(tsx@4.20.3)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 @@ -9605,7 +10176,7 @@ snapshots: workers-mcp@0.1.0-3(@cfworker/json-schema@4.1.1)(zod@4.4.3): dependencies: '@clack/prompts': 0.8.2 - '@modelcontextprotocol/sdk': 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) + '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.4.1 fs-extra: 11.3.0 @@ -9680,6 +10251,8 @@ snapshots: yaml@2.8.3: {} + yaml@2.9.0: {} + yargs-parser@21.1.1: {} yargs-parser@22.0.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6bb6fc242..5f4b8b06f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -17,7 +17,7 @@ allowBuilds: workerd: true overrides: - "@modelcontextprotocol/sdk": ^1.26.0 + "@modelcontextprotocol/sdk": 1.29.0 fast-xml-parser: 5.7.2 undici: ^7.24.4 @@ -26,13 +26,14 @@ catalog: "@ai-sdk/anthropic": ^3.0.33 "@ai-sdk/mcp": ^1.0.16 "@ai-sdk/openai": ^3.0.23 - "@ai-sdk/react": ^3.0.66 + "@ai-sdk/react": ^3.0.232 "@biomejs/biome": ^1.9.4 "@cloudflare/vite-plugin": ^1.31.0 "@cloudflare/vitest-pool-workers": 0.14.1 "@cloudflare/workers-oauth-provider": ^0.3.0 "@cloudflare/workers-types": ^4.20260405.1 - "@modelcontextprotocol/sdk": ^1.26.0 + "@modelcontextprotocol/sdk": 1.29.0 + "@modelcontextprotocol/server": 2.0.0-beta.4 "@radix-ui/react-accordion": ^1.2.11 "@radix-ui/react-slot": ^1.2.3 "@sentry/cloudflare": 10.54.0 @@ -47,7 +48,7 @@ catalog: "@types/react-dom": ^19.1.6 "@vitejs/plugin-react": ^4.6.0 "@vitest/coverage-v8": ^4.1.2 - agents: ^0.3.10 + agents: 0.0.0-d163561f ai: ^6.0.64 better-sqlite3: ^11.10.0 chalk: ^5.4.1 @@ -62,8 +63,8 @@ catalog: miniflare: 4.20260401.0 msw: ^2.10.2 open: ^10.1.2 - react: ^19.1.0 - react-dom: ^19.1.0 + react: ^19.1.8 + react-dom: ^19.1.8 react-markdown: ^9.1.0 remark-gfm: ^4.0.1 simple-git-hooks: ^2.13.0 @@ -81,3 +82,9 @@ catalog: workers-mcp: 0.1.0-3 wrangler: 4.80.0 zod: ^4.4.3 + +minimumReleaseAgeExclude: + - '@ai-sdk/gateway@3.0.153' + - '@ai-sdk/provider-utils@4.0.40' + - '@ai-sdk/react@3.0.232' + - ai@6.0.230