diff --git a/apps/docs/package.json b/apps/docs/package.json
index 493b4d26c..9036d74cc 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -23,7 +23,7 @@
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.2",
"@radix-ui/themes": "^3.1.1",
- "ai": "^3.2.19",
+ "ai": "^3.2.22",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"fumadocs-core": "12.4.2",
diff --git a/examples/search-agent-for-e-commerce/package.json b/examples/search-agent-for-e-commerce/package.json
index 44907870a..ae16a71d7 100644
--- a/examples/search-agent-for-e-commerce/package.json
+++ b/examples/search-agent-for-e-commerce/package.json
@@ -16,7 +16,7 @@
"@radix-ui/react-popover": "^1.1.1",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.2",
- "ai": "^3.2.19",
+ "ai": "^3.2.22",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"embla-carousel-autoplay": "^8.1.6",
diff --git a/examples/with-inline-suggestions/package.json b/examples/with-inline-suggestions/package.json
index d0c44ff1e..c30cfd62b 100644
--- a/examples/with-inline-suggestions/package.json
+++ b/examples/with-inline-suggestions/package.json
@@ -15,7 +15,7 @@
"@radix-ui/react-avatar": "^1.1.0",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.2",
- "ai": "^3.2.19",
+ "ai": "^3.2.22",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"lucide-react": "^0.407.0",
diff --git a/examples/with-openai-assistants/package.json b/examples/with-openai-assistants/package.json
index 00a7c9e17..a66b8e604 100644
--- a/examples/with-openai-assistants/package.json
+++ b/examples/with-openai-assistants/package.json
@@ -13,12 +13,12 @@
"@assistant-ui/react": "workspace:*",
"@assistant-ui/react-ai-sdk": "workspace:*",
"@radix-ui/react-avatar": "^1.1.0",
- "ai": "^3.2.19",
+ "ai": "^3.2.22",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"lucide-react": "^0.407.0",
"next": "14.2.5",
- "openai": "^4.52.5",
+ "openai": "^4.52.7",
"react": "^18",
"react-dom": "^18",
"tailwind-merge": "^2.4.0",
diff --git a/examples/with-playground/next-env.d.ts b/examples/with-playground/next-env.d.ts
new file mode 100644
index 000000000..4f11a03dc
--- /dev/null
+++ b/examples/with-playground/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/examples/with-vercel-ai-rsc/package.json b/examples/with-vercel-ai-rsc/package.json
index abb06178d..5fda80d85 100644
--- a/examples/with-vercel-ai-rsc/package.json
+++ b/examples/with-vercel-ai-rsc/package.json
@@ -16,7 +16,7 @@
"@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-slot": "^1.1.0",
"@radix-ui/react-tooltip": "^1.1.2",
- "ai": "3.2.19",
+ "ai": "3.2.22",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"lucide-react": "^0.407.0",
diff --git a/packages/react-markdown/src/primitives/MarkdownText.tsx b/packages/react-markdown/src/primitives/MarkdownText.tsx
index d9de761c7..a9bba68ef 100644
--- a/packages/react-markdown/src/primitives/MarkdownText.tsx
+++ b/packages/react-markdown/src/primitives/MarkdownText.tsx
@@ -1,3 +1,5 @@
+"use client";
+
import { INTERNAL, useContentPartText } from "@assistant-ui/react";
import type { ComponentType, FC } from "react";
import ReactMarkdown, { type Options } from "react-markdown";
diff --git a/packages/react/package.json b/packages/react/package.json
index 89e18fcdd..0ff2db487 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -29,7 +29,7 @@
"conversational-ui",
"conversational-ai"
],
- "version": "0.4.0",
+ "version": "0.4.1",
"license": "MIT",
"exports": {
".": {
diff --git a/packages/react/src/primitives/contentPart/ContentPartText.tsx b/packages/react/src/primitives/contentPart/ContentPartText.tsx
index 3fc21a083..d178beba5 100644
--- a/packages/react/src/primitives/contentPart/ContentPartText.tsx
+++ b/packages/react/src/primitives/contentPart/ContentPartText.tsx
@@ -1,3 +1,5 @@
+"use client";
+
import { Primitive } from "@radix-ui/react-primitive";
import { type ElementRef, forwardRef, ComponentPropsWithoutRef } from "react";
import { useContentPartText } from "../../primitive-hooks/contentPart/useContentPartText";
diff --git a/packages/react/src/ui/thread-config.tsx b/packages/react/src/ui/thread-config.tsx
index 50a604f10..140631d94 100644
--- a/packages/react/src/ui/thread-config.tsx
+++ b/packages/react/src/ui/thread-config.tsx
@@ -1,3 +1,5 @@
+"use client";
+
import { FC, PropsWithChildren, createContext, useContext } from "react";
import { AvatarProps } from "./base/avatar";
diff --git a/packages/react/src/utils/hooks/useSmooth.tsx b/packages/react/src/utils/hooks/useSmooth.tsx
index a44a13912..d74a374f6 100644
--- a/packages/react/src/utils/hooks/useSmooth.tsx
+++ b/packages/react/src/utils/hooks/useSmooth.tsx
@@ -1,3 +1,5 @@
+"use client";
+
import { useEffect, useState } from "react";
class TextStreamAnimator {
@@ -7,7 +9,8 @@ class TextStreamAnimator {
public targetText: string = "";
constructor(
- private setText: (callback: (prevText: string) => string) => void,
+ public currentText: string,
+ private setText: (newText: string) => void,
) {}
start() {
@@ -28,40 +31,35 @@ class TextStreamAnimator {
const deltaTime = currentTime - this.lastUpdateTime;
let timeToConsume = deltaTime;
- this.setText((currentText) => {
- const targetText = this.targetText;
-
- if (currentText === targetText) {
- this.animationFrameId = null;
- return currentText;
- }
-
- const remainingChars = targetText.length - currentText.length;
- const baseTimePerChar = Math.min(5, 250 / remainingChars);
+ const remainingChars = this.targetText.length - this.currentText.length;
+ const baseTimePerChar = Math.min(5, 250 / remainingChars);
- let charsToAdd = 0;
- while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {
- charsToAdd++;
- timeToConsume -= baseTimePerChar;
- }
+ let charsToAdd = 0;
+ while (timeToConsume >= baseTimePerChar && charsToAdd < remainingChars) {
+ charsToAdd++;
+ timeToConsume -= baseTimePerChar;
+ }
+ if (charsToAdd !== remainingChars) {
this.animationFrameId = requestAnimationFrame(this.animate);
-
- if (charsToAdd === 0) {
- return currentText;
- }
-
- const newText = targetText.slice(0, currentText.length + charsToAdd);
- this.lastUpdateTime = currentTime - timeToConsume;
- return newText;
- });
+ } else {
+ this.animationFrameId = null;
+ }
+ if (charsToAdd === 0) return;
+
+ this.currentText = this.targetText.slice(
+ 0,
+ this.currentText.length + charsToAdd,
+ );
+ this.lastUpdateTime = currentTime - timeToConsume;
+ this.setText(this.currentText);
};
}
export const useSmooth = (text: string, smooth: boolean = false) => {
const [displayedText, setDisplayedText] = useState(text);
const [animatorRef] = useState(
- new TextStreamAnimator(setDisplayedText),
+ new TextStreamAnimator(text, setDisplayedText),
);
useEffect(() => {
@@ -72,8 +70,10 @@ export const useSmooth = (text: string, smooth: boolean = false) => {
if (!text.startsWith(animatorRef.targetText)) {
setDisplayedText(text);
+ animatorRef.currentText = text;
animatorRef.targetText = text;
animatorRef.stop();
+
return;
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 896c1e3e4..1d57d215b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -69,8 +69,8 @@ importers:
specifier: ^3.1.1
version: 3.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
ai:
- specifier: ^3.2.19
- version: 3.2.19(openai@4.52.5)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ specifier: ^3.2.22
+ version: 3.2.22(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -79,22 +79,22 @@ importers:
version: 2.1.1
fumadocs-core:
specifier: 12.4.2
- version: 12.4.2(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 12.4.2(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
fumadocs-mdx:
specifier: 8.2.33
- version: 8.2.33(fumadocs-core@12.4.2(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
+ version: 8.2.33(fumadocs-core@12.4.2(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
fumadocs-ui:
specifier: 12.4.2
- version: 12.4.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.4)
+ version: 12.4.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.4)
geist:
specifier: ^1.3.1
- version: 1.3.1(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
+ version: 1.3.1(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
lucide-react:
specifier: ^0.407.0
version: 0.407.0(react@18.3.1)
next:
specifier: ^14.2.5
- version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -163,8 +163,8 @@ importers:
specifier: ^1.1.2
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
ai:
- specifier: ^3.2.19
- version: 3.2.19(openai@4.52.5)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ specifier: ^3.2.22
+ version: 3.2.22(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -185,7 +185,7 @@ importers:
version: 5.0.7
next:
specifier: 14.2.5
- version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -248,8 +248,8 @@ importers:
specifier: ^1.1.2
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
ai:
- specifier: ^3.2.19
- version: 3.2.19(openai@4.52.5)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ specifier: ^3.2.22
+ version: 3.2.22(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -261,7 +261,7 @@ importers:
version: 0.407.0(react@18.3.1)
next:
specifier: 14.2.5
- version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: ^18
version: 18.3.1
@@ -315,8 +315,8 @@ importers:
specifier: ^1.1.0
version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
ai:
- specifier: ^3.2.19
- version: 3.2.19(openai@4.52.5)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ specifier: ^3.2.22
+ version: 3.2.22(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -328,10 +328,10 @@ importers:
version: 0.407.0(react@18.3.1)
next:
specifier: 14.2.5
- version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
openai:
- specifier: ^4.52.5
- version: 4.52.5
+ specifier: ^4.52.7
+ version: 4.52.7
react:
specifier: ^18
version: 18.3.1
@@ -373,6 +373,64 @@ importers:
specifier: ^5
version: 5.5.3
+ examples/with-playground:
+ dependencies:
+ '@ai-sdk/openai':
+ specifier: ^0.0.36
+ version: 0.0.36(zod@3.23.8)
+ '@ai-sdk/react':
+ specifier: ^0.0.20
+ version: 0.0.20(react@18.3.1)(zod@3.23.8)
+ '@assistant-ui/react':
+ specifier: workspace:*
+ version: link:../../packages/react
+ '@assistant-ui/react-ai-sdk':
+ specifier: workspace:*
+ version: link:../../packages/react-ai-sdk
+ ai:
+ specifier: ^3.2.22
+ version: 3.2.22(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ next:
+ specifier: 14.2.5
+ version: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react:
+ specifier: ^18
+ version: 18.3.1
+ react-dom:
+ specifier: ^18
+ version: 18.3.1(react@18.3.1)
+ tailwindcss-animate:
+ specifier: ^1.0.7
+ version: 1.0.7(tailwindcss@3.4.4)
+ devDependencies:
+ '@assistant-ui/tsconfig':
+ specifier: workspace:^
+ version: link:../../packages/tsconfig
+ '@types/node':
+ specifier: ^20
+ version: 20.14.10
+ '@types/react':
+ specifier: ^18
+ version: 18.3.3
+ '@types/react-dom':
+ specifier: ^18
+ version: 18.3.0
+ eslint:
+ specifier: ^8
+ version: 8.57.0
+ eslint-config-next:
+ specifier: 14.2.5
+ version: 14.2.5(eslint@8.57.0)(typescript@5.5.3)
+ postcss:
+ specifier: ^8
+ version: 8.4.39
+ tailwindcss:
+ specifier: ^3.4.4
+ version: 3.4.4
+ typescript:
+ specifier: ^5
+ version: 5.5.3
+
examples/with-react-hook-form:
dependencies:
'@ai-sdk/openai':
@@ -422,7 +480,7 @@ importers:
version: 0.407.0(react@18.3.1)
next:
specifier: 14.2.5
- version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: ^18
version: 18.3.1
@@ -503,8 +561,8 @@ importers:
specifier: ^1.1.2
version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
ai:
- specifier: 3.2.19
- version: 3.2.19(openai@4.52.5)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ specifier: 3.2.22
+ version: 3.2.22(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
class-variance-authority:
specifier: ^0.7.0
version: 0.7.0
@@ -519,7 +577,7 @@ importers:
version: 5.0.7
next:
specifier: 14.2.5
- version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ version: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react:
specifier: ^18.3.1
version: 18.3.1
@@ -726,7 +784,7 @@ importers:
version: 18.3.3
ai:
specifier: ^3.1.x
- version: 3.2.19(openai@4.52.5)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ version: 3.2.19(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
react:
specifier: ^18
version: 18.3.1
@@ -963,6 +1021,15 @@ packages:
peerDependencies:
zod: ^3.0.0
+ '@ai-sdk/provider-utils@0.0.14':
+ resolution: {integrity: sha512-PCQFN3MlC6DShS/81IFU9NVvt9OekQGiZTEowRc2AwAwWrDsv7er3UkcMswFAL/Z7xZKjgu0dZTNH1z9oUlo7A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
'@ai-sdk/provider-utils@1.0.2':
resolution: {integrity: sha512-57f6O4OFVNEpI8Z8o+K40tIB3YQiTw+VCql/qrAO9Utq7Ti1o6+X9tvm177DlZJL7ft0Rwzvgy48S9YhrEKgmA==}
engines: {node: '>=18'}
@@ -972,6 +1039,10 @@ packages:
zod:
optional: true
+ '@ai-sdk/provider@0.0.10':
+ resolution: {integrity: sha512-NzkrtREQpHID1cTqY/C4CI30PVOaXWKYytDR2EcytmFgnP7Z6+CrGIA/YCnNhYAuUm6Nx+nGpRL/Hmyrv7NYzg==}
+ engines: {node: '>=18'}
+
'@ai-sdk/provider@0.0.12':
resolution: {integrity: sha512-oOwPQD8i2Ynpn22cur4sk26FW3mSy6t6/X/K1Ay2yGBKYiSpRyLfObhOrZEGsXDx+3euKy4nEZ193R36NM+tpQ==}
engines: {node: '>=18'}
@@ -988,6 +1059,18 @@ packages:
zod:
optional: true
+ '@ai-sdk/react@0.0.20':
+ resolution: {integrity: sha512-L/PFqvT+rZd/aYZekEWXuVW3zooJEZAf2O5wL5JeKi71slBEuKZGGZP/7GzyX+8Uhl3JOg4wOdJTO/dogWzbAQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: ^18 || ^19
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ zod:
+ optional: true
+
'@ai-sdk/solid@0.0.13':
resolution: {integrity: sha512-n+0PG7qtS3OY+OjTzRAhH1NxH09g5/71+TXBnpaxjDIZ02KK46JL4Tk4n0aI9r1HS1n9R/nx0Uiqu2UIPaVtgA==}
engines: {node: '>=18'}
@@ -997,6 +1080,15 @@ packages:
solid-js:
optional: true
+ '@ai-sdk/solid@0.0.14':
+ resolution: {integrity: sha512-9esGkm7/jocNELfGstrd3TYgWycXLP0OG6LXGGaEXd7v75eEp067avoLgQuPdWmzjnJD2U7N8u4wXa0lLd0WQQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ solid-js: ^1.7.7
+ peerDependenciesMeta:
+ solid-js:
+ optional: true
+
'@ai-sdk/svelte@0.0.14':
resolution: {integrity: sha512-6CyuiUXgIXpgLuL7PE1evVZtO8OjqD/Pjz5vGXnSjgbP8+tTZU5nglFYwEdwJ1rKssohnyGuAXA7+9+vTVhZMw==}
engines: {node: '>=18'}
@@ -1006,6 +1098,15 @@ packages:
svelte:
optional: true
+ '@ai-sdk/svelte@0.0.15':
+ resolution: {integrity: sha512-k4WwNgAddrQhumC6ogjZ/MPEk9kn3xEcD4CLX4CURX7y+641ktDIcZr5KeS+4o9U/jTrjSbYBJVr5HjoWm+Ixg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ svelte: ^3.0.0 || ^4.0.0
+ peerDependenciesMeta:
+ svelte:
+ optional: true
+
'@ai-sdk/ui-utils@0.0.11':
resolution: {integrity: sha512-1Ag67zp0xue0i4g6TUF8L7YPkmYPlX3iiDUY9tsMqVjViqnvG6458fc2Mnh2yGgDjt0URv0rpjORPquxO/Llgw==}
engines: {node: '>=18'}
@@ -1015,6 +1116,15 @@ packages:
zod:
optional: true
+ '@ai-sdk/ui-utils@0.0.12':
+ resolution: {integrity: sha512-ivveEuneZPOUKqcIqZRCr2NUD+LJC8mYfL7jJRWaCr+JZqdYZ+5uR/nc8GKCly2TcC9/qoF3zxQuZEn0c5805g==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
'@ai-sdk/vue@0.0.13':
resolution: {integrity: sha512-uBw8ZzvPev02dlfk7jQeRyd3mx4EkvGnxhxHnZlSJY6tqkLx8XMfR6vx4dwphbjiAXQWqOFUb0rZyr/JyQfREg==}
engines: {node: '>=18'}
@@ -1024,6 +1134,15 @@ packages:
vue:
optional: true
+ '@ai-sdk/vue@0.0.15':
+ resolution: {integrity: sha512-e8JBjZWV7MYdGcgiZCNp2qso/HdqJ2hSRD54oEELfiHgVf2y3FLnnRnc4M1MwyvX6WaVYvAd6+pdDgwVjU7h1Q==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ vue: ^3.3.4
+ peerDependenciesMeta:
+ vue:
+ optional: true
+
'@alloc/quick-lru@5.2.0':
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
@@ -1521,6 +1640,10 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
+ '@opentelemetry/api@1.9.0':
+ resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
+ engines: {node: '>=8.0.0'}
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -2607,6 +2730,24 @@ packages:
zod:
optional: true
+ ai@3.2.22:
+ resolution: {integrity: sha512-2u2YT6cf/bTRexUtSiSDco/3/z/xlQ9iiW3y2aH05RwDlj9Q6rpALsTdjRNcglI+OBPaXUEORB/bD1dRwxob6Q==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ openai: ^4.42.0
+ react: ^18 || ^19
+ svelte: ^3.0.0 || ^4.0.0
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ openai:
+ optional: true
+ react:
+ optional: true
+ svelte:
+ optional: true
+ zod:
+ optional: true
+
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@@ -4463,8 +4604,8 @@ packages:
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
engines: {node: '>=12'}
- openai@4.52.5:
- resolution: {integrity: sha512-qqH8GsyPE3z06took/2uWOGqRcrZNlRoPAsihpg4jsl0+2Dfelnw6HDDMep0EI2Cfzw75nn3vHRZehep/IZzxg==}
+ openai@4.52.7:
+ resolution: {integrity: sha512-dgxA6UZHary6NXUHEDj5TWt8ogv0+ibH+b4pT5RrWMjiRZVylNwLcw/2ubDrX5n0oUmHX/ZgudMJeemxzOvz7A==}
hasBin: true
optionator@0.9.4:
@@ -5622,6 +5763,15 @@ snapshots:
'@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
zod: 3.23.8
+ '@ai-sdk/provider-utils@0.0.14(zod@3.23.8)':
+ dependencies:
+ '@ai-sdk/provider': 0.0.10
+ eventsource-parser: 1.1.2
+ nanoid: 3.3.6
+ secure-json-parse: 2.7.0
+ optionalDependencies:
+ zod: 3.23.8
+
'@ai-sdk/provider-utils@1.0.2(zod@3.23.8)':
dependencies:
'@ai-sdk/provider': 0.0.12
@@ -5631,6 +5781,10 @@ snapshots:
optionalDependencies:
zod: 3.23.8
+ '@ai-sdk/provider@0.0.10':
+ dependencies:
+ json-schema: 0.4.0
+
'@ai-sdk/provider@0.0.12':
dependencies:
json-schema: 0.4.0
@@ -5644,12 +5798,27 @@ snapshots:
react: 18.3.1
zod: 3.23.8
+ '@ai-sdk/react@0.0.20(react@18.3.1)(zod@3.23.8)':
+ dependencies:
+ '@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
+ '@ai-sdk/ui-utils': 0.0.12(zod@3.23.8)
+ swr: 2.2.0(react@18.3.1)
+ optionalDependencies:
+ react: 18.3.1
+ zod: 3.23.8
+
'@ai-sdk/solid@0.0.13(zod@3.23.8)':
dependencies:
'@ai-sdk/ui-utils': 0.0.11(zod@3.23.8)
transitivePeerDependencies:
- zod
+ '@ai-sdk/solid@0.0.14(zod@3.23.8)':
+ dependencies:
+ '@ai-sdk/ui-utils': 0.0.12(zod@3.23.8)
+ transitivePeerDependencies:
+ - zod
+
'@ai-sdk/svelte@0.0.14(svelte@4.2.18)(zod@3.23.8)':
dependencies:
'@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
@@ -5660,6 +5829,16 @@ snapshots:
transitivePeerDependencies:
- zod
+ '@ai-sdk/svelte@0.0.15(svelte@4.2.18)(zod@3.23.8)':
+ dependencies:
+ '@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
+ '@ai-sdk/ui-utils': 0.0.12(zod@3.23.8)
+ sswr: 2.1.0(svelte@4.2.18)
+ optionalDependencies:
+ svelte: 4.2.18
+ transitivePeerDependencies:
+ - zod
+
'@ai-sdk/ui-utils@0.0.11(zod@3.23.8)':
dependencies:
'@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
@@ -5667,6 +5846,13 @@ snapshots:
optionalDependencies:
zod: 3.23.8
+ '@ai-sdk/ui-utils@0.0.12(zod@3.23.8)':
+ dependencies:
+ '@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
+ secure-json-parse: 2.7.0
+ optionalDependencies:
+ zod: 3.23.8
+
'@ai-sdk/vue@0.0.13(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)':
dependencies:
'@ai-sdk/ui-utils': 0.0.11(zod@3.23.8)
@@ -5676,6 +5862,16 @@ snapshots:
transitivePeerDependencies:
- zod
+ '@ai-sdk/vue@0.0.15(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)':
+ dependencies:
+ '@ai-sdk/provider-utils': 0.0.14(zod@3.23.8)
+ '@ai-sdk/ui-utils': 0.0.12(zod@3.23.8)
+ swrv: 1.0.4(vue@3.4.31(typescript@5.5.3))
+ optionalDependencies:
+ vue: 3.4.31(typescript@5.5.3)
+ transitivePeerDependencies:
+ - zod
+
'@alloc/quick-lru@5.2.0': {}
'@ampproject/remapping@2.3.0':
@@ -6285,6 +6481,8 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.17.1
+ '@opentelemetry/api@1.9.0': {}
+
'@pkgjs/parseargs@0.11.0':
optional: true
@@ -7430,7 +7628,7 @@ snapshots:
dependencies:
humanize-ms: 1.2.1
- ai@3.2.19(openai@4.52.5)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8):
+ ai@3.2.19(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8):
dependencies:
'@ai-sdk/provider': 0.0.12
'@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
@@ -7447,7 +7645,33 @@ snapshots:
sswr: 2.1.0(svelte@4.2.18)
zod-to-json-schema: 3.22.5(zod@3.23.8)
optionalDependencies:
- openai: 4.52.5
+ openai: 4.52.7
+ react: 18.3.1
+ svelte: 4.2.18
+ zod: 3.23.8
+ transitivePeerDependencies:
+ - solid-js
+ - vue
+
+ ai@3.2.22(openai@4.52.7)(react@18.3.1)(svelte@4.2.18)(vue@3.4.31(typescript@5.5.3))(zod@3.23.8):
+ dependencies:
+ '@ai-sdk/provider': 0.0.12
+ '@ai-sdk/provider-utils': 1.0.2(zod@3.23.8)
+ '@ai-sdk/react': 0.0.20(react@18.3.1)(zod@3.23.8)
+ '@ai-sdk/solid': 0.0.14(zod@3.23.8)
+ '@ai-sdk/svelte': 0.0.15(svelte@4.2.18)(zod@3.23.8)
+ '@ai-sdk/ui-utils': 0.0.12(zod@3.23.8)
+ '@ai-sdk/vue': 0.0.15(vue@3.4.31(typescript@5.5.3))(zod@3.23.8)
+ '@opentelemetry/api': 1.9.0
+ eventsource-parser: 1.1.2
+ json-schema: 0.4.0
+ jsondiffpatch: 0.6.0
+ nanoid: 3.3.6
+ secure-json-parse: 2.7.0
+ sswr: 2.1.0(svelte@4.2.18)
+ zod-to-json-schema: 3.22.5(zod@3.23.8)
+ optionalDependencies:
+ openai: 4.52.7
react: 18.3.1
svelte: 4.2.18
zod: 3.23.8
@@ -8516,7 +8740,7 @@ snapshots:
fsevents@2.3.3:
optional: true
- fumadocs-core@12.4.2(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ fumadocs-core@12.4.2(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@formatjs/intl-localematcher': 0.5.4
'@shikijs/rehype': 1.10.3
@@ -8524,7 +8748,7 @@ snapshots:
flexsearch: 0.7.21
github-slugger: 2.0.0
negotiator: 0.6.3
- next: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ next: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
npm-to-yarn: 2.2.1
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -8540,20 +8764,20 @@ snapshots:
- '@types/react'
- supports-color
- fumadocs-mdx@8.2.33(fumadocs-core@12.4.2(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)):
+ fumadocs-mdx@8.2.33(fumadocs-core@12.4.2(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)):
dependencies:
'@mdx-js/mdx': 3.0.1
cross-spawn: 7.0.3
estree-util-value-to-estree: 3.1.2
fast-glob: 3.3.2
- fumadocs-core: 12.4.2(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ fumadocs-core: 12.4.2(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
gray-matter: 4.0.3
- next: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ next: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
zod: 3.23.8
transitivePeerDependencies:
- supports-color
- fumadocs-ui@12.4.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.4):
+ fumadocs-ui@12.4.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.4):
dependencies:
'@radix-ui/react-accordion': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-collapsible': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -8565,9 +8789,9 @@ snapshots:
'@tailwindcss/typography': 0.5.13(tailwindcss@3.4.4)
class-variance-authority: 0.7.0
cmdk: 1.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- fumadocs-core: 12.4.2(@types/react@18.3.3)(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ fumadocs-core: 12.4.2(@types/react@18.3.3)(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
lucide-react: 0.400.0(react@18.3.1)
- next: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ next: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
next-themes: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
@@ -8590,9 +8814,9 @@ snapshots:
functions-have-names@1.2.3: {}
- geist@1.3.1(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)):
+ geist@1.3.1(next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)):
dependencies:
- next: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ next: 14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
gensync@1.0.0-beta.2: {}
@@ -9766,7 +9990,7 @@ snapshots:
react: 18.3.1
react-dom: 18.3.1(react@18.3.1)
- next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ next@14.2.5(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
dependencies:
'@next/env': 14.2.5
'@swc/helpers': 0.5.5
@@ -9787,6 +10011,7 @@ snapshots:
'@next/swc-win32-arm64-msvc': 14.2.5
'@next/swc-win32-ia32-msvc': 14.2.5
'@next/swc-win32-x64-msvc': 14.2.5
+ '@opentelemetry/api': 1.9.0
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -9882,7 +10107,7 @@ snapshots:
dependencies:
mimic-fn: 4.0.0
- openai@4.52.5:
+ openai@4.52.7:
dependencies:
'@types/node': 18.19.39
'@types/node-fetch': 2.6.11