UNPKG

ai

Version:

AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript

55 lines (46 loc) 1.39 kB
import { describe, expectTypeOf, it } from 'vitest'; import { DataUIPart, DynamicToolUIPart, FileUIPart, ReasoningUIPart, SourceDocumentUIPart, SourceUrlUIPart, StepStartUIPart, TextUIPart, UIMessage, } from '../ui/ui-messages'; import { ToolLoopAgent } from './tool-loop-agent'; import { InferAgentUIMessage } from './infer-agent-ui-message'; describe('InferAgentUIMessage', () => { it('should not contain arbitrary static tools when no tools are provided', () => { const agent = new ToolLoopAgent({ model: 'openai/gpt-4o', // no tools }); type Message = InferAgentUIMessage<typeof agent>; expectTypeOf<Message>().toMatchTypeOf<UIMessage<unknown, never, {}>>(); type MessagePart = Message['parts'][number]; expectTypeOf<MessagePart>().toMatchTypeOf< | TextUIPart | ReasoningUIPart // No static tools, so no ToolUIPart | DynamicToolUIPart | SourceUrlUIPart | SourceDocumentUIPart | FileUIPart | DataUIPart<never> | StepStartUIPart >(); }); it('should include metadata when provided', () => { const agent = new ToolLoopAgent({ model: 'openai/gpt-4o', // no tools }); type Message = InferAgentUIMessage<typeof agent, { foo: string }>; expectTypeOf<Message>().toMatchTypeOf< UIMessage<{ foo: string }, never, {}> >(); }); });