/** * OpenKernel — Ollama Provider * * Migrates the existing infinicode Ollama master logic (LAN + Tailscale fallback) * into the provider-agnostic kernel interface. * * Exposes /api/tags models as ProviderModel entries, and routes completion * requests through the OpenAI-compatible /v1/chat/completions endpoint. */ import type { CompletionChunk, CompletionRequest, CompletionResult, ProviderCapabilities, ProviderInfo, ProviderInterface, ProviderModel } from '../types.js'; export interface OllamaProviderOptions { id?: string; name?: string; baseURL: string; fallbackURL?: string; defaultModel?: string; timeoutMs?: number; /** Bearer token for Ollama Cloud (ollama.com) — unset for local Ollama, which has no auth. */ apiKey?: string; } export declare class OllamaProvider implements ProviderInterface { info: ProviderInfo; private baseURL; private fallbackURL?; private activeURL; private defaultModel?; private timeoutMs; private apiKey?; private cachedModels; constructor(options: OllamaProviderOptions); capabilities(): Promise; complete(request: CompletionRequest): Promise; private completeNative; private completeOpenAI; completeStream(request: CompletionRequest): AsyncIterable; private completeStreamNative; private completeStreamOpenAI; refresh(): Promise; verify(): Promise<{ ok: boolean; latencyMs: number; error?: string; }>; private headers; private fetchModels; private toProviderModel; private guessContextLength; private buildMessages; private buildPrompt; private resolveURL; getDefaultModel(): string | undefined; getCachedModels(): ProviderModel[]; }