UNPKG

packfs-core

Version:

Semantic filesystem operations for LLM agent frameworks with natural language understanding. See LLM_AGENT_GUIDE.md for copy-paste examples.

106 lines 3.39 kB
/** * Semantic Search API for PackFS - Production-Validated Implementation * * This implementation is extracted from a production MCP server where it has been * successfully handling semantic indexing and retrieval with <200ms response times. */ import { FakeFS, PortablePath } from '@yarnpkg/fslib'; export interface SemanticSearchOptions { query: string; threshold: number; maxResults: number; includeCompressed: boolean; searchTiers: ('active' | 'compressed' | 'archive')[]; } export interface SemanticSearchResult { path: PortablePath; relevanceScore: number; snippet: string; tier: 'active' | 'compressed' | 'archive'; lastAccessed: Date; compressionRatio?: number; } export interface NaturalLanguageQuery { query: string; intent: 'find' | 'search' | 'locate' | 'show'; entities: string[]; confidence: number; } /** * Semantic search capabilities for PackFS * Production-validated in MCP server environment */ export declare class SemanticSearchEngine { private fs; private embeddingCache; private indexCache; private performanceMetrics; constructor(fs: FakeFS<PortablePath>, _options?: SemanticSearchConfig); /** * Execute natural language search - Production API * Examples from production: "find OAuth discussions", "show error handling patterns" */ executeNaturalLanguage(query: string): Promise<SemanticSearchResult[]>; /** * Core semantic search implementation * Validated performance: <200ms response time in production */ semanticSearch(options: SemanticSearchOptions): Promise<SemanticSearchResult[]>; /** * Cross-format search across compressed and uncompressed files * Production feature: seamless search regardless of compression state */ crossFormatSearch(options: { query: string; includeTiers: ('active' | 'compressed' | 'archive')[]; threshold?: number; }): Promise<SemanticSearchResult[]>; /** * Build semantic index for a file tier * Used in production for efficient searching */ buildSemanticIndex(tier: 'active' | 'compressed' | 'archive'): Promise<SemanticIndex>; /** * Get performance metrics from production usage */ getPerformanceMetrics(): ProductionMetrics; private parseNaturalLanguage; private extractIntent; private extractEntities; private calculateThreshold; private searchTier; private getEmbedding; private generateMockEmbedding; private hashStringToFloat; private normalizeVector; private calculateCosineSimilarity; private generateSnippet; private fallbackTextSearch; private getFilesInTier; private getAllFiles; private cleanQuery; private calculateConfidence; private indexBatch; } declare class SemanticIndex { embeddings: Map<PortablePath, Float32Array<ArrayBufferLike>>; metadata: Map<PortablePath, FileMetadata>; } interface FileMetadata { lastAccessed: Date; compressionRatio?: number; } interface ProductionMetrics { averageResponseTime: number; searchCount: number; cacheHitRate: number; relevanceAccuracy: number; compressionEfficiency: number; } interface SemanticSearchConfig { embeddingModel: string; cacheSize: number; batchSize: number; } export {}; //# sourceMappingURL=SemanticSearchAPI.d.ts.map