export interface Tool

{ id: string name: string description: string version: string params: { [key: string]: { type: string required?: boolean description?: string default?: any } } request: { url: string | ((params: P) => string) method: string headers: (params: P) => Record body?: (params: P) => Record } transformResponse: (response: any) => R transformError: (error: any) => 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 } }