@framers/agentos 0.1.120 → 0.1.122

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.
Files changed (436) hide show
  1. package/README.md +21 -0
  2. package/dist/api/agency.d.ts.map +1 -1
  3. package/dist/api/agency.js +227 -84
  4. package/dist/api/agency.js.map +1 -1
  5. package/dist/api/analyzeVideo.d.ts +127 -0
  6. package/dist/api/analyzeVideo.d.ts.map +1 -0
  7. package/dist/api/analyzeVideo.js +136 -0
  8. package/dist/api/analyzeVideo.js.map +1 -0
  9. package/dist/api/detectScenes.d.ts +82 -0
  10. package/dist/api/detectScenes.d.ts.map +1 -0
  11. package/dist/api/detectScenes.js +67 -0
  12. package/dist/api/detectScenes.js.map +1 -0
  13. package/dist/api/generateImage.d.ts +7 -0
  14. package/dist/api/generateImage.d.ts.map +1 -1
  15. package/dist/api/generateImage.js +133 -9
  16. package/dist/api/generateImage.js.map +1 -1
  17. package/dist/api/generateMusic.d.ts +98 -0
  18. package/dist/api/generateMusic.d.ts.map +1 -0
  19. package/dist/api/generateMusic.js +319 -0
  20. package/dist/api/generateMusic.js.map +1 -0
  21. package/dist/api/generateSFX.d.ts +96 -0
  22. package/dist/api/generateSFX.d.ts.map +1 -0
  23. package/dist/api/generateSFX.js +317 -0
  24. package/dist/api/generateSFX.js.map +1 -0
  25. package/dist/api/generateVideo.d.ts +113 -0
  26. package/dist/api/generateVideo.d.ts.map +1 -0
  27. package/dist/api/generateVideo.js +342 -0
  28. package/dist/api/generateVideo.js.map +1 -0
  29. package/dist/api/model.d.ts.map +1 -1
  30. package/dist/api/model.js +8 -4
  31. package/dist/api/model.js.map +1 -1
  32. package/dist/api/performOCR.d.ts +169 -0
  33. package/dist/api/performOCR.d.ts.map +1 -0
  34. package/dist/api/performOCR.js +198 -0
  35. package/dist/api/performOCR.js.map +1 -0
  36. package/dist/api/provider-defaults.d.ts +7 -5
  37. package/dist/api/provider-defaults.d.ts.map +1 -1
  38. package/dist/api/provider-defaults.js +32 -10
  39. package/dist/api/provider-defaults.js.map +1 -1
  40. package/dist/api/strategies/debate.d.ts.map +1 -1
  41. package/dist/api/strategies/debate.js +1 -0
  42. package/dist/api/strategies/debate.js.map +1 -1
  43. package/dist/api/strategies/graph.d.ts.map +1 -1
  44. package/dist/api/strategies/graph.js +69 -13
  45. package/dist/api/strategies/graph.js.map +1 -1
  46. package/dist/api/strategies/hierarchical.d.ts.map +1 -1
  47. package/dist/api/strategies/hierarchical.js +1 -0
  48. package/dist/api/strategies/hierarchical.js.map +1 -1
  49. package/dist/api/strategies/parallel.d.ts.map +1 -1
  50. package/dist/api/strategies/parallel.js +1 -0
  51. package/dist/api/strategies/parallel.js.map +1 -1
  52. package/dist/api/strategies/review-loop.d.ts.map +1 -1
  53. package/dist/api/strategies/review-loop.js +1 -0
  54. package/dist/api/strategies/review-loop.js.map +1 -1
  55. package/dist/api/strategies/sequential.d.ts.map +1 -1
  56. package/dist/api/strategies/sequential.js +54 -48
  57. package/dist/api/strategies/sequential.js.map +1 -1
  58. package/dist/api/streamBuffer.d.ts +20 -0
  59. package/dist/api/streamBuffer.d.ts.map +1 -0
  60. package/dist/api/streamBuffer.js +81 -0
  61. package/dist/api/streamBuffer.js.map +1 -0
  62. package/dist/api/types.d.ts +145 -5
  63. package/dist/api/types.d.ts.map +1 -1
  64. package/dist/api/types.js.map +1 -1
  65. package/dist/channels/adapters/RedditChannelAdapter.js.map +1 -1
  66. package/dist/core/audio/AudioProcessor.d.ts.map +1 -1
  67. package/dist/core/audio/AudioProcessor.js +1 -0
  68. package/dist/core/audio/AudioProcessor.js.map +1 -1
  69. package/dist/core/audio/EnvironmentalCalibrator.d.ts.map +1 -1
  70. package/dist/core/audio/EnvironmentalCalibrator.js +1 -0
  71. package/dist/core/audio/EnvironmentalCalibrator.js.map +1 -1
  72. package/dist/core/audio/FallbackAudioProxy.d.ts +169 -0
  73. package/dist/core/audio/FallbackAudioProxy.d.ts.map +1 -0
  74. package/dist/core/audio/FallbackAudioProxy.js +236 -0
  75. package/dist/core/audio/FallbackAudioProxy.js.map +1 -0
  76. package/dist/core/audio/IAudioGenerator.d.ts +103 -0
  77. package/dist/core/audio/IAudioGenerator.d.ts.map +1 -0
  78. package/dist/core/audio/IAudioGenerator.js +24 -0
  79. package/dist/core/audio/IAudioGenerator.js.map +1 -0
  80. package/dist/core/audio/index.d.ts +54 -0
  81. package/dist/core/audio/index.d.ts.map +1 -1
  82. package/dist/core/audio/index.js +93 -0
  83. package/dist/core/audio/index.js.map +1 -1
  84. package/dist/core/audio/providers/AudioGenLocalProvider.d.ts +136 -0
  85. package/dist/core/audio/providers/AudioGenLocalProvider.d.ts.map +1 -0
  86. package/dist/core/audio/providers/AudioGenLocalProvider.js +235 -0
  87. package/dist/core/audio/providers/AudioGenLocalProvider.js.map +1 -0
  88. package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts +107 -0
  89. package/dist/core/audio/providers/ElevenLabsSFXProvider.d.ts.map +1 -0
  90. package/dist/core/audio/providers/ElevenLabsSFXProvider.js +154 -0
  91. package/dist/core/audio/providers/ElevenLabsSFXProvider.js.map +1 -0
  92. package/dist/core/audio/providers/FalAudioProvider.d.ts +207 -0
  93. package/dist/core/audio/providers/FalAudioProvider.d.ts.map +1 -0
  94. package/dist/core/audio/providers/FalAudioProvider.js +315 -0
  95. package/dist/core/audio/providers/FalAudioProvider.js.map +1 -0
  96. package/dist/core/audio/providers/MusicGenLocalProvider.d.ts +136 -0
  97. package/dist/core/audio/providers/MusicGenLocalProvider.d.ts.map +1 -0
  98. package/dist/core/audio/providers/MusicGenLocalProvider.js +235 -0
  99. package/dist/core/audio/providers/MusicGenLocalProvider.js.map +1 -0
  100. package/dist/core/audio/providers/ReplicateAudioProvider.d.ts +200 -0
  101. package/dist/core/audio/providers/ReplicateAudioProvider.d.ts.map +1 -0
  102. package/dist/core/audio/providers/ReplicateAudioProvider.js +346 -0
  103. package/dist/core/audio/providers/ReplicateAudioProvider.js.map +1 -0
  104. package/dist/core/audio/providers/StableAudioProvider.d.ts +138 -0
  105. package/dist/core/audio/providers/StableAudioProvider.d.ts.map +1 -0
  106. package/dist/core/audio/providers/StableAudioProvider.js +192 -0
  107. package/dist/core/audio/providers/StableAudioProvider.js.map +1 -0
  108. package/dist/core/audio/providers/SunoProvider.d.ts +182 -0
  109. package/dist/core/audio/providers/SunoProvider.d.ts.map +1 -0
  110. package/dist/core/audio/providers/SunoProvider.js +312 -0
  111. package/dist/core/audio/providers/SunoProvider.js.map +1 -0
  112. package/dist/core/audio/providers/UdioProvider.d.ts +177 -0
  113. package/dist/core/audio/providers/UdioProvider.d.ts.map +1 -0
  114. package/dist/core/audio/providers/UdioProvider.js +305 -0
  115. package/dist/core/audio/providers/UdioProvider.js.map +1 -0
  116. package/dist/core/audio/types.d.ts +257 -0
  117. package/dist/core/audio/types.d.ts.map +1 -0
  118. package/dist/core/audio/types.js +21 -0
  119. package/dist/core/audio/types.js.map +1 -0
  120. package/dist/core/images/FallbackImageProxy.d.ts +183 -0
  121. package/dist/core/images/FallbackImageProxy.d.ts.map +1 -0
  122. package/dist/core/images/FallbackImageProxy.js +283 -0
  123. package/dist/core/images/FallbackImageProxy.js.map +1 -0
  124. package/dist/core/images/IImageProvider.d.ts +1 -1
  125. package/dist/core/images/IImageProvider.d.ts.map +1 -1
  126. package/dist/core/images/index.d.ts +1 -0
  127. package/dist/core/images/index.d.ts.map +1 -1
  128. package/dist/core/images/index.js +1 -0
  129. package/dist/core/images/index.js.map +1 -1
  130. package/dist/core/llm/providers/AIModelProviderManager.d.ts +3 -1
  131. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
  132. package/dist/core/llm/providers/AIModelProviderManager.js +8 -0
  133. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
  134. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts +52 -0
  135. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.d.ts.map +1 -0
  136. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js +36 -0
  137. package/dist/core/llm/providers/errors/ClaudeCodeProviderError.js.map +1 -0
  138. package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts +32 -0
  139. package/dist/core/llm/providers/errors/GeminiCLIProviderError.d.ts.map +1 -0
  140. package/dist/core/llm/providers/errors/GeminiCLIProviderError.js +27 -0
  141. package/dist/core/llm/providers/errors/GeminiCLIProviderError.js.map +1 -0
  142. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts +38 -0
  143. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.d.ts.map +1 -0
  144. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js +128 -0
  145. package/dist/core/llm/providers/implementations/ClaudeCodeCLIBridge.js.map +1 -0
  146. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts +107 -0
  147. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.d.ts.map +1 -0
  148. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js +504 -0
  149. package/dist/core/llm/providers/implementations/ClaudeCodeProvider.js.map +1 -0
  150. package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts +60 -0
  151. package/dist/core/llm/providers/implementations/GeminiCLIBridge.d.ts.map +1 -0
  152. package/dist/core/llm/providers/implementations/GeminiCLIBridge.js +177 -0
  153. package/dist/core/llm/providers/implementations/GeminiCLIBridge.js.map +1 -0
  154. package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts +55 -0
  155. package/dist/core/llm/providers/implementations/GeminiCLIProvider.d.ts.map +1 -0
  156. package/dist/core/llm/providers/implementations/GeminiCLIProvider.js +447 -0
  157. package/dist/core/llm/providers/implementations/GeminiCLIProvider.js.map +1 -0
  158. package/dist/core/media/ProviderPreferences.d.ts +158 -0
  159. package/dist/core/media/ProviderPreferences.d.ts.map +1 -0
  160. package/dist/core/media/ProviderPreferences.js +183 -0
  161. package/dist/core/media/ProviderPreferences.js.map +1 -0
  162. package/dist/core/subprocess/CLIRegistry.d.ts +71 -0
  163. package/dist/core/subprocess/CLIRegistry.d.ts.map +1 -0
  164. package/dist/core/subprocess/CLIRegistry.js +210 -0
  165. package/dist/core/subprocess/CLIRegistry.js.map +1 -0
  166. package/dist/core/subprocess/CLISubprocessBridge.d.ts +117 -0
  167. package/dist/core/subprocess/CLISubprocessBridge.d.ts.map +1 -0
  168. package/dist/core/subprocess/CLISubprocessBridge.js +199 -0
  169. package/dist/core/subprocess/CLISubprocessBridge.js.map +1 -0
  170. package/dist/core/subprocess/errors.d.ts +76 -0
  171. package/dist/core/subprocess/errors.d.ts.map +1 -0
  172. package/dist/core/subprocess/errors.js +75 -0
  173. package/dist/core/subprocess/errors.js.map +1 -0
  174. package/dist/core/subprocess/index.d.ts +11 -0
  175. package/dist/core/subprocess/index.d.ts.map +1 -0
  176. package/dist/core/subprocess/index.js +10 -0
  177. package/dist/core/subprocess/index.js.map +1 -0
  178. package/dist/core/subprocess/types.d.ts +100 -0
  179. package/dist/core/subprocess/types.d.ts.map +1 -0
  180. package/dist/core/subprocess/types.js +9 -0
  181. package/dist/core/subprocess/types.js.map +1 -0
  182. package/dist/core/video/FallbackVideoProxy.d.ts +166 -0
  183. package/dist/core/video/FallbackVideoProxy.d.ts.map +1 -0
  184. package/dist/core/video/FallbackVideoProxy.js +228 -0
  185. package/dist/core/video/FallbackVideoProxy.js.map +1 -0
  186. package/dist/core/video/IVideoAnalyzer.d.ts +29 -0
  187. package/dist/core/video/IVideoAnalyzer.d.ts.map +1 -0
  188. package/dist/core/video/IVideoAnalyzer.js +12 -0
  189. package/dist/core/video/IVideoAnalyzer.js.map +1 -0
  190. package/dist/core/video/IVideoGenerator.d.ts +76 -0
  191. package/dist/core/video/IVideoGenerator.d.ts.map +1 -0
  192. package/dist/core/video/IVideoGenerator.js +13 -0
  193. package/dist/core/video/IVideoGenerator.js.map +1 -0
  194. package/dist/core/video/VideoAnalyzer.d.ts +278 -0
  195. package/dist/core/video/VideoAnalyzer.d.ts.map +1 -0
  196. package/dist/core/video/VideoAnalyzer.js +648 -0
  197. package/dist/core/video/VideoAnalyzer.js.map +1 -0
  198. package/dist/core/video/index.d.ts +55 -0
  199. package/dist/core/video/index.d.ts.map +1 -0
  200. package/dist/core/video/index.js +78 -0
  201. package/dist/core/video/index.js.map +1 -0
  202. package/dist/core/video/providers/FalVideoProvider.d.ts +195 -0
  203. package/dist/core/video/providers/FalVideoProvider.d.ts.map +1 -0
  204. package/dist/core/video/providers/FalVideoProvider.js +322 -0
  205. package/dist/core/video/providers/FalVideoProvider.js.map +1 -0
  206. package/dist/core/video/providers/ReplicateVideoProvider.d.ts +194 -0
  207. package/dist/core/video/providers/ReplicateVideoProvider.d.ts.map +1 -0
  208. package/dist/core/video/providers/ReplicateVideoProvider.js +356 -0
  209. package/dist/core/video/providers/ReplicateVideoProvider.js.map +1 -0
  210. package/dist/core/video/providers/RunwayVideoProvider.d.ts +175 -0
  211. package/dist/core/video/providers/RunwayVideoProvider.d.ts.map +1 -0
  212. package/dist/core/video/providers/RunwayVideoProvider.js +293 -0
  213. package/dist/core/video/providers/RunwayVideoProvider.js.map +1 -0
  214. package/dist/core/video/types.d.ts +441 -0
  215. package/dist/core/video/types.d.ts.map +1 -0
  216. package/dist/core/video/types.js +10 -0
  217. package/dist/core/video/types.js.map +1 -0
  218. package/dist/core/vision/SceneDetector.d.ts +180 -0
  219. package/dist/core/vision/SceneDetector.d.ts.map +1 -0
  220. package/dist/core/vision/SceneDetector.js +366 -0
  221. package/dist/core/vision/SceneDetector.js.map +1 -0
  222. package/dist/core/vision/index.d.ts +2 -1
  223. package/dist/core/vision/index.d.ts.map +1 -1
  224. package/dist/core/vision/index.js +1 -0
  225. package/dist/core/vision/index.js.map +1 -1
  226. package/dist/core/vision/types.d.ts +125 -0
  227. package/dist/core/vision/types.d.ts.map +1 -1
  228. package/dist/discovery/CapabilityDiscoveryEngine.d.ts +32 -0
  229. package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
  230. package/dist/discovery/CapabilityDiscoveryEngine.js +46 -0
  231. package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
  232. package/dist/emergent/AdaptPersonalityTool.d.ts +158 -0
  233. package/dist/emergent/AdaptPersonalityTool.d.ts.map +1 -0
  234. package/dist/emergent/AdaptPersonalityTool.js +190 -0
  235. package/dist/emergent/AdaptPersonalityTool.js.map +1 -0
  236. package/dist/emergent/CreateWorkflowTool.d.ts +181 -0
  237. package/dist/emergent/CreateWorkflowTool.d.ts.map +1 -0
  238. package/dist/emergent/CreateWorkflowTool.js +307 -0
  239. package/dist/emergent/CreateWorkflowTool.js.map +1 -0
  240. package/dist/emergent/ManageSkillsTool.d.ts +154 -0
  241. package/dist/emergent/ManageSkillsTool.d.ts.map +1 -0
  242. package/dist/emergent/ManageSkillsTool.js +241 -0
  243. package/dist/emergent/ManageSkillsTool.js.map +1 -0
  244. package/dist/emergent/PersonalityMutationStore.d.ts +183 -0
  245. package/dist/emergent/PersonalityMutationStore.d.ts.map +1 -0
  246. package/dist/emergent/PersonalityMutationStore.js +222 -0
  247. package/dist/emergent/PersonalityMutationStore.js.map +1 -0
  248. package/dist/emergent/SelfEvaluateTool.d.ts +189 -0
  249. package/dist/emergent/SelfEvaluateTool.d.ts.map +1 -0
  250. package/dist/emergent/SelfEvaluateTool.js +353 -0
  251. package/dist/emergent/SelfEvaluateTool.js.map +1 -0
  252. package/dist/emergent/SelfImprovementConfig.d.ts +166 -0
  253. package/dist/emergent/SelfImprovementConfig.d.ts.map +1 -0
  254. package/dist/emergent/SelfImprovementConfig.js +43 -0
  255. package/dist/emergent/SelfImprovementConfig.js.map +1 -0
  256. package/dist/emergent/index.d.ts +1 -0
  257. package/dist/emergent/index.d.ts.map +1 -1
  258. package/dist/emergent/index.js +1 -0
  259. package/dist/emergent/index.js.map +1 -1
  260. package/dist/emergent/types.d.ts +9 -0
  261. package/dist/emergent/types.d.ts.map +1 -1
  262. package/dist/emergent/types.js.map +1 -1
  263. package/dist/extensions/MultiRegistryLoader.js.map +1 -1
  264. package/dist/index.d.ts +17 -2
  265. package/dist/index.d.ts.map +1 -1
  266. package/dist/index.js +12 -0
  267. package/dist/index.js.map +1 -1
  268. package/dist/memory/CognitiveMemoryManager.d.ts +40 -0
  269. package/dist/memory/CognitiveMemoryManager.d.ts.map +1 -1
  270. package/dist/memory/CognitiveMemoryManager.js +54 -1
  271. package/dist/memory/CognitiveMemoryManager.js.map +1 -1
  272. package/dist/memory/facade/Memory.d.ts +4 -0
  273. package/dist/memory/facade/Memory.d.ts.map +1 -1
  274. package/dist/memory/facade/Memory.js +140 -4
  275. package/dist/memory/facade/Memory.js.map +1 -1
  276. package/dist/memory/facade/types.d.ts +30 -2
  277. package/dist/memory/facade/types.d.ts.map +1 -1
  278. package/dist/memory/index.d.ts +1 -0
  279. package/dist/memory/index.d.ts.map +1 -1
  280. package/dist/memory/index.js +1 -0
  281. package/dist/memory/index.js.map +1 -1
  282. package/dist/memory/types.d.ts +15 -0
  283. package/dist/memory/types.d.ts.map +1 -1
  284. package/dist/query-router/QueryClassifier.d.ts +192 -21
  285. package/dist/query-router/QueryClassifier.d.ts.map +1 -1
  286. package/dist/query-router/QueryClassifier.js +604 -23
  287. package/dist/query-router/QueryClassifier.js.map +1 -1
  288. package/dist/query-router/QueryDispatcher.d.ts +106 -8
  289. package/dist/query-router/QueryDispatcher.d.ts.map +1 -1
  290. package/dist/query-router/QueryDispatcher.js +387 -8
  291. package/dist/query-router/QueryDispatcher.js.map +1 -1
  292. package/dist/query-router/QueryRouter.d.ts +198 -14
  293. package/dist/query-router/QueryRouter.d.ts.map +1 -1
  294. package/dist/query-router/QueryRouter.js +738 -50
  295. package/dist/query-router/QueryRouter.js.map +1 -1
  296. package/dist/query-router/index.d.ts +1 -1
  297. package/dist/query-router/index.d.ts.map +1 -1
  298. package/dist/query-router/index.js +1 -1
  299. package/dist/query-router/index.js.map +1 -1
  300. package/dist/query-router/types.d.ts +396 -3
  301. package/dist/query-router/types.d.ts.map +1 -1
  302. package/dist/query-router/types.js +35 -0
  303. package/dist/query-router/types.js.map +1 -1
  304. package/dist/rag/HydeRetriever.d.ts +108 -0
  305. package/dist/rag/HydeRetriever.d.ts.map +1 -1
  306. package/dist/rag/HydeRetriever.js +184 -0
  307. package/dist/rag/HydeRetriever.js.map +1 -1
  308. package/dist/rag/IRetrievalAugmentor.d.ts +15 -0
  309. package/dist/rag/IRetrievalAugmentor.d.ts.map +1 -1
  310. package/dist/rag/RetrievalAugmentor.d.ts +58 -0
  311. package/dist/rag/RetrievalAugmentor.d.ts.map +1 -1
  312. package/dist/rag/RetrievalAugmentor.js +200 -32
  313. package/dist/rag/RetrievalAugmentor.js.map +1 -1
  314. package/dist/rag/VectorStoreManager.js +1 -1
  315. package/dist/rag/audit/RAGAuditCollector.d.ts +7 -0
  316. package/dist/rag/audit/RAGAuditCollector.d.ts.map +1 -1
  317. package/dist/rag/audit/RAGAuditCollector.js +10 -0
  318. package/dist/rag/audit/RAGAuditCollector.js.map +1 -1
  319. package/dist/rag/audit/RAGAuditTypes.d.ts +10 -1
  320. package/dist/rag/audit/RAGAuditTypes.d.ts.map +1 -1
  321. package/dist/rag/chunking/SemanticChunker.d.ts +210 -0
  322. package/dist/rag/chunking/SemanticChunker.d.ts.map +1 -0
  323. package/dist/rag/chunking/SemanticChunker.js +460 -0
  324. package/dist/rag/chunking/SemanticChunker.js.map +1 -0
  325. package/dist/rag/chunking/index.d.ts +10 -0
  326. package/dist/rag/chunking/index.d.ts.map +1 -0
  327. package/dist/rag/chunking/index.js +10 -0
  328. package/dist/rag/chunking/index.js.map +1 -0
  329. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts +103 -0
  330. package/dist/rag/implementations/vector_stores/PineconeVectorStore.d.ts.map +1 -0
  331. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js +315 -0
  332. package/dist/rag/implementations/vector_stores/PineconeVectorStore.js.map +1 -0
  333. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts +107 -0
  334. package/dist/rag/implementations/vector_stores/PostgresVectorStore.d.ts.map +1 -0
  335. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js +438 -0
  336. package/dist/rag/implementations/vector_stores/PostgresVectorStore.js.map +1 -0
  337. package/dist/rag/index.d.ts +15 -1
  338. package/dist/rag/index.d.ts.map +1 -1
  339. package/dist/rag/index.js +32 -0
  340. package/dist/rag/index.js.map +1 -1
  341. package/dist/rag/migration/MigrationEngine.d.ts +47 -0
  342. package/dist/rag/migration/MigrationEngine.d.ts.map +1 -0
  343. package/dist/rag/migration/MigrationEngine.js +168 -0
  344. package/dist/rag/migration/MigrationEngine.js.map +1 -0
  345. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts +23 -0
  346. package/dist/rag/migration/adapters/PineconeSourceAdapter.d.ts.map +1 -0
  347. package/dist/rag/migration/adapters/PineconeSourceAdapter.js +63 -0
  348. package/dist/rag/migration/adapters/PineconeSourceAdapter.js.map +1 -0
  349. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts +30 -0
  350. package/dist/rag/migration/adapters/PostgresSourceAdapter.d.ts.map +1 -0
  351. package/dist/rag/migration/adapters/PostgresSourceAdapter.js +71 -0
  352. package/dist/rag/migration/adapters/PostgresSourceAdapter.js.map +1 -0
  353. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts +38 -0
  354. package/dist/rag/migration/adapters/PostgresTargetAdapter.d.ts.map +1 -0
  355. package/dist/rag/migration/adapters/PostgresTargetAdapter.js +114 -0
  356. package/dist/rag/migration/adapters/PostgresTargetAdapter.js.map +1 -0
  357. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts +36 -0
  358. package/dist/rag/migration/adapters/QdrantSourceAdapter.d.ts.map +1 -0
  359. package/dist/rag/migration/adapters/QdrantSourceAdapter.js +109 -0
  360. package/dist/rag/migration/adapters/QdrantSourceAdapter.js.map +1 -0
  361. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts +35 -0
  362. package/dist/rag/migration/adapters/QdrantTargetAdapter.d.ts.map +1 -0
  363. package/dist/rag/migration/adapters/QdrantTargetAdapter.js +110 -0
  364. package/dist/rag/migration/adapters/QdrantTargetAdapter.js.map +1 -0
  365. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts +37 -0
  366. package/dist/rag/migration/adapters/SqliteSourceAdapter.d.ts.map +1 -0
  367. package/dist/rag/migration/adapters/SqliteSourceAdapter.js +72 -0
  368. package/dist/rag/migration/adapters/SqliteSourceAdapter.js.map +1 -0
  369. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts +47 -0
  370. package/dist/rag/migration/adapters/SqliteTargetAdapter.d.ts.map +1 -0
  371. package/dist/rag/migration/adapters/SqliteTargetAdapter.js +93 -0
  372. package/dist/rag/migration/adapters/SqliteTargetAdapter.js.map +1 -0
  373. package/dist/rag/migration/types.d.ts +108 -0
  374. package/dist/rag/migration/types.d.ts.map +1 -0
  375. package/dist/rag/migration/types.js +11 -0
  376. package/dist/rag/migration/types.js.map +1 -0
  377. package/dist/rag/multimodal/MultimodalIndexer.d.ts +35 -0
  378. package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -1
  379. package/dist/rag/multimodal/MultimodalIndexer.js +66 -1
  380. package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -1
  381. package/dist/rag/multimodal/types.d.ts +24 -0
  382. package/dist/rag/multimodal/types.d.ts.map +1 -1
  383. package/dist/rag/raptor/RaptorTree.d.ts +268 -0
  384. package/dist/rag/raptor/RaptorTree.d.ts.map +1 -0
  385. package/dist/rag/raptor/RaptorTree.js +443 -0
  386. package/dist/rag/raptor/RaptorTree.js.map +1 -0
  387. package/dist/rag/raptor/index.d.ts +11 -0
  388. package/dist/rag/raptor/index.d.ts.map +1 -0
  389. package/dist/rag/raptor/index.js +11 -0
  390. package/dist/rag/raptor/index.js.map +1 -0
  391. package/dist/rag/reranking/providers/CohereReranker.js.map +1 -1
  392. package/dist/rag/search/BM25Index.d.ts +282 -0
  393. package/dist/rag/search/BM25Index.d.ts.map +1 -0
  394. package/dist/rag/search/BM25Index.js +344 -0
  395. package/dist/rag/search/BM25Index.js.map +1 -0
  396. package/dist/rag/search/HybridSearcher.d.ts +198 -0
  397. package/dist/rag/search/HybridSearcher.d.ts.map +1 -0
  398. package/dist/rag/search/HybridSearcher.js +316 -0
  399. package/dist/rag/search/HybridSearcher.js.map +1 -0
  400. package/dist/rag/search/index.d.ts +12 -0
  401. package/dist/rag/search/index.d.ts.map +1 -0
  402. package/dist/rag/search/index.js +12 -0
  403. package/dist/rag/search/index.js.map +1 -0
  404. package/dist/rag/setup/DockerDetector.d.ts +67 -0
  405. package/dist/rag/setup/DockerDetector.d.ts.map +1 -0
  406. package/dist/rag/setup/DockerDetector.js +125 -0
  407. package/dist/rag/setup/DockerDetector.js.map +1 -0
  408. package/dist/rag/setup/PostgresSetup.d.ts +20 -0
  409. package/dist/rag/setup/PostgresSetup.d.ts.map +1 -0
  410. package/dist/rag/setup/PostgresSetup.js +133 -0
  411. package/dist/rag/setup/PostgresSetup.js.map +1 -0
  412. package/dist/rag/setup/QdrantSetup.d.ts +26 -0
  413. package/dist/rag/setup/QdrantSetup.d.ts.map +1 -0
  414. package/dist/rag/setup/QdrantSetup.js +96 -0
  415. package/dist/rag/setup/QdrantSetup.js.map +1 -0
  416. package/dist/rag/setup/types.d.ts +55 -0
  417. package/dist/rag/setup/types.d.ts.map +1 -0
  418. package/dist/rag/setup/types.js +6 -0
  419. package/dist/rag/setup/types.js.map +1 -0
  420. package/dist/rag/unified/UnifiedRetriever.d.ts +472 -0
  421. package/dist/rag/unified/UnifiedRetriever.d.ts.map +1 -0
  422. package/dist/rag/unified/UnifiedRetriever.js +887 -0
  423. package/dist/rag/unified/UnifiedRetriever.js.map +1 -0
  424. package/dist/rag/unified/index.d.ts +24 -0
  425. package/dist/rag/unified/index.d.ts.map +1 -0
  426. package/dist/rag/unified/index.js +23 -0
  427. package/dist/rag/unified/index.js.map +1 -0
  428. package/dist/rag/unified/types.d.ts +546 -0
  429. package/dist/rag/unified/types.d.ts.map +1 -0
  430. package/dist/rag/unified/types.js +177 -0
  431. package/dist/rag/unified/types.js.map +1 -0
  432. package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -1
  433. package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -1
  434. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +1 -1
  435. package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -1
  436. 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":"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"}
@@ -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. It orchestrates
8
- * vector search, knowledge-graph expansion, reranking, and deep research
9
- * by delegating to injected callback functions — it has no direct coupling
10
- * to EmbeddingManager, VectorStoreManager, or any concrete service.
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
- * **Tier behaviour:**
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 tier-appropriate retrieval pipeline.
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;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,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;;;;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;CAC9B;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,eAAe;IAC1B,uCAAuC;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;gBAE/B,IAAI,EAAE,mBAAmB;IAQrC;;;;;;;;;OASG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,eAAe,CAAC;IAgC3B;;;OAGG;YACW,aAAa;IA0B3B;;;;;;OAMG;YACW,aAAa;IAI3B;;;;OAIG;YACW,qBAAqB;IA0FnC;;;;;OAKG;YACW,aAAa;IAiF3B;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;CAsBtB"}
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. It orchestrates
8
- * vector search, knowledge-graph expansion, reranking, and deep research
9
- * by delegating to injected callback functions — it has no direct coupling
10
- * to EmbeddingManager, VectorStoreManager, or any concrete service.
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
- * **Tier behaviour:**
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 tier-appropriate retrieval pipeline.
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
- // TIER PIPELINES
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.