/** * ChatAgent -- agentic tool-use loop for the diagram chatbot. * * Supports three provider formats: * - Anthropic Claude (tool_use / tool_result via /v1/messages) * - OpenAI-compatible (function calling via /chat/completions) * - Google Gemini (function calling via generateContent) * * Provider resolution (same priority as generate.ts): * 1. GEMINI_API_KEY -> Gemini * 2. ANTHROPIC_API_KEY -> Anthropic Claude * 3. OPENAI_COMPAT_BASE_URL -> any OpenAI-compatible endpoint * 4. openloreConfig.generation -> reads provider + openaiCompatBaseUrl from config * 5. OPENAI_API_KEY -> OpenAI directly * * Model: OPENAI_COMPAT_MODEL env var -> openloreConfig.generation.model -> provider default. * * Max iterations: 8 (prevents runaway loops). */ type ProviderKind = 'gemini' | 'anthropic' | 'openai-compat'; interface ProviderConfig { kind: ProviderKind; baseUrl: string; apiKey: string; model: string; } /** * Resolve the active LLM provider by checking environment keys in priority order: * Gemini API key → Anthropic API key → OpenAI-compatible base URL → config file → OpenAI key. * Returns a ProviderConfig with kind, baseUrl, apiKey, and model fields. */ export declare function resolveProviderConfig(directory: string): Promise; export interface ChatAgentOptions { directory: string; messages: { role: 'user' | 'assistant'; content: string; }[]; modelOverride?: string; signal?: AbortSignal; onToolStart?: (name: string) => void; onToolEnd?: (name: string) => void; } export interface ChatAgentResult { reply: string; filePaths: string[]; } export declare function runChatAgent(options: ChatAgentOptions): Promise; export {}; //# sourceMappingURL=chat-agent.d.ts.map