File size: 426 Bytes
68d7816 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import type { ToolDescription } from '#/llm/message';
import type { ToolExecuteInput, ToolResult } from './executor';
export interface ToolDefinition extends ToolDescription {
execute(input: ToolExecuteInput): Promise<ToolResult>;
}
export function defineTool(tool: ToolDefinition): ToolDefinition {
if (tool.name.trim() === '') {
throw new Error('tool name must not be empty');
}
return Object.freeze(tool);
}
|