UNPKG

hikma-engine

Version:

Code Knowledge Graph Indexer - A sophisticated TypeScript-based indexer that transforms Git repositories into multi-dimensional knowledge stores for AI agents

104 lines 3.24 kB
/** * @file Enhanced search functionality specifically designed for the embedding_nodes table. * Provides semantic vector search and metadata-based queries using the unified embedding storage. */ import { ConfigManager } from '../config'; /** * Enhanced search result interface for embedding_nodes table. */ export interface EmbeddingSearchResult { node: { id: string; nodeId: string; nodeType: string; filePath: string; sourceText: string; embedding?: number[]; }; similarity: number; rank: number; } /** * Search options for embedding-based search. */ export interface EmbeddingSearchOptions { limit?: number; nodeTypes?: string[]; minSimilarity?: number; filePaths?: string[]; includeEmbedding?: boolean; } /** * Metadata filters for embedding nodes. */ export interface EmbeddingMetadataFilters { nodeType?: string; filePath?: string; fileExtension?: string; sourceTextContains?: string; } /** * Enhanced search service specifically for embedding_nodes table. */ export declare class EnhancedSearchService { private embeddingService; private sqliteClient; private config; private logger; private isInitialized; constructor(config: ConfigManager); /** * Initializes the enhanced search service. */ initialize(): Promise<void>; /** * Performs semantic search using vector embeddings on embedding_nodes table. */ semanticSearch(query: string, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>; /** * Performs text-based search when vector search is not available. */ textBasedSearch(query: string, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>; /** * Performs metadata-based search on embedding_nodes. */ metadataSearch(filters: EmbeddingMetadataFilters, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>; /** * Performs hybrid search combining semantic and metadata filters. */ hybridSearch(query: string, filters?: EmbeddingMetadataFilters, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>; /** * Gets statistics about the embedding_nodes table. */ getEmbeddingStats(): Promise<{ totalNodes: number; nodeTypeBreakdown: Record<string, number>; filePathBreakdown: Record<string, number>; embeddingCoverage: number; }>; /** * Finds similar nodes to a given node ID. */ findSimilarNodes(nodeId: string, options?: EmbeddingSearchOptions): Promise<EmbeddingSearchResult[]>; /** * Performs vector search with a given embedding. */ private vectorSearchWithEmbedding; /** * Verifies that the embedding_nodes table exists and has the expected structure. */ private verifyEmbeddingTable; /** * Deserializes embedding from database blob format. */ private deserializeEmbedding; /** * Filter out test files from search results */ private filterOutTestFiles; /** * Disconnects from the database. */ disconnect(): Promise<void>; } //# sourceMappingURL=enhanced-search-service.d.ts.map