Skip to content

Types

interface Message {
id: string;
role: 'user' | 'assistant' | 'system' | 'tool';
content: string;
createdAt?: Date;
}
interface ToolMessage extends Message {
role: 'tool';
toolCallId: string;
toolName: string;
}

interface AgentConfig {
name: string;
model: string;
systemPrompt?: string;
tools?: Tool[];
temperature?: number;
maxTokens?: number;
topP?: number;
frequencyPenalty?: number;
presencePenalty?: number;
}
interface StreamTextResult {
textStream: AsyncIterable<string>;
fullStream: AsyncIterable<StreamEvent>;
text: Promise<string>;
usage: Promise<TokenUsage>;
}

interface Tool<TParams = unknown, TResult = unknown> {
name: string;
description: string;
parameters: ZodSchema<TParams>;
execute: (params: TParams) => Promise<TResult>;
}
interface ToolCall {
id: string;
name: string;
arguments: Record<string, unknown>;
}
interface ToolResult {
toolCallId: string;
result: unknown;
}

interface SpaceConfig {
name: string;
rootPath: string;
maxHistoryItems?: number;
autoSaveInterval?: number;
}
interface Artifact {
name: string;
path: string;
size: number;
createdAt: Date;
updatedAt: Date;
}

type StreamEvent =
| { type: 'text-delta'; textDelta: string }
| { type: 'tool-call'; toolCallId: string; toolName: string; args: unknown }
| { type: 'tool-result'; toolCallId: string; result: unknown }
| { type: 'finish'; usage: TokenUsage };
interface TokenUsage {
promptTokens: number;
completionTokens: number;
totalTokens: number;
}