/** * Claude LLM Executor * * Implementation of ILLMExecutor for Claude Code CLI. * Wraps the existing ClaudeCodeExecutor with the LLM-agnostic interface. * * This enables: * - Using Claude through the standardized interface * - Easy swapping with MockLLMExecutor for testing * - Future support for other Claude modes (API, SDK) * - Streaming mode to display intermediate tool calls */ import { ILLMExecutor, IStreamingLLMExecutor, LLMExecutionOptions, LLMExecutionResult, LLMProviderInfo } from './interfaces'; /** * Extended options for streaming execution */ export interface StreamingExecutionOptions extends LLMExecutionOptions { /** Show intermediate tool calls as they happen */ showToolCalls?: boolean; /** Callback for each tool call */ onToolCall?: (toolCall: ToolCallEvent) => void; /** Callback for each text chunk */ onTextChunk?: (text: string) => void; } /** * Represents a tool call event from Claude */ export interface ToolCallEvent { type: 'tool_use' | 'tool_result'; toolName: string; input?: Record; output?: string; status?: 'running' | 'completed' | 'error'; } export declare class ClaudeLLMExecutor implements ILLMExecutor, IStreamingLLMExecutor { private static readonly DEFAULT_TIMEOUT; private static readonly MAX_PROMPT_SIZE; /** * Execute a prompt using Claude Code CLI with streaming output * This shows intermediate tool calls (Glob, Bash, Read, etc.) as they happen */ executeWithStreaming(prompt: string, context?: string, options?: StreamingExecutionOptions): Promise; /** * Handle a streaming event from Claude CLI */ private handleStreamEvent; /** * Get an icon for a tool type */ private getToolIcon; /** * Async generator for streaming (implements IStreamingLLMExecutor) */ executeStream(prompt: string, context?: string, options?: LLMExecutionOptions): AsyncIterable; /** * Execute a prompt using Claude Code CLI (non-streaming) */ execute(prompt: string, context?: string, options?: LLMExecutionOptions): Promise; /** * Get information about the Claude provider */ getProviderInfo(): LLMProviderInfo; /** * Test connection to Claude Code CLI */ testConnection(): Promise<{ connected: boolean; error?: string; }>; /** * Estimate tokens for text */ estimateTokens(text: string): number; /** * Validate prompt size */ validatePromptSize(prompt: string): { valid: boolean; size: number; maxSize: number; warning?: string; }; } //# sourceMappingURL=claude-llm-executor.d.ts.map