UNPKG

@ai-sdk/svelte

Version:

[Svelte](https://svelte.dev/) UI components for the [AI SDK](https://ai-sdk.dev/docs):

31 lines (30 loc) 748 B
import { AbstractChat, } from 'ai'; export class Chat extends AbstractChat { constructor(init) { super({ ...init, state: new SvelteChatState(init.messages), }); } } class SvelteChatState { messages; status = $state('ready'); error = $state(undefined); constructor(messages = []) { this.messages = $state(messages); } setMessages = (messages) => { this.messages = messages; }; pushMessage = (message) => { this.messages.push(message); }; popMessage = () => { this.messages.pop(); }; replaceMessage = (index, message) => { this.messages[index] = message; }; snapshot = (thing) => $state.snapshot(thing); }