UNPKG

@ai-chat-ui/core

Version:

Core runtime for AI Chat UI

118 lines (87 loc) 2.81 kB
# @ai-chat-ui/core Core runtime for AI Chat UI built on top of the [AG-UI protocol](https://www.npmjs.com/package/@ag-ui/core). ## Installation ```bash npm install @ai-chat-ui/core # or pnpm add @ai-chat-ui/core # or yarn add @ai-chat-ui/core ``` ## Overview This package provides: - **Type Re-exports**: All core types and events from `@ag-ui/core` - **UI Utilities**: Helper functions for working with messages and events - **Type Safety**: Full TypeScript support with inferred types ## Usage ### Type Imports ```typescript import type { // Messages Message, UserMessage, AssistantMessage, // Events Event, EventType, TextMessageStartEvent, ToolCallStartEvent, // Core types RunAgentInput, Tool, Context, } from "@ai-chat-ui/core"; ``` ### Utility Functions ```typescript import { isUserMessage, isAssistantMessage, getMessageContent, filterMessagesByRole, createMessageId, createThreadId, isTextMessageEvent, isToolCallEvent, } from '@ai-chat-ui/core'; // Check message types const messages: Message[] = [...]; const userMessages = messages.filter(isUserMessage); // Get message content const content = getMessageContent(message); // Filter by role const assistantMessages = filterMessagesByRole(messages, 'assistant'); // Create IDs const messageId = createMessageId(); const threadId = createThreadId(); // Check event types if (isTextMessageEvent(event)) { // Handle text message events } ``` ## API Reference ### Message Utilities - `isUserMessage(message)` - Check if message is from user - `isAssistantMessage(message)` - Check if message is from assistant - `isToolMessage(message)` - Check if message is from a tool - `isSystemMessage(message)` - Check if message is a system message - `getMessageContent(message)` - Extract text content from message - `filterMessagesByRole(messages, role)` - Filter messages by role - `getLastMessage(messages)` - Get the last message - `getLastUserMessage(messages)` - Get the last user message ### Event Utilities - `isTextMessageEvent(event)` - Check if event is a text message event - `isToolCallEvent(event)` - Check if event is a tool call event - `isLifecycleEvent(event)` - Check if event is a lifecycle event ### ID Generators - `createMessageId()` - Generate unique message ID - `createToolCallId()` - Generate unique tool call ID - `createThreadId()` - Generate unique thread ID - `createRunId()` - Generate unique run ID ## Type Exports All types from `@ag-ui/core` are re-exported for convenience: - Message types: `Message`, `UserMessage`, `AssistantMessage`, `ToolMessage`, `SystemMessage`, `DeveloperMessage` - Event types: `Event`, `EventType`, and all specific event types - Core types: `RunAgentInput`, `Tool`, `Context`, `State`, `ToolCall`, `FunctionCall` ## License MIT