chore: update to ai sdk v5 beta (#1074)

This commit is contained in:
Jeremy 2025-07-03 02:26:34 -07:00 committed by GitHub
parent 7d8e71383f
commit 4c281fe09d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 1372 additions and 1060 deletions

View file

@ -1,6 +1,4 @@
'use client';
import type { Message } from 'ai';
import cx from 'classnames';
import {
AnimatePresence,
@ -11,7 +9,7 @@ import {
import {
type Dispatch,
memo,
ReactNode,
type ReactNode,
type SetStateAction,
useEffect,
useRef,
@ -27,9 +25,10 @@ import {
} from '@/components/ui/tooltip';
import { ArrowUpIcon, StopIcon, SummarizeIcon } from './icons';
import { artifactDefinitions, ArtifactKind } from './artifact';
import { ArtifactToolbarItem } from './create-artifact';
import { UseChatHelpers } from '@ai-sdk/react';
import { artifactDefinitions, type ArtifactKind } from './artifact';
import type { ArtifactToolbarItem } from './create-artifact';
import type { UseChatHelpers } from '@ai-sdk/react';
import type { ChatMessage } from '@/lib/types';
type ToolProps = {
description: string;
@ -39,11 +38,11 @@ type ToolProps = {
isToolbarVisible?: boolean;
setIsToolbarVisible?: Dispatch<SetStateAction<boolean>>;
isAnimating: boolean;
append: UseChatHelpers['append'];
sendMessage: UseChatHelpers<ChatMessage>['sendMessage'];
onClick: ({
appendMessage,
sendMessage,
}: {
appendMessage: UseChatHelpers['append'];
sendMessage: UseChatHelpers<ChatMessage>['sendMessage'];
}) => void;
};
@ -55,7 +54,7 @@ const Tool = ({
isToolbarVisible,
setIsToolbarVisible,
isAnimating,
append,
sendMessage,
onClick,
}: ToolProps) => {
const [isHovered, setIsHovered] = useState(false);
@ -82,7 +81,7 @@ const Tool = ({
setSelectedTool(description);
} else {
setSelectedTool(null);
onClick({ appendMessage: append });
onClick({ sendMessage });
}
};
@ -135,12 +134,12 @@ const randomArr = [...Array(6)].map((x) => nanoid(5));
const ReadingLevelSelector = ({
setSelectedTool,
append,
sendMessage,
isAnimating,
}: {
setSelectedTool: Dispatch<SetStateAction<string | null>>;
isAnimating: boolean;
append: UseChatHelpers['append'];
sendMessage: UseChatHelpers<ChatMessage>['sendMessage'];
}) => {
const LEVELS = [
'Elementary',
@ -214,9 +213,14 @@ const ReadingLevelSelector = ({
}}
onClick={() => {
if (currentLevel !== 2 && hasUserSelectedLevel) {
append({
sendMessage({
role: 'user',
content: `Please adjust the reading level to ${LEVELS[currentLevel]} level.`,
parts: [
{
type: 'text',
text: `Please adjust the reading level to ${LEVELS[currentLevel]} level.`,
},
],
});
setSelectedTool(null);
@ -243,7 +247,7 @@ export const Tools = ({
isToolbarVisible,
selectedTool,
setSelectedTool,
append,
sendMessage,
isAnimating,
setIsToolbarVisible,
tools,
@ -251,7 +255,7 @@ export const Tools = ({
isToolbarVisible: boolean;
selectedTool: string | null;
setSelectedTool: Dispatch<SetStateAction<string | null>>;
append: UseChatHelpers['append'];
sendMessage: UseChatHelpers<ChatMessage>['sendMessage'];
isAnimating: boolean;
setIsToolbarVisible: Dispatch<SetStateAction<boolean>>;
tools: Array<ArtifactToolbarItem>;
@ -274,7 +278,7 @@ export const Tools = ({
icon={secondaryTool.icon}
selectedTool={selectedTool}
setSelectedTool={setSelectedTool}
append={append}
sendMessage={sendMessage}
isAnimating={isAnimating}
onClick={secondaryTool.onClick}
/>
@ -288,7 +292,7 @@ export const Tools = ({
setSelectedTool={setSelectedTool}
isToolbarVisible={isToolbarVisible}
setIsToolbarVisible={setIsToolbarVisible}
append={append}
sendMessage={sendMessage}
isAnimating={isAnimating}
onClick={primaryTool.onClick}
/>
@ -299,7 +303,7 @@ export const Tools = ({
const PureToolbar = ({
isToolbarVisible,
setIsToolbarVisible,
append,
sendMessage,
status,
stop,
setMessages,
@ -307,10 +311,10 @@ const PureToolbar = ({
}: {
isToolbarVisible: boolean;
setIsToolbarVisible: Dispatch<SetStateAction<boolean>>;
status: UseChatHelpers['status'];
append: UseChatHelpers['append'];
stop: UseChatHelpers['stop'];
setMessages: UseChatHelpers['setMessages'];
status: UseChatHelpers<ChatMessage>['status'];
sendMessage: UseChatHelpers<ChatMessage>['sendMessage'];
stop: UseChatHelpers<ChatMessage>['stop'];
setMessages: UseChatHelpers<ChatMessage>['setMessages'];
artifactKind: ArtifactKind;
}) => {
const toolbarRef = useRef<HTMLDivElement>(null);
@ -431,14 +435,14 @@ const PureToolbar = ({
) : selectedTool === 'adjust-reading-level' ? (
<ReadingLevelSelector
key="reading-level-selector"
append={append}
sendMessage={sendMessage}
setSelectedTool={setSelectedTool}
isAnimating={isAnimating}
/>
) : (
<Tools
key="tools"
append={append}
sendMessage={sendMessage}
isAnimating={isAnimating}
isToolbarVisible={isToolbarVisible}
selectedTool={selectedTool}