@ai-chat-ui/core
Version:
Core runtime for AI Chat UI
118 lines (87 loc) • 2.81 kB
Markdown
# @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