/** * Code Symbol Embeddings — semantic search via transformers.js. * * Provides text-to-vector embedding for semantic code search. * Uses @huggingface/transformers with snowflake-arctic-embed-xs (384-dim) * as default, with pluggable provider interface. * * Gracefully degrades to BM25-only search when embeddings unavailable. * * @task T1058 EP1-T2 */ /** * Contract for code embeddings providers. * Can be replaced via CLEO_EMBEDDINGS_PROVIDER env var. */ export interface CodeEmbeddingProvider { /** * Convert code text into a fixed-dimension vector. * Text should be symbol name + docstring for best results. */ embed(text: string): Promise; /** * Vector dimensionality (384 for snowflake-arctic-embed-xs). * Must match nexus_embeddings vec0 table schema. */ readonly dimensions: number; /** * Whether the provider is ready to produce embeddings. * Returns false if model loading failed or dependencies unavailable. */ isAvailable(): boolean; } /** Standard vector dimension for code embeddings (matches nexus schema). */ export declare const CODE_EMBEDDING_DIMENSIONS = 384; /** * Register a code embeddings provider. * * @throws Error if provider dimensions do not match CODE_EMBEDDING_DIMENSIONS */ export declare function setCodeEmbeddingProvider(provider: CodeEmbeddingProvider): void; /** Get the currently registered code embeddings provider. */ export declare function getCodeEmbeddingProvider(): CodeEmbeddingProvider | null; /** Clear the current code embeddings provider (useful for testing). */ export declare function clearCodeEmbeddingProvider(): void; /** Check if code embeddings are available. */ export declare function isCodeEmbeddingAvailable(): boolean; /** * Embed code text using the registered provider. * * @param text - Symbol name + docstring or full source * @returns Float vector or null if embeddings unavailable */ export declare function embedCodeSymbol(text: string): Promise; /** * Transformer.js-backed code embeddings provider. * * Uses Xenova/snowflake-arctic-embed-xs (384-dim, 85MB). * Lazy-loads @huggingface/transformers on first use. * * @internal */ export declare class TransformersCodeEmbeddingProvider implements CodeEmbeddingProvider { readonly dimensions = 384; private extractor; private initPromise; private initError; isAvailable(): boolean; /** * Initialize the transformer model (lazy-loaded). * * @throws Error if @huggingface/transformers unavailable or model fails to load */ ensureInitialized(): Promise; /** * Internal: load the transformers pipeline. * * @throws Error if module not found or model download fails */ private initializeExtractor; /** * Embed code symbol name + docstring. * * @param text - Symbol name or name + docstring * @returns 384-dim vector * @throws Error if model unavailable or extraction fails */ embed(text: string): Promise; } /** * Initialize the default code embeddings provider. * * Uses @huggingface/transformers with snowflake-arctic-embed-xs model. * Gracefully degrades if package unavailable (returns null). * * @returns true if initialized successfully, false if unavailable * * @task T1058 */ export declare function initDefaultCodeEmbeddingProvider(): Promise; //# sourceMappingURL=embeddings.d.ts.map