/** * AI Provider Abstraction * * Pluggable providers for AI enrichment/compression operations. * Supports Claude CLI (default), OpenAI-compatible APIs, and Google Gemini. * * @module @agentkits/memory/hooks/ai-provider */ /** * AI provider configuration. * Stored in `.claude/memory/settings.json` under the `aiProvider` key. */ export interface AIProviderConfig { /** Provider type */ provider: 'claude-cli' | 'openai' | 'gemini'; /** API key (for HTTP providers; omit for claude-cli) */ apiKey?: string; /** Base URL for OpenAI-compatible API (default: https://api.openai.com/v1) */ baseUrl?: string; /** Model name (default varies by provider) */ model?: string; } /** Default provider configuration */ export declare const DEFAULT_AI_PROVIDER_CONFIG: AIProviderConfig; /** * Provider function contract — takes prompt + system prompt + timeout, * returns raw text response or null on failure. */ export type AIProviderFn = (prompt: string, systemPrompt: string, timeoutMs: number) => Promise; /** Synchronous availability check (best-effort). */ export type AIProviderAvailableCheck = () => boolean; /** Resolved provider with run function and availability check. */ export interface ResolvedProvider { run: AIProviderFn; isAvailable: AIProviderAvailableCheck; name: string; } /** * Create a provider that uses `claude --print` CLI. * Wraps the existing execFileSync-based approach. */ export declare function createClaudeCliProvider(model: string): ResolvedProvider; /** * Create a provider that calls any OpenAI-compatible chat completions API. * Covers: OpenRouter, GLM/ZhipuAI, Ollama, LM Studio, vLLM, Together.ai, etc. */ export declare function createOpenAIProvider(apiKey: string, baseUrl: string, model: string): ResolvedProvider; /** * Create a provider that calls Google's Gemini API. * Uses the generateContent endpoint with system_instruction support. */ export declare function createGeminiProvider(apiKey: string, model: string): ResolvedProvider; /** * Resolve which AI provider to use. * * Resolution order: * 1. Environment variables (AGENTKITS_AI_PROVIDER, etc.) — override everything * 2. Settings config (from settings.json) — persistent user preference * 3. Default: claude-cli */ export declare function resolveAIProvider(settingsConfig?: AIProviderConfig): ResolvedProvider; //# sourceMappingURL=ai-provider.d.ts.map