export interface Tool { name: string; execute(params: Record): Promise>; validateParams(params: Record): boolean | string; } export interface ToolRegistry { [key: string]: Tool; } export interface ExecutionContext { workflowId: string; blockStates: Map; input: Record; metadata?: Record; } export interface ExecutionResult { success: boolean; data: Record; error?: string; metadata?: { duration: number; startTime: string; endTime: string; }; }