API Reference / Types

Message Types

Message

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

ToolMessage

interface ToolMessage extends Message {
  role: 'tool';
  toolCallId: string;
  toolName: string;
}

Agent Types

AgentConfig

interface AgentConfig {
  name: string;
  model: string;
  systemPrompt?: string;
  tools?: Tool[];
  temperature?: number;
  maxTokens?: number;
  topP?: number;
  frequencyPenalty?: number;
  presencePenalty?: number;
}

StreamTextResult

interface StreamTextResult {
  textStream: AsyncIterable<string>;
  fullStream: AsyncIterable<StreamEvent>;
  text: Promise<string>;
  usage: Promise<TokenUsage>;
}

Tool Types

Tool

interface Tool<TParams = unknown, TResult = unknown> {
  name: string;
  description: string;
  parameters: ZodSchema<TParams>;
  execute: (params: TParams) => Promise<TResult>;
}

ToolCall

interface ToolCall {
  id: string;
  name: string;
  arguments: Record<string, unknown>;
}

ToolResult

interface ToolResult {
  toolCallId: string;
  result: unknown;
}

Space Types

SpaceConfig

interface SpaceConfig {
  name: string;
  rootPath: string;
  maxHistoryItems?: number;
  autoSaveInterval?: number;
}

Artifact

interface Artifact {
  name: string;
  path: string;
  size: number;
  createdAt: Date;
  updatedAt: Date;
}

Stream Event Types

StreamEvent

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 };

TokenUsage

interface TokenUsage {
  promptTokens: number;
  completionTokens: number;
  totalTokens: number;
}