/** * local.ts - Local llama.cpp adapter implementing EmbeddingProvider. * * Wraps an existing `LlamaCpp` instance so the legacy GGUF path looks like * any other EmbeddingProvider to upstream callers. Used as the default and * as the fallback target when `OpenAIEmbeddingsProvider` trips its breaker. */ import { type LlamaCpp } from "../llm.js"; import type { EmbeddingProvider, ProviderEmbedOptions, ProviderEmbedding, ProviderHealth, ProviderKind } from "./provider.js"; export type LocalLlamaCppProviderConfig = { /** Pre-built LlamaCpp instance (optional — falls back to global singleton). */ llm?: LlamaCpp; /** * Stable model id reported via `getModelId()`. Defaults to "embeddinggemma" * to match the value in `content_vectors.model` for existing qmd installs. */ modelId?: string; }; export declare class LocalLlamaCppProvider implements EmbeddingProvider { readonly kind: ProviderKind; private readonly llm; private readonly modelId; private dimensions; private lastError; constructor(config?: LocalLlamaCppProviderConfig); getModelId(): string; getDimensions(): number | undefined; /** * Most recent thrown error from `llm.embed` / `llm.embedBatch`. Returns * `undefined` after a successful call or before the first call. See * `EmbeddingProvider.getLastError`. */ getLastError(): string | undefined; healthcheck(_signal?: AbortSignal): Promise; embed(text: string, options?: ProviderEmbedOptions): Promise; embedBatch(texts: string[], options?: ProviderEmbedOptions): Promise<(ProviderEmbedding | null)[]>; dispose(): Promise; }