diff --git a/app/components/DebugPromptView.tsx b/app/components/DebugPromptView.tsx index a7518f0b5..2e943919b 100644 --- a/app/components/DebugPromptView.tsx +++ b/app/components/DebugPromptView.tsx @@ -2,7 +2,7 @@ import { useEffect, useCallback, useState } from 'react'; import { JsonView } from 'react-json-view-lite'; import 'react-json-view-lite/dist/index.css'; -import type { CoreMessage, FilePart, ToolCallPart, TextPart } from 'ai'; +import type { ModelMessage, FilePart, ToolCallPart, TextPart } from 'ai'; import { ChevronDownIcon, ChevronRightIcon } from '@heroicons/react/20/solid'; import { ClipboardIcon, ArrowTopRightOnSquareIcon } from '@heroicons/react/24/outline'; import { useDebugPrompt } from '~/lib/hooks/useDebugPrompt'; @@ -14,58 +14,58 @@ import { IconButton } from '~/components/ui/IconButton'; * * // A group of LLM calls that were executed without the user typing anything in between * // A single call to an LLM and the response we received bac - * // CoreMessage is a Vercel AI SDK type, it's a User or Assistant or System or Tool message. + * // ModelMessage is a Vercel AI SDK type, it's a User or Assistant or System or Tool message. * Do a good job. - * - * + * + * * Please make an app! - * - * + * + * * Will do! Please write these files and run this tool. - * + * * * * --- this represents a new call to /api/chat and a new network request to an LLM provider * * - * // We typically repeat back all these messages + * // We typically repeat back all these messages * Do a good job. - * - * // But we can also add new ones + * + * // But we can also add new ones * BTW, the user is using Chrome on a Mac. - * - * + * + * * Please make an app! - * - * + * + * * Will do! Please write these files and run this tool. - * - * + * + * * file write done! and also I deployed the app. - * + * * * * --- this represents a new call to /api/chat and a new network request to an LLM provider * * - * // We typically repeat back all these messages + * // We typically repeat back all these messages * Do a good job. - * - * // But we can also add new ones + * + * // But we can also add new ones * BTW, the user is using Chrome on a Mac. - * - * + * + * * Please make an app! - * - * + * + * * Will do! Please write these files and run this tool. - * - * + * + * * file write done! and also I deployed the app. - * - * + * + * * OK all done, I made you an app! - * + * * * * @@ -107,7 +107,7 @@ function isToolCallPart(part: unknown): part is ToolCallPart { return typeof part === 'object' && part !== null && 'type' in part && part.type === 'tool-call'; } -function getMessageCharCount(message: CoreMessage): number { +function getMessageCharCount(message: ModelMessage): number { if (typeof message.content === 'string') return message.content.length; if (Array.isArray(message.content)) { return message.content.reduce((sum, part) => { @@ -145,7 +145,7 @@ function getPreviewClass(text: string) { return `preview-${Math.abs(text.split('').reduce((acc, char) => acc + char.charCodeAt(0), 0))}`; } -function findLastAssistantMessage(prompt: CoreMessage[]): string { +function findLastAssistantMessage(prompt: ModelMessage[]): string { // The last assistant message in a LLM of messages is the response. // It should generally just be the last message, full stop. for (let i = prompt.length - 1; i >= 0; i--) { @@ -186,7 +186,7 @@ function LlmPromptAndResponseView({ promptAndResponse }: { promptAndResponse: Ll const totalInputChars = (prompt || []).reduce((sum, msg) => sum + getMessageCharCount(msg), 0); const totalOutputChars = (completion || []).reduce((sum, msg) => sum + getMessageCharCount(msg), 0); - const getTokenEstimate = (message: CoreMessage) => { + const getTokenEstimate = (message: ModelMessage) => { const charCount = getMessageCharCount(message); return estimateTokenCount(charCount, totalInputChars, promptTokensTotal); }; @@ -239,7 +239,7 @@ function LlmPromptAndResponseView({ promptAndResponse }: { promptAndResponse: Ll {prompt.map((message, idx) => ( - {completion.map((message, idx) => ( - + ))} @@ -261,13 +261,13 @@ function LlmPromptAndResponseView({ promptAndResponse }: { promptAndResponse: Ll ); } -type CoreMessageViewProps = { - message: CoreMessage; - getTokenEstimate?: (message: CoreMessage) => number; +type ModelMessageViewProps = { + message: ModelMessage; + getTokenEstimate?: (message: ModelMessage) => number; totalCompletionTokens?: number; }; -function getMessagePreview(content: CoreMessage['content']): string { +function getMessagePreview(content: ModelMessage['content']): string { if (typeof content === 'string') { return content; } @@ -288,7 +288,7 @@ function getMessagePreview(content: CoreMessage['content']): string { } type MessageContentViewProps = { - content: CoreMessage['content']; + content: ModelMessage['content']; showRawJson?: boolean; }; @@ -371,7 +371,7 @@ const roleColors = { tool: 'bg-purple-50 dark:bg-purple-900/20 border-purple-200 dark:border-purple-800', } as const; -function CoreMessageView({ message, getTokenEstimate, totalCompletionTokens }: CoreMessageViewProps) { +function ModelMessageView({ message, getTokenEstimate, totalCompletionTokens }: ModelMessageViewProps) { const [isExpanded, setIsExpanded] = useState(false); const roleColor = roleColors[message.role as keyof typeof roleColors] || roleColors.user; @@ -428,7 +428,7 @@ function CoreMessageView({ message, getTokenEstimate, totalCompletionTokens }: C function findTriggeringUserMessage(promptAndResponses: LlmPromptAndResponse[]): string { // Look through all prompt and responses in reverse order. - // Generally this should be the final CoreMessage of the prompt. + // Generally this should be the final ModelMessage of the prompt. for (let i = promptAndResponses.length - 1; i >= 0; i--) { const promptAndResponse = promptAndResponses[i]; // Look through messages in reverse order to find the last user message diff --git a/app/lib/.server/llm/convex-agent.ts b/app/lib/.server/llm/convex-agent.ts index 51d03e800..4e1c6dd38 100644 --- a/app/lib/.server/llm/convex-agent.ts +++ b/app/lib/.server/llm/convex-agent.ts @@ -2,7 +2,7 @@ import { createDataStream, streamText, type CoreAssistantMessage, - type CoreMessage, + type ModelMessage, type CoreToolMessage, type DataStreamWriter, type LanguageModelUsage, @@ -108,7 +108,7 @@ export async function convexAgent(args: { tools.edit = editTool; } - const messagesForDataStream: CoreMessage[] = [ + const messagesForDataStream: ModelMessage[] = [ { role: 'system' as const, content: ROLE_SYSTEM_PROMPT, @@ -124,7 +124,7 @@ export async function convexAgent(args: { execute(dataStream) { const result = streamText({ model: provider.model, - maxTokens: provider.maxTokens, + maxOutputTokens: provider.maxTokens, providerOptions: provider.options, messages: messagesForDataStream, tools, @@ -139,7 +139,7 @@ export async function convexAgent(args: { recordUsageCb, toolsDisabledFromRepeatedErrors: shouldDisableTools, recordRawPromptsForDebugging, - coreMessages: messagesForDataStream, + modelMessages: messagesForDataStream, modelProvider, modelChoice, collapsedMessages, @@ -207,7 +207,7 @@ async function onFinishHandler({ recordUsageCb, toolsDisabledFromRepeatedErrors, recordRawPromptsForDebugging, - coreMessages, + modelMessages, modelProvider, modelChoice, collapsedMessages, @@ -227,7 +227,7 @@ async function onFinishHandler({ ) => Promise; recordRawPromptsForDebugging: boolean; toolsDisabledFromRepeatedErrors: boolean; - coreMessages: CoreMessage[]; + modelMessages: ModelMessage[]; modelProvider: ModelProvider; modelChoice: string | undefined; collapsedMessages: boolean; @@ -327,13 +327,13 @@ async function onFinishHandler({ await recordUsageCb(messages[messages.length - 1], { usage, providerMetadata }); } if (recordRawPromptsForDebugging) { - const responseCoreMessages = result.response.messages as (CoreAssistantMessage | CoreToolMessage)[]; + const responseModelMessages = result.response.messages as (CoreAssistantMessage | CoreToolMessage)[]; // don't block the request but keep the request alive in Vercel Lambdas waitUntil( storeDebugPrompt( - coreMessages, + modelMessages, chatInitialId, - responseCoreMessages, + responseModelMessages, result, { usage, @@ -406,9 +406,9 @@ function buildUsageRecord(usage: Usage): UsageRecord { } async function storeDebugPrompt( - promptCoreMessages: CoreMessage[], + promptModelMessages: ModelMessage[], chatInitialId: string, - responseCoreMessages: CoreMessage[], + responseModelMessages: ModelMessage[], result: Omit, 'stepType' | 'isContinued'>, generation: { usage: LanguageModelUsage; providerMetadata?: ProviderMetadata }, modelProvider: ModelProvider, @@ -418,7 +418,7 @@ async function storeDebugPrompt( const modelId = result.response.modelId || ''; const usage = usageFromGeneration(generation); - const promptMessageData = new TextEncoder().encode(JSON.stringify(promptCoreMessages)); + const promptMessageData = new TextEncoder().encode(JSON.stringify(promptModelMessages)); const compressedData = compressWithLz4Server(promptMessageData); type Metadata = Omit<(typeof internal.debugPrompt.storeDebugPrompt)['_args'], 'promptCoreMessagesStorageId'>; @@ -426,7 +426,7 @@ async function storeDebugPrompt( const metadata = { chatInitialId, - responseCoreMessages, + responseCoreMessages: responseModelMessages, finishReason, modelId, usage: buildUsageRecord(usage), diff --git a/app/lib/hooks/useDebugPrompt.ts b/app/lib/hooks/useDebugPrompt.ts index e5398daa1..b28cc4762 100644 --- a/app/lib/hooks/useDebugPrompt.ts +++ b/app/lib/hooks/useDebugPrompt.ts @@ -1,13 +1,13 @@ import { useConvex, useMutation, useQuery } from 'convex/react'; import { useQueries as useReactQueries } from '@tanstack/react-query'; import { api } from '@convex/_generated/api'; -import type { CoreMessage } from 'ai'; +import type { ModelMessage } from 'ai'; import { decompressWithLz4 } from '~/lib/compression.client'; import { queryClientStore } from '~/lib/stores/reactQueryClient'; import { useEffect, useState } from 'react'; import { getConvexAuthToken } from '~/lib/stores/sessionId'; -async function fetchPromptData(url: string): Promise { +async function fetchPromptData(url: string): Promise { const response = await fetch(url); if (!response.ok) { throw new Error(`Failed to fetch prompt data: ${response.statusText}`); @@ -17,7 +17,7 @@ async function fetchPromptData(url: string): Promise { const decompressedData = decompressWithLz4(new Uint8Array(compressedData)); const textDecoder = new TextDecoder(); const jsonString = textDecoder.decode(decompressedData); - return JSON.parse(jsonString) as CoreMessage[]; + return JSON.parse(jsonString) as ModelMessage[]; } export function useAuthToken() { diff --git a/chef-agent/cleanupAssistantMessages.ts b/chef-agent/cleanupAssistantMessages.ts index f5f7379a8..c13a3d68d 100644 --- a/chef-agent/cleanupAssistantMessages.ts +++ b/chef-agent/cleanupAssistantMessages.ts @@ -1,4 +1,4 @@ -import { convertToCoreMessages } from 'ai'; +import { convertToModelMessages } from 'ai'; import type { Message } from 'ai'; import { EXCLUDED_FILE_PATHS } from './constants.js'; @@ -24,7 +24,7 @@ export function cleanupAssistantMessages(messages: Message[]) { (message.parts && message.parts.filter((part) => part.type === 'text' || part.type === 'tool-invocation').length > 0), ); - return convertToCoreMessages(processedMessages).filter((message) => message.content.length > 0); + return convertToModelMessages(processedMessages).filter((message) => message.content.length > 0); } function cleanMessage(message: string) { diff --git a/chef-agent/package.json b/chef-agent/package.json index 8f0df1455..6e8d3cafa 100644 --- a/chef-agent/package.json +++ b/chef-agent/package.json @@ -8,11 +8,11 @@ "typecheck": "tsc" }, "dependencies": { - "ai": "^4.3.2", + "ai": "^5.0.8", "jose": "^5.9.6", "path-browserify": "^1.0.1", "typescript": "^5.4.2", - "zod": "^3.24.1" + "zod": "^3.25.0" }, "devDependencies": { "@types/node": "^20.17.30", diff --git a/package.json b/package.json index 16203d045..ea9b7df0f 100644 --- a/package.json +++ b/package.json @@ -31,13 +31,13 @@ "node": ">=18.18.0" }, "dependencies": { - "@ai-sdk/amazon-bedrock": "^2.2.9", - "@ai-sdk/anthropic": "^1.2.12", - "@ai-sdk/google": "^1.2.11", - "@ai-sdk/google-vertex": "^2.2.24", - "@ai-sdk/openai": "^1.3.6", - "@ai-sdk/react": "^1.2.5", - "@ai-sdk/xai": "^1.2.13", + "@ai-sdk/amazon-bedrock": "^2.0.0", + "@ai-sdk/anthropic": "^2.0.0", + "@ai-sdk/google": "^2.0.0", + "@ai-sdk/google-vertex": "^2.0.0", + "@ai-sdk/openai": "^2.0.5", + "@ai-sdk/react": "^2.0.0", + "@ai-sdk/xai": "^2.0.0", "@auth0/auth0-react": "^2.3.0", "@aws-sdk/credential-providers": "^3.782.0", "@aws-sdk/rds-signer": "^3.782.0", @@ -90,7 +90,7 @@ "@xterm/addon-fit": "^0.10.0", "@xterm/addon-web-links": "^0.11.0", "@xterm/xterm": "^5.5.0", - "ai": "^4.3.2", + "ai": "^5.0.8", "allotment": "^1.20.3", "chart.js": "^4.4.9", "chef-agent": "workspace:*", @@ -188,18 +188,14 @@ "vite-plugin-optimize-css-modules": "^1.1.0", "vite-tsconfig-paths": "^4.3.2", "vitest": "^2.1.9", - "zod": "^3.24.1" + "zod": "^3.25.0" }, "resolutions": { "@typescript-eslint/utils": "^8.0.0-alpha.30" }, "pnpm": { "overrides": { - "@remix-run/cloudflare": "npm:@remix-run/node@2.15.3", - "@ai-sdk/google": "npm:@convex-dev/ai-sdk-google@1.2.17" - }, - "patchedDependencies": { - "@ai-sdk/openai@1.3.6": "patches/@ai-sdk__openai@1.3.6.patch" + "@remix-run/cloudflare": "npm:@remix-run/node@2.15.3" } }, "packageManager": "pnpm@9.5.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc94d4c28..6f3200cb8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,38 +7,32 @@ settings: overrides: '@typescript-eslint/utils': ^8.0.0-alpha.30 '@remix-run/cloudflare': npm:@remix-run/node@2.15.3 - '@ai-sdk/google': npm:@convex-dev/ai-sdk-google@1.2.17 - -patchedDependencies: - '@ai-sdk/openai@1.3.6': - hash: czsd76p7yavx4uccq5pd3xgsfu - path: patches/@ai-sdk__openai@1.3.6.patch importers: .: dependencies: '@ai-sdk/amazon-bedrock': - specifier: ^2.2.9 - version: 2.2.9(zod@3.24.1) + specifier: ^2.0.0 + version: 2.2.9(zod@3.25.76) '@ai-sdk/anthropic': - specifier: ^1.2.12 - version: 1.2.12(zod@3.24.1) + specifier: ^2.0.0 + version: 2.0.1(zod@3.25.76) '@ai-sdk/google': - specifier: npm:@convex-dev/ai-sdk-google@1.2.17 - version: '@convex-dev/ai-sdk-google@1.2.17(zod@3.24.1)' + specifier: ^2.0.0 + version: 2.0.3(zod@3.25.76) '@ai-sdk/google-vertex': - specifier: ^2.2.24 - version: 2.2.24(zod@3.24.1) + specifier: ^2.0.0 + version: 2.2.24(zod@3.25.76) '@ai-sdk/openai': - specifier: ^1.3.6 - version: 1.3.6(patch_hash=czsd76p7yavx4uccq5pd3xgsfu)(zod@3.24.1) + specifier: ^2.0.5 + version: 2.0.7(zod@3.25.76) '@ai-sdk/react': - specifier: ^1.2.5 - version: 1.2.6(react@18.3.1)(zod@3.24.1) + specifier: ^2.0.0 + version: 2.0.8(react@18.3.1)(zod@3.25.76) '@ai-sdk/xai': - specifier: ^1.2.13 - version: 1.2.13(zod@3.24.1) + specifier: ^2.0.0 + version: 2.0.3(zod@3.25.76) '@auth0/auth0-react': specifier: ^2.3.0 version: 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -98,7 +92,7 @@ importers: version: 6.36.2 '@convex-dev/ai-sdk-google': specifier: 1.2.17 - version: 1.2.17(zod@3.24.1) + version: 1.2.17(zod@3.25.76) '@convex-dev/design-system': specifier: 0.1.11 version: 0.1.11(@popperjs/core@2.11.8)(@radix-ui/react-icons@1.3.2(react@18.3.1))(@tailwindcss/forms@0.5.10(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.7.3))))(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react@18.3.1)(tailwind-scrollbar@3.0.3(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.7.3))))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.7.3))) @@ -196,8 +190,8 @@ importers: specifier: ^5.5.0 version: 5.5.0 ai: - specifier: ^4.3.2 - version: 4.3.2(react@18.3.1)(zod@3.24.1) + specifier: ^5.0.8 + version: 5.0.8(zod@3.25.76) allotment: specifier: ^1.20.3 version: 1.20.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -221,7 +215,7 @@ importers: version: 1.25.0-alpha.3(@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) convex-helpers: specifier: ^0.1.79 - version: 0.1.79(convex@1.25.0-alpha.3(@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(zod@3.24.1) + version: 0.1.79(convex@1.25.0-alpha.3(@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(zod@3.25.76) date-fns: specifier: ^3.6.0 version: 3.6.0 @@ -281,7 +275,7 @@ importers: version: link:@vercel/functions/oidc openai: specifier: ^4.93.0 - version: 4.93.0(ws@8.18.0)(zod@3.24.1) + version: 4.93.0(ws@8.18.0)(zod@3.25.76) posthog-js: specifier: ^1.235.4 version: 1.235.4 @@ -326,7 +320,7 @@ importers: version: 0.2.0(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/server-runtime@2.15.3(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) remix-utils: specifier: ^7.7.0 - version: 7.7.0(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.24.1) + version: 7.7.0(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.25.76) shiki: specifier: ^1.24.0 version: 1.29.2 @@ -485,14 +479,14 @@ importers: specifier: ^2.1.9 version: 2.1.9(@edge-runtime/vm@5.0.0)(@types/node@22.14.0)(jsdom@26.0.0)(sass-embedded@1.83.4)(sugarss@4.0.1(postcss@8.5.3)) zod: - specifier: ^3.24.1 - version: 3.24.1 + specifier: ^3.25.0 + version: 3.25.76 chef-agent: dependencies: ai: - specifier: ^4.3.2 - version: 4.3.2(react@18.3.1)(zod@3.24.1) + specifier: ^5.0.8 + version: 5.0.8(zod@3.25.76) jose: specifier: ^5.9.6 version: 5.9.6 @@ -503,8 +497,8 @@ importers: specifier: ^5.4.2 version: 5.8.3 zod: - specifier: ^3.24.1 - version: 3.24.1 + specifier: ^3.25.0 + version: 3.25.76 devDependencies: '@types/node': specifier: ^20.17.30 @@ -548,22 +542,25 @@ importers: dependencies: '@ai-sdk/anthropic': specifier: ^1.2.4 - version: 1.2.4(zod@3.24.1) + version: 1.2.4(zod@3.25.76) '@ai-sdk/google': - specifier: npm:@convex-dev/ai-sdk-google@1.2.17 - version: '@convex-dev/ai-sdk-google@1.2.17(zod@3.24.1)' + specifier: ^1.2.11 + version: 1.2.22(zod@3.25.76) '@ai-sdk/openai': specifier: ^1.3.6 - version: 1.3.6(patch_hash=czsd76p7yavx4uccq5pd3xgsfu)(zod@3.24.1) + version: 1.3.6(zod@3.25.76) '@ai-sdk/xai': specifier: ^1.2.13 - version: 1.2.13(zod@3.24.1) + version: 1.2.13(zod@3.25.76) + ai: + specifier: ^4.3.2 + version: 4.3.2(react@18.3.1)(zod@3.25.76) async-mutex: specifier: ^0.5.0 version: 0.5.0 braintrust: specifier: ^0.0.199 - version: 0.0.199(@aws-sdk/credential-provider-web-identity@3.782.0)(openai@4.93.0(ws@8.18.0)(zod@3.24.1))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.24.1) + version: 0.0.199(@aws-sdk/credential-provider-web-identity@3.782.0)(openai@4.93.0(ws@8.18.0)(zod@3.25.76))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.25.76) chef-agent: specifier: workspace:* version: link:../chef-agent @@ -601,24 +598,66 @@ packages: peerDependencies: zod: ^3.0.0 + '@ai-sdk/anthropic@2.0.1': + resolution: {integrity: sha512-HtNbpNV9qXQosHu00+CBMEcdTerwZY+kpVMNak0xP/P5TF6XkPf7IyizhLuc7y5zcXMjZCMA7jDGkcEdZCEdkw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + + '@ai-sdk/gateway@1.0.4': + resolution: {integrity: sha512-1roLdgMbFU3Nr4MC97/te7w6OqxsWBkDUkpbCcvxF3jz/ku91WVaJldn/PKU8feMKNyI5W9wnqhbjb1BqbExOQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@ai-sdk/google-vertex@2.2.24': resolution: {integrity: sha512-zi1ZN6jQEBRke/WMbZv0YkeqQ3nOs8ihxjVh/8z1tUn+S1xgRaYXf4+r6+Izh2YqVHIMNwjhUYryQRBGq20cgQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 + '@ai-sdk/google@1.2.19': + resolution: {integrity: sha512-Xgl6eftIRQ4srUdCzxM112JuewVMij5q4JLcNmHcB68Bxn9dpr3MVUSPlJwmameuiQuISIA8lMB+iRiRbFsaqA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + + '@ai-sdk/google@1.2.22': + resolution: {integrity: sha512-Ppxu3DIieF1G9pyQ5O1Z646GYR0gkC57YdBqXJ82qvCdhEhZHu0TWhmnOoeIWe2olSbuDeoOY+MfJrW8dzS3Hw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + + '@ai-sdk/google@2.0.3': + resolution: {integrity: sha512-rQkY4nQGZnQw6pfftqsGsXXAqkGnl1gYjSbvD8+zyrVg2KAYeJU0NxIaacLWCORNcW+yQ/cqTpK/Uku/SIdEqA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@ai-sdk/openai-compatible@0.2.11': resolution: {integrity: sha512-56U0uNCcFTygA4h6R/uREv8r5sKA3/pGkpIAnMOpRzs5wiARlTYakWW3LZgxg6D4Gpeswo4gwNJczB7nM0K1Qg==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 + '@ai-sdk/openai-compatible@1.0.3': + resolution: {integrity: sha512-SE49TeOGppPtP4GTOXAl7WOhXXx42/VKpei3pNozjrD8NTkLX29Mib5t06VB5leaMjHNmyJMLECiWbWQV5W1ug==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@ai-sdk/openai@1.3.6': resolution: {integrity: sha512-Lyp6W6dg+ERMJru3DI8/pWAjXLB0GbMMlXh4jxA3mVny8CJHlCAjlEJRuAdLg1/CFz4J1UDN2/4qBnIWtLFIqw==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 + '@ai-sdk/openai@2.0.7': + resolution: {integrity: sha512-gIomHziQDBx1hs4VzDSDEFlfojf4/YQWY9F+r8ZiviGNUs5JKNbgHh1JoEHuC2XmMQ0x9LSyavLcqRn6aDxcyg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@ai-sdk/provider-utils@1.0.22': resolution: {integrity: sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ==} engines: {node: '>=18'} @@ -652,6 +691,12 @@ packages: peerDependencies: zod: ^3.23.8 + '@ai-sdk/provider-utils@3.0.1': + resolution: {integrity: sha512-/iP1sKc6UdJgGH98OCly7sWJKv+J9G47PnTjIj40IJMUQKwDrUMyf7zOOfRtPwSuNifYhSoJQ4s1WltI65gJ/g==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@ai-sdk/provider@0.0.26': resolution: {integrity: sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==} engines: {node: '>=18'} @@ -664,6 +709,10 @@ packages: resolution: {integrity: sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==} engines: {node: '>=18'} + '@ai-sdk/provider@2.0.0': + resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==} + engines: {node: '>=18'} + '@ai-sdk/react@0.0.70': resolution: {integrity: sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==} engines: {node: '>=18'} @@ -686,6 +735,16 @@ packages: zod: optional: true + '@ai-sdk/react@2.0.8': + resolution: {integrity: sha512-I9CI53lncv0nUy3TPW0lrnoHCZx4NUaAuFCgm6U0bId0PQKeYi61Z9XFrgo3mDByH2SSC3OVsPq6d5Db8kF1FQ==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.25.76 || ^4 + peerDependenciesMeta: + zod: + optional: true + '@ai-sdk/solid@0.0.54': resolution: {integrity: sha512-96KWTVK+opdFeRubqrgaJXoNiDP89gNxFRWUp0PJOotZW816AbhUf4EnDjBjXTLjXL1n0h8tGSE9sZsRkj9wQQ==} engines: {node: '>=18'} @@ -734,6 +793,12 @@ packages: peerDependencies: zod: ^3.0.0 + '@ai-sdk/xai@2.0.3': + resolution: {integrity: sha512-9Hsim5y4KJa+6DQBvoKcCp6ooWvfdbn1quOCEgSAnni6OJBL6QuImOcDmRr/YE6hrYo2RgLF56MtI2OyQqbh5w==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -4008,6 +4073,9 @@ packages: engines: {node: '>=8.10'} hasBin: true + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + '@stylistic/eslint-plugin-ts@2.13.0': resolution: {integrity: sha512-nooe1oTwz60T4wQhZ+5u0/GAu3ygkKF9vPPZeRn/meG71ntQ0EZXVOKEonluAYl/+CV2T+nN0dknHa4evAW13Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4545,6 +4613,12 @@ packages: react: optional: true + ai@5.0.8: + resolution: {integrity: sha512-qbnhj046UvG30V1S5WhjBn+RBGEAmi8PSZWqMhRsE3EPxvO5BcePXTZFA23e9MYyWS9zr4Vm8Mv3wQXwLmtIBw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -5812,6 +5886,10 @@ packages: resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} engines: {node: '>=14.18'} + eventsource-parser@3.0.3: + resolution: {integrity: sha512-nVpZkTMM9rF6AQ9gPJpFsNAMt48wIzB5TQgiTLdHiuO8XEDhUgZEhqKlZWXbIzo9VmJ/HvysHqEaVeD5v9TPvA==} + engines: {node: '>=20.0.0'} + evp_bytestokey@1.0.3: resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} @@ -9575,95 +9653,145 @@ packages: zod@3.22.3: resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==} - zod@3.24.1: - resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: - '@ai-sdk/amazon-bedrock@2.2.9(zod@3.24.1)': + '@ai-sdk/amazon-bedrock@2.2.9(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.8(zod@3.24.1) + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76) '@smithy/eventstream-codec': 4.0.2 '@smithy/util-utf8': 4.0.0 aws4fetch: 1.0.20 - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/anthropic@1.2.12(zod@3.24.1)': + '@ai-sdk/anthropic@1.2.12(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.8(zod@3.24.1) - zod: 3.24.1 + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76) + zod: 3.25.76 - '@ai-sdk/anthropic@1.2.4(zod@3.24.1)': + '@ai-sdk/anthropic@1.2.4(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.0 - '@ai-sdk/provider-utils': 2.2.3(zod@3.24.1) - zod: 3.24.1 + '@ai-sdk/provider-utils': 2.2.3(zod@3.25.76) + zod: 3.25.76 - '@ai-sdk/google-vertex@2.2.24(zod@3.24.1)': + '@ai-sdk/anthropic@2.0.1(zod@3.25.76)': dependencies: - '@ai-sdk/anthropic': 1.2.12(zod@3.24.1) - '@ai-sdk/google': '@convex-dev/ai-sdk-google@1.2.17(zod@3.24.1)' + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/gateway@1.0.4(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/google-vertex@2.2.24(zod@3.25.76)': + dependencies: + '@ai-sdk/anthropic': 1.2.12(zod@3.25.76) + '@ai-sdk/google': 1.2.19(zod@3.25.76) '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.8(zod@3.24.1) + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76) google-auth-library: 9.15.1 - zod: 3.24.1 + zod: 3.25.76 transitivePeerDependencies: - encoding - supports-color - '@ai-sdk/openai-compatible@0.2.11(zod@3.24.1)': + '@ai-sdk/google@1.2.19(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 1.1.3 + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/google@1.2.22(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 1.1.3 + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/google@2.0.3(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/openai-compatible@0.2.11(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.7(zod@3.24.1) - zod: 3.24.1 + '@ai-sdk/provider-utils': 2.2.7(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/openai-compatible@1.0.3(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + zod: 3.25.76 - '@ai-sdk/openai@1.3.6(patch_hash=czsd76p7yavx4uccq5pd3xgsfu)(zod@3.24.1)': + '@ai-sdk/openai@1.3.6(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.0 - '@ai-sdk/provider-utils': 2.2.3(zod@3.24.1) - zod: 3.24.1 + '@ai-sdk/provider-utils': 2.2.3(zod@3.25.76) + zod: 3.25.76 - '@ai-sdk/provider-utils@1.0.22(zod@3.24.1)': + '@ai-sdk/openai@2.0.7(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/provider-utils@1.0.22(zod@3.25.76)': dependencies: '@ai-sdk/provider': 0.0.26 eventsource-parser: 1.1.2 nanoid: 3.3.8 secure-json-parse: 2.7.0 optionalDependencies: - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/provider-utils@2.2.3(zod@3.24.1)': + '@ai-sdk/provider-utils@2.2.3(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.0 nanoid: 3.3.8 secure-json-parse: 2.7.0 - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/provider-utils@2.2.4(zod@3.24.1)': + '@ai-sdk/provider-utils@2.2.4(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.0 nanoid: 3.3.8 secure-json-parse: 2.7.0 - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/provider-utils@2.2.7(zod@3.24.1)': + '@ai-sdk/provider-utils@2.2.7(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 nanoid: 3.3.8 secure-json-parse: 2.7.0 - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/provider-utils@2.2.8(zod@3.24.1)': + '@ai-sdk/provider-utils@2.2.8(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 nanoid: 3.3.8 secure-json-parse: 2.7.0 - zod: 3.24.1 + zod: 3.25.76 + + '@ai-sdk/provider-utils@3.0.1(zod@3.25.76)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@standard-schema/spec': 1.0.0 + eventsource-parser: 3.0.3 + zod: 3.25.76 + zod-to-json-schema: 3.24.1(zod@3.25.76) '@ai-sdk/provider@0.0.26': dependencies: @@ -9677,76 +9805,97 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/react@0.0.70(react@18.3.1)(zod@3.24.1)': + '@ai-sdk/provider@2.0.0': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/react@0.0.70(react@18.3.1)(zod@3.25.76)': dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) - '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) + '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) swr: 2.3.2(react@18.3.1) throttleit: 2.1.0 optionalDependencies: react: 18.3.1 - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/react@1.2.6(react@18.3.1)(zod@3.24.1)': + '@ai-sdk/react@1.2.6(react@18.3.1)(zod@3.25.76)': dependencies: - '@ai-sdk/provider-utils': 2.2.4(zod@3.24.1) - '@ai-sdk/ui-utils': 1.2.5(zod@3.24.1) + '@ai-sdk/provider-utils': 2.2.4(zod@3.25.76) + '@ai-sdk/ui-utils': 1.2.5(zod@3.25.76) react: 18.3.1 swr: 2.3.4(react@18.3.1) throttleit: 2.1.0 optionalDependencies: - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/solid@0.0.54(zod@3.24.1)': + '@ai-sdk/react@2.0.8(react@18.3.1)(zod@3.25.76)': dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) - '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + ai: 5.0.8(zod@3.25.76) + react: 18.3.1 + swr: 2.3.4(react@18.3.1) + throttleit: 2.1.0 + optionalDependencies: + zod: 3.25.76 + + '@ai-sdk/solid@0.0.54(zod@3.25.76)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) + '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.57(svelte@5.28.1)(zod@3.24.1)': + '@ai-sdk/svelte@0.0.57(svelte@5.28.1)(zod@3.25.76)': dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) - '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) + '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) sswr: 2.2.0(svelte@5.28.1) optionalDependencies: svelte: 5.28.1 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@0.0.50(zod@3.24.1)': + '@ai-sdk/ui-utils@0.0.50(zod@3.25.76)': dependencies: '@ai-sdk/provider': 0.0.26 - '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) + '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) json-schema: 0.4.0 secure-json-parse: 2.7.0 - zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-json-schema: 3.24.1(zod@3.25.76) optionalDependencies: - zod: 3.24.1 + zod: 3.25.76 - '@ai-sdk/ui-utils@1.2.5(zod@3.24.1)': + '@ai-sdk/ui-utils@1.2.5(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.0 - '@ai-sdk/provider-utils': 2.2.4(zod@3.24.1) - zod: 3.24.1 - zod-to-json-schema: 3.24.1(zod@3.24.1) + '@ai-sdk/provider-utils': 2.2.4(zod@3.25.76) + zod: 3.25.76 + zod-to-json-schema: 3.24.1(zod@3.25.76) - '@ai-sdk/vue@0.0.59(vue@3.5.13(typescript@5.8.3))(zod@3.24.1)': + '@ai-sdk/vue@0.0.59(vue@3.5.13(typescript@5.8.3))(zod@3.25.76)': dependencies: - '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) - '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) + '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) swrv: 1.1.0(vue@3.5.13(typescript@5.8.3)) optionalDependencies: vue: 3.5.13(typescript@5.8.3) transitivePeerDependencies: - zod - '@ai-sdk/xai@1.2.13(zod@3.24.1)': + '@ai-sdk/xai@1.2.13(zod@3.25.76)': dependencies: - '@ai-sdk/openai-compatible': 0.2.11(zod@3.24.1) + '@ai-sdk/openai-compatible': 0.2.11(zod@3.25.76) '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.7(zod@3.24.1) - zod: 3.24.1 + '@ai-sdk/provider-utils': 2.2.7(zod@3.25.76) + zod: 3.25.76 + + '@ai-sdk/xai@2.0.3(zod@3.25.76)': + dependencies: + '@ai-sdk/openai-compatible': 1.0.3(zod@3.25.76) + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + zod: 3.25.76 '@alloc/quick-lru@5.2.0': {} @@ -9763,10 +9912,10 @@ snapshots: '@csstools/css-tokenizer': 3.0.3 lru-cache: 10.4.3 - '@asteasolutions/zod-to-openapi@6.4.0(zod@3.24.1)': + '@asteasolutions/zod-to-openapi@6.4.0(zod@3.25.76)': dependencies: openapi3-ts: 4.4.0 - zod: 3.24.1 + zod: 3.25.76 '@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -10412,9 +10561,9 @@ snapshots: '@braintrust/core@0.0.84': dependencies: - '@asteasolutions/zod-to-openapi': 6.4.0(zod@3.24.1) + '@asteasolutions/zod-to-openapi': 6.4.0(zod@3.25.76) uuid: 9.0.1 - zod: 3.24.1 + zod: 3.25.76 '@bufbuild/protobuf@2.2.5': optional: true @@ -10566,11 +10715,11 @@ snapshots: style-mod: 4.1.2 w3c-keyname: 2.2.8 - '@convex-dev/ai-sdk-google@1.2.17(zod@3.24.1)': + '@convex-dev/ai-sdk-google@1.2.17(zod@3.25.76)': dependencies: '@ai-sdk/provider': 1.1.3 - '@ai-sdk/provider-utils': 2.2.8(zod@3.24.1) - zod: 3.24.1 + '@ai-sdk/provider-utils': 2.2.8(zod@3.25.76) + zod: 3.25.76 '@convex-dev/design-system@0.1.11(@popperjs/core@2.11.8)(@radix-ui/react-icons@1.3.2(react@18.3.1))(@tailwindcss/forms@0.5.10(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.7.3))))(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react@18.3.1)(tailwind-scrollbar@3.0.3(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.7.3))))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.14.0)(typescript@5.7.3)))': dependencies: @@ -13208,6 +13357,8 @@ snapshots: ignore: 5.3.2 p-map: 4.0.0 + '@standard-schema/spec@1.0.0': {} + '@stylistic/eslint-plugin-ts@2.13.0(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/utils': 8.24.0(eslint@9.20.1(jiti@2.4.2))(typescript@5.7.3) @@ -13931,43 +14082,51 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@3.4.33(openai@4.93.0(ws@8.18.0)(zod@3.24.1))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.24.1): + ai@3.4.33(openai@4.93.0(ws@8.18.0)(zod@3.25.76))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.25.76): dependencies: '@ai-sdk/provider': 0.0.26 - '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) - '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.24.1) - '@ai-sdk/solid': 0.0.54(zod@3.24.1) - '@ai-sdk/svelte': 0.0.57(svelte@5.28.1)(zod@3.24.1) - '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) - '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.8.3))(zod@3.24.1) + '@ai-sdk/provider-utils': 1.0.22(zod@3.25.76) + '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.25.76) + '@ai-sdk/solid': 0.0.54(zod@3.25.76) + '@ai-sdk/svelte': 0.0.57(svelte@5.28.1)(zod@3.25.76) + '@ai-sdk/ui-utils': 0.0.50(zod@3.25.76) + '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.8.3))(zod@3.25.76) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 jsondiffpatch: 0.6.0 secure-json-parse: 2.7.0 - zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-json-schema: 3.24.1(zod@3.25.76) optionalDependencies: - openai: 4.93.0(ws@8.18.0)(zod@3.24.1) + openai: 4.93.0(ws@8.18.0)(zod@3.25.76) react: 18.3.1 sswr: 2.2.0(svelte@5.28.1) svelte: 5.28.1 - zod: 3.24.1 + zod: 3.25.76 transitivePeerDependencies: - solid-js - vue - ai@4.3.2(react@18.3.1)(zod@3.24.1): + ai@4.3.2(react@18.3.1)(zod@3.25.76): dependencies: '@ai-sdk/provider': 1.1.0 - '@ai-sdk/provider-utils': 2.2.4(zod@3.24.1) - '@ai-sdk/react': 1.2.6(react@18.3.1)(zod@3.24.1) - '@ai-sdk/ui-utils': 1.2.5(zod@3.24.1) + '@ai-sdk/provider-utils': 2.2.4(zod@3.25.76) + '@ai-sdk/react': 1.2.6(react@18.3.1)(zod@3.25.76) + '@ai-sdk/ui-utils': 1.2.5(zod@3.25.76) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 - zod: 3.24.1 + zod: 3.25.76 optionalDependencies: react: 18.3.1 + ai@5.0.8(zod@3.25.76): + dependencies: + '@ai-sdk/gateway': 1.0.4(zod@3.25.76) + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.1(zod@3.25.76) + '@opentelemetry/api': 1.9.0 + zod: 3.25.76 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -14207,13 +14366,13 @@ snapshots: dependencies: fill-range: 7.1.1 - braintrust@0.0.199(@aws-sdk/credential-provider-web-identity@3.782.0)(openai@4.93.0(ws@8.18.0)(zod@3.24.1))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.24.1): + braintrust@0.0.199(@aws-sdk/credential-provider-web-identity@3.782.0)(openai@4.93.0(ws@8.18.0)(zod@3.25.76))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.25.76): dependencies: '@ai-sdk/provider': 1.1.3 '@braintrust/core': 0.0.84 '@next/env': 14.2.28 '@vercel/functions': 1.6.0(@aws-sdk/credential-provider-web-identity@3.782.0) - ai: 3.4.33(openai@4.93.0(ws@8.18.0)(zod@3.24.1))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.24.1) + ai: 3.4.33(openai@4.93.0(ws@8.18.0)(zod@3.25.76))(react@18.3.1)(sswr@2.2.0(svelte@5.28.1))(svelte@5.28.1)(vue@3.5.13(typescript@5.8.3))(zod@3.25.76) argparse: 2.0.1 chalk: 4.1.2 cli-progress: 3.12.0 @@ -14228,8 +14387,8 @@ snapshots: slugify: 1.6.6 source-map: 0.7.4 uuid: 9.0.1 - zod: 3.24.1 - zod-to-json-schema: 3.24.1(zod@3.24.1) + zod: 3.25.76 + zod-to-json-schema: 3.24.1(zod@3.25.76) transitivePeerDependencies: - '@aws-sdk/credential-provider-web-identity' - openai @@ -14552,13 +14711,13 @@ snapshots: convert-source-map@2.0.0: {} - convex-helpers@0.1.79(convex@1.25.0-alpha.3(@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(zod@3.24.1): + convex-helpers@0.1.79(convex@1.25.0-alpha.3(@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1))(react@18.3.1)(typescript@5.7.3)(zod@3.25.76): dependencies: convex: 1.25.0-alpha.3(@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) optionalDependencies: react: 18.3.1 typescript: 5.7.3 - zod: 3.24.1 + zod: 3.25.76 convex-test@0.0.36(convex@1.25.0-alpha.3(@auth0/auth0-react@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)): dependencies: @@ -15494,6 +15653,8 @@ snapshots: eventsource-parser@1.1.2: {} + eventsource-parser@3.0.3: {} + evp_bytestokey@1.0.3: dependencies: md5.js: 1.3.5 @@ -16521,8 +16682,8 @@ snapshots: strip-json-comments: 5.0.1 summary: 2.1.0 typescript: 5.7.3 - zod: 3.24.1 - zod-validation-error: 3.4.0(zod@3.24.1) + zod: 3.25.76 + zod-validation-error: 3.4.0(zod@3.25.76) launchdarkly-js-client-sdk@3.5.0: dependencies: @@ -17658,7 +17819,7 @@ snapshots: regex: 5.1.1 regex-recursion: 5.1.1 - openai@4.93.0(ws@8.18.0)(zod@3.24.1): + openai@4.93.0(ws@8.18.0)(zod@3.25.76): dependencies: '@types/node': 18.19.86 '@types/node-fetch': 2.6.12 @@ -17669,7 +17830,7 @@ snapshots: node-fetch: 2.7.0 optionalDependencies: ws: 8.18.0 - zod: 3.24.1 + zod: 3.25.76 transitivePeerDependencies: - encoding @@ -18424,7 +18585,7 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - remix-utils@7.7.0(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.24.1): + remix-utils@7.7.0(@remix-run/node@2.15.3(typescript@5.7.3))(@remix-run/react@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3))(@remix-run/router@1.22.0)(react@18.3.1)(zod@3.25.76): dependencies: type-fest: 4.34.1 optionalDependencies: @@ -18432,7 +18593,7 @@ snapshots: '@remix-run/react': 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.7.3) '@remix-run/router': 1.22.0 react: 18.3.1 - zod: 3.24.1 + zod: 3.25.76 require-directory@2.1.1: {} @@ -20121,17 +20282,17 @@ snapshots: zimmerframe@1.1.2: {} - zod-to-json-schema@3.24.1(zod@3.24.1): + zod-to-json-schema@3.24.1(zod@3.25.76): dependencies: - zod: 3.24.1 + zod: 3.25.76 - zod-validation-error@3.4.0(zod@3.24.1): + zod-validation-error@3.4.0(zod@3.25.76): dependencies: - zod: 3.24.1 + zod: 3.25.76 zod@3.22.3: optional: true - zod@3.24.1: {} + zod@3.25.76: {} zwitch@2.0.4: {} diff --git a/test-kitchen/package.json b/test-kitchen/package.json index 348730083..52a6927b3 100644 --- a/test-kitchen/package.json +++ b/test-kitchen/package.json @@ -7,6 +7,7 @@ "@ai-sdk/google": "^1.2.11", "@ai-sdk/openai": "^1.3.6", "@ai-sdk/xai": "^1.2.13", + "ai": "^4.3.2", "async-mutex": "^0.5.0", "braintrust": "^0.0.199", "chef-agent": "workspace:*",