/** * Ollama Utility Functions * * Centralized Ollama base URL sanitization, model checking, and error handling. */ export interface OllamaModelInfo { name: string; modified_at?: string; size?: number; digest?: string; details?: { parent_model?: string; format?: string; family?: string; families?: string[]; parameter_size?: string; quantization_level?: string; }; } export interface OllamaTagsResponse { models: OllamaModelInfo[]; } export interface OllamaError { code: "OLLAMA_UNREACHABLE" | "OLLAMA_BAD_BASE_URL" | "OLLAMA_HTML_RESPONSE" | "OLLAMA_MODEL_MISSING_NO_FALLBACK" | "OLLAMA_REQUEST_FAILED" | "OLLAMA_AUTH_REQUIRED"; message: string; baseUrl: string; modelRequested?: string; modelUsed?: string; details?: string; } export interface OllamaConfig { baseUrl: string; modelRequested: string; modelUsed: string; modelProvider: "ollama"; warnings?: Array<{ code: string; message: string; requested?: string; fallbackUsed?: string; availableModelsSample?: string[]; }>; } /** * Sanitize OLLAMA_BASE_URL * * - Trims whitespace * - Removes trailing invalid characters (like 'z' after port number) * - Ensures it doesn't end with '/' * - Falls back to default if invalid */ export declare function getOllamaBaseUrl(): string; /** * Get available models from Ollama /api/tags endpoint */ export declare function getAvailableModels(baseUrl: string): Promise; /** * Select model with fallback logic * * Priority: * 1. Requested model if available * 2. OLLAMA_FALLBACK_MODEL env var or "llama3.1:latest" * 3. First available model (sorted deterministically) */ export declare function selectModelWithFallback(requestedModel: string, availableModels: OllamaModelInfo[], fallbackModel?: string): { model: string; wasFallback: boolean; }; /** * Get Ollama configuration with preflight checks * * This function: * 1. Sanitizes the base URL * 2. Checks if Ollama is reachable * 3. Gets available models * 4. Selects model with fallback if needed * 5. Returns structured config with warnings */ export declare function getOllamaConfig(requestedModel: string): Promise; /** * Create structured error response from OllamaError */ export declare function createOllamaErrorResponse(error: OllamaError): { ok: boolean; error: { code: "OLLAMA_UNREACHABLE" | "OLLAMA_BAD_BASE_URL" | "OLLAMA_HTML_RESPONSE" | "OLLAMA_MODEL_MISSING_NO_FALLBACK" | "OLLAMA_REQUEST_FAILED" | "OLLAMA_AUTH_REQUIRED"; message: string; baseUrl: string; modelRequested: string | undefined; modelUsed: string | undefined; details: string | undefined; }; }; //# sourceMappingURL=ollama.d.ts.map