diff --git a/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx b/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx
index ad60d7afc75b8..fc93abf135ee9 100644
--- a/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx
+++ b/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx
@@ -1,6 +1,6 @@
import type { UIMessage as MessageType } from '@ai-sdk/react'
import { useChat } from '@ai-sdk/react'
-import { DefaultChatTransport } from 'ai'
+import { DefaultChatTransport, lastAssistantMessageIsCompleteWithToolCalls } from 'ai'
import { AnimatePresence, motion } from 'framer-motion'
import { Eraser, Info, Pencil, X } from 'lucide-react'
import { useRouter } from 'next/router'
@@ -106,6 +106,21 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
const { mutate: sendEvent } = useSendEventMutation()
+ const updateMessage = useCallback(
+ ({
+ messageId,
+ resultId,
+ results,
+ }: {
+ messageId: string
+ resultId?: string
+ results: any[]
+ }) => {
+ snap.updateMessage({ id: messageId, resultId, results })
+ },
+ [snap]
+ )
+
// Handle completion of the assistant's response
const handleChatFinish = useCallback(
({ message }: { message: MessageType }) => {
@@ -122,6 +137,17 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
// TODO(refactor): This useChat hook should be moved down into each chat session.
// That way we won't have to disable switching chats while the chat is loading,
// and don't run the risk of messages getting mixed up between chats.
+ // Sanitize messages to remove Valtio proxy wrappers that can't be cloned
+ const sanitizedMessages = useMemo(() => {
+ if (!snap.activeChat?.messages) return undefined
+
+ return snap.activeChat.messages.map((msg: any) => {
+ // Convert proxy objects to plain objects
+ const plainMessage = JSON.parse(JSON.stringify(msg))
+ return plainMessage
+ })
+ }, [snap.activeChat?.messages])
+
const {
messages: chatMessages,
status: chatStatus,
@@ -133,25 +159,31 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
regenerate,
} = useChat({
id: snap.activeChatId,
- // [Alaister] typecast is needed here because valtio returns readonly arrays
- // and useChat expects a mutable array
- messages: snap.activeChat?.messages as unknown as MessageType[] | undefined,
+ sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithToolCalls,
+ messages: sanitizedMessages,
async onToolCall({ toolCall }) {
+ if (toolCall.dynamic) {
+ return
+ }
+
if (toolCall.toolName === 'rename_chat') {
const { newName } = toolCall.input as { newName: string }
+
if (snap.activeChatId && newName?.trim()) {
snap.renameChat(snap.activeChatId, newName.trim())
+
addToolResult({
tool: toolCall.toolName,
toolCallId: toolCall.toolCallId,
output: 'Chat renamed',
})
+ } else {
+ addToolResult({
+ tool: toolCall.toolName,
+ toolCallId: toolCall.toolCallId,
+ output: 'Failed to rename chat: Invalid chat or name',
+ })
}
- addToolResult({
- tool: toolCall.toolName,
- toolCallId: toolCall.toolCallId,
- output: 'Failed to rename chat: Invalid chat or name',
- })
}
},
transport: new DefaultChatTransport({
@@ -160,7 +192,7 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
// [Joshen] Specifically limiting the chat history that get's sent to reduce the
// size of the context that goes into the model. This should always be an odd number
// as much as possible so that the first message is always the user's
- const MAX_CHAT_HISTORY = 5
+ const MAX_CHAT_HISTORY = 7
const slicedMessages = messages.slice(-MAX_CHAT_HISTORY)
@@ -198,21 +230,6 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
const isChatLoading = chatStatus === 'submitted' || chatStatus === 'streaming'
- const updateMessage = useCallback(
- ({
- messageId,
- resultId,
- results,
- }: {
- messageId: string
- resultId?: string
- results: any[]
- }) => {
- snap.updateMessage({ id: messageId, resultId, results })
- },
- [snap]
- )
-
const deleteMessageFromHere = useCallback(
(messageId: string) => {
// Find the message index in current chatMessages
@@ -299,7 +316,6 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
)
const hasMessages = chatMessages.length > 0
- const isShowingOnboarding = !hasMessages && isApiKeySet
const sendMessageToAssistant = (finalContent: string) => {
if (editingMessageId) {
@@ -391,18 +407,17 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
]}
>
-
-
-
- {hasMessages && (
+
+ {hasMessages ? (
+
{renderedMessages}
{error && (
@@ -442,14 +457,24 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
)}
- )}
-
-
-
+
+
+ ) : (
+
setValue(val)}
+ onFocusInput={() => inputRef.current?.focus()}
+ />
+ )}
{editingMessageId && (
@@ -519,19 +544,6 @@ export const AIAssistant = ({ className }: AIAssistantProps) => {
/>
)}
- {isShowingOnboarding && (
- setValue(val)}
- onFocusInput={() => inputRef.current?.focus()}
- />
- )}
-
lint.level === LINTER_LEVELS.ERROR) ?? []
+ const [securityErrorLints, performanceErrorLints] = partition(
+ errorLints,
+ (lint) => lint.categories?.[0] === 'SECURITY'
+ )
+
return (
-
-
-
How can I assist you?
-
- Generate SQL, RLS policies and edge functions, debug issues or check on your project
- health.
-
-
-
- {prompts.map((item, index) => (
-
- }
- onClick={() => {
- onValueChange(item.prompt)
- onFocusInput?.()
- }}
- >
- {item.title}
-
-
- ))}
+
+
+
+
How can I assist you?
+ {suggestions?.prompts?.length ? (
+ <>
+
Suggestions
+ {prompts.map((item, index) => (
+
+
+ }
+ onClick={() => {
+ onValueChange(item.prompt)
+ onFocusInput?.()
+ }}
+ >
+ {item.title}
+
+
+ ))}
+ >
+ ) : (
+ <>
+ {isLintsLoading ? (
+
+ {Array.from({ length: 6 }).map((_, index) => (
+
+ ))}
+
+ ) : (
+ <>
+ {performanceErrorLints.length > 0 && (
+
+
+ Improve Performance
+
+ {performanceErrorLints.map((lint, index) => {
+ return (
+
+ }
+ onClick={() => {
+ onValueChange(createLintSummaryPrompt(lint))
+ onFocusInput?.()
+ }}
+ >
+ {lint.detail ? lint.detail.replace('\\`', '') : lint.title}
+
+ )
+ })}
+
+ )}
+
+ {securityErrorLints.length > 0 && (
+
+
+ Improve Security
+
+ {securityErrorLints.map((lint, index) => {
+ return (
+ }
+ onClick={() => {
+ onValueChange(createLintSummaryPrompt(lint))
+ onFocusInput?.()
+ }}
+ >
+ {lint.detail ? lint.detail.replace(/\\`/g, '') : lint.title}
+
+ )
+ })}
+
+ )}
+
+
+
Ideas
+ {prompts.map((item, index) => (
+
+ }
+ onClick={() => {
+ onValueChange(item.prompt)
+ onFocusInput?.()
+ }}
+ >
+ {item.title}
+
+ ))}
+
+ >
+ )}
+ >
+ )}
+
)
diff --git a/apps/studio/lib/ai/model.test.ts b/apps/studio/lib/ai/model.test.ts
index 7b5c58a4ae35f..70a4626d529e3 100644
--- a/apps/studio/lib/ai/model.test.ts
+++ b/apps/studio/lib/ai/model.test.ts
@@ -4,7 +4,7 @@ import * as bedrockModule from './bedrock'
import { getModel, ModelErrorMessage } from './model'
vi.mock('@ai-sdk/openai', () => ({
- openai: { chat: vi.fn(() => 'openai-model') },
+ openai: vi.fn(() => 'openai-model'),
}))
vi.mock('./bedrock', async () => ({
@@ -68,7 +68,7 @@ describe('getModel', () => {
expect(model).toEqual('openai-model')
// Default openai model in registry is gpt-5-mini
- expect(openai.chat).toHaveBeenCalledWith('gpt-5-mini')
+ expect(openai).toHaveBeenCalledWith('gpt-5-mini')
expect(promptProviderOptions).toBeUndefined()
})
@@ -94,6 +94,6 @@ describe('getModel', () => {
expect(error).toBeUndefined()
expect(model).toEqual('openai-model')
- expect(openai.chat).toHaveBeenCalledWith('gpt-5')
+ expect(openai).toHaveBeenCalledWith('gpt-5')
})
})
diff --git a/apps/studio/lib/ai/model.ts b/apps/studio/lib/ai/model.ts
index 0bb966f48b862..ff878b6297da2 100644
--- a/apps/studio/lib/ai/model.ts
+++ b/apps/studio/lib/ai/model.ts
@@ -100,7 +100,7 @@ export async function getModel({
return { error: new Error('OPENAI_API_KEY not available') }
}
return {
- model: openai.chat(chosenModelId as OpenAIModel),
+ model: openai(chosenModelId as OpenAIModel),
promptProviderOptions: models[chosenModelId as OpenAIModel]?.promptProviderOptions,
providerOptions: providerRegistry.providerOptions,
}
diff --git a/apps/studio/lib/ai/model.utils.ts b/apps/studio/lib/ai/model.utils.ts
index d876d926b428f..bdd3d83d03ac2 100644
--- a/apps/studio/lib/ai/model.utils.ts
+++ b/apps/studio/lib/ai/model.utils.ts
@@ -54,7 +54,7 @@ export const PROVIDERS: ProviderRegistry = {
},
providerOptions: {
openai: {
- reasoningEffort: 'low',
+ reasoningEffort: 'minimal',
textVerbosity: 'low',
},
},
diff --git a/apps/studio/lib/ai/tool-filter.test.ts b/apps/studio/lib/ai/tool-filter.test.ts
index c419c119e47d1..5ca60c9b7f3c1 100644
--- a/apps/studio/lib/ai/tool-filter.test.ts
+++ b/apps/studio/lib/ai/tool-filter.test.ts
@@ -8,7 +8,6 @@ import {
filterToolsByOptInLevel,
createPrivacyMessageTool,
toolSetValidationSchema,
- transformToolResult,
} from './tool-filter'
describe('TOOL_CATEGORY_MAP', () => {
@@ -237,56 +236,6 @@ describe('createPrivacyMessageTool', () => {
})
})
-describe('transformToolResult', () => {
- it('should wrap a tool with a result transformation function', async () => {
- const originalResult = { data: 'original' }
-
- const mockTool = {
- description: 'Test tool',
- execute: vitest.fn().mockResolvedValue(originalResult),
- } as unknown as Tool
-
- const transformFn = vitest.fn((result: typeof originalResult) => ({
- data: `${result.data} - transformed`,
- }))
-
- const transformedTool = transformToolResult(mockTool, transformFn)
-
- // Tool properties should be preserved
- expect(transformedTool.description).toBe(mockTool.description)
-
- // Execute the transformed tool
- const args = { key: 'value' }
- const options = {} as any
-
- if (!transformedTool.execute) {
- throw new Error('Transformed tool does not have an execute function')
- }
-
- const result = await transformedTool.execute(args, options)
-
- // Original tool should have been called with the same arguments
- expect(mockTool.execute).toHaveBeenCalledWith(args, options)
-
- // Transform function should have been called with the original result
- expect(transformFn).toHaveBeenCalledWith(originalResult)
-
- // Final result should be the transformed value
- expect(result).toEqual({ data: 'original - transformed' })
- })
-
- it('should throw an error if tool is null', () => {
- expect(() => transformToolResult(null as any, () => ({}))).toThrow('Tool is required')
- })
-
- it('should throw an error if tool does not have an execute function', () => {
- const invalidTool = { name: 'invalid' } as any
- expect(() => transformToolResult(invalidTool, () => ({}))).toThrow(
- 'Tool does not have an execute function'
- )
- })
-})
-
describe('toolSetValidationSchema', () => {
it('should accept subset of known tools', () => {
const validSubset = {
diff --git a/apps/studio/lib/ai/tool-filter.ts b/apps/studio/lib/ai/tool-filter.ts
index 33d5f07c7fa0d..a344b3f03e066 100644
--- a/apps/studio/lib/ai/tool-filter.ts
+++ b/apps/studio/lib/ai/tool-filter.ts
@@ -42,31 +42,6 @@ export const toolSetValidationSchema = z.record(
basicToolSchema
)
-/**
- * Transforms the result of a tool execution to a new output.
- */
-export function transformToolResult(
- tool: Tool,
- execute: (result: OriginalResult) => NewResult
-): Tool {
- if (!tool) {
- throw new Error('Tool is required')
- }
-
- if (!tool.execute) {
- throw new Error('Tool does not have an execute function')
- }
-
- // Intercept the tool to add a custom execute function
- return {
- ...tool,
- execute: async (args: any, options: any) => {
- const result = await tool.execute!(args, options)
- return execute(result)
- },
- } as unknown as Tool
-}
-
/**
* Tool categories based on the data they access
*/
diff --git a/apps/studio/package.json b/apps/studio/package.json
index e9e53af5cfcd3..7cb777345f687 100644
--- a/apps/studio/package.json
+++ b/apps/studio/package.json
@@ -26,10 +26,10 @@
},
"dependencies": {
"@ai-sdk/amazon-bedrock": "^3.0.0",
- "@ai-sdk/openai": "^2.0.0",
+ "@ai-sdk/openai": "2.0.32",
"@ai-sdk/provider": "^2.0.0",
"@ai-sdk/provider-utils": "^3.0.0",
- "@ai-sdk/react": "^2.0.0",
+ "@ai-sdk/react": "2.0.45",
"@aws-sdk/credential-providers": "^3.804.0",
"@dagrejs/dagre": "^1.0.4",
"@deno/eszip": "0.83.0",
@@ -70,7 +70,7 @@
"@vercel/functions": "^2.1.0",
"@vitejs/plugin-react": "^4.3.4",
"@zip.js/zip.js": "^2.7.29",
- "ai": "^5.0.0",
+ "ai": "5.0.45",
"ai-commands": "workspace:*",
"awesome-debounce-promise": "^2.1.0",
"common": "workspace:*",
diff --git a/apps/studio/pages/api/ai/sql/generate-v4.ts b/apps/studio/pages/api/ai/sql/generate-v4.ts
index 91540460a04b0..83bbef96852f7 100644
--- a/apps/studio/pages/api/ai/sql/generate-v4.ts
+++ b/apps/studio/pages/api/ai/sql/generate-v4.ts
@@ -72,26 +72,6 @@ async function handlePost(req: NextApiRequest, res: NextApiResponse) {
const { messages: rawMessages, projectRef, connectionString, orgSlug, chatName } = data
- // Server-side safety: limit to last 7 messages and remove `results` property to prevent accidental leakage.
- // Results property is used to cache results client-side after queries are run
- // Tool results will still be included in history sent to model
- const messages = (rawMessages || []).slice(-7).map((msg: any) => {
- if (msg && msg.role === 'assistant' && 'results' in msg) {
- const cleanedMsg = { ...msg }
- delete cleanedMsg.results
- return cleanedMsg
- }
- // [Joshen] Am also filtering out any tool calls which state is "input-streaming"
- // this happens when a user stops the assistant response while the tool is being called
- if (msg && msg.role === 'assistant' && msg.parts) {
- const cleanedParts = msg.parts.filter((part: any) => {
- return !(part.type.startsWith('tool-') && part.state === 'input-streaming')
- })
- return { ...msg, parts: cleanedParts }
- }
- return msg
- })
-
let aiOptInLevel: AiOptInLevel = 'disabled'
let isLimited = false
@@ -117,6 +97,28 @@ async function handlePost(req: NextApiRequest, res: NextApiResponse) {
}
}
+ // Only returns last 7 messages
+ // Filters out tools with invalid states
+ // Filters out tool outputs based on opt-in level using renderingToolOutputParser
+ const messages = (rawMessages || []).slice(-7).map((msg: any) => {
+ if (msg && msg.role === 'assistant' && 'results' in msg) {
+ const cleanedMsg = { ...msg }
+ delete cleanedMsg.results
+ return cleanedMsg
+ }
+ if (msg && msg.role === 'assistant' && msg.parts) {
+ const cleanedParts = msg.parts.filter((part: any) => {
+ if (part.type.startsWith('tool-')) {
+ const invalidStates = ['input-streaming', 'input-available', 'output-error']
+ return !invalidStates.includes(part.state)
+ }
+ return true
+ })
+ return { ...msg, parts: cleanedParts }
+ }
+ return msg
+ })
+
const {
model,
error: modelError,
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 96ed29bc398fd..6a59749143a07 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -709,8 +709,8 @@ importers:
specifier: ^3.0.0
version: 3.0.0(zod@3.25.76)
'@ai-sdk/openai':
- specifier: ^2.0.0
- version: 2.0.2(zod@3.25.76)
+ specifier: 2.0.32
+ version: 2.0.32(zod@3.25.76)
'@ai-sdk/provider':
specifier: ^2.0.0
version: 2.0.0
@@ -718,8 +718,8 @@ importers:
specifier: ^3.0.0
version: 3.0.0(zod@3.25.76)
'@ai-sdk/react':
- specifier: ^2.0.0
- version: 2.0.2(react@18.3.1)(zod@3.25.76)
+ specifier: 2.0.45
+ version: 2.0.45(react@18.3.1)(zod@3.25.76)
'@aws-sdk/credential-providers':
specifier: ^3.804.0
version: 3.823.0
@@ -841,8 +841,8 @@ importers:
specifier: ^2.7.29
version: 2.7.30
ai:
- specifier: ^5.0.0
- version: 5.0.2(zod@3.25.76)
+ specifier: 5.0.45
+ version: 5.0.45(zod@3.25.76)
ai-commands:
specifier: workspace:*
version: link:../../packages/ai-commands
@@ -1839,7 +1839,7 @@ importers:
devDependencies:
openapi-typescript:
specifier: ^7.4.3
- version: 7.5.2(encoding@0.1.13)(typescript@5.7.3)
+ version: 7.5.2(encoding@0.1.13)(typescript@5.5.2)
prettier:
specifier: 3.2.4
version: 3.2.4
@@ -1948,10 +1948,10 @@ importers:
version: 0.1.9
'@tailwindcss/forms':
specifier: ^0.5.0
- version: 0.5.6(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3)))
+ version: 0.5.6(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)))
'@tailwindcss/typography':
specifier: ^0.5.9
- version: 0.5.10(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3)))
+ version: 0.5.10(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)))
deepmerge:
specifier: ^4.2.2
version: 4.3.1
@@ -1964,16 +1964,16 @@ importers:
devDependencies:
tailwindcss:
specifier: ^3.4.1
- version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3))
+ version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2))
tailwindcss-animate:
specifier: ^1.0.6
- version: 1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3)))
+ version: 1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)))
packages/eslint-config-supabase:
dependencies:
eslint-config-next:
specifier: 15.3.1
- version: 15.3.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ version: 15.3.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.0(supports-color@8.1.1))
@@ -2508,24 +2508,42 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4
+ '@ai-sdk/gateway@1.0.23':
+ resolution: {integrity: sha512-ynV7WxpRK2zWLGkdOtrU2hW22mBVkEYVS3iMg1+ZGmAYSgzCqzC74bfOJZ2GU1UdcrFWUsFI9qAYjsPkd+AebA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4
+
'@ai-sdk/openai@2.0.2':
resolution: {integrity: sha512-D4zYz2uR90aooKQvX1XnS00Z7PkbrcY+snUvPfm5bCabTG7bzLrVtD56nJ5bSaZG8lmuOMfXpyiEEArYLyWPpw==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4
+ '@ai-sdk/openai@2.0.32':
+ resolution: {integrity: sha512-p7giSkCs66Q1qYO/NPYI41CrSg65mcm8R2uAdF86+Y1D1/q4mUrWMyf5UTOJ0bx/z4jIPiNgGDCg2Kabi5zrKQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4
+
'@ai-sdk/provider-utils@3.0.0':
resolution: {integrity: sha512-BoQZtGcBxkeSH1zK+SRYNDtJPIPpacTeiMZqnG4Rv6xXjEwM0FH4MGs9c+PlhyEWmQCzjRM2HAotEydFhD4dYw==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4
+ '@ai-sdk/provider-utils@3.0.9':
+ resolution: {integrity: sha512-Pm571x5efqaI4hf9yW4KsVlDBDme8++UepZRnq+kqVBWWjgvGhQlzU8glaFq0YJEB9kkxZHbRRyVeHoV2sRYaQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4
+
'@ai-sdk/provider@2.0.0':
resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==}
engines: {node: '>=18'}
- '@ai-sdk/react@2.0.2':
- resolution: {integrity: sha512-3yHCvhETP/SwgMEwDGEstOlTMVXJuG0AWbj5VcIPui8kKRVOjnl+BnOeZW1eY2QE6TY+LzT4lh4QfrzDf/0adw==}
+ '@ai-sdk/react@2.0.45':
+ resolution: {integrity: sha512-jrTeBQpIsueV6EB/L6KNdH/yadK/Ehx1qCus+9RC29kRikVhjgj8xNvHfH3qHCwsfGqLX9ljj69dCRLrmzpvnw==}
engines: {node: '>=18'}
peerDependencies:
react: ^18 || ^19 || ^19.0.0-rc
@@ -9272,6 +9290,12 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4
+ ai@5.0.45:
+ resolution: {integrity: sha512-go6J78B1oTXZMN2XLlNJnrFxwcqXQtpPqUVyk1wvzvpb2dk5nP9yNuxqqOX9HrrKuf5U9M6rSezEJWr1eEG9RA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.25.76 || ^4
+
ajv-formats@2.1.1:
resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
peerDependencies:
@@ -11397,14 +11421,14 @@ packages:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
- eventsource-parser@3.0.2:
- resolution: {integrity: sha512-6RxOBZ/cYgd8usLwsEl+EC09Au/9BcmCKYF2/xbml6DNczf7nv0MQb+7BA2F+li6//I+28VNlQR37XfQtcAJuA==}
- engines: {node: '>=18.0.0'}
-
eventsource-parser@3.0.3:
resolution: {integrity: sha512-nVpZkTMM9rF6AQ9gPJpFsNAMt48wIzB5TQgiTLdHiuO8XEDhUgZEhqKlZWXbIzo9VmJ/HvysHqEaVeD5v9TPvA==}
engines: {node: '>=20.0.0'}
+ eventsource-parser@3.0.6:
+ resolution: {integrity: sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg==}
+ engines: {node: '>=18.0.0'}
+
eventsource@3.0.7:
resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==}
engines: {node: '>=18.0.0'}
@@ -17378,11 +17402,6 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
- typescript@5.7.3:
- resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
- engines: {node: '>=14.17'}
- hasBin: true
-
ua-parser-js@1.0.40:
resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==}
hasBin: true
@@ -18282,12 +18301,24 @@ snapshots:
'@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
zod: 3.25.76
+ '@ai-sdk/gateway@1.0.23(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.9(zod@3.25.76)
+ zod: 3.25.76
+
'@ai-sdk/openai@2.0.2(zod@3.25.76)':
dependencies:
'@ai-sdk/provider': 2.0.0
'@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
zod: 3.25.76
+ '@ai-sdk/openai@2.0.32(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.9(zod@3.25.76)
+ zod: 3.25.76
+
'@ai-sdk/provider-utils@3.0.0(zod@3.25.76)':
dependencies:
'@ai-sdk/provider': 2.0.0
@@ -18296,14 +18327,21 @@ snapshots:
zod: 3.25.76
zod-to-json-schema: 3.24.5(zod@3.25.76)
+ '@ai-sdk/provider-utils@3.0.9(zod@3.25.76)':
+ dependencies:
+ '@ai-sdk/provider': 2.0.0
+ '@standard-schema/spec': 1.0.0
+ eventsource-parser: 3.0.6
+ zod: 3.25.76
+
'@ai-sdk/provider@2.0.0':
dependencies:
json-schema: 0.4.0
- '@ai-sdk/react@2.0.2(react@18.3.1)(zod@3.25.76)':
+ '@ai-sdk/react@2.0.45(react@18.3.1)(zod@3.25.76)':
dependencies:
- '@ai-sdk/provider-utils': 3.0.0(zod@3.25.76)
- ai: 5.0.2(zod@3.25.76)
+ '@ai-sdk/provider-utils': 3.0.9(zod@3.25.76)
+ ai: 5.0.45(zod@3.25.76)
react: 18.3.1
swr: 2.2.5(react@18.3.1)
throttleit: 2.1.0
@@ -26302,11 +26340,6 @@ snapshots:
mini-svg-data-uri: 1.4.4
tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2))
- '@tailwindcss/forms@0.5.6(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3)))':
- dependencies:
- mini-svg-data-uri: 1.4.4
- tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3))
-
'@tailwindcss/typography@0.5.10(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2)))':
dependencies:
lodash.castarray: 4.4.0
@@ -26315,14 +26348,6 @@ snapshots:
postcss-selector-parser: 6.0.10
tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2))
- '@tailwindcss/typography@0.5.10(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3)))':
- dependencies:
- lodash.castarray: 4.4.0
- lodash.isplainobject: 4.0.6
- lodash.merge: 4.6.2
- postcss-selector-parser: 6.0.10
- tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3))
-
'@tanstack/directive-functions-plugin@1.114.12(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5)':
dependencies:
'@babel/code-frame': 7.26.2
@@ -27505,42 +27530,42 @@ snapshots:
'@types/zxcvbn@4.4.2': {}
- '@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)':
+ '@typescript-eslint/eslint-plugin@8.34.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
'@typescript-eslint/scope-manager': 8.34.1
- '@typescript-eslint/type-utils': 8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
- '@typescript-eslint/utils': 8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/type-utils': 8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
+ '@typescript-eslint/utils': 8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
'@typescript-eslint/visitor-keys': 8.34.1
eslint: 8.57.0(supports-color@8.1.1)
graphemer: 1.4.0
ignore: 7.0.3
natural-compare: 1.4.0
- ts-api-utils: 2.1.0(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.1.0(typescript@5.5.2)
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)':
+ '@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)':
dependencies:
'@typescript-eslint/scope-manager': 7.2.0
'@typescript-eslint/types': 7.2.0
- '@typescript-eslint/typescript-estree': 7.2.0(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 7.2.0(supports-color@8.1.1)(typescript@5.5.2)
'@typescript-eslint/visitor-keys': 7.2.0
debug: 4.4.0(supports-color@8.1.1)
eslint: 8.57.0(supports-color@8.1.1)
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.34.1(supports-color@8.1.1)(typescript@5.7.3)':
+ '@typescript-eslint/project-service@8.34.1(supports-color@8.1.1)(typescript@5.5.2)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.7.3)
+ '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.5.2)
'@typescript-eslint/types': 8.34.1
debug: 4.4.0(supports-color@8.1.1)
- typescript: 5.7.3
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
@@ -27554,18 +27579,18 @@ snapshots:
'@typescript-eslint/types': 8.34.1
'@typescript-eslint/visitor-keys': 8.34.1
- '@typescript-eslint/tsconfig-utils@8.34.1(typescript@5.7.3)':
+ '@typescript-eslint/tsconfig-utils@8.34.1(typescript@5.5.2)':
dependencies:
- typescript: 5.7.3
+ typescript: 5.5.2
- '@typescript-eslint/type-utils@8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)':
+ '@typescript-eslint/type-utils@8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.34.1(supports-color@8.1.1)(typescript@5.7.3)
- '@typescript-eslint/utils': 8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 8.34.1(supports-color@8.1.1)(typescript@5.5.2)
+ '@typescript-eslint/utils': 8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
debug: 4.4.0(supports-color@8.1.1)
eslint: 8.57.0(supports-color@8.1.1)
- ts-api-utils: 2.1.0(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.1.0(typescript@5.5.2)
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
@@ -27573,7 +27598,7 @@ snapshots:
'@typescript-eslint/types@8.34.1': {}
- '@typescript-eslint/typescript-estree@7.2.0(supports-color@8.1.1)(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@7.2.0(supports-color@8.1.1)(typescript@5.5.2)':
dependencies:
'@typescript-eslint/types': 7.2.0
'@typescript-eslint/visitor-keys': 7.2.0
@@ -27582,16 +27607,16 @@ snapshots:
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.7.1
- ts-api-utils: 1.0.3(typescript@5.7.3)
+ ts-api-utils: 1.0.3(typescript@5.5.2)
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@8.34.1(supports-color@8.1.1)(typescript@5.7.3)':
+ '@typescript-eslint/typescript-estree@8.34.1(supports-color@8.1.1)(typescript@5.5.2)':
dependencies:
- '@typescript-eslint/project-service': 8.34.1(supports-color@8.1.1)(typescript@5.7.3)
- '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.7.3)
+ '@typescript-eslint/project-service': 8.34.1(supports-color@8.1.1)(typescript@5.5.2)
+ '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.5.2)
'@typescript-eslint/types': 8.34.1
'@typescript-eslint/visitor-keys': 8.34.1
debug: 4.4.0(supports-color@8.1.1)
@@ -27599,19 +27624,19 @@ snapshots:
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.7.1
- ts-api-utils: 2.1.0(typescript@5.7.3)
- typescript: 5.7.3
+ ts-api-utils: 2.1.0(typescript@5.5.2)
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)':
+ '@typescript-eslint/utils@8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)':
dependencies:
'@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0(supports-color@8.1.1))
'@typescript-eslint/scope-manager': 8.34.1
'@typescript-eslint/types': 8.34.1
- '@typescript-eslint/typescript-estree': 8.34.1(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/typescript-estree': 8.34.1(supports-color@8.1.1)(typescript@5.5.2)
eslint: 8.57.0(supports-color@8.1.1)
- typescript: 5.7.3
+ typescript: 5.5.2
transitivePeerDependencies:
- supports-color
@@ -28027,6 +28052,14 @@ snapshots:
'@opentelemetry/api': 1.9.0
zod: 3.25.76
+ ai@5.0.45(zod@3.25.76):
+ dependencies:
+ '@ai-sdk/gateway': 1.0.23(zod@3.25.76)
+ '@ai-sdk/provider': 2.0.0
+ '@ai-sdk/provider-utils': 3.0.9(zod@3.25.76)
+ '@opentelemetry/api': 1.9.0
+ zod: 3.25.76
+
ajv-formats@2.1.1(ajv@8.12.0):
optionalDependencies:
ajv: 8.12.0
@@ -29997,21 +30030,21 @@ snapshots:
eslint-barrel-file-utils-win32-ia32-msvc: 0.0.10
eslint-barrel-file-utils-win32-x64-msvc: 0.0.10
- eslint-config-next@15.3.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3):
+ eslint-config-next@15.3.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2):
dependencies:
'@next/eslint-plugin-next': 15.3.1
'@rushstack/eslint-patch': 1.10.3
- '@typescript-eslint/eslint-plugin': 8.34.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/eslint-plugin': 8.34.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
eslint: 8.57.0(supports-color@8.1.1)
eslint-import-resolver-node: 0.3.9(supports-color@8.1.1)
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0(supports-color@8.1.1))
eslint-plugin-react: 7.37.5(eslint@8.57.0(supports-color@8.1.1))
eslint-plugin-react-hooks: 5.2.0(eslint@8.57.0(supports-color@8.1.1))
optionalDependencies:
- typescript: 5.7.3
+ typescript: 5.5.2
transitivePeerDependencies:
- eslint-import-resolver-webpack
- supports-color
@@ -30033,13 +30066,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
+ eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
debug: 4.4.0(supports-color@8.1.1)
enhanced-resolve: 5.18.1
eslint: 8.57.0(supports-color@8.1.1)
- eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
fast-glob: 3.3.3
get-tsconfig: 4.10.0
is-core-module: 2.16.1
@@ -30050,25 +30083,25 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
debug: 3.2.7(supports-color@8.1.1)
optionalDependencies:
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
eslint: 8.57.0(supports-color@8.1.1)
eslint-import-resolver-node: 0.3.9(supports-color@8.1.1)
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
+ eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
debug: 3.2.7(supports-color@8.1.1)
optionalDependencies:
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
eslint: 8.57.0(supports-color@8.1.1)
eslint-import-resolver-node: 0.3.9(supports-color@8.1.1)
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -30078,7 +30111,7 @@ snapshots:
eslint-barrel-file-utils: 0.0.10
requireindex: 1.2.0
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.8
@@ -30089,7 +30122,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.0(supports-color@8.1.1)
eslint-import-resolver-node: 0.3.9(supports-color@8.1.1)
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -30101,7 +30134,7 @@ snapshots:
string.prototype.trimend: 1.0.8
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.7.3)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.5.2)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -30317,13 +30350,13 @@ snapshots:
events@3.3.0: {}
- eventsource-parser@3.0.2: {}
-
eventsource-parser@3.0.3: {}
+ eventsource-parser@3.0.6: {}
+
eventsource@3.0.7:
dependencies:
- eventsource-parser: 3.0.2
+ eventsource-parser: 3.0.6
execa@1.0.0:
dependencies:
@@ -34617,14 +34650,14 @@ snapshots:
openapi-typescript-helpers@0.0.15: {}
- openapi-typescript@7.5.2(encoding@0.1.13)(typescript@5.7.3):
+ openapi-typescript@7.5.2(encoding@0.1.13)(typescript@5.5.2):
dependencies:
'@redocly/openapi-core': 1.27.2(encoding@0.1.13)(supports-color@9.4.0)
ansi-colors: 4.1.3
change-case: 5.4.4
parse-json: 8.1.0
supports-color: 9.4.0
- typescript: 5.7.3
+ typescript: 5.5.2
yargs-parser: 21.1.1
transitivePeerDependencies:
- encoding
@@ -35137,14 +35170,6 @@ snapshots:
postcss: 8.5.3
ts-node: 10.9.2(@types/node@22.13.14)(typescript@5.5.2)
- postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3)):
- dependencies:
- lilconfig: 2.1.0
- yaml: 2.4.5
- optionalDependencies:
- postcss: 8.5.3
- ts-node: 10.9.2(@types/node@22.13.14)(typescript@5.7.3)
-
postcss-nested@6.0.1(postcss@8.5.3):
dependencies:
postcss: 8.5.3
@@ -37462,9 +37487,9 @@ snapshots:
tailwind-merge@1.14.0: {}
- tailwindcss-animate@1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3))):
+ tailwindcss-animate@1.0.7(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2))):
dependencies:
- tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3))
+ tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.5.2))
tailwindcss-radix@2.8.0: {}
@@ -37495,33 +37520,6 @@ snapshots:
transitivePeerDependencies:
- ts-node
- tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3)):
- dependencies:
- '@alloc/quick-lru': 5.2.0
- arg: 5.0.2
- chokidar: 3.5.3
- didyoumean: 1.2.2
- dlv: 1.1.3
- fast-glob: 3.3.2
- glob-parent: 6.0.2
- is-glob: 4.0.3
- jiti: 1.20.0
- lilconfig: 2.1.0
- micromatch: 4.0.8
- normalize-path: 3.0.0
- object-hash: 3.0.0
- picocolors: 1.0.1
- postcss: 8.5.3
- postcss-import: 15.1.0(postcss@8.5.3)
- postcss-js: 4.0.1(postcss@8.5.3)
- postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3))
- postcss-nested: 6.0.1(postcss@8.5.3)
- postcss-selector-parser: 6.0.13
- resolve: 1.22.8
- sucrase: 3.34.0
- transitivePeerDependencies:
- - ts-node
-
tapable@2.2.1: {}
tar-fs@2.1.3:
@@ -37761,13 +37759,13 @@ snapshots:
dependencies:
utf8-byte-length: 1.0.5
- ts-api-utils@1.0.3(typescript@5.7.3):
+ ts-api-utils@1.0.3(typescript@5.5.2):
dependencies:
- typescript: 5.7.3
+ typescript: 5.5.2
- ts-api-utils@2.1.0(typescript@5.7.3):
+ ts-api-utils@2.1.0(typescript@5.5.2):
dependencies:
- typescript: 5.7.3
+ typescript: 5.5.2
ts-easing@0.2.0: {}
@@ -37808,25 +37806,6 @@ snapshots:
yn: 3.1.1
optional: true
- ts-node@10.9.2(@types/node@22.13.14)(typescript@5.7.3):
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.11
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 22.13.14
- acorn: 8.14.1
- acorn-walk: 8.3.4
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.7.3
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
- optional: true
-
ts-pattern@5.1.1: {}
tsconfck@3.0.3(typescript@5.5.2):
@@ -38025,8 +38004,6 @@ snapshots:
typescript@5.5.2: {}
- typescript@5.7.3: {}
-
ua-parser-js@1.0.40: {}
uc.micro@1.0.6: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index c2bf0c707f41e..1fe15fdc9284f 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -18,3 +18,6 @@ catalog:
'zod': '^3.25.76'
minimumReleaseAge: 10080
+minimumReleaseAgeExclude:
+ - 'ai'
+ - '@ai-sdk/*'