feat: use xai image model and update deploy link (#882)

This commit is contained in:
Jeremy 2025-03-21 21:18:56 -07:00 committed by GitHub
parent 7811c0f7fb
commit 235b0edb91
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 71 additions and 127 deletions

View file

@ -1,18 +1,15 @@
# Get your xAI API Key here for chat models: https://console.x.ai/
XAI_API_KEY=****
# Get your Groq API Key here for reasoning models: https://console.groq.com/keys
GROQ_API_KEY=****
# Get your Fal AI API Key here for image models: https://docs.fal.ai/authentication/key-based
FAL_API_KEY=****
# Generate a random secret: https://generate-secret.vercel.app/32 or `openssl rand -base64 32` # Generate a random secret: https://generate-secret.vercel.app/32 or `openssl rand -base64 32`
AUTH_SECRET=**** AUTH_SECRET=****
# The following keys below are automatically created and # The following keys below are automatically created and
# added to your environment when you deploy on vercel # added to your environment when you deploy on vercel
# Get your xAI API Key here for chat and image models: https://console.x.ai/
XAI_API_KEY=****
# Get your Groq API Key here for reasoning models: https://console.groq.com/keys
GROQ_API_KEY=****
# Instructions to create a Vercel Blob Store here: https://vercel.com/docs/storage/vercel-blob # Instructions to create a Vercel Blob Store here: https://vercel.com/docs/storage/vercel-blob
BLOB_READ_WRITE_TOKEN=**** BLOB_READ_WRITE_TOKEN=****

View file

@ -41,7 +41,7 @@ This template ships with [xAI](https://x.ai) `grok-2-1212` as the default chat m
You can deploy your own version of the Next.js AI Chatbot to Vercel with one click: You can deploy your own version of the Next.js AI Chatbot to Vercel with one click:
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot&env=AUTH_SECRET&envDescription=Learn%20more%20about%20how%20to%20get%20the%20API%20Keys%20for%20the%20application&envLink=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot%2Fblob%2Fmain%2F.env.example&demo-title=AI%20Chatbot&demo-description=An%20Open-Source%20AI%20Chatbot%20Template%20Built%20With%20Next.js%20and%20the%20AI%20SDK%20by%20Vercel.&demo-url=https%3A%2F%2Fchat.vercel.ai&stores=[{%22type%22:%22postgres%22},{%22type%22:%22blob%22}]&integration-ids=oac_g1tOx3546WuLOQ4QeyAX1n1P,oac_G6x10PjgSxUUTu6Pi25ZAtbp,oac_GzhR3rwEIUyQEpKEsmAiEjfi) [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot&env=AUTH_SECRET&envDescription=Generate%20a%20random%20secret%20to%20use%20for%20authentication&envLink=https%3A%2F%2Fgenerate-secret.vercel.app%2F32&project-name=my-awesome-chatbot&repository-name=my-awesome-chatbot&demo-title=AI%20Chatbot&demo-description=An%20Open-Source%20AI%20Chatbot%20Template%20Built%20With%20Next.js%20and%20the%20AI%20SDK%20by%20Vercel&demo-url=https%3A%2F%2Fchat.vercel.ai&products=%5B%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22ai%22%2C%22productSlug%22%3A%22grok%22%2C%22integrationSlug%22%3A%22xai%22%7D%2C%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22ai%22%2C%22productSlug%22%3A%22api-key%22%2C%22integrationSlug%22%3A%22groq%22%7D%2C%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22storage%22%2C%22productSlug%22%3A%22neon%22%2C%22integrationSlug%22%3A%22neon%22%7D%2C%7B%22type%22%3A%22blob%22%7D%5D)
## Running locally ## Running locally

View file

@ -72,7 +72,7 @@ function PureChatHeader({
asChild asChild
> >
<Link <Link
href="https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot&env=AUTH_SECRET,OPENAI_API_KEY,XAI_API_KEY,FIREWORKS_API_KEY&envDescription=Learn%20more%20about%20how%20to%20get%20the%20API%20Keys%20for%20the%20application&envLink=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot%2Fblob%2Fmain%2F.env.example&demo-title=AI%20Chatbot&demo-description=An%20Open-Source%20AI%20Chatbot%20Template%20Built%20With%20Next.js%20and%20the%20AI%20SDK%20by%20Vercel.&demo-url=https%3A%2F%2Fchat.vercel.ai&stores=%5B%7B%22type%22:%22postgres%22%7D,%7B%22type%22:%22blob%22%7D%5D" href={`https://vercel.com/new/clone?repository-url=https://github.com/vercel/ai-chatbot&env=AUTH_SECRET&envDescription=Learn more about how to get the API Keys for the application&envLink=https://github.com/vercel/ai-chatbot/blob/main/.env.example&demo-title=AI Chatbot&demo-description=An Open-Source AI Chatbot Template Built With Next.js and the AI SDK by Vercel.&demo-url=https://chat.vercel.ai&products=[{"type":"integration","protocol":"ai","productSlug":"grok","integrationSlug":"xai"},{"type":"integration","protocol":"ai","productSlug":"api-key","integrationSlug":"groq"},{"type":"integration","protocol":"storage","productSlug":"neon","integrationSlug":"neon"},{"type":"blob"}]`}
target="_noblank" target="_noblank"
> >
<VercelIcon size={16} /> <VercelIcon size={16} />

View file

@ -15,7 +15,9 @@ Deploying to [Vercel](https://vercel.com) is the quickest way to get started wit
### Deploy to Vercel ### Deploy to Vercel
To deploy the chatbot template to Vercel, click this [link](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot&env=AUTH_SECRET,OPENAI_API_KEY,XAI_API_KEY,FIREWORKS_API_KEY&envDescription=Learn%20more%20about%20how%20to%20get%20the%20API%20Keys%20for%20the%20application&envLink=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot%2Fblob%2Fmain%2F.env.example&demo-title=AI%20Chatbot&demo-description=An%20Open-Source%20AI%20Chatbot%20Template%20Built%20With%20Next.js%20and%20the%20AI%20SDK%20by%20Vercel.&demo-url=https%3A%2F%2Fchat.vercel.ai&stores=%5B%7B%22type%22:%22postgres%22%7D,%7B%22type%22:%22blob%22%7D%5D) to enter the 1-click deploy flow. To deploy the chatbot template to Vercel, click the button below to enter the 1-click deploy flow.
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fai-chatbot&env=AUTH_SECRET&envDescription=Generate%20a%20random%20secret%20to%20use%20for%20authentication&envLink=https%3A%2F%2Fgenerate-secret.vercel.app%2F32&project-name=my-awesome-chatbot&repository-name=my-awesome-chatbot&demo-title=AI%20Chatbot&demo-description=An%20Open-Source%20AI%20Chatbot%20Template%20Built%20With%20Next.js%20and%20the%20AI%20SDK%20by%20Vercel&demo-url=https%3A%2F%2Fchat.vercel.ai&products=%5B%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22ai%22%2C%22productSlug%22%3A%22grok%22%2C%22integrationSlug%22%3A%22xai%22%7D%2C%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22ai%22%2C%22productSlug%22%3A%22api-key%22%2C%22integrationSlug%22%3A%22groq%22%7D%2C%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22storage%22%2C%22productSlug%22%3A%22neon%22%2C%22integrationSlug%22%3A%22neon%22%7D%2C%7B%22type%22%3A%22blob%22%7D%5D)
During the flow, you will be prompted to create and connect to a postgres database and blob store. You will also need to provide environment variables for the application. During the flow, you will be prompted to create and connect to a postgres database and blob store. You will also need to provide environment variables for the application.

View file

@ -5,7 +5,6 @@ import {
} from 'ai'; } from 'ai';
import { groq } from '@ai-sdk/groq'; import { groq } from '@ai-sdk/groq';
import { xai } from '@ai-sdk/xai'; import { xai } from '@ai-sdk/xai';
import { fal } from '@ai-sdk/fal';
import { isTestEnvironment } from '../constants'; import { isTestEnvironment } from '../constants';
import { import {
artifactModel, artifactModel,
@ -34,6 +33,6 @@ export const myProvider = isTestEnvironment
'artifact-model': xai('grok-2-1212'), 'artifact-model': xai('grok-2-1212'),
}, },
imageModels: { imageModels: {
'small-model': fal.image('fal-ai/fast-sdxl'), 'small-model': xai.image('grok-2-image'),
}, },
}); });

View file

@ -19,10 +19,9 @@
"test": "export PLAYWRIGHT=True && pnpm exec playwright test --workers=4" "test": "export PLAYWRIGHT=True && pnpm exec playwright test --workers=4"
}, },
"dependencies": { "dependencies": {
"@ai-sdk/fal": "^0.0.11", "@ai-sdk/groq": "^1.2.0",
"@ai-sdk/groq": "^1.1.16", "@ai-sdk/react": "^1.2.0",
"@ai-sdk/react": "^1.1.25", "@ai-sdk/xai": "^1.2.1",
"@ai-sdk/xai": "^1.1.15",
"@codemirror/lang-javascript": "^6.2.2", "@codemirror/lang-javascript": "^6.2.2",
"@codemirror/lang-python": "^6.1.6", "@codemirror/lang-python": "^6.1.6",
"@codemirror/state": "^6.5.0", "@codemirror/state": "^6.5.0",
@ -41,7 +40,7 @@
"@vercel/analytics": "^1.3.1", "@vercel/analytics": "^1.3.1",
"@vercel/blob": "^0.24.1", "@vercel/blob": "^0.24.1",
"@vercel/postgres": "^0.10.0", "@vercel/postgres": "^0.10.0",
"ai": "4.1.66", "ai": "4.2.0",
"bcrypt-ts": "^5.0.2", "bcrypt-ts": "^5.0.2",
"class-variance-authority": "^0.7.0", "class-variance-authority": "^0.7.0",
"classnames": "^2.5.1", "classnames": "^2.5.1",

163
pnpm-lock.yaml generated
View file

@ -8,18 +8,15 @@ importers:
.: .:
dependencies: dependencies:
'@ai-sdk/fal':
specifier: ^0.0.11
version: 0.0.11(zod@3.24.2)
'@ai-sdk/groq': '@ai-sdk/groq':
specifier: ^1.1.16 specifier: ^1.2.0
version: 1.1.16(zod@3.24.2) version: 1.2.0(zod@3.24.2)
'@ai-sdk/react': '@ai-sdk/react':
specifier: ^1.1.25 specifier: ^1.2.0
version: 1.1.25(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2) version: 1.2.0(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2)
'@ai-sdk/xai': '@ai-sdk/xai':
specifier: ^1.1.15 specifier: ^1.2.1
version: 1.1.15(zod@3.24.2) version: 1.2.1(zod@3.24.2)
'@codemirror/lang-javascript': '@codemirror/lang-javascript':
specifier: ^6.2.2 specifier: ^6.2.2
version: 6.2.3 version: 6.2.3
@ -75,8 +72,8 @@ importers:
specifier: ^0.10.0 specifier: ^0.10.0
version: 0.10.0 version: 0.10.0
ai: ai:
specifier: 4.1.66 specifier: 4.2.0
version: 4.1.66(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2) version: 4.2.0(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2)
bcrypt-ts: bcrypt-ts:
specifier: ^5.0.2 specifier: ^5.0.2
version: 5.0.3 version: 5.0.3
@ -261,73 +258,46 @@ importers:
packages: packages:
'@ai-sdk/fal@0.0.11': '@ai-sdk/groq@1.2.0':
resolution: {integrity: sha512-lVjG5HTxNZ3l40yI1uJYe2cHmDdk1cuiQff0KQz/A5c6BpwSlyKUVWvb8HxBJETzWRBNDWK1dbWcXVTm+WK5aw==} resolution: {integrity: sha512-hF62hBUTpOMyqum+w9mozh/KIgxueKowM9cRo38n5PqpXYUexDEKcW8HxOAXWwmbAZcE4l+FBSTu/xk4lBZzZQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
zod: ^3.0.0 zod: ^3.0.0
'@ai-sdk/groq@1.1.16': '@ai-sdk/openai-compatible@0.2.0':
resolution: {integrity: sha512-25MacYnuswATGvvBSwj5uRLdkvJU0SlNweib6BmYd6+0F2mHRZWiYIiVIyuUIeRBmt6ybSNTaRKYz2Hh7whRcg==} resolution: {integrity: sha512-8rTOKGf791wlmIM4XKjzN/KqOsO50wUoz9PF9B6ZC4p3UZdLTx9f+pBk+Lo85A68JeK2uRkPAuXjr+8aBpqCuA==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
zod: ^3.0.0 zod: ^3.0.0
'@ai-sdk/openai-compatible@0.1.15': '@ai-sdk/provider-utils@2.2.0':
resolution: {integrity: sha512-iuylARLylTkaVYXKdgA1GeGU2TwANaJ3RlhJqmN0cVO5uEt3qVKvedrzR3jrQIyy9hu3gngsiXfFBMW2UQ7Ntg==} resolution: {integrity: sha512-RX5BnDSqudjvZjwwpROcxVQElyX7rUn/xImBgaZLXekSGqq8f7/tefqDcQiRbDZjuCd4CVIfhrK8y/Pta8cPfQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
zod: ^3.0.0 zod: ^3.23.8
'@ai-sdk/provider-utils@2.1.13': '@ai-sdk/provider@1.1.0':
resolution: {integrity: sha512-kLjqsfOdONr6DGcGEntFYM1niXz1H05vyZNf9OAzK+KKKc64izyP4/q/9HX7W4+6g8hm6BnmKxu8vkr6FSOqDg==} resolution: {integrity: sha512-0M+qjp+clUD0R1E5eWQFhxEvWLNaOtGQRUaBn8CUABnSKredagq92hUS9VjOzGsTm37xLfpaxl97AVtbeOsHew==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.0.0
peerDependenciesMeta:
zod:
optional: true
'@ai-sdk/provider-utils@2.1.15':
resolution: {integrity: sha512-ndMVtDm2xS86t45CJZSfyl7UblZFewRB8gZkXQHeNi7BhjCYkhE+XQMwfDl6UOAO7kaV60IC1R4JLDWxWiiHug==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.0.0
peerDependenciesMeta:
zod:
optional: true
'@ai-sdk/provider@1.0.11':
resolution: {integrity: sha512-CPyImHGiT3svyfmvPvAFTianZzWFtm0qK82XjwlQIA1C3IQ2iku/PMQXi7aFyrX0TyMh3VTkJPB03tjU2VXVrw==}
engines: {node: '>=18'} engines: {node: '>=18'}
'@ai-sdk/provider@1.0.12': '@ai-sdk/react@1.2.0':
resolution: {integrity: sha512-88Uu1zJIE1UUOVJWfE2ybJXgiH8JJ97QY9fbmplErEbfa/k/1kF+tWMVAAJolF2aOGmazQGyQLhv4I9CCuVACw==} resolution: {integrity: sha512-fUTZkAsxOMz8ijjWf87E/GfYkgsH4V5MH2yuj7EXh5ShjWe/oayn2ZJkyoqFMr4Jf8m5kptDaivmbIenDq5OXA==}
engines: {node: '>=18'}
'@ai-sdk/react@1.1.25':
resolution: {integrity: sha512-uKrnxvJmiixAhndquDtac/q/wOnG9EFBkAsL6mpDRDflHQv34+xtkOKswDxyEzt1FaQFoqig0J44Lx0F3vGSkg==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
react: ^18 || ^19 || ^19.0.0-rc react: ^18 || ^19 || ^19.0.0-rc
zod: ^3.0.0 zod: ^3.23.8
peerDependenciesMeta: peerDependenciesMeta:
react:
optional: true
zod: zod:
optional: true optional: true
'@ai-sdk/ui-utils@1.1.21': '@ai-sdk/ui-utils@1.2.0':
resolution: {integrity: sha512-z88UBEioQvJM6JsBoLmG6MOholc5pDkq1BBeb53NZ7JmMeWX4btCbrGmM4qs+gYLDnZokV/HB8C6zpS1jaJbAw==} resolution: {integrity: sha512-0IZwCqe7E+GkCASTDPAbzMr+POm9GDzWvFd37FvzpOeKNeibmge/LZEkTDbGSa+3b928H8wPwOLsOXBWPLUPDQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
zod: ^3.0.0 zod: ^3.23.8
peerDependenciesMeta:
zod:
optional: true
'@ai-sdk/xai@1.1.15': '@ai-sdk/xai@1.2.1':
resolution: {integrity: sha512-Uuc6NC4xsNF5KyYivf/9egWEBNNZ0s3nnQ2klWLj0k9gu5h9fuGAto5thhp2Rd50cPMWzQVQ7R5zvYHmfiunWA==} resolution: {integrity: sha512-aVrucjm9ikb9blpkO0oo8nVPRRoA1SD+GvfRU69YgjbM3XVNK07nk/mEpq7xuEU2iD+7/T2Fkl2rjayS+Ee4Jg==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
zod: ^3.0.0 zod: ^3.0.0
@ -1682,17 +1652,15 @@ packages:
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
hasBin: true hasBin: true
ai@4.1.66: ai@4.2.0:
resolution: {integrity: sha512-2Ny3reUTpZJhRLMvhJK5pxJ8E15uQSXEyemgsmgX6C6rI81JPPhorPTj6J8xQqZ+BFWLgrKYn9CKpUWZiAVqHw==} resolution: {integrity: sha512-3xJWzBZpBS3n/UY360IopufV5dpfgYoY08eCAV2A2m7CcyJxVOAQ4lXvBGSsB+mR+BYJ8Y/JOesFfc0+k4jz3A==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
react: ^18 || ^19 || ^19.0.0-rc react: ^18 || ^19 || ^19.0.0-rc
zod: ^3.0.0 zod: ^3.23.8
peerDependenciesMeta: peerDependenciesMeta:
react: react:
optional: true optional: true
zod:
optional: true
ajv@6.12.6: ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@ -3898,73 +3866,52 @@ packages:
snapshots: snapshots:
'@ai-sdk/fal@0.0.11(zod@3.24.2)': '@ai-sdk/groq@1.2.0(zod@3.24.2)':
dependencies: dependencies:
'@ai-sdk/provider': 1.0.12 '@ai-sdk/provider': 1.1.0
'@ai-sdk/provider-utils': 2.1.15(zod@3.24.2) '@ai-sdk/provider-utils': 2.2.0(zod@3.24.2)
zod: 3.24.2 zod: 3.24.2
'@ai-sdk/groq@1.1.16(zod@3.24.2)': '@ai-sdk/openai-compatible@0.2.0(zod@3.24.2)':
dependencies: dependencies:
'@ai-sdk/provider': 1.0.12 '@ai-sdk/provider': 1.1.0
'@ai-sdk/provider-utils': 2.1.15(zod@3.24.2) '@ai-sdk/provider-utils': 2.2.0(zod@3.24.2)
zod: 3.24.2 zod: 3.24.2
'@ai-sdk/openai-compatible@0.1.15(zod@3.24.2)': '@ai-sdk/provider-utils@2.2.0(zod@3.24.2)':
dependencies: dependencies:
'@ai-sdk/provider': 1.0.11 '@ai-sdk/provider': 1.1.0
'@ai-sdk/provider-utils': 2.1.13(zod@3.24.2)
zod: 3.24.2
'@ai-sdk/provider-utils@2.1.13(zod@3.24.2)':
dependencies:
'@ai-sdk/provider': 1.0.11
eventsource-parser: 3.0.0 eventsource-parser: 3.0.0
nanoid: 3.3.9 nanoid: 3.3.9
secure-json-parse: 2.7.0 secure-json-parse: 2.7.0
optionalDependencies:
zod: 3.24.2 zod: 3.24.2
'@ai-sdk/provider-utils@2.1.15(zod@3.24.2)': '@ai-sdk/provider@1.1.0':
dependencies:
'@ai-sdk/provider': 1.0.12
eventsource-parser: 3.0.0
nanoid: 3.3.9
secure-json-parse: 2.7.0
optionalDependencies:
zod: 3.24.2
'@ai-sdk/provider@1.0.11':
dependencies: dependencies:
json-schema: 0.4.0 json-schema: 0.4.0
'@ai-sdk/provider@1.0.12': '@ai-sdk/react@1.2.0(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2)':
dependencies: dependencies:
json-schema: 0.4.0 '@ai-sdk/provider-utils': 2.2.0(zod@3.24.2)
'@ai-sdk/ui-utils': 1.2.0(zod@3.24.2)
'@ai-sdk/react@1.1.25(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2)': react: 19.0.0-rc-45804af1-20241021
dependencies:
'@ai-sdk/provider-utils': 2.1.15(zod@3.24.2)
'@ai-sdk/ui-utils': 1.1.21(zod@3.24.2)
swr: 2.3.3(react@19.0.0-rc-45804af1-20241021) swr: 2.3.3(react@19.0.0-rc-45804af1-20241021)
throttleit: 2.1.0 throttleit: 2.1.0
optionalDependencies: optionalDependencies:
react: 19.0.0-rc-45804af1-20241021
zod: 3.24.2 zod: 3.24.2
'@ai-sdk/ui-utils@1.1.21(zod@3.24.2)': '@ai-sdk/ui-utils@1.2.0(zod@3.24.2)':
dependencies: dependencies:
'@ai-sdk/provider': 1.0.12 '@ai-sdk/provider': 1.1.0
'@ai-sdk/provider-utils': 2.1.15(zod@3.24.2) '@ai-sdk/provider-utils': 2.2.0(zod@3.24.2)
zod: 3.24.2
zod-to-json-schema: 3.24.3(zod@3.24.2) zod-to-json-schema: 3.24.3(zod@3.24.2)
optionalDependencies:
zod: 3.24.2
'@ai-sdk/xai@1.1.15(zod@3.24.2)': '@ai-sdk/xai@1.2.1(zod@3.24.2)':
dependencies: dependencies:
'@ai-sdk/openai-compatible': 0.1.15(zod@3.24.2) '@ai-sdk/openai-compatible': 0.2.0(zod@3.24.2)
'@ai-sdk/provider': 1.0.11 '@ai-sdk/provider': 1.1.0
'@ai-sdk/provider-utils': 2.1.13(zod@3.24.2) '@ai-sdk/provider-utils': 2.2.0(zod@3.24.2)
zod: 3.24.2 zod: 3.24.2
'@alloc/quick-lru@5.2.0': {} '@alloc/quick-lru@5.2.0': {}
@ -5063,18 +5010,18 @@ snapshots:
acorn@8.14.1: {} acorn@8.14.1: {}
ai@4.1.66(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2): ai@4.2.0(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2):
dependencies: dependencies:
'@ai-sdk/provider': 1.0.12 '@ai-sdk/provider': 1.1.0
'@ai-sdk/provider-utils': 2.1.15(zod@3.24.2) '@ai-sdk/provider-utils': 2.2.0(zod@3.24.2)
'@ai-sdk/react': 1.1.25(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2) '@ai-sdk/react': 1.2.0(react@19.0.0-rc-45804af1-20241021)(zod@3.24.2)
'@ai-sdk/ui-utils': 1.1.21(zod@3.24.2) '@ai-sdk/ui-utils': 1.2.0(zod@3.24.2)
'@opentelemetry/api': 1.9.0 '@opentelemetry/api': 1.9.0
eventsource-parser: 3.0.0 eventsource-parser: 3.0.0
jsondiffpatch: 0.6.0 jsondiffpatch: 0.6.0
zod: 3.24.2
optionalDependencies: optionalDependencies:
react: 19.0.0-rc-45804af1-20241021 react: 19.0.0-rc-45804af1-20241021
zod: 3.24.2
ajv@6.12.6: ajv@6.12.6:
dependencies: dependencies: