import type { LLMCapability } from '../schemas/index.js'; import type { TaskLogger, Canvas } from '../service/protocol.js'; import type { ContextProvider } from '../service/context/provider.js'; export interface LLMProxy { chat(messages: { role: string; content: string; }[], options?: { systemPrompt?: string; }): Promise; } export interface ServiceToolExecutionContext { taskId: string; stepId: string; sessionId?: string; ctx: ContextProvider; previousOutputs: readonly unknown[]; canvas?: Canvas; log: TaskLogger; llm: LLMProxy; } export interface ServiceToolResult { success: boolean; output: unknown; tokensToSet?: Record; canvasUpdate?: Partial; error?: string; } export interface ServiceTool { name: string; description: string; type: 'deterministic' | 'ai'; capability?: LLMCapability; inputSchema?: { type: string; properties?: Record; items?: { type: string; }; }>; required?: string[]; }; execute(input: unknown, context: ServiceToolExecutionContext): Promise; } export declare function registerServiceTool(tool: ServiceTool): void; export declare function getServiceTool(name: string): ServiceTool | undefined; export declare function listServiceTools(): ServiceTool[]; export declare function hasServiceTool(name: string): boolean; //# sourceMappingURL=types.d.ts.map