b00706325b
- Task 0: SOUL.md + loadSystemPrompt() in daemon - Task 1: Tool type definitions (Tool, ToolCall, ToolResult, etc.) - Task 2: ToolRegistry with Anthropic/OpenAI serialization - Task 3: ToolExecutor with hooks, timeout, truncation - Task 4: shell.exec builtin tool - Task 8: Model types updated for tool use (ToolDefinition, ModelToolCall, etc.) - Task 15: Model index exports for tool types
53 lines
1.0 KiB
TypeScript
53 lines
1.0 KiB
TypeScript
export interface ToolInputSchema {
|
|
type: 'object';
|
|
properties: Record<string, unknown>;
|
|
required?: string[];
|
|
}
|
|
|
|
export interface Tool {
|
|
name: string;
|
|
description: string;
|
|
inputSchema: ToolInputSchema;
|
|
execute(args: unknown): Promise<ToolResult>;
|
|
}
|
|
|
|
export interface ToolCall {
|
|
id: string;
|
|
name: string;
|
|
args: unknown;
|
|
}
|
|
|
|
export interface ToolResult {
|
|
success: boolean;
|
|
output: string;
|
|
error?: string;
|
|
}
|
|
|
|
// Content block for assistant messages containing tool calls
|
|
export interface ToolUseBlock {
|
|
type: 'tool_use';
|
|
id: string;
|
|
name: string;
|
|
input: unknown;
|
|
}
|
|
|
|
// Content block for user messages returning tool results
|
|
export interface ToolResultBlock {
|
|
type: 'tool_result';
|
|
tool_use_id: string;
|
|
content: string;
|
|
is_error?: boolean;
|
|
}
|
|
|
|
// Message from assistant requesting tool use
|
|
export interface ToolUseMessage {
|
|
role: 'assistant';
|
|
content: ToolUseBlock[];
|
|
}
|
|
|
|
// Message from user returning tool results
|
|
export interface ToolResultMessage {
|
|
role: 'user';
|
|
content: ToolResultBlock[];
|
|
}
|