@framers/agentos 0.1.120 → 0.1.121
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/api/agency.d.ts.map +1 -1
- package/dist/api/agency.js +227 -84
- package/dist/api/agency.js.map +1 -1
- package/dist/api/analyzeVideo.d.ts +127 -0
- package/dist/api/analyzeVideo.d.ts.map +1 -0
- package/dist/api/analyzeVideo.js +136 -0
- package/dist/api/analyzeVideo.js.map +1 -0
- package/dist/api/detectScenes.d.ts +82 -0
- package/dist/api/detectScenes.d.ts.map +1 -0
- package/dist/api/detectScenes.js +67 -0
- package/dist/api/detectScenes.js.map +1 -0
- package/dist/api/generateImage.d.ts +7 -0
- package/dist/api/generateImage.d.ts.map +1 -1
- package/dist/api/generateImage.js +133 -9
- package/dist/api/generateImage.js.map +1 -1
- package/dist/api/generateMusic.d.ts +98 -0
- package/dist/api/generateMusic.d.ts.map +1 -0
- package/dist/api/generateMusic.js +319 -0
- package/dist/api/generateMusic.js.map +1 -0
- package/dist/api/generateSFX.d.ts +96 -0
- package/dist/api/generateSFX.d.ts.map +1 -0
- package/dist/api/generateSFX.js +317 -0
- package/dist/api/generateSFX.js.map +1 -0
- package/dist/api/generateVideo.d.ts +113 -0
- package/dist/api/generateVideo.d.ts.map +1 -0
- package/dist/api/generateVideo.js +342 -0
- package/dist/api/generateVideo.js.map +1 -0
- package/dist/api/model.d.ts.map +1 -1
- package/dist/api/model.js +8 -4
- package/dist/api/model.js.map +1 -1
- package/dist/api/performOCR.d.ts +169 -0
- package/dist/api/performOCR.d.ts.map +1 -0
- package/dist/api/performOCR.js +198 -0
- package/dist/api/performOCR.js.map +1 -0
- package/dist/api/provider-defaults.d.ts +7 -5
- package/dist/api/provider-defaults.d.ts.map +1 -1
- package/dist/api/provider-defaults.js +32 -10
- package/dist/api/provider-defaults.js.map +1 -1
- package/dist/api/strategies/debate.d.ts.map +1 -1
- package/dist/api/strategies/debate.js +1 -0
- package/dist/api/strategies/debate.js.map +1 -1
- package/dist/api/strategies/graph.d.ts.map +1 -1
- package/dist/api/strategies/graph.js +69 -13
- package/dist/api/strategies/graph.js.map +1 -1
- package/dist/api/strategies/hierarchical.d.ts.map +1 -1
- package/dist/api/strategies/hierarchical.js +1 -0
- package/dist/api/strategies/hierarchical.js.map +1 -1
- package/dist/api/strategies/parallel.d.ts.map +1 -1
- package/dist/api/strategies/parallel.js +1 -0
- package/dist/api/strategies/parallel.js.map +1 -1
- package/dist/api/strategies/review-loop.d.ts.map +1 -1
- package/dist/api/strategies/review-loop.js +1 -0
- package/dist/api/strategies/review-loop.js.map +1 -1
- package/dist/api/strategies/sequential.d.ts.map +1 -1
- package/dist/api/strategies/sequential.js +54 -48
- package/dist/api/strategies/sequential.js.map +1 -1
- package/dist/api/streamBuffer.d.ts +20 -0
- package/dist/api/streamBuffer.d.ts.map +1 -0
- package/dist/api/streamBuffer.js +81 -0
- package/dist/api/streamBuffer.js.map +1 -0
- package/dist/api/types.d.ts +145 -5
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js.map +1 -1
- package/dist/channels/adapters/RedditChannelAdapter.js.map +1 -1
- package/dist/core/audio/AudioProcessor.d.ts.map +1 -1
- package/dist/core/audio/AudioProcessor.js +1 -0
- package/dist/core/audio/AudioProcessor.js.map +1 -1
- package/dist/core/audio/EnvironmentalCalibrator.d.ts.map +1 -1
- package/dist/core/audio/EnvironmentalCalibrator.js +1 -0
- package/dist/core/audio/EnvironmentalCalibrator.js.map +1 -1
- package/dist/core/audio/FallbackAudioProxy.d.ts +169 -0
- package/dist/core/audio/FallbackAudioProxy.d.ts.map +1 -0
- package/dist/core/audio/FallbackAudioProxy.js +236 -0
- package/dist/core/audio/FallbackAudioProxy.js.map +1 -0
- package/dist/core/audio/IAudioGenerator.d.ts +103 -0
- package/dist/core/audio/IAudioGenerator.d.ts.map +1 -0
- package/dist/core/audio/IAudioGenerator.js +24 -0
- package/dist/core/audio/IAudioGenerator.js.map +1 -0
- package/dist/core/audio/index.d.ts +54 -0
- package/dist/core/audio/index.d.ts.map +1 -1
- package/dist/core/audio/index.js +93 -0
- package/dist/core/audio/index.js.map +1 -1
- package/dist/core/audio/providers/AudioGenLocalProvider.d.ts +136 -0
- package/dist/core/audio/providers/AudioGenLocalProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/AudioGenLocalProvider.js +235 -0
- package/dist/core/audio/providers/AudioGenLocalProvider.js.map +1 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts +107 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.js +154 -0
- package/dist/core/audio/providers/ElevenLabsSFXProvider.js.map +1 -0
- package/dist/core/audio/providers/FalAudioProvider.d.ts +207 -0
- package/dist/core/audio/providers/FalAudioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/FalAudioProvider.js +315 -0
- package/dist/core/audio/providers/FalAudioProvider.js.map +1 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.d.ts +136 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.js +235 -0
- package/dist/core/audio/providers/MusicGenLocalProvider.js.map +1 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.d.ts +200 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.js +346 -0
- package/dist/core/audio/providers/ReplicateAudioProvider.js.map +1 -0
- package/dist/core/audio/providers/StableAudioProvider.d.ts +138 -0
- package/dist/core/audio/providers/StableAudioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/StableAudioProvider.js +192 -0
- package/dist/core/audio/providers/StableAudioProvider.js.map +1 -0
- package/dist/core/audio/providers/SunoProvider.d.ts +182 -0
- package/dist/core/audio/providers/SunoProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/SunoProvider.js +312 -0
- package/dist/core/audio/providers/SunoProvider.js.map +1 -0
- package/dist/core/audio/providers/UdioProvider.d.ts +177 -0
- package/dist/core/audio/providers/UdioProvider.d.ts.map +1 -0
- package/dist/core/audio/providers/UdioProvider.js +305 -0
- package/dist/core/audio/providers/UdioProvider.js.map +1 -0
- package/dist/core/audio/types.d.ts +257 -0
- package/dist/core/audio/types.d.ts.map +1 -0
- package/dist/core/audio/types.js +21 -0
- package/dist/core/audio/types.js.map +1 -0
- package/dist/core/images/FallbackImageProxy.d.ts +183 -0
- package/dist/core/images/FallbackImageProxy.d.ts.map +1 -0
- package/dist/core/images/FallbackImageProxy.js +283 -0
- package/dist/core/images/FallbackImageProxy.js.map +1 -0
- package/dist/core/images/IImageProvider.d.ts +1 -1
- package/dist/core/images/IImageProvider.d.ts.map +1 -1
- package/dist/core/images/index.d.ts +1 -0
- package/dist/core/images/index.d.ts.map +1 -1
- package/dist/core/images/index.js +1 -0
- package/dist/core/images/index.js.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts +3 -1
- package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
- package/dist/core/llm/providers/AIModelProviderManager.js +8 -0
- package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts +52 -0
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js +36 -0
- package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js.map +1 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts +32 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts.map +1 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.js +27 -0
- package/dist/core/llm/providers/errors/GeminiCLIProviderError.js.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts +38 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js +128 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts +107 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js +504 -0
- package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts +60 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.js +177 -0
- package/dist/core/llm/providers/implementations/GeminiCLIBridge.js.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts +55 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts.map +1 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.js +447 -0
- package/dist/core/llm/providers/implementations/GeminiCLIProvider.js.map +1 -0
- package/dist/core/media/ProviderPreferences.d.ts +158 -0
- package/dist/core/media/ProviderPreferences.d.ts.map +1 -0
- package/dist/core/media/ProviderPreferences.js +183 -0
- package/dist/core/media/ProviderPreferences.js.map +1 -0
- package/dist/core/subprocess/CLIRegistry.d.ts +71 -0
- package/dist/core/subprocess/CLIRegistry.d.ts.map +1 -0
- package/dist/core/subprocess/CLIRegistry.js +210 -0
- package/dist/core/subprocess/CLIRegistry.js.map +1 -0
- package/dist/core/subprocess/CLISubprocessBridge.d.ts +117 -0
- package/dist/core/subprocess/CLISubprocessBridge.d.ts.map +1 -0
- package/dist/core/subprocess/CLISubprocessBridge.js +199 -0
- package/dist/core/subprocess/CLISubprocessBridge.js.map +1 -0
- package/dist/core/subprocess/errors.d.ts +76 -0
- package/dist/core/subprocess/errors.d.ts.map +1 -0
- package/dist/core/subprocess/errors.js +75 -0
- package/dist/core/subprocess/errors.js.map +1 -0
- package/dist/core/subprocess/index.d.ts +11 -0
- package/dist/core/subprocess/index.d.ts.map +1 -0
- package/dist/core/subprocess/index.js +10 -0
- package/dist/core/subprocess/index.js.map +1 -0
- package/dist/core/subprocess/types.d.ts +100 -0
- package/dist/core/subprocess/types.d.ts.map +1 -0
- package/dist/core/subprocess/types.js +9 -0
- package/dist/core/subprocess/types.js.map +1 -0
- package/dist/core/video/FallbackVideoProxy.d.ts +166 -0
- package/dist/core/video/FallbackVideoProxy.d.ts.map +1 -0
- package/dist/core/video/FallbackVideoProxy.js +228 -0
- package/dist/core/video/FallbackVideoProxy.js.map +1 -0
- package/dist/core/video/IVideoAnalyzer.d.ts +29 -0
- package/dist/core/video/IVideoAnalyzer.d.ts.map +1 -0
- package/dist/core/video/IVideoAnalyzer.js +12 -0
- package/dist/core/video/IVideoAnalyzer.js.map +1 -0
- package/dist/core/video/IVideoGenerator.d.ts +76 -0
- package/dist/core/video/IVideoGenerator.d.ts.map +1 -0
- package/dist/core/video/IVideoGenerator.js +13 -0
- package/dist/core/video/IVideoGenerator.js.map +1 -0
- package/dist/core/video/VideoAnalyzer.d.ts +278 -0
- package/dist/core/video/VideoAnalyzer.d.ts.map +1 -0
- package/dist/core/video/VideoAnalyzer.js +648 -0
- package/dist/core/video/VideoAnalyzer.js.map +1 -0
- package/dist/core/video/index.d.ts +55 -0
- package/dist/core/video/index.d.ts.map +1 -0
- package/dist/core/video/index.js +78 -0
- package/dist/core/video/index.js.map +1 -0
- package/dist/core/video/providers/FalVideoProvider.d.ts +195 -0
- package/dist/core/video/providers/FalVideoProvider.d.ts.map +1 -0
- package/dist/core/video/providers/FalVideoProvider.js +322 -0
- package/dist/core/video/providers/FalVideoProvider.js.map +1 -0
- package/dist/core/video/providers/ReplicateVideoProvider.d.ts +194 -0
- package/dist/core/video/providers/ReplicateVideoProvider.d.ts.map +1 -0
- package/dist/core/video/providers/ReplicateVideoProvider.js +356 -0
- package/dist/core/video/providers/ReplicateVideoProvider.js.map +1 -0
- package/dist/core/video/providers/RunwayVideoProvider.d.ts +175 -0
- package/dist/core/video/providers/RunwayVideoProvider.d.ts.map +1 -0
- package/dist/core/video/providers/RunwayVideoProvider.js +293 -0
- package/dist/core/video/providers/RunwayVideoProvider.js.map +1 -0
- package/dist/core/video/types.d.ts +441 -0
- package/dist/core/video/types.d.ts.map +1 -0
- package/dist/core/video/types.js +10 -0
- package/dist/core/video/types.js.map +1 -0
- package/dist/core/vision/SceneDetector.d.ts +180 -0
- package/dist/core/vision/SceneDetector.d.ts.map +1 -0
- package/dist/core/vision/SceneDetector.js +366 -0
- package/dist/core/vision/SceneDetector.js.map +1 -0
- package/dist/core/vision/index.d.ts +2 -1
- package/dist/core/vision/index.d.ts.map +1 -1
- package/dist/core/vision/index.js +1 -0
- package/dist/core/vision/index.js.map +1 -1
- package/dist/core/vision/types.d.ts +125 -0
- package/dist/core/vision/types.d.ts.map +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts +32 -0
- package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
- package/dist/discovery/CapabilityDiscoveryEngine.js +46 -0
- package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
- package/dist/extensions/MultiRegistryLoader.js.map +1 -1
- package/dist/index.d.ts +17 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/memory/CognitiveMemoryManager.d.ts +40 -0
- package/dist/memory/CognitiveMemoryManager.d.ts.map +1 -1
- package/dist/memory/CognitiveMemoryManager.js +54 -1
- package/dist/memory/CognitiveMemoryManager.js.map +1 -1
- package/dist/memory/facade/Memory.d.ts +4 -0
- package/dist/memory/facade/Memory.d.ts.map +1 -1
- package/dist/memory/facade/Memory.js +140 -4
- package/dist/memory/facade/Memory.js.map +1 -1
- package/dist/memory/facade/types.d.ts +30 -2
- package/dist/memory/facade/types.d.ts.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/types.d.ts +15 -0
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/query-router/QueryClassifier.d.ts +192 -21
- package/dist/query-router/QueryClassifier.d.ts.map +1 -1
- package/dist/query-router/QueryClassifier.js +604 -23
- package/dist/query-router/QueryClassifier.js.map +1 -1
- package/dist/query-router/QueryDispatcher.d.ts +106 -8
- package/dist/query-router/QueryDispatcher.d.ts.map +1 -1
- package/dist/query-router/QueryDispatcher.js +387 -8
- package/dist/query-router/QueryDispatcher.js.map +1 -1
- package/dist/query-router/QueryRouter.d.ts +198 -14
- package/dist/query-router/QueryRouter.d.ts.map +1 -1
- package/dist/query-router/QueryRouter.js +738 -50
- package/dist/query-router/QueryRouter.js.map +1 -1
- package/dist/query-router/index.d.ts +1 -1
- package/dist/query-router/index.d.ts.map +1 -1
- package/dist/query-router/index.js +1 -1
- package/dist/query-router/index.js.map +1 -1
- package/dist/query-router/types.d.ts +396 -3
- package/dist/query-router/types.d.ts.map +1 -1
- package/dist/query-router/types.js +35 -0
- package/dist/query-router/types.js.map +1 -1
- package/dist/rag/HydeRetriever.d.ts +108 -0
- package/dist/rag/HydeRetriever.d.ts.map +1 -1
- package/dist/rag/HydeRetriever.js +184 -0
- package/dist/rag/HydeRetriever.js.map +1 -1
- package/dist/rag/IRetrievalAugmentor.d.ts +15 -0
- package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
- package/dist/rag/RetrievalAugmentor.d.ts +58 -0
- package/dist/rag/RetrievalAugmentor.d.ts.map +1 -1
- package/dist/rag/RetrievalAugmentor.js +200 -32
- package/dist/rag/RetrievalAugmentor.js.map +1 -1
- package/dist/rag/VectorStoreManager.js +1 -1
- package/dist/rag/audit/RAGAuditCollector.d.ts +7 -0
- package/dist/rag/audit/RAGAuditCollector.d.ts.map +1 -1
- package/dist/rag/audit/RAGAuditCollector.js +10 -0
- package/dist/rag/audit/RAGAuditCollector.js.map +1 -1
- package/dist/rag/audit/RAGAuditTypes.d.ts +10 -1
- package/dist/rag/audit/RAGAuditTypes.d.ts.map +1 -1
- package/dist/rag/chunking/SemanticChunker.d.ts +210 -0
- package/dist/rag/chunking/SemanticChunker.d.ts.map +1 -0
- package/dist/rag/chunking/SemanticChunker.js +460 -0
- package/dist/rag/chunking/SemanticChunker.js.map +1 -0
- package/dist/rag/chunking/index.d.ts +10 -0
- package/dist/rag/chunking/index.d.ts.map +1 -0
- package/dist/rag/chunking/index.js +10 -0
- package/dist/rag/chunking/index.js.map +1 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts +103 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.js +315 -0
- package/dist/rag/implementations/vector_stores/PineconeVectorStore.js.map +1 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts +107 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts.map +1 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.js +438 -0
- package/dist/rag/implementations/vector_stores/PostgresVectorStore.js.map +1 -0
- package/dist/rag/index.d.ts +15 -1
- package/dist/rag/index.d.ts.map +1 -1
- package/dist/rag/index.js +32 -0
- package/dist/rag/index.js.map +1 -1
- package/dist/rag/migration/MigrationEngine.d.ts +47 -0
- package/dist/rag/migration/MigrationEngine.d.ts.map +1 -0
- package/dist/rag/migration/MigrationEngine.js +168 -0
- package/dist/rag/migration/MigrationEngine.js.map +1 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts +23 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.js +63 -0
- package/dist/rag/migration/adapters/PineconeSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts +30 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.js +71 -0
- package/dist/rag/migration/adapters/PostgresSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts +38 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.js +114 -0
- package/dist/rag/migration/adapters/PostgresTargetAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts +36 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.js +109 -0
- package/dist/rag/migration/adapters/QdrantSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts +35 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.js +110 -0
- package/dist/rag/migration/adapters/QdrantTargetAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts +37 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.js +72 -0
- package/dist/rag/migration/adapters/SqliteSourceAdapter.js.map +1 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts +47 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts.map +1 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.js +93 -0
- package/dist/rag/migration/adapters/SqliteTargetAdapter.js.map +1 -0
- package/dist/rag/migration/types.d.ts +108 -0
- package/dist/rag/migration/types.d.ts.map +1 -0
- package/dist/rag/migration/types.js +11 -0
- package/dist/rag/migration/types.js.map +1 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts +35 -0
- package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -1
- package/dist/rag/multimodal/MultimodalIndexer.js +66 -1
- package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -1
- package/dist/rag/multimodal/types.d.ts +24 -0
- package/dist/rag/multimodal/types.d.ts.map +1 -1
- package/dist/rag/raptor/RaptorTree.d.ts +268 -0
- package/dist/rag/raptor/RaptorTree.d.ts.map +1 -0
- package/dist/rag/raptor/RaptorTree.js +443 -0
- package/dist/rag/raptor/RaptorTree.js.map +1 -0
- package/dist/rag/raptor/index.d.ts +11 -0
- package/dist/rag/raptor/index.d.ts.map +1 -0
- package/dist/rag/raptor/index.js +11 -0
- package/dist/rag/raptor/index.js.map +1 -0
- package/dist/rag/reranking/providers/CohereReranker.js.map +1 -1
- package/dist/rag/search/BM25Index.d.ts +282 -0
- package/dist/rag/search/BM25Index.d.ts.map +1 -0
- package/dist/rag/search/BM25Index.js +344 -0
- package/dist/rag/search/BM25Index.js.map +1 -0
- package/dist/rag/search/HybridSearcher.d.ts +198 -0
- package/dist/rag/search/HybridSearcher.d.ts.map +1 -0
- package/dist/rag/search/HybridSearcher.js +316 -0
- package/dist/rag/search/HybridSearcher.js.map +1 -0
- package/dist/rag/search/index.d.ts +12 -0
- package/dist/rag/search/index.d.ts.map +1 -0
- package/dist/rag/search/index.js +12 -0
- package/dist/rag/search/index.js.map +1 -0
- package/dist/rag/setup/DockerDetector.d.ts +67 -0
- package/dist/rag/setup/DockerDetector.d.ts.map +1 -0
- package/dist/rag/setup/DockerDetector.js +125 -0
- package/dist/rag/setup/DockerDetector.js.map +1 -0
- package/dist/rag/setup/PostgresSetup.d.ts +20 -0
- package/dist/rag/setup/PostgresSetup.d.ts.map +1 -0
- package/dist/rag/setup/PostgresSetup.js +133 -0
- package/dist/rag/setup/PostgresSetup.js.map +1 -0
- package/dist/rag/setup/QdrantSetup.d.ts +26 -0
- package/dist/rag/setup/QdrantSetup.d.ts.map +1 -0
- package/dist/rag/setup/QdrantSetup.js +96 -0
- package/dist/rag/setup/QdrantSetup.js.map +1 -0
- package/dist/rag/setup/types.d.ts +55 -0
- package/dist/rag/setup/types.d.ts.map +1 -0
- package/dist/rag/setup/types.js +6 -0
- package/dist/rag/setup/types.js.map +1 -0
- package/dist/rag/unified/UnifiedRetriever.d.ts +472 -0
- package/dist/rag/unified/UnifiedRetriever.d.ts.map +1 -0
- package/dist/rag/unified/UnifiedRetriever.js +887 -0
- package/dist/rag/unified/UnifiedRetriever.js.map +1 -0
- package/dist/rag/unified/index.d.ts +24 -0
- package/dist/rag/unified/index.d.ts.map +1 -0
- package/dist/rag/unified/index.js +23 -0
- package/dist/rag/unified/index.js.map +1 -0
- package/dist/rag/unified/types.d.ts +546 -0
- package/dist/rag/unified/types.d.ts.map +1 -0
- package/dist/rag/unified/types.js +177 -0
- package/dist/rag/unified/types.js.map +1 -0
- package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -1
- package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -1
- package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +1 -1
- package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -1
- package/package.json +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryClassifier.js","sourceRoot":"","sources":["../../src/query-router/QueryClassifier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QueryClassifier.js","sourceRoot":"","sources":["../../src/query-router/QueryClassifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAOpB,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAwDtF,+EAA+E;AAC/E,yBAAyB;AACzB,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsD7B,CAAC;AAEH,+EAA+E;AAC/E,2DAA2D;AAC3D,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmGlC,CAAC;AA+FH,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAE/E,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEpF,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,+BAA+B;IAC/B,IAAI,4FAA4F,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/G,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC9C,MAAM,wBAAwB,GAAG,0HAA0H,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1K,MAAM,sBAAsB,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5F,MAAM,gBAAgB,GAAG,4GAA4G,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpJ,MAAM,uBAAuB,GAAG,mFAAmF,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElI,+CAA+C;IAC/C,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,0DAA0D;IAC1D,IAAI,gBAAgB,IAAI,uBAAuB,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,4DAA4D;IAC5D,IAAI,wBAAwB,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,iCAAiC;IACjC,IAAI,sBAAsB,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;QAC9C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2EAA2E;IAC3E,IAAI,CAAC,wBAAwB,IAAI,sBAAsB,CAAC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAC3E,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,eAAe;IAc1B;;;OAGG;IACH,YAAY,MAA6B;QAdzC;;;;;;;WAOG;QACK,oBAAe,GAAqC,IAAI,CAAC;QAO/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,4BAA4B,CAAC,MAAwC;QACnE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,4BAA4B;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,QAAQ,CACZ,KAAa,EACb,mBAA2C;QAE3C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;YAEjE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,GAAG;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,4BAA4B;IAC5B,6EAA6E;IAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,mBAA2C;QAE3C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;YAErE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,GAAG;gBAChB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;aAC7B,CAAC,CAAC;YAEH,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvE,MAAM,yBAAyB,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAExE,wDAAwD;YACxD,MAAM,eAAe,GAAkB;gBACrC,GAAG,IAAI;gBACP,QAAQ,EAAE,yBAAyB,CAAC,QAAQ;gBAC5C,UAAU,EAAE,yBAAyB,CAAC,UAAU;aACjD,CAAC;YAEF,OAAO,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACvD,OAAO,CAAC,QAAQ,EAAE,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBAC7D,MAAM,EAAE,aAAa,CAAC,MAAM;oBAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBACxF,2BAA2B,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;iBACnG,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,kBAAkB;IAClB,6EAA6E;IAE7E;;;;;;;;;;;;;;OAcG;IACK,qBAAqB,CAAC,mBAA2C;QACvE,IAAI,mBAAmB,GAAG,wBAAwB,CAAC;QAEnD,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,mBAAmB,GAAG,mBAAmB;iBACtC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,gEAAgE;QAChE,IAAI,cAAc,GAAG,gCAAgC,CAAC;QACtD,IAAI,aAAa,GAAG,+BAA+B,CAAC;QACpD,IAAI,kBAAkB,GAAG,oCAAoC,CAAC;QAE9D,IAAI,IAAI,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,uBAAuB,EAAE,CAAC;YAC9D,IAAI,MAAM,CAAC,MAAM;gBAAE,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;YAClD,IAAI,MAAM,CAAC,KAAK;gBAAE,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;YAC/C,IAAI,MAAM,CAAC,UAAU;gBAAE,kBAAkB,GAAG,MAAM,CAAC,UAAU,CAAC;QAChE,CAAC;QAED,OAAO,2BAA2B;aAC/B,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;aAChD,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC9C,OAAO,CAAC,qBAAqB,EAAE,cAAc,CAAC;aAC9C,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC;aAC5C,OAAO,CAAC,yBAAyB,EAAE,kBAAkB,CAAC;aACtD,OAAO,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;OAWG;IACK,iBAAiB,CAAC,IAAY;QAIpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,yDAAyD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACjG,CAAC;QAED,MAAM,GAAG,GAA8B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAiB,CAAC;QACnC,MAAM,QAAQ,GACZ,GAAG,CAAC,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChD,CAAC,CAAE,GAAG,CAAC,QAA8B;YACrC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAEzC,MAAM,cAAc,GAAyB;YAC3C,IAAI;YACJ,QAAQ;YACR,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,GAAG,CAAC,QAAQ;YACvB,2BAA2B,EAAE,GAAG,CAAC,6BAA6B;YAC9D,gBAAgB,EAAE,GAAG,CAAC,iBAA6D;YACnF,WAAW,EAAE,GAAG,CAAC,YAAY;SAC9B,CAAC;QAEF,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAE5C,uEAAuE;QACvE,MAAM,MAAM,GAA0B,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;aACrD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACd,OAAO,EAAE,CAAC,CAAC,OAAQ;YACnB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,2BAA2B;YACrD,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;YACzD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;SAC1B,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,KAAK,GAAyB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACd,MAAM,EAAE,CAAC,CAAC,MAAO;YACjB,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,2BAA2B;YACrD,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;YACzD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;SAC1B,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,UAAU,GAA8B,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;aACjE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACd,WAAW,EAAE,CAAC,CAAC,WAAY;YAC3B,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,2BAA2B;YACrD,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;YACzD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC;SAC1B,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,qBAAqB,GAAG,GAAG,CAAC,uBAAuB;YACvD,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,MAAM,CAAC,CAAC;QAEjE,MAAM,IAAI,GAAkB;YAC1B,QAAQ;YACR,OAAO,EAAE;gBACP,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM;gBACtD,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI;gBAChD,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK;gBACnD,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM;gBACtD,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM;gBACtD,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU;aACnE;YACD,IAAI,EAAE;gBACJ,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO;gBACnD,eAAe,EAAE,GAAG,CAAC,IAAI,EAAE,eAAe,IAAI,QAAQ,CAAC,IAAI,CAAC,eAAe;aAC5E;YACD,WAAW,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAiC;YACtF,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAgC;YAClF,QAAQ,EAAE;gBACR,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY;gBAC1E,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY;gBAC1E,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;aACpG;YACD,WAAW,EAAE;gBACX,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ;gBACpE,aAAa,EAAE,GAAG,CAAC,WAAW,EAAE,aAAa,IAAI,QAAQ,CAAC,WAAW,CAAC,aAAa;aACpF;YACD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;YACvD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,QAAQ,CAAC,YAAY;YACvD,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ;YACxC,MAAM;YACN,KAAK;YACL,UAAU;YACV,qBAAqB;YACrB,2BAA2B,EAAE,GAAG,CAAC,6BAA6B;SAC/D,CAAC;QAEF,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,mBAA2C;QACnE,IAAI,mBAAmB,GAAG,wBAAwB,CAAC;QAEnD,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,mBAAmB,GAAG,mBAAmB;iBACtC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;iBAC3C,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,OAAO,sBAAsB;aAC1B,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;aAChD,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aAC9C,OAAO,CAAC,0BAA0B,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,aAAa,CAAC,IAAY;QAChC,wEAAwE;QACxE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oDAAoD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,GAAG,GAA0B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAiB,CAAC;QAEnC,iFAAiF;QACjF,MAAM,QAAQ,GACZ,GAAG,CAAC,QAAQ,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChD,CAAC,CAAE,GAAG,CAAC,QAA8B;YACrC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAEzC,OAAO;YACL,IAAI;YACJ,QAAQ;YACR,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,SAAS,EAAE,GAAG,CAAC,QAAQ;YACvB,2BAA2B,EAAE,GAAG,CAAC,6BAA6B;YAC9D,gBAAgB,EAAE,GAAG,CAAC,iBAA6D;YACnF,WAAW,EAAE,GAAG,CAAC,YAAY;SAC9B,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,gBAAgB,CAAC,MAA4B;QACnD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACvB,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE/B,mDAAmD;QACnD,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACxD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAc,CAAC;QAC5C,CAAC;QAED,iBAAiB;QACjB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAc,CAAC;QAExD,6DAA6D;QAC7D,sEAAsE;QACtE,+BAA+B;QAC/B,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5C,iEAAiE;YACjE,IAAI,gBAAgB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChE,QAAQ,GAAG,YAAY,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO;YACL,GAAG,MAAM;YACT,IAAI;YACJ,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,cAAc;QACpB,OAAO;YACL,IAAI,EAAE,CAAC;YACP,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,uDAAuD;YAClE,2BAA2B,EAAE,KAAK;YAClC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;YAC5B,WAAW,EAAE,EAAE;SAChB,CAAC;IACJ,CAAC;CACF;AAED,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,wBAAwB,GAIzB;IACH,EAAE,OAAO,EAAE,qDAAqD,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,6CAA6C,EAAE;IACnJ,EAAE,OAAO,EAAE,8EAA8E,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,0CAA0C,EAAE;IAC3K,EAAE,OAAO,EAAE,0DAA0D,EAAE,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,iCAAiC,EAAE;IACpJ,EAAE,OAAO,EAAE,sDAAsD,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,sCAAsC,EAAE;IAC5I,EAAE,OAAO,EAAE,4EAA4E,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,mCAAmC,EAAE;IACnK,EAAE,OAAO,EAAE,kDAAkD,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,qCAAqC,EAAE;IACzI,EAAE,OAAO,EAAE,0DAA0D,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,qCAAqC,EAAE;IACtJ,EAAE,OAAO,EAAE,4CAA4C,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,0CAA0C,EAAE;IACxI,EAAE,OAAO,EAAE,oDAAoD,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,yCAAyC,EAAE;CACnJ,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,GAIxB;IACH,EAAE,OAAO,EAAE,uEAAuE,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,iCAAiC,EAAE;IAC3J,EAAE,OAAO,EAAE,6DAA6D,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,uCAAuC,EAAE;IAClJ,EAAE,OAAO,EAAE,wDAAwD,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,6BAA6B,EAAE;IACpI,EAAE,OAAO,EAAE,2DAA2D,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,gCAAgC,EAAE;IAC3I,EAAE,OAAO,EAAE,kDAAkD,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,+BAA+B,EAAE;IACpI,EAAE,OAAO,EAAE,2DAA2D,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,8BAA8B,EAAE;CAC5I,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa;IAIrD,MAAM,MAAM,GAA0B,EAAE,CAAC;IACzC,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,wBAAwB,EAAE,CAAC;QACvE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC;gBACV,OAAO;gBACP,SAAS;gBACT,UAAU,EAAE,GAAG,EAAE,yCAAyC;gBAC1D,QAAQ,EAAE,aAAa,EAAE;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,uBAAuB,EAAE,CAAC;QACrE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM;gBACN,SAAS;gBACT,UAAU,EAAE,GAAG,EAAE,yCAAyC;gBAC1D,QAAQ,EAAE,YAAY,EAAE;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -4,12 +4,22 @@
|
|
|
4
4
|
* @module @framers/agentos/query-router/QueryDispatcher
|
|
5
5
|
*
|
|
6
6
|
* The dispatcher is the second stage of the QueryRouter pipeline, invoked
|
|
7
|
-
* after the QueryClassifier has assigned a complexity tier
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* after the QueryClassifier has assigned a complexity tier **and** a
|
|
8
|
+
* retrieval strategy. It orchestrates vector search, HyDE (Hypothetical
|
|
9
|
+
* Document Embedding) search, knowledge-graph expansion, reranking, deep
|
|
10
|
+
* research, and query decomposition by delegating to injected callback
|
|
11
|
+
* functions — it has no direct coupling to EmbeddingManager,
|
|
12
|
+
* VectorStoreManager, HydeRetriever, or any concrete service.
|
|
11
13
|
*
|
|
12
|
-
* **
|
|
14
|
+
* **Strategy behaviour (new):**
|
|
15
|
+
* - `none`: Skip retrieval entirely, return empty.
|
|
16
|
+
* - `simple`: Direct vector search only (topK=5). No HyDE overhead.
|
|
17
|
+
* - `moderate`: HyDE-powered search — generate hypothesis, embed, search.
|
|
18
|
+
* Falls back to direct vector search if HyDE unavailable.
|
|
19
|
+
* - `complex`: Decompose the query into sub-queries, run HyDE per
|
|
20
|
+
* sub-query, merge/dedup/rank the combined results.
|
|
21
|
+
*
|
|
22
|
+
* **Tier behaviour (legacy, still supported):**
|
|
13
23
|
* - T0: Trivial — no retrieval, returns empty immediately
|
|
14
24
|
* - T1: Simple lookup — vector search only (topK=5)
|
|
15
25
|
* - T2: Multi-source — vector(15) + graph expand + merge/dedup + rerank(5)
|
|
@@ -20,7 +30,7 @@
|
|
|
20
30
|
* gracefully rather than crashing the pipeline. A `retrieve:fallback` event
|
|
21
31
|
* is emitted for each degradation so consumers have full observability.
|
|
22
32
|
*/
|
|
23
|
-
import type { QueryTier, RetrievedChunk, RetrievalResult, QueryRouterEventUnion } from './types.js';
|
|
33
|
+
import type { QueryTier, RetrievalStrategy, RetrievedChunk, RetrievalResult, QueryRouterEventUnion } from './types.js';
|
|
24
34
|
/**
|
|
25
35
|
* Callback dependencies injected into the QueryDispatcher.
|
|
26
36
|
*
|
|
@@ -30,11 +40,40 @@ import type { QueryTier, RetrievedChunk, RetrievalResult, QueryRouterEventUnion
|
|
|
30
40
|
*/
|
|
31
41
|
export interface QueryDispatcherDeps {
|
|
32
42
|
/**
|
|
33
|
-
* Dense vector similarity search.
|
|
43
|
+
* Dense vector similarity search (direct embedding of the raw query).
|
|
34
44
|
* @param query - The user query string.
|
|
35
45
|
* @param topK - Maximum number of chunks to return.
|
|
36
46
|
*/
|
|
37
47
|
vectorSearch: (query: string, topK: number) => Promise<RetrievedChunk[]>;
|
|
48
|
+
/**
|
|
49
|
+
* HyDE-powered vector search.
|
|
50
|
+
*
|
|
51
|
+
* Generates a hypothetical answer via LLM, embeds *that* answer, then
|
|
52
|
+
* searches the vector store. Bridges vocabulary gaps between questions
|
|
53
|
+
* and stored documents. (Gao et al. 2023)
|
|
54
|
+
*
|
|
55
|
+
* When `undefined`, the dispatcher falls back to `vectorSearch` for
|
|
56
|
+
* moderate/complex strategies.
|
|
57
|
+
*
|
|
58
|
+
* @param query - The user query string.
|
|
59
|
+
* @param topK - Maximum number of chunks to return.
|
|
60
|
+
* @returns Retrieved chunks with relevance scores.
|
|
61
|
+
*/
|
|
62
|
+
hydeSearch?: (query: string, topK: number) => Promise<RetrievedChunk[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Decompose a complex query into independent sub-queries.
|
|
65
|
+
*
|
|
66
|
+
* Used by the `complex` strategy to split multi-part questions before
|
|
67
|
+
* running HyDE per sub-query.
|
|
68
|
+
*
|
|
69
|
+
* When `undefined`, the dispatcher runs the full query through HyDE
|
|
70
|
+
* as a single pass (equivalent to `moderate`).
|
|
71
|
+
*
|
|
72
|
+
* @param query - The original multi-part user query.
|
|
73
|
+
* @param maxSubQueries - Maximum number of sub-queries to generate.
|
|
74
|
+
* @returns Array of decomposed sub-query strings.
|
|
75
|
+
*/
|
|
76
|
+
decompose?: (query: string, maxSubQueries: number) => Promise<string[]>;
|
|
38
77
|
/**
|
|
39
78
|
* Knowledge-graph expansion starting from seed chunks.
|
|
40
79
|
* Returns additional related chunks discovered via graph traversal.
|
|
@@ -66,14 +105,26 @@ export interface QueryDispatcherDeps {
|
|
|
66
105
|
graphEnabled: boolean;
|
|
67
106
|
/** Whether deep research is available / enabled. */
|
|
68
107
|
deepResearchEnabled: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Maximum number of sub-queries for decomposition.
|
|
110
|
+
* Only relevant for the `complex` strategy.
|
|
111
|
+
* @default 5
|
|
112
|
+
*/
|
|
113
|
+
maxSubQueries?: number;
|
|
69
114
|
}
|
|
70
115
|
/**
|
|
71
|
-
* Routes classified queries to the
|
|
116
|
+
* Routes classified queries to the strategy-appropriate retrieval pipeline.
|
|
117
|
+
*
|
|
118
|
+
* Supports both the new strategy-based dispatch ({@link dispatchByStrategy})
|
|
119
|
+
* and the legacy tier-based dispatch ({@link dispatch}) for backward
|
|
120
|
+
* compatibility.
|
|
72
121
|
*
|
|
73
122
|
* @example
|
|
74
123
|
* ```typescript
|
|
75
124
|
* const dispatcher = new QueryDispatcher({
|
|
76
125
|
* vectorSearch: async (q, k) => vectorStore.search(q, k),
|
|
126
|
+
* hydeSearch: async (q, k) => hydeRetriever.search(q, k),
|
|
127
|
+
* decompose: async (q, max) => decomposer.decompose(q, max),
|
|
77
128
|
* graphExpand: async (seeds) => graphRag.expand(seeds),
|
|
78
129
|
* rerank: async (q, chunks, n) => reranker.rerank(q, chunks, n),
|
|
79
130
|
* deepResearch: async (q, srcs) => researcher.research(q, srcs),
|
|
@@ -82,6 +133,10 @@ export interface QueryDispatcherDeps {
|
|
|
82
133
|
* deepResearchEnabled: true,
|
|
83
134
|
* });
|
|
84
135
|
*
|
|
136
|
+
* // Strategy-based (preferred):
|
|
137
|
+
* const result = await dispatcher.dispatchByStrategy('How does auth work?', 'moderate');
|
|
138
|
+
*
|
|
139
|
+
* // Tier-based (legacy):
|
|
85
140
|
* const result = await dispatcher.dispatch('How does auth work?', 2);
|
|
86
141
|
* ```
|
|
87
142
|
*/
|
|
@@ -89,9 +144,26 @@ export declare class QueryDispatcher {
|
|
|
89
144
|
/** Injected retrieval dependencies. */
|
|
90
145
|
private readonly deps;
|
|
91
146
|
constructor(deps: QueryDispatcherDeps);
|
|
147
|
+
/**
|
|
148
|
+
* Dispatch a query using the recommended retrieval strategy.
|
|
149
|
+
*
|
|
150
|
+
* This is the preferred entry point for the HyDE-aware routing pipeline.
|
|
151
|
+
* The strategy is typically produced by the QueryClassifier's LLM-as-judge
|
|
152
|
+
* or heuristic classifier.
|
|
153
|
+
*
|
|
154
|
+
* @param query - The user's natural-language query.
|
|
155
|
+
* @param strategy - Retrieval strategy (`none`, `simple`, `moderate`, `complex`).
|
|
156
|
+
* @param suggestedSources - Optional source hints for deep research (complex).
|
|
157
|
+
* @returns Aggregated retrieval result with chunks, optional synthesis,
|
|
158
|
+
* and timing metadata.
|
|
159
|
+
*/
|
|
160
|
+
dispatchByStrategy(query: string, strategy: RetrievalStrategy, suggestedSources?: string[]): Promise<RetrievalResult>;
|
|
92
161
|
/**
|
|
93
162
|
* Dispatch a classified query to the tier-appropriate retrieval pipeline.
|
|
94
163
|
*
|
|
164
|
+
* This is the legacy entry point. For HyDE-aware routing, prefer
|
|
165
|
+
* {@link dispatchByStrategy}.
|
|
166
|
+
*
|
|
95
167
|
* @param query - The user's natural-language query.
|
|
96
168
|
* @param tier - Complexity tier assigned by the QueryClassifier.
|
|
97
169
|
* @param suggestedSources - Optional source hints for deep research (T3).
|
|
@@ -100,6 +172,32 @@ export declare class QueryDispatcher {
|
|
|
100
172
|
* and timing metadata.
|
|
101
173
|
*/
|
|
102
174
|
dispatch(query: string, tier: QueryTier, suggestedSources?: string[]): Promise<RetrievalResult>;
|
|
175
|
+
/**
|
|
176
|
+
* Simple strategy pipeline: direct vector search only, topK=5.
|
|
177
|
+
*
|
|
178
|
+
* No HyDE hypothesis generation, no graph traversal, no reranking.
|
|
179
|
+
* Best for concrete queries with vocabulary that matches stored docs.
|
|
180
|
+
*/
|
|
181
|
+
private dispatchSimple;
|
|
182
|
+
/**
|
|
183
|
+
* Moderate strategy pipeline: HyDE-powered search + optional graph + rerank.
|
|
184
|
+
*
|
|
185
|
+
* Generates a hypothetical answer, embeds *that* for vector search, then
|
|
186
|
+
* optionally expands via graph traversal and reranks. Falls back to direct
|
|
187
|
+
* vector search if HyDE is unavailable.
|
|
188
|
+
*/
|
|
189
|
+
private dispatchModerate;
|
|
190
|
+
/**
|
|
191
|
+
* Complex strategy pipeline: decompose → HyDE per sub-query → merge → rank.
|
|
192
|
+
*
|
|
193
|
+
* For multi-part queries, decomposes into independent sub-queries, runs
|
|
194
|
+
* HyDE search per sub-query, deduplicates and ranks the combined results.
|
|
195
|
+
* Falls back to moderate (single HyDE pass) if decomposition fails.
|
|
196
|
+
*
|
|
197
|
+
* When deep research is enabled, a research synthesis pass runs after the
|
|
198
|
+
* merged retrieval stage (inheriting from the T3 pipeline).
|
|
199
|
+
*/
|
|
200
|
+
private dispatchComplex;
|
|
103
201
|
/**
|
|
104
202
|
* Tier 1 pipeline: vector search only, topK=5.
|
|
105
203
|
* No graph traversal, no reranking, no research.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryDispatcher.d.ts","sourceRoot":"","sources":["../../src/query-router/QueryDispatcher.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"QueryDispatcher.d.ts","sourceRoot":"","sources":["../../src/query-router/QueryDispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAKH,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAMpB;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzE;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAExE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAExE;;;;OAIG;IACH,WAAW,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAE7F;;;;OAIG;IACH,YAAY,EAAE,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,KACd,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC;IAE/D;;;OAGG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAE7C,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;IAEtB,oDAAoD;IACpD,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,eAAe;IAC1B,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAE/B,IAAI,EAAE,mBAAmB;IAQrC;;;;;;;;;;;;OAYG;IACG,kBAAkB,CACtB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,iBAAiB,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,eAAe,CAAC;IAqC3B;;;;;;;;;;;;OAYG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,eAAe,CAAC;IAgC3B;;;;;OAKG;YACW,cAAc;IA0B5B;;;;;;OAMG;YACW,gBAAgB;IA4G9B;;;;;;;;;OASG;YACW,eAAe;IAmM7B;;;OAGG;YACW,aAAa;IA0B3B;;;;;;OAMG;YACW,aAAa;IAI3B;;;;OAIG;YACW,qBAAqB;IA0FnC;;;;;OAKG;YACW,aAAa;IAiF3B;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;CAsBtB"}
|
|
@@ -4,12 +4,22 @@
|
|
|
4
4
|
* @module @framers/agentos/query-router/QueryDispatcher
|
|
5
5
|
*
|
|
6
6
|
* The dispatcher is the second stage of the QueryRouter pipeline, invoked
|
|
7
|
-
* after the QueryClassifier has assigned a complexity tier
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* after the QueryClassifier has assigned a complexity tier **and** a
|
|
8
|
+
* retrieval strategy. It orchestrates vector search, HyDE (Hypothetical
|
|
9
|
+
* Document Embedding) search, knowledge-graph expansion, reranking, deep
|
|
10
|
+
* research, and query decomposition by delegating to injected callback
|
|
11
|
+
* functions — it has no direct coupling to EmbeddingManager,
|
|
12
|
+
* VectorStoreManager, HydeRetriever, or any concrete service.
|
|
11
13
|
*
|
|
12
|
-
* **
|
|
14
|
+
* **Strategy behaviour (new):**
|
|
15
|
+
* - `none`: Skip retrieval entirely, return empty.
|
|
16
|
+
* - `simple`: Direct vector search only (topK=5). No HyDE overhead.
|
|
17
|
+
* - `moderate`: HyDE-powered search — generate hypothesis, embed, search.
|
|
18
|
+
* Falls back to direct vector search if HyDE unavailable.
|
|
19
|
+
* - `complex`: Decompose the query into sub-queries, run HyDE per
|
|
20
|
+
* sub-query, merge/dedup/rank the combined results.
|
|
21
|
+
*
|
|
22
|
+
* **Tier behaviour (legacy, still supported):**
|
|
13
23
|
* - T0: Trivial — no retrieval, returns empty immediately
|
|
14
24
|
* - T1: Simple lookup — vector search only (topK=5)
|
|
15
25
|
* - T2: Multi-source — vector(15) + graph expand + merge/dedup + rerank(5)
|
|
@@ -20,16 +30,23 @@
|
|
|
20
30
|
* gracefully rather than crashing the pipeline. A `retrieve:fallback` event
|
|
21
31
|
* is emitted for each degradation so consumers have full observability.
|
|
22
32
|
*/
|
|
33
|
+
import { STRATEGY_TO_TIER, } from './types.js';
|
|
23
34
|
// ============================================================================
|
|
24
35
|
// QUERY DISPATCHER
|
|
25
36
|
// ============================================================================
|
|
26
37
|
/**
|
|
27
|
-
* Routes classified queries to the
|
|
38
|
+
* Routes classified queries to the strategy-appropriate retrieval pipeline.
|
|
39
|
+
*
|
|
40
|
+
* Supports both the new strategy-based dispatch ({@link dispatchByStrategy})
|
|
41
|
+
* and the legacy tier-based dispatch ({@link dispatch}) for backward
|
|
42
|
+
* compatibility.
|
|
28
43
|
*
|
|
29
44
|
* @example
|
|
30
45
|
* ```typescript
|
|
31
46
|
* const dispatcher = new QueryDispatcher({
|
|
32
47
|
* vectorSearch: async (q, k) => vectorStore.search(q, k),
|
|
48
|
+
* hydeSearch: async (q, k) => hydeRetriever.search(q, k),
|
|
49
|
+
* decompose: async (q, max) => decomposer.decompose(q, max),
|
|
33
50
|
* graphExpand: async (seeds) => graphRag.expand(seeds),
|
|
34
51
|
* rerank: async (q, chunks, n) => reranker.rerank(q, chunks, n),
|
|
35
52
|
* deepResearch: async (q, srcs) => researcher.research(q, srcs),
|
|
@@ -38,6 +55,10 @@
|
|
|
38
55
|
* deepResearchEnabled: true,
|
|
39
56
|
* });
|
|
40
57
|
*
|
|
58
|
+
* // Strategy-based (preferred):
|
|
59
|
+
* const result = await dispatcher.dispatchByStrategy('How does auth work?', 'moderate');
|
|
60
|
+
*
|
|
61
|
+
* // Tier-based (legacy):
|
|
41
62
|
* const result = await dispatcher.dispatch('How does auth work?', 2);
|
|
42
63
|
* ```
|
|
43
64
|
*/
|
|
@@ -46,11 +67,55 @@ export class QueryDispatcher {
|
|
|
46
67
|
this.deps = deps;
|
|
47
68
|
}
|
|
48
69
|
// --------------------------------------------------------------------------
|
|
49
|
-
// PUBLIC API
|
|
70
|
+
// PUBLIC API — Strategy-based dispatch (new)
|
|
71
|
+
// --------------------------------------------------------------------------
|
|
72
|
+
/**
|
|
73
|
+
* Dispatch a query using the recommended retrieval strategy.
|
|
74
|
+
*
|
|
75
|
+
* This is the preferred entry point for the HyDE-aware routing pipeline.
|
|
76
|
+
* The strategy is typically produced by the QueryClassifier's LLM-as-judge
|
|
77
|
+
* or heuristic classifier.
|
|
78
|
+
*
|
|
79
|
+
* @param query - The user's natural-language query.
|
|
80
|
+
* @param strategy - Retrieval strategy (`none`, `simple`, `moderate`, `complex`).
|
|
81
|
+
* @param suggestedSources - Optional source hints for deep research (complex).
|
|
82
|
+
* @returns Aggregated retrieval result with chunks, optional synthesis,
|
|
83
|
+
* and timing metadata.
|
|
84
|
+
*/
|
|
85
|
+
async dispatchByStrategy(query, strategy, suggestedSources) {
|
|
86
|
+
// Map strategy to tier for event emission
|
|
87
|
+
const tier = STRATEGY_TO_TIER[strategy];
|
|
88
|
+
// none → skip retrieval entirely
|
|
89
|
+
if (strategy === 'none') {
|
|
90
|
+
return { chunks: [], durationMs: 0 };
|
|
91
|
+
}
|
|
92
|
+
const start = Date.now();
|
|
93
|
+
this.deps.emit({
|
|
94
|
+
type: 'retrieve:start',
|
|
95
|
+
tier,
|
|
96
|
+
timestamp: Date.now(),
|
|
97
|
+
});
|
|
98
|
+
switch (strategy) {
|
|
99
|
+
case 'simple':
|
|
100
|
+
return this.dispatchSimple(query, start);
|
|
101
|
+
case 'moderate':
|
|
102
|
+
return this.dispatchModerate(query, start);
|
|
103
|
+
case 'complex':
|
|
104
|
+
return this.dispatchComplex(query, suggestedSources ?? ['web'], start);
|
|
105
|
+
default:
|
|
106
|
+
// Unreachable for valid RetrievalStrategy, but TypeScript exhaustiveness
|
|
107
|
+
return this.dispatchSimple(query, start);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// --------------------------------------------------------------------------
|
|
111
|
+
// PUBLIC API — Tier-based dispatch (legacy)
|
|
50
112
|
// --------------------------------------------------------------------------
|
|
51
113
|
/**
|
|
52
114
|
* Dispatch a classified query to the tier-appropriate retrieval pipeline.
|
|
53
115
|
*
|
|
116
|
+
* This is the legacy entry point. For HyDE-aware routing, prefer
|
|
117
|
+
* {@link dispatchByStrategy}.
|
|
118
|
+
*
|
|
54
119
|
* @param query - The user's natural-language query.
|
|
55
120
|
* @param tier - Complexity tier assigned by the QueryClassifier.
|
|
56
121
|
* @param suggestedSources - Optional source hints for deep research (T3).
|
|
@@ -81,7 +146,321 @@ export class QueryDispatcher {
|
|
|
81
146
|
return this.dispatchTier3(query, suggestedSources ?? ['web'], start);
|
|
82
147
|
}
|
|
83
148
|
// --------------------------------------------------------------------------
|
|
84
|
-
//
|
|
149
|
+
// STRATEGY PIPELINES (new — HyDE-aware)
|
|
150
|
+
// --------------------------------------------------------------------------
|
|
151
|
+
/**
|
|
152
|
+
* Simple strategy pipeline: direct vector search only, topK=5.
|
|
153
|
+
*
|
|
154
|
+
* No HyDE hypothesis generation, no graph traversal, no reranking.
|
|
155
|
+
* Best for concrete queries with vocabulary that matches stored docs.
|
|
156
|
+
*/
|
|
157
|
+
async dispatchSimple(query, start) {
|
|
158
|
+
const vectorStart = Date.now();
|
|
159
|
+
const chunks = await this.deps.vectorSearch(query, 5);
|
|
160
|
+
const vectorDuration = Date.now() - vectorStart;
|
|
161
|
+
this.deps.emit({
|
|
162
|
+
type: 'retrieve:vector',
|
|
163
|
+
chunkCount: chunks.length,
|
|
164
|
+
durationMs: vectorDuration,
|
|
165
|
+
timestamp: Date.now(),
|
|
166
|
+
});
|
|
167
|
+
const result = {
|
|
168
|
+
chunks,
|
|
169
|
+
durationMs: Date.now() - start,
|
|
170
|
+
};
|
|
171
|
+
this.deps.emit({
|
|
172
|
+
type: 'retrieve:complete',
|
|
173
|
+
result,
|
|
174
|
+
timestamp: Date.now(),
|
|
175
|
+
});
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Moderate strategy pipeline: HyDE-powered search + optional graph + rerank.
|
|
180
|
+
*
|
|
181
|
+
* Generates a hypothetical answer, embeds *that* for vector search, then
|
|
182
|
+
* optionally expands via graph traversal and reranks. Falls back to direct
|
|
183
|
+
* vector search if HyDE is unavailable.
|
|
184
|
+
*/
|
|
185
|
+
async dispatchModerate(query, start) {
|
|
186
|
+
// --- HyDE search (topK=15 for graph+rerank pipeline) ---
|
|
187
|
+
const hydeStart = Date.now();
|
|
188
|
+
let hydeChunks;
|
|
189
|
+
if (this.deps.hydeSearch) {
|
|
190
|
+
try {
|
|
191
|
+
hydeChunks = await this.deps.hydeSearch(query, 15);
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
// HyDE failed — fall back to direct vector search
|
|
195
|
+
this.deps.emit({
|
|
196
|
+
type: 'retrieve:fallback',
|
|
197
|
+
strategy: 'hyde-to-vector',
|
|
198
|
+
reason: `HyDE search failed: ${err.message}`,
|
|
199
|
+
timestamp: Date.now(),
|
|
200
|
+
});
|
|
201
|
+
hydeChunks = await this.deps.vectorSearch(query, 15);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
// HyDE not available — use direct vector search
|
|
206
|
+
this.deps.emit({
|
|
207
|
+
type: 'retrieve:fallback',
|
|
208
|
+
strategy: 'hyde-unavailable',
|
|
209
|
+
reason: 'HyDE search not configured; using direct vector search',
|
|
210
|
+
timestamp: Date.now(),
|
|
211
|
+
});
|
|
212
|
+
hydeChunks = await this.deps.vectorSearch(query, 15);
|
|
213
|
+
}
|
|
214
|
+
const hydeDuration = Date.now() - hydeStart;
|
|
215
|
+
this.deps.emit({
|
|
216
|
+
type: 'retrieve:vector',
|
|
217
|
+
chunkCount: hydeChunks.length,
|
|
218
|
+
durationMs: hydeDuration,
|
|
219
|
+
timestamp: Date.now(),
|
|
220
|
+
});
|
|
221
|
+
// --- Graph expansion (fallback-safe) ---
|
|
222
|
+
let graphChunks = [];
|
|
223
|
+
if (this.deps.graphEnabled) {
|
|
224
|
+
const graphStart = Date.now();
|
|
225
|
+
try {
|
|
226
|
+
graphChunks = await this.deps.graphExpand(hydeChunks);
|
|
227
|
+
const graphDuration = Date.now() - graphStart;
|
|
228
|
+
this.deps.emit({
|
|
229
|
+
type: 'retrieve:graph',
|
|
230
|
+
entityCount: graphChunks.length,
|
|
231
|
+
durationMs: graphDuration,
|
|
232
|
+
timestamp: Date.now(),
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
this.deps.emit({
|
|
237
|
+
type: 'retrieve:fallback',
|
|
238
|
+
strategy: 'graph-skip',
|
|
239
|
+
reason: `Graph expansion failed: ${err.message}`,
|
|
240
|
+
timestamp: Date.now(),
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// --- Merge + deduplicate ---
|
|
245
|
+
const merged = this.mergeAndDedup(hydeChunks, graphChunks);
|
|
246
|
+
// --- Rerank (fallback-safe) ---
|
|
247
|
+
let finalChunks;
|
|
248
|
+
const rerankStart = Date.now();
|
|
249
|
+
try {
|
|
250
|
+
finalChunks = await this.deps.rerank(query, merged, 5);
|
|
251
|
+
const rerankDuration = Date.now() - rerankStart;
|
|
252
|
+
this.deps.emit({
|
|
253
|
+
type: 'retrieve:rerank',
|
|
254
|
+
inputCount: merged.length,
|
|
255
|
+
outputCount: finalChunks.length,
|
|
256
|
+
durationMs: rerankDuration,
|
|
257
|
+
timestamp: Date.now(),
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
catch (err) {
|
|
261
|
+
finalChunks = [...merged]
|
|
262
|
+
.sort((a, b) => b.relevanceScore - a.relevanceScore)
|
|
263
|
+
.slice(0, 5);
|
|
264
|
+
this.deps.emit({
|
|
265
|
+
type: 'retrieve:fallback',
|
|
266
|
+
strategy: 'rerank-skip',
|
|
267
|
+
reason: `Rerank failed: ${err.message}`,
|
|
268
|
+
timestamp: Date.now(),
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
const result = {
|
|
272
|
+
chunks: finalChunks,
|
|
273
|
+
durationMs: Date.now() - start,
|
|
274
|
+
};
|
|
275
|
+
this.deps.emit({
|
|
276
|
+
type: 'retrieve:complete',
|
|
277
|
+
result,
|
|
278
|
+
timestamp: Date.now(),
|
|
279
|
+
});
|
|
280
|
+
return result;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Complex strategy pipeline: decompose → HyDE per sub-query → merge → rank.
|
|
284
|
+
*
|
|
285
|
+
* For multi-part queries, decomposes into independent sub-queries, runs
|
|
286
|
+
* HyDE search per sub-query, deduplicates and ranks the combined results.
|
|
287
|
+
* Falls back to moderate (single HyDE pass) if decomposition fails.
|
|
288
|
+
*
|
|
289
|
+
* When deep research is enabled, a research synthesis pass runs after the
|
|
290
|
+
* merged retrieval stage (inheriting from the T3 pipeline).
|
|
291
|
+
*/
|
|
292
|
+
async dispatchComplex(query, suggestedSources, start) {
|
|
293
|
+
const maxSubQueries = this.deps.maxSubQueries ?? 5;
|
|
294
|
+
// --- Step 1: Decompose the query into sub-queries ---
|
|
295
|
+
let subQueries;
|
|
296
|
+
const decomposeStart = Date.now();
|
|
297
|
+
if (this.deps.decompose) {
|
|
298
|
+
try {
|
|
299
|
+
subQueries = await this.deps.decompose(query, maxSubQueries);
|
|
300
|
+
this.deps.emit({
|
|
301
|
+
type: 'strategy:decompose',
|
|
302
|
+
originalQuery: query,
|
|
303
|
+
subQueries,
|
|
304
|
+
durationMs: Date.now() - decomposeStart,
|
|
305
|
+
timestamp: Date.now(),
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
catch (err) {
|
|
309
|
+
// Decomposition failed — fall through to single-pass HyDE
|
|
310
|
+
this.deps.emit({
|
|
311
|
+
type: 'retrieve:fallback',
|
|
312
|
+
strategy: 'decompose-skip',
|
|
313
|
+
reason: `Query decomposition failed: ${err.message}`,
|
|
314
|
+
timestamp: Date.now(),
|
|
315
|
+
});
|
|
316
|
+
subQueries = [query];
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
// No decomposer available — use the original query as-is
|
|
321
|
+
subQueries = [query];
|
|
322
|
+
}
|
|
323
|
+
// --- Step 2: HyDE search per sub-query ---
|
|
324
|
+
const allChunks = [];
|
|
325
|
+
const searchFn = this.deps.hydeSearch ?? this.deps.vectorSearch;
|
|
326
|
+
for (const subQuery of subQueries) {
|
|
327
|
+
const subStart = Date.now();
|
|
328
|
+
try {
|
|
329
|
+
const chunks = await searchFn(subQuery, 10);
|
|
330
|
+
allChunks.push(...chunks);
|
|
331
|
+
this.deps.emit({
|
|
332
|
+
type: 'retrieve:vector',
|
|
333
|
+
chunkCount: chunks.length,
|
|
334
|
+
durationMs: Date.now() - subStart,
|
|
335
|
+
timestamp: Date.now(),
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
catch (err) {
|
|
339
|
+
// Sub-query search failed — try direct vector search as fallback
|
|
340
|
+
this.deps.emit({
|
|
341
|
+
type: 'retrieve:fallback',
|
|
342
|
+
strategy: 'sub-query-fallback',
|
|
343
|
+
reason: `Sub-query search failed for "${subQuery.slice(0, 60)}": ${err.message}`,
|
|
344
|
+
timestamp: Date.now(),
|
|
345
|
+
});
|
|
346
|
+
try {
|
|
347
|
+
const fallbackChunks = await this.deps.vectorSearch(subQuery, 10);
|
|
348
|
+
allChunks.push(...fallbackChunks);
|
|
349
|
+
}
|
|
350
|
+
catch {
|
|
351
|
+
// Both failed — skip this sub-query
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
// --- Step 2b: Optional graph expansion (same as moderate pipeline) ---
|
|
356
|
+
let graphChunks = [];
|
|
357
|
+
if (this.deps.graphEnabled) {
|
|
358
|
+
try {
|
|
359
|
+
graphChunks = await this.deps.graphExpand(allChunks);
|
|
360
|
+
this.deps.emit({
|
|
361
|
+
type: 'retrieve:graph',
|
|
362
|
+
entityCount: graphChunks.length,
|
|
363
|
+
durationMs: 0,
|
|
364
|
+
timestamp: Date.now(),
|
|
365
|
+
});
|
|
366
|
+
}
|
|
367
|
+
catch (err) {
|
|
368
|
+
this.deps.emit({
|
|
369
|
+
type: 'retrieve:fallback',
|
|
370
|
+
strategy: 'graph-skip',
|
|
371
|
+
reason: `Graph expansion failed in complex pipeline: ${err.message}`,
|
|
372
|
+
timestamp: Date.now(),
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// --- Step 3: Deduplicate and rank ---
|
|
377
|
+
const deduped = this.mergeAndDedup(allChunks, graphChunks);
|
|
378
|
+
let finalChunks;
|
|
379
|
+
// Rerank the merged results against the original query
|
|
380
|
+
const rerankStart = Date.now();
|
|
381
|
+
try {
|
|
382
|
+
finalChunks = await this.deps.rerank(query, deduped, 10);
|
|
383
|
+
const rerankDuration = Date.now() - rerankStart;
|
|
384
|
+
this.deps.emit({
|
|
385
|
+
type: 'retrieve:rerank',
|
|
386
|
+
inputCount: deduped.length,
|
|
387
|
+
outputCount: finalChunks.length,
|
|
388
|
+
durationMs: rerankDuration,
|
|
389
|
+
timestamp: Date.now(),
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
catch (err) {
|
|
393
|
+
finalChunks = [...deduped]
|
|
394
|
+
.sort((a, b) => b.relevanceScore - a.relevanceScore)
|
|
395
|
+
.slice(0, 10);
|
|
396
|
+
this.deps.emit({
|
|
397
|
+
type: 'retrieve:fallback',
|
|
398
|
+
strategy: 'rerank-skip',
|
|
399
|
+
reason: `Rerank failed: ${err.message}`,
|
|
400
|
+
timestamp: Date.now(),
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
// --- Step 4: Optional deep research synthesis ---
|
|
404
|
+
if (this.deps.deepResearchEnabled) {
|
|
405
|
+
this.deps.emit({
|
|
406
|
+
type: 'research:start',
|
|
407
|
+
query,
|
|
408
|
+
maxIterations: 3,
|
|
409
|
+
timestamp: Date.now(),
|
|
410
|
+
});
|
|
411
|
+
try {
|
|
412
|
+
const researchResult = await this.deps.deepResearch(query, suggestedSources);
|
|
413
|
+
this.deps.emit({
|
|
414
|
+
type: 'research:phase',
|
|
415
|
+
iteration: 1,
|
|
416
|
+
totalIterations: 1,
|
|
417
|
+
newChunksFound: researchResult.sources.length,
|
|
418
|
+
timestamp: Date.now(),
|
|
419
|
+
});
|
|
420
|
+
this.deps.emit({
|
|
421
|
+
type: 'research:complete',
|
|
422
|
+
iterationsUsed: 1,
|
|
423
|
+
totalChunks: researchResult.sources.length,
|
|
424
|
+
durationMs: Date.now() - start,
|
|
425
|
+
timestamp: Date.now(),
|
|
426
|
+
});
|
|
427
|
+
// Merge research chunks with HyDE-gathered chunks
|
|
428
|
+
const withResearch = this.mergeAndDedup(finalChunks, researchResult.sources);
|
|
429
|
+
const result = {
|
|
430
|
+
chunks: withResearch,
|
|
431
|
+
researchSynthesis: researchResult.synthesis,
|
|
432
|
+
durationMs: Date.now() - start,
|
|
433
|
+
};
|
|
434
|
+
this.deps.emit({
|
|
435
|
+
type: 'retrieve:complete',
|
|
436
|
+
result,
|
|
437
|
+
timestamp: Date.now(),
|
|
438
|
+
});
|
|
439
|
+
return result;
|
|
440
|
+
}
|
|
441
|
+
catch (err) {
|
|
442
|
+
this.deps.emit({
|
|
443
|
+
type: 'retrieve:fallback',
|
|
444
|
+
strategy: 'research-skip',
|
|
445
|
+
reason: `Deep research failed: ${err.message}`,
|
|
446
|
+
timestamp: Date.now(),
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
// Return merged HyDE results without research
|
|
451
|
+
const result = {
|
|
452
|
+
chunks: finalChunks,
|
|
453
|
+
durationMs: Date.now() - start,
|
|
454
|
+
};
|
|
455
|
+
this.deps.emit({
|
|
456
|
+
type: 'retrieve:complete',
|
|
457
|
+
result,
|
|
458
|
+
timestamp: Date.now(),
|
|
459
|
+
});
|
|
460
|
+
return result;
|
|
461
|
+
}
|
|
462
|
+
// --------------------------------------------------------------------------
|
|
463
|
+
// TIER PIPELINES (legacy)
|
|
85
464
|
// --------------------------------------------------------------------------
|
|
86
465
|
/**
|
|
87
466
|
* Tier 1 pipeline: vector search only, topK=5.
|