@framers/agentos 0.1.113 → 0.1.114

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 (510) hide show
  1. package/README.md +39 -5
  2. package/dist/api/AgentOS.d.ts +45 -12
  3. package/dist/api/AgentOS.d.ts.map +1 -1
  4. package/dist/api/AgentOS.js +225 -78
  5. package/dist/api/AgentOS.js.map +1 -1
  6. package/dist/api/AgentOSOrchestrator.d.ts +8 -0
  7. package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
  8. package/dist/api/AgentOSOrchestrator.js +350 -59
  9. package/dist/api/AgentOSOrchestrator.js.map +1 -1
  10. package/dist/api/StreamChunkEmitter.d.ts.map +1 -1
  11. package/dist/api/StreamChunkEmitter.js +2 -0
  12. package/dist/api/StreamChunkEmitter.js.map +1 -1
  13. package/dist/api/agency.d.ts.map +1 -1
  14. package/dist/api/agency.js +47 -1
  15. package/dist/api/agency.js.map +1 -1
  16. package/dist/api/agent.d.ts +18 -5
  17. package/dist/api/agent.d.ts.map +1 -1
  18. package/dist/api/agent.js +48 -9
  19. package/dist/api/agent.js.map +1 -1
  20. package/dist/api/agentExport.d.ts +202 -0
  21. package/dist/api/agentExport.d.ts.map +1 -0
  22. package/dist/api/agentExport.js +323 -0
  23. package/dist/api/agentExport.js.map +1 -0
  24. package/dist/api/editImage.d.ts +119 -0
  25. package/dist/api/editImage.d.ts.map +1 -0
  26. package/dist/api/editImage.js +150 -0
  27. package/dist/api/editImage.js.map +1 -0
  28. package/dist/api/embedText.d.ts +137 -0
  29. package/dist/api/embedText.d.ts.map +1 -0
  30. package/dist/api/embedText.js +229 -0
  31. package/dist/api/embedText.js.map +1 -0
  32. package/dist/api/externalToolRegistry.d.ts +44 -0
  33. package/dist/api/externalToolRegistry.d.ts.map +1 -0
  34. package/dist/api/externalToolRegistry.js +245 -0
  35. package/dist/api/externalToolRegistry.js.map +1 -0
  36. package/dist/api/generateImage.d.ts +1 -1
  37. package/dist/api/generateImage.d.ts.map +1 -1
  38. package/dist/api/generateImage.js +17 -13
  39. package/dist/api/generateImage.js.map +1 -1
  40. package/dist/api/generateObject.d.ts +185 -0
  41. package/dist/api/generateObject.d.ts.map +1 -0
  42. package/dist/api/generateObject.js +249 -0
  43. package/dist/api/generateObject.js.map +1 -0
  44. package/dist/api/generateText.d.ts +13 -3
  45. package/dist/api/generateText.d.ts.map +1 -1
  46. package/dist/api/generateText.js +20 -5
  47. package/dist/api/generateText.js.map +1 -1
  48. package/dist/api/interfaces/IAgentOS.d.ts +29 -1
  49. package/dist/api/interfaces/IAgentOS.d.ts.map +1 -1
  50. package/dist/api/model.d.ts +7 -7
  51. package/dist/api/model.d.ts.map +1 -1
  52. package/dist/api/model.js +22 -16
  53. package/dist/api/model.js.map +1 -1
  54. package/dist/api/processRequestWithExternalTools.d.ts +26 -0
  55. package/dist/api/processRequestWithExternalTools.d.ts.map +1 -0
  56. package/dist/api/processRequestWithExternalTools.js +52 -0
  57. package/dist/api/processRequestWithExternalTools.js.map +1 -0
  58. package/dist/api/processRequestWithRegisteredTools.d.ts +56 -0
  59. package/dist/api/processRequestWithRegisteredTools.d.ts.map +1 -0
  60. package/dist/api/processRequestWithRegisteredTools.js +125 -0
  61. package/dist/api/processRequestWithRegisteredTools.js.map +1 -0
  62. package/dist/api/provider-defaults.d.ts.map +1 -1
  63. package/dist/api/provider-defaults.js +28 -0
  64. package/dist/api/provider-defaults.js.map +1 -1
  65. package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts +71 -0
  66. package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts.map +1 -0
  67. package/dist/api/resumeExternalToolRequestWithRegisteredTools.js +159 -0
  68. package/dist/api/resumeExternalToolRequestWithRegisteredTools.js.map +1 -0
  69. package/dist/api/strategies/agentGraphBuilder.d.ts +170 -0
  70. package/dist/api/strategies/agentGraphBuilder.d.ts.map +1 -0
  71. package/dist/api/strategies/agentGraphBuilder.js +299 -0
  72. package/dist/api/strategies/agentGraphBuilder.js.map +1 -0
  73. package/dist/api/strategies/graphCompiler.d.ts +84 -0
  74. package/dist/api/strategies/graphCompiler.d.ts.map +1 -0
  75. package/dist/api/strategies/graphCompiler.js +617 -0
  76. package/dist/api/strategies/graphCompiler.js.map +1 -0
  77. package/dist/api/strategies/hierarchical.d.ts.map +1 -1
  78. package/dist/api/strategies/hierarchical.js +2 -1
  79. package/dist/api/strategies/hierarchical.js.map +1 -1
  80. package/dist/api/strategies/index.d.ts +3 -0
  81. package/dist/api/strategies/index.d.ts.map +1 -1
  82. package/dist/api/strategies/index.js +2 -0
  83. package/dist/api/strategies/index.js.map +1 -1
  84. package/dist/api/strategies/shared.d.ts +1 -1
  85. package/dist/api/strategies/shared.d.ts.map +1 -1
  86. package/dist/api/strategies/shared.js +3 -2
  87. package/dist/api/strategies/shared.js.map +1 -1
  88. package/dist/api/streamObject.d.ts +166 -0
  89. package/dist/api/streamObject.d.ts.map +1 -0
  90. package/dist/api/streamObject.js +268 -0
  91. package/dist/api/streamObject.js.map +1 -0
  92. package/dist/api/streamText.d.ts +1 -1
  93. package/dist/api/streamText.d.ts.map +1 -1
  94. package/dist/api/streamText.js +26 -8
  95. package/dist/api/streamText.js.map +1 -1
  96. package/dist/api/toolAdapter.d.ts +44 -8
  97. package/dist/api/toolAdapter.d.ts.map +1 -1
  98. package/dist/api/toolAdapter.js +224 -45
  99. package/dist/api/toolAdapter.js.map +1 -1
  100. package/dist/api/types/AgentOSExternalToolRequest.d.ts +35 -0
  101. package/dist/api/types/AgentOSExternalToolRequest.d.ts.map +1 -0
  102. package/dist/api/types/AgentOSExternalToolRequest.js +2 -0
  103. package/dist/api/types/AgentOSExternalToolRequest.js.map +1 -0
  104. package/dist/api/types/AgentOSResponse.d.ts +25 -0
  105. package/dist/api/types/AgentOSResponse.d.ts.map +1 -1
  106. package/dist/api/types/AgentOSResponse.js +20 -0
  107. package/dist/api/types/AgentOSResponse.js.map +1 -1
  108. package/dist/api/types/AgentOSToolResult.d.ts +11 -0
  109. package/dist/api/types/AgentOSToolResult.d.ts.map +1 -0
  110. package/dist/api/types/AgentOSToolResult.js +2 -0
  111. package/dist/api/types/AgentOSToolResult.js.map +1 -0
  112. package/dist/api/types.d.ts +28 -4
  113. package/dist/api/types.d.ts.map +1 -1
  114. package/dist/api/types.js.map +1 -1
  115. package/dist/api/upscaleImage.d.ts +92 -0
  116. package/dist/api/upscaleImage.d.ts.map +1 -0
  117. package/dist/api/upscaleImage.js +133 -0
  118. package/dist/api/upscaleImage.js.map +1 -0
  119. package/dist/api/variateImage.d.ts +102 -0
  120. package/dist/api/variateImage.d.ts.map +1 -0
  121. package/dist/api/variateImage.js +154 -0
  122. package/dist/api/variateImage.js.map +1 -0
  123. package/dist/cognitive_substrate/GMI.d.ts +16 -2
  124. package/dist/cognitive_substrate/GMI.d.ts.map +1 -1
  125. package/dist/cognitive_substrate/GMI.js +188 -56
  126. package/dist/cognitive_substrate/GMI.js.map +1 -1
  127. package/dist/cognitive_substrate/IGMI.d.ts +10 -0
  128. package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
  129. package/dist/cognitive_substrate/IGMI.js.map +1 -1
  130. package/dist/config/AgentOSConfig.d.ts +19 -2
  131. package/dist/config/AgentOSConfig.d.ts.map +1 -1
  132. package/dist/config/AgentOSConfig.js +46 -29
  133. package/dist/config/AgentOSConfig.js.map +1 -1
  134. package/dist/core/guardrails/IGuardrailService.d.ts +1 -1
  135. package/dist/core/images/IImageProvider.d.ts +93 -0
  136. package/dist/core/images/IImageProvider.d.ts.map +1 -1
  137. package/dist/core/images/IImageProvider.js.map +1 -1
  138. package/dist/core/images/ImageOperationError.d.ts +52 -0
  139. package/dist/core/images/ImageOperationError.d.ts.map +1 -0
  140. package/dist/core/images/ImageOperationError.js +58 -0
  141. package/dist/core/images/ImageOperationError.js.map +1 -0
  142. package/dist/core/images/imageToBuffer.d.ts +41 -0
  143. package/dist/core/images/imageToBuffer.d.ts.map +1 -0
  144. package/dist/core/images/imageToBuffer.js +95 -0
  145. package/dist/core/images/imageToBuffer.js.map +1 -0
  146. package/dist/core/images/index.d.ts +4 -0
  147. package/dist/core/images/index.d.ts.map +1 -1
  148. package/dist/core/images/index.js +8 -0
  149. package/dist/core/images/index.js.map +1 -1
  150. package/dist/core/images/providers/FalImageProvider.d.ts +208 -0
  151. package/dist/core/images/providers/FalImageProvider.d.ts.map +1 -0
  152. package/dist/core/images/providers/FalImageProvider.js +301 -0
  153. package/dist/core/images/providers/FalImageProvider.js.map +1 -0
  154. package/dist/core/images/providers/FluxImageProvider.d.ts +197 -0
  155. package/dist/core/images/providers/FluxImageProvider.d.ts.map +1 -0
  156. package/dist/core/images/providers/FluxImageProvider.js +271 -0
  157. package/dist/core/images/providers/FluxImageProvider.js.map +1 -0
  158. package/dist/core/images/providers/OpenAIImageProvider.d.ts +33 -1
  159. package/dist/core/images/providers/OpenAIImageProvider.d.ts.map +1 -1
  160. package/dist/core/images/providers/OpenAIImageProvider.js +125 -0
  161. package/dist/core/images/providers/OpenAIImageProvider.js.map +1 -1
  162. package/dist/core/images/providers/ReplicateImageProvider.d.ts +26 -1
  163. package/dist/core/images/providers/ReplicateImageProvider.d.ts.map +1 -1
  164. package/dist/core/images/providers/ReplicateImageProvider.js +118 -0
  165. package/dist/core/images/providers/ReplicateImageProvider.js.map +1 -1
  166. package/dist/core/images/providers/StabilityImageProvider.d.ts +41 -1
  167. package/dist/core/images/providers/StabilityImageProvider.d.ts.map +1 -1
  168. package/dist/core/images/providers/StabilityImageProvider.js +180 -7
  169. package/dist/core/images/providers/StabilityImageProvider.js.map +1 -1
  170. package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts +29 -1
  171. package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts.map +1 -1
  172. package/dist/core/images/providers/StableDiffusionLocalProvider.js +124 -0
  173. package/dist/core/images/providers/StableDiffusionLocalProvider.js.map +1 -1
  174. package/dist/core/llm/IPromptEngine.d.ts +2 -2
  175. package/dist/core/llm/IPromptEngine.d.ts.map +1 -1
  176. package/dist/core/llm/IPromptEngine.js +2 -2
  177. package/dist/core/llm/IPromptEngine.js.map +1 -1
  178. package/dist/core/llm/providers/AIModelProviderManager.d.ts +7 -1
  179. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
  180. package/dist/core/llm/providers/AIModelProviderManager.js +24 -0
  181. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
  182. package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts +42 -0
  183. package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts.map +1 -0
  184. package/dist/core/llm/providers/errors/AnthropicProviderError.js +45 -0
  185. package/dist/core/llm/providers/errors/AnthropicProviderError.js.map +1 -0
  186. package/dist/core/llm/providers/errors/GeminiProviderError.d.ts +45 -0
  187. package/dist/core/llm/providers/errors/GeminiProviderError.d.ts.map +1 -0
  188. package/dist/core/llm/providers/errors/GeminiProviderError.js +46 -0
  189. package/dist/core/llm/providers/errors/GeminiProviderError.js.map +1 -0
  190. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +1 -1
  191. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -1
  192. package/dist/core/llm/providers/errors/OllamaProviderError.js +1 -1
  193. package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -1
  194. package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +1 -1
  195. package/dist/core/llm/providers/errors/OpenAIProviderError.js +1 -1
  196. package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +1 -1
  197. package/dist/core/llm/providers/errors/OpenRouterProviderError.js +1 -1
  198. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts +340 -0
  199. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -0
  200. package/dist/core/llm/providers/implementations/AnthropicProvider.js +959 -0
  201. package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -0
  202. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts +339 -0
  203. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -0
  204. package/dist/core/llm/providers/implementations/GeminiProvider.js +1004 -0
  205. package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -0
  206. package/dist/core/llm/providers/implementations/GroqProvider.d.ts +105 -0
  207. package/dist/core/llm/providers/implementations/GroqProvider.d.ts.map +1 -0
  208. package/dist/core/llm/providers/implementations/GroqProvider.js +134 -0
  209. package/dist/core/llm/providers/implementations/GroqProvider.js.map +1 -0
  210. package/dist/core/llm/providers/implementations/MistralProvider.d.ts +105 -0
  211. package/dist/core/llm/providers/implementations/MistralProvider.d.ts.map +1 -0
  212. package/dist/core/llm/providers/implementations/MistralProvider.js +146 -0
  213. package/dist/core/llm/providers/implementations/MistralProvider.js.map +1 -0
  214. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts +107 -0
  215. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts.map +1 -0
  216. package/dist/core/llm/providers/implementations/TogetherProvider.js +138 -0
  217. package/dist/core/llm/providers/implementations/TogetherProvider.js.map +1 -0
  218. package/dist/core/llm/providers/implementations/XAIProvider.d.ts +102 -0
  219. package/dist/core/llm/providers/implementations/XAIProvider.d.ts.map +1 -0
  220. package/dist/core/llm/providers/implementations/XAIProvider.js +123 -0
  221. package/dist/core/llm/providers/implementations/XAIProvider.js.map +1 -0
  222. package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -1
  223. package/dist/core/orchestration/AgentOrchestrator.js +26 -5
  224. package/dist/core/orchestration/AgentOrchestrator.js.map +1 -1
  225. package/dist/core/tools/IToolOrchestrator.d.ts +2 -2
  226. package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -1
  227. package/dist/core/tools/ToolExecutor.d.ts +3 -0
  228. package/dist/core/tools/ToolExecutor.d.ts.map +1 -1
  229. package/dist/core/tools/ToolExecutor.js +2 -1
  230. package/dist/core/tools/ToolExecutor.js.map +1 -1
  231. package/dist/core/tools/ToolOrchestrator.d.ts +7 -7
  232. package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
  233. package/dist/core/tools/ToolOrchestrator.js +135 -36
  234. package/dist/core/tools/ToolOrchestrator.js.map +1 -1
  235. package/dist/core/tools/permissions/ToolPermissionManager.d.ts +6 -5
  236. package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -1
  237. package/dist/core/tools/permissions/ToolPermissionManager.js +47 -21
  238. package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -1
  239. package/dist/core/vision/VisionPipeline.d.ts +437 -0
  240. package/dist/core/vision/VisionPipeline.d.ts.map +1 -0
  241. package/dist/core/vision/VisionPipeline.js +1113 -0
  242. package/dist/core/vision/VisionPipeline.js.map +1 -0
  243. package/dist/core/vision/index.d.ts +97 -0
  244. package/dist/core/vision/index.d.ts.map +1 -0
  245. package/dist/core/vision/index.js +182 -0
  246. package/dist/core/vision/index.js.map +1 -0
  247. package/dist/core/vision/providers/LLMVisionProvider.d.ts +135 -0
  248. package/dist/core/vision/providers/LLMVisionProvider.d.ts.map +1 -0
  249. package/dist/core/vision/providers/LLMVisionProvider.js +136 -0
  250. package/dist/core/vision/providers/LLMVisionProvider.js.map +1 -0
  251. package/dist/core/vision/providers/PipelineVisionProvider.d.ts +154 -0
  252. package/dist/core/vision/providers/PipelineVisionProvider.d.ts.map +1 -0
  253. package/dist/core/vision/providers/PipelineVisionProvider.js +160 -0
  254. package/dist/core/vision/providers/PipelineVisionProvider.js.map +1 -0
  255. package/dist/core/vision/types.d.ts +286 -0
  256. package/dist/core/vision/types.d.ts.map +1 -0
  257. package/dist/core/vision/types.js +24 -0
  258. package/dist/core/vision/types.js.map +1 -0
  259. package/dist/discovery/CapabilityDiscoveryEngine.d.ts +1 -1
  260. package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
  261. package/dist/discovery/CapabilityDiscoveryEngine.js +1 -1
  262. package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
  263. package/dist/emergent/ComposableToolBuilder.d.ts +15 -4
  264. package/dist/emergent/ComposableToolBuilder.d.ts.map +1 -1
  265. package/dist/emergent/ComposableToolBuilder.js +29 -14
  266. package/dist/emergent/ComposableToolBuilder.js.map +1 -1
  267. package/dist/emergent/EmergentCapabilityEngine.d.ts +3 -3
  268. package/dist/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
  269. package/dist/emergent/EmergentCapabilityEngine.js +15 -12
  270. package/dist/emergent/EmergentCapabilityEngine.js.map +1 -1
  271. package/dist/emergent/EmergentJudge.d.ts +20 -0
  272. package/dist/emergent/EmergentJudge.d.ts.map +1 -1
  273. package/dist/emergent/EmergentJudge.js +121 -26
  274. package/dist/emergent/EmergentJudge.js.map +1 -1
  275. package/dist/emergent/EmergentToolRegistry.d.ts +17 -0
  276. package/dist/emergent/EmergentToolRegistry.d.ts.map +1 -1
  277. package/dist/emergent/EmergentToolRegistry.js +26 -0
  278. package/dist/emergent/EmergentToolRegistry.js.map +1 -1
  279. package/dist/emergent/ForgeToolMetaTool.d.ts +1 -1
  280. package/dist/emergent/ForgeToolMetaTool.d.ts.map +1 -1
  281. package/dist/emergent/ForgeToolMetaTool.js +15 -2
  282. package/dist/emergent/ForgeToolMetaTool.js.map +1 -1
  283. package/dist/emergent/SandboxedToolForge.d.ts +2 -2
  284. package/dist/emergent/SandboxedToolForge.d.ts.map +1 -1
  285. package/dist/emergent/SandboxedToolForge.js +13 -23
  286. package/dist/emergent/SandboxedToolForge.js.map +1 -1
  287. package/dist/emergent/SkillExporter.d.ts +119 -0
  288. package/dist/emergent/SkillExporter.d.ts.map +1 -0
  289. package/dist/emergent/SkillExporter.js +344 -0
  290. package/dist/emergent/SkillExporter.js.map +1 -0
  291. package/dist/emergent/index.d.ts +1 -0
  292. package/dist/emergent/index.d.ts.map +1 -1
  293. package/dist/emergent/index.js +1 -0
  294. package/dist/emergent/index.js.map +1 -1
  295. package/dist/emergent/types.d.ts +4 -4
  296. package/dist/index.d.ts +30 -5
  297. package/dist/index.d.ts.map +1 -1
  298. package/dist/index.js +19 -2
  299. package/dist/index.js.map +1 -1
  300. package/dist/memory/index.d.ts +10 -8
  301. package/dist/memory/index.d.ts.map +1 -1
  302. package/dist/memory/index.js +2 -0
  303. package/dist/memory/index.js.map +1 -1
  304. package/dist/memory/ingestion/DoclingLoader.d.ts +3 -3
  305. package/dist/memory/ingestion/DoclingLoader.d.ts.map +1 -1
  306. package/dist/memory/ingestion/DoclingLoader.js +12 -8
  307. package/dist/memory/ingestion/DoclingLoader.js.map +1 -1
  308. package/dist/memory/ingestion/FolderScanner.d.ts +7 -7
  309. package/dist/memory/ingestion/FolderScanner.d.ts.map +1 -1
  310. package/dist/memory/ingestion/FolderScanner.js +6 -6
  311. package/dist/memory/ingestion/FolderScanner.js.map +1 -1
  312. package/dist/memory/ingestion/LoaderRegistry.d.ts +8 -8
  313. package/dist/memory/ingestion/LoaderRegistry.d.ts.map +1 -1
  314. package/dist/memory/ingestion/LoaderRegistry.js +9 -11
  315. package/dist/memory/ingestion/LoaderRegistry.js.map +1 -1
  316. package/dist/memory/ingestion/MultimodalAggregator.d.ts +1 -1
  317. package/dist/memory/ingestion/MultimodalAggregator.js +1 -1
  318. package/dist/memory/ingestion/OcrPdfLoader.d.ts +2 -2
  319. package/dist/memory/ingestion/OcrPdfLoader.d.ts.map +1 -1
  320. package/dist/memory/ingestion/OcrPdfLoader.js +12 -8
  321. package/dist/memory/ingestion/OcrPdfLoader.js.map +1 -1
  322. package/dist/memory/ingestion/PdfLoader.d.ts +8 -8
  323. package/dist/memory/ingestion/PdfLoader.d.ts.map +1 -1
  324. package/dist/memory/ingestion/PdfLoader.js +13 -10
  325. package/dist/memory/ingestion/PdfLoader.js.map +1 -1
  326. package/dist/memory/io/MarkdownExporter.d.ts +1 -1
  327. package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
  328. package/dist/memory/io/MarkdownExporter.js +1 -1
  329. package/dist/memory/io/MarkdownExporter.js.map +1 -1
  330. package/dist/memory/tools/MemoryAddTool.d.ts +2 -2
  331. package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
  332. package/dist/memory/tools/MemoryAddTool.js +8 -3
  333. package/dist/memory/tools/MemoryAddTool.js.map +1 -1
  334. package/dist/memory/tools/MemorySearchTool.d.ts +3 -3
  335. package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
  336. package/dist/memory/tools/MemorySearchTool.js +11 -9
  337. package/dist/memory/tools/MemorySearchTool.js.map +1 -1
  338. package/dist/memory/tools/scopeContext.d.ts +11 -0
  339. package/dist/memory/tools/scopeContext.d.ts.map +1 -0
  340. package/dist/memory/tools/scopeContext.js +46 -0
  341. package/dist/memory/tools/scopeContext.js.map +1 -0
  342. package/dist/orchestration/builders/AgentGraph.d.ts +12 -11
  343. package/dist/orchestration/builders/AgentGraph.d.ts.map +1 -1
  344. package/dist/orchestration/builders/AgentGraph.js +12 -11
  345. package/dist/orchestration/builders/AgentGraph.js.map +1 -1
  346. package/dist/orchestration/builders/VoiceNodeBuilder.d.ts +2 -2
  347. package/dist/orchestration/builders/VoiceNodeBuilder.d.ts.map +1 -1
  348. package/dist/orchestration/builders/VoiceNodeBuilder.js +2 -2
  349. package/dist/orchestration/builders/VoiceNodeBuilder.js.map +1 -1
  350. package/dist/orchestration/builders/WorkflowBuilder.d.ts +1 -1
  351. package/dist/orchestration/builders/WorkflowBuilder.d.ts.map +1 -1
  352. package/dist/orchestration/builders/WorkflowBuilder.js +1 -1
  353. package/dist/orchestration/builders/WorkflowBuilder.js.map +1 -1
  354. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts +7 -54
  355. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts.map +1 -1
  356. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js +8 -56
  357. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js.map +1 -1
  358. package/dist/orchestration/events/GraphEvent.d.ts +12 -12
  359. package/dist/orchestration/events/GraphEvent.d.ts.map +1 -1
  360. package/dist/orchestration/events/GraphEvent.js.map +1 -1
  361. package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
  362. package/dist/orchestration/runtime/GraphRuntime.js +151 -1
  363. package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
  364. package/dist/orchestration/runtime/LoopController.d.ts +3 -3
  365. package/dist/orchestration/runtime/LoopController.d.ts.map +1 -1
  366. package/dist/orchestration/runtime/LoopController.js.map +1 -1
  367. package/dist/orchestration/runtime/StateManager.d.ts +3 -3
  368. package/dist/orchestration/runtime/StateManager.js +3 -3
  369. package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts +6 -6
  370. package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts.map +1 -1
  371. package/dist/orchestration/runtime/VoiceNodeExecutor.js +27 -10
  372. package/dist/orchestration/runtime/VoiceNodeExecutor.js.map +1 -1
  373. package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts +5 -5
  374. package/dist/orchestration/runtime/VoiceTransportAdapter.js +5 -5
  375. package/dist/orchestration/runtime/VoiceTurnCollector.d.ts +2 -2
  376. package/dist/orchestration/runtime/VoiceTurnCollector.js +2 -2
  377. package/dist/query-router/KeywordFallback.d.ts +70 -0
  378. package/dist/query-router/KeywordFallback.d.ts.map +1 -0
  379. package/dist/query-router/KeywordFallback.js +132 -0
  380. package/dist/query-router/KeywordFallback.js.map +1 -0
  381. package/dist/query-router/QueryClassifier.d.ts +140 -0
  382. package/dist/query-router/QueryClassifier.d.ts.map +1 -0
  383. package/dist/query-router/QueryClassifier.js +223 -0
  384. package/dist/query-router/QueryClassifier.js.map +1 -0
  385. package/dist/query-router/QueryDispatcher.d.ts +139 -0
  386. package/dist/query-router/QueryDispatcher.d.ts.map +1 -0
  387. package/dist/query-router/QueryDispatcher.js +297 -0
  388. package/dist/query-router/QueryDispatcher.js.map +1 -0
  389. package/dist/query-router/QueryGenerator.d.ts +184 -0
  390. package/dist/query-router/QueryGenerator.d.ts.map +1 -0
  391. package/dist/query-router/QueryGenerator.js +241 -0
  392. package/dist/query-router/QueryGenerator.js.map +1 -0
  393. package/dist/query-router/QueryRouter.d.ts +292 -0
  394. package/dist/query-router/QueryRouter.d.ts.map +1 -0
  395. package/dist/query-router/QueryRouter.js +803 -0
  396. package/dist/query-router/QueryRouter.js.map +1 -0
  397. package/dist/query-router/TopicExtractor.d.ts +73 -0
  398. package/dist/query-router/TopicExtractor.d.ts.map +1 -0
  399. package/dist/query-router/TopicExtractor.js +95 -0
  400. package/dist/query-router/TopicExtractor.js.map +1 -0
  401. package/dist/query-router/index.d.ts +40 -0
  402. package/dist/query-router/index.d.ts.map +1 -0
  403. package/dist/query-router/index.js +46 -0
  404. package/dist/query-router/index.js.map +1 -0
  405. package/dist/query-router/types.d.ts +508 -0
  406. package/dist/query-router/types.d.ts.map +1 -0
  407. package/dist/query-router/types.js +39 -0
  408. package/dist/query-router/types.js.map +1 -0
  409. package/dist/rag/index.d.ts +5 -0
  410. package/dist/rag/index.d.ts.map +1 -1
  411. package/dist/rag/index.js +7 -0
  412. package/dist/rag/index.js.map +1 -1
  413. package/dist/rag/multimodal/LLMVisionAdapter.d.ts +43 -0
  414. package/dist/rag/multimodal/LLMVisionAdapter.d.ts.map +1 -0
  415. package/dist/rag/multimodal/LLMVisionAdapter.js +46 -0
  416. package/dist/rag/multimodal/LLMVisionAdapter.js.map +1 -0
  417. package/dist/rag/multimodal/MultimodalIndexer.d.ts +244 -0
  418. package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -0
  419. package/dist/rag/multimodal/MultimodalIndexer.js +411 -0
  420. package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -0
  421. package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts +448 -0
  422. package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts.map +1 -0
  423. package/dist/rag/multimodal/MultimodalMemoryBridge.js +941 -0
  424. package/dist/rag/multimodal/MultimodalMemoryBridge.js.map +1 -0
  425. package/dist/rag/multimodal/SpeechProviderAdapter.d.ts +139 -0
  426. package/dist/rag/multimodal/SpeechProviderAdapter.d.ts.map +1 -0
  427. package/dist/rag/multimodal/SpeechProviderAdapter.js +143 -0
  428. package/dist/rag/multimodal/SpeechProviderAdapter.js.map +1 -0
  429. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts +172 -0
  430. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts.map +1 -0
  431. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js +152 -0
  432. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js.map +1 -0
  433. package/dist/rag/multimodal/index.d.ts +44 -0
  434. package/dist/rag/multimodal/index.d.ts.map +1 -0
  435. package/dist/rag/multimodal/index.js +42 -0
  436. package/dist/rag/multimodal/index.js.map +1 -0
  437. package/dist/rag/multimodal/types.d.ts +276 -0
  438. package/dist/rag/multimodal/types.d.ts.map +1 -0
  439. package/dist/rag/multimodal/types.js +26 -0
  440. package/dist/rag/multimodal/types.js.map +1 -0
  441. package/dist/social-posting/SocialPostManager.d.ts +3 -3
  442. package/dist/social-posting/SocialPostManager.d.ts.map +1 -1
  443. package/dist/social-posting/SocialPostManager.js +3 -5
  444. package/dist/social-posting/SocialPostManager.js.map +1 -1
  445. package/dist/speech/FallbackProxy.d.ts +6 -6
  446. package/dist/speech/FallbackProxy.d.ts.map +1 -1
  447. package/dist/speech/FallbackProxy.js +3 -3
  448. package/dist/speech/FallbackProxy.js.map +1 -1
  449. package/dist/speech/SpeechProviderResolver.d.ts +8 -8
  450. package/dist/speech/SpeechProviderResolver.d.ts.map +1 -1
  451. package/dist/speech/SpeechProviderResolver.js +22 -11
  452. package/dist/speech/SpeechProviderResolver.js.map +1 -1
  453. package/dist/speech/SpeechRuntime.d.ts +1 -5
  454. package/dist/speech/SpeechRuntime.d.ts.map +1 -1
  455. package/dist/speech/SpeechRuntime.js +17 -9
  456. package/dist/speech/SpeechRuntime.js.map +1 -1
  457. package/dist/speech/providers/AssemblyAISTTProvider.d.ts +4 -4
  458. package/dist/speech/providers/AssemblyAISTTProvider.js +4 -4
  459. package/dist/speech/providers/AzureSpeechTTSProvider.d.ts +3 -3
  460. package/dist/speech/providers/AzureSpeechTTSProvider.js +2 -2
  461. package/dist/speech/providers/AzureSpeechTTSProvider.js.map +1 -1
  462. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +9 -9
  463. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts.map +1 -1
  464. package/dist/speech/providers/BuiltInAdaptiveVadProvider.js +5 -5
  465. package/dist/speech/providers/BuiltInAdaptiveVadProvider.js.map +1 -1
  466. package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts +2 -2
  467. package/dist/speech/providers/DeepgramBatchSTTProvider.js +2 -2
  468. package/dist/speech/providers/OpenAITextToSpeechProvider.d.ts +3 -3
  469. package/dist/speech/providers/OpenAITextToSpeechProvider.js +2 -2
  470. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts +1 -1
  471. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts.map +1 -1
  472. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js +1 -1
  473. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js.map +1 -1
  474. package/dist/voice/TelephonyStreamTransport.d.ts +6 -6
  475. package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -1
  476. package/dist/voice/TelephonyStreamTransport.js +5 -5
  477. package/dist/voice/TelephonyStreamTransport.js.map +1 -1
  478. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +4 -4
  479. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -1
  480. package/dist/voice-pipeline/AcousticEndpointDetector.js +4 -4
  481. package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -1
  482. package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +3 -3
  483. package/dist/voice-pipeline/HardCutBargeinHandler.js +3 -3
  484. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +3 -3
  485. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -1
  486. package/dist/voice-pipeline/HeuristicEndpointDetector.js +3 -3
  487. package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -1
  488. package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +5 -5
  489. package/dist/voice-pipeline/SoftFadeBargeinHandler.js +1 -1
  490. package/dist/voice-pipeline/VoiceInterruptError.d.ts +6 -6
  491. package/dist/voice-pipeline/VoiceInterruptError.d.ts.map +1 -1
  492. package/dist/voice-pipeline/VoiceInterruptError.js +4 -4
  493. package/dist/voice-pipeline/VoiceInterruptError.js.map +1 -1
  494. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +9 -9
  495. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -1
  496. package/dist/voice-pipeline/VoicePipelineOrchestrator.js +8 -8
  497. package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -1
  498. package/dist/voice-pipeline/WebRTCStreamTransport.d.ts +421 -0
  499. package/dist/voice-pipeline/WebRTCStreamTransport.d.ts.map +1 -0
  500. package/dist/voice-pipeline/WebRTCStreamTransport.js +573 -0
  501. package/dist/voice-pipeline/WebRTCStreamTransport.js.map +1 -0
  502. package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +8 -8
  503. package/dist/voice-pipeline/WebSocketStreamTransport.js +5 -5
  504. package/dist/voice-pipeline/index.d.ts +1 -0
  505. package/dist/voice-pipeline/index.d.ts.map +1 -1
  506. package/dist/voice-pipeline/index.js +2 -0
  507. package/dist/voice-pipeline/index.js.map +1 -1
  508. package/dist/voice-pipeline/types.d.ts +43 -43
  509. package/dist/voice-pipeline/types.d.ts.map +1 -1
  510. package/package.json +19 -1
@@ -0,0 +1,241 @@
1
+ /**
2
+ * @fileoverview QueryGenerator — tier-appropriate prompt construction and LLM
3
+ * answer generation for the QueryRouter pipeline.
4
+ *
5
+ * The generator is the final stage of the routing pipeline: it takes the
6
+ * classified {@link QueryTier}, a set of {@link RetrievedChunk}s from the
7
+ * retrieval phase, and an optional research synthesis narrative, then builds
8
+ * a tier-specific system prompt and invokes the LLM via {@link generateText}.
9
+ *
10
+ * **Tier-specific behaviour:**
11
+ *
12
+ * | Tier | Model | Context | Temperature | Max Tokens | Instruction |
13
+ * |------|---------|---------|-------------|------------|----------------------------------------------------|
14
+ * | T0 | standard| none | 0.7 | 512 | (base prompt only) |
15
+ * | T1 | standard| chunks | 0.3 | 512 | "Answer based on the documentation context provided."|
16
+ * | T2 | deep | chunks | 0.3 | 1024 | "cross-reference" sources |
17
+ * | T3 | deep | chunks + research | 0.3 | 1024 | "Synthesize information from both internal documentation and external research." |
18
+ *
19
+ * **Context injection:**
20
+ * Each chunk is formatted as `## heading (sourcePath)\ncontent` and appended
21
+ * until the estimated token budget (`maxContextTokens`) is exhausted. Token
22
+ * estimation uses the common heuristic of `Math.ceil(text.length / 4)`.
23
+ *
24
+ * @module @framers/agentos/query-router/QueryGenerator
25
+ */
26
+ import { generateText } from '../api/generateText.js';
27
+ // ============================================================================
28
+ // Constants
29
+ // ============================================================================
30
+ /**
31
+ * Base system prompt injected into every generation call regardless of tier.
32
+ * Establishes the assistant's persona and ground rules.
33
+ */
34
+ const BASE_SYSTEM_PROMPT = 'You are a knowledgeable AI assistant for an autonomous agent platform. ' +
35
+ 'Answer questions accurately and concisely. If you don\'t know something, ' +
36
+ 'say so \u2014 do not make things up.';
37
+ /** Default maximum context tokens when not specified in config. */
38
+ const DEFAULT_MAX_CONTEXT_TOKENS = 4000;
39
+ // ============================================================================
40
+ // QueryGenerator
41
+ // ============================================================================
42
+ /**
43
+ * Builds tier-appropriate prompts and generates LLM answers.
44
+ *
45
+ * The generator selects a model (standard vs. deep) based on the query tier,
46
+ * constructs a system prompt with optional documentation context and research
47
+ * synthesis, then delegates to {@link generateText} for the actual LLM call.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const gen = new QueryGenerator({
52
+ * model: 'openai:gpt-4.1-mini',
53
+ * modelDeep: 'openai:gpt-4.1',
54
+ * provider: 'openai',
55
+ * });
56
+ *
57
+ * const result = await gen.generate('How does auth work?', 1, chunks);
58
+ * console.log(result.answer);
59
+ * ```
60
+ */
61
+ export class QueryGenerator {
62
+ /**
63
+ * Create a new QueryGenerator instance.
64
+ *
65
+ * @param config - Generator configuration specifying models, provider,
66
+ * and optional credential overrides.
67
+ */
68
+ constructor(config) {
69
+ this.config = {
70
+ model: config.model,
71
+ modelDeep: config.modelDeep,
72
+ provider: config.provider,
73
+ apiKey: config.apiKey,
74
+ baseUrl: config.baseUrl,
75
+ maxContextTokens: config.maxContextTokens ?? DEFAULT_MAX_CONTEXT_TOKENS,
76
+ };
77
+ }
78
+ /**
79
+ * Generate an answer for the given query at the specified complexity tier.
80
+ *
81
+ * @param query - The user's original question.
82
+ * @param tier - The classified complexity tier (0–3).
83
+ * @param chunks - Retrieved documentation chunks, sorted by relevance.
84
+ * @param researchSynthesis - Optional research narrative (T3 only).
85
+ * @returns A promise resolving to the generated answer, model used, and token usage.
86
+ */
87
+ async generate(query, tier, chunks, researchSynthesis) {
88
+ const model = this.selectModel(tier);
89
+ const temperature = this.selectTemperature(tier);
90
+ const maxTokens = this.selectMaxTokens(tier);
91
+ const systemPrompt = this.buildSystemPrompt(tier, chunks, researchSynthesis);
92
+ const result = await generateText({
93
+ model,
94
+ provider: this.config.provider,
95
+ apiKey: this.config.apiKey,
96
+ baseUrl: this.config.baseUrl,
97
+ system: systemPrompt,
98
+ prompt: query,
99
+ temperature,
100
+ maxTokens,
101
+ });
102
+ return {
103
+ answer: result.text,
104
+ model,
105
+ usage: {
106
+ promptTokens: result.usage.promptTokens,
107
+ completionTokens: result.usage.completionTokens,
108
+ totalTokens: result.usage.totalTokens,
109
+ },
110
+ };
111
+ }
112
+ // --------------------------------------------------------------------------
113
+ // Private — Model / parameter selection
114
+ // --------------------------------------------------------------------------
115
+ /**
116
+ * Select the appropriate model based on query tier.
117
+ * T0–T1 use the standard model; T2–T3 use the deep model.
118
+ *
119
+ * @param tier - The classified query tier.
120
+ * @returns The model identifier string.
121
+ */
122
+ selectModel(tier) {
123
+ return tier >= 2 ? this.config.modelDeep : this.config.model;
124
+ }
125
+ /**
126
+ * Select the sampling temperature for the given tier.
127
+ * T0 uses a higher temperature (0.7) for more creative general answers;
128
+ * all other tiers use 0.3 for focused, grounded responses.
129
+ *
130
+ * @param tier - The classified query tier.
131
+ * @returns The temperature value.
132
+ */
133
+ selectTemperature(tier) {
134
+ return tier === 0 ? 0.7 : 0.3;
135
+ }
136
+ /**
137
+ * Select the maximum output tokens for the given tier.
138
+ * T0–T1 cap at 512 tokens; T2–T3 allow 1024 for more detailed answers.
139
+ *
140
+ * @param tier - The classified query tier.
141
+ * @returns The maxTokens value.
142
+ */
143
+ selectMaxTokens(tier) {
144
+ return tier >= 2 ? 1024 : 512;
145
+ }
146
+ // --------------------------------------------------------------------------
147
+ // Private — System prompt construction
148
+ // --------------------------------------------------------------------------
149
+ /**
150
+ * Build the full system prompt by composing the base prompt with optional
151
+ * tier-specific context blocks and instructions.
152
+ *
153
+ * @param tier - The classified query tier.
154
+ * @param chunks - Retrieved documentation chunks.
155
+ * @param researchSynthesis - Optional research narrative for T3.
156
+ * @returns The assembled system prompt string.
157
+ */
158
+ buildSystemPrompt(tier, chunks, researchSynthesis) {
159
+ const parts = [BASE_SYSTEM_PROMPT];
160
+ // Inject documentation context for T1+
161
+ if (tier >= 1 && chunks.length > 0) {
162
+ const contextBlock = this.formatChunksAsContext(chunks);
163
+ if (contextBlock) {
164
+ parts.push(`\nDocumentation context:\n${contextBlock}`);
165
+ }
166
+ }
167
+ // Inject research synthesis for T3
168
+ if (tier === 3 && researchSynthesis) {
169
+ parts.push(`\nExternal research findings:\n${researchSynthesis}`);
170
+ }
171
+ // Append tier-specific instruction
172
+ const instruction = this.getTierInstruction(tier);
173
+ if (instruction) {
174
+ parts.push(`\n${instruction}`);
175
+ }
176
+ return parts.join('\n');
177
+ }
178
+ /**
179
+ * Format retrieved chunks into a documentation context block, respecting
180
+ * the configured token budget.
181
+ *
182
+ * Each chunk is formatted as:
183
+ * ```
184
+ * ## heading (sourcePath)
185
+ * content
186
+ * ```
187
+ *
188
+ * Chunks are added in the order provided (typically by relevance) until the
189
+ * estimated token count would exceed `maxContextTokens`.
190
+ *
191
+ * @param chunks - The retrieved chunks to format.
192
+ * @returns The formatted context string, or an empty string if no chunks fit.
193
+ */
194
+ formatChunksAsContext(chunks) {
195
+ const entries = [];
196
+ let tokenCount = 0;
197
+ for (const chunk of chunks) {
198
+ const entry = `## ${chunk.heading} (${chunk.sourcePath})\n${chunk.content}`;
199
+ const entryTokens = this.estimateTokens(entry);
200
+ if (tokenCount + entryTokens > this.config.maxContextTokens) {
201
+ break;
202
+ }
203
+ entries.push(entry);
204
+ tokenCount += entryTokens;
205
+ }
206
+ return entries.join('\n\n');
207
+ }
208
+ /**
209
+ * Return the tier-specific instruction appended to the system prompt.
210
+ *
211
+ * @param tier - The classified query tier.
212
+ * @returns The instruction string, or `undefined` for T0 (no extra instruction).
213
+ */
214
+ getTierInstruction(tier) {
215
+ switch (tier) {
216
+ case 0:
217
+ return undefined;
218
+ case 1:
219
+ return 'Answer based on the documentation context provided.';
220
+ case 2:
221
+ return 'Answer based on the documentation context provided. ' +
222
+ 'Where possible, cross-reference multiple sources to provide a comprehensive answer.';
223
+ case 3:
224
+ return 'Synthesize information from both internal documentation and external research. ' +
225
+ 'Where possible, cross-reference multiple sources to provide a comprehensive answer.';
226
+ default:
227
+ return undefined;
228
+ }
229
+ }
230
+ /**
231
+ * Estimate the token count for a string using the common heuristic of
232
+ * approximately 4 characters per token.
233
+ *
234
+ * @param text - The text to estimate.
235
+ * @returns Estimated token count (ceiling).
236
+ */
237
+ estimateTokens(text) {
238
+ return Math.ceil(text.length / 4);
239
+ }
240
+ }
241
+ //# sourceMappingURL=QueryGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryGenerator.js","sourceRoot":"","sources":["../../src/query-router/QueryGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,292 @@
1
+ /**
2
+ * @fileoverview QueryRouter — main orchestrator that wires together the
3
+ * QueryClassifier, QueryDispatcher, and QueryGenerator into a complete
4
+ * classify -> dispatch -> generate pipeline.
5
+ *
6
+ * @module @framers/agentos/query-router/QueryRouter
7
+ *
8
+ * The QueryRouter is the top-level entry point for the intelligent query
9
+ * routing system. Given a user query and optional conversation history, it:
10
+ *
11
+ * 1. **Classifies** the query into a complexity tier (T0-T3) using the
12
+ * {@link QueryClassifier}.
13
+ * 2. **Dispatches** the classified query to the tier-appropriate retrieval
14
+ * pipeline via the {@link QueryDispatcher}, which orchestrates vector
15
+ * search, graph expansion, reranking, and deep research.
16
+ * 3. **Generates** a grounded answer with citations via the
17
+ * {@link QueryGenerator}, using the retrieved context chunks.
18
+ *
19
+ * The router also handles:
20
+ * - Corpus loading from markdown files on disk
21
+ * - Real vector embedding via EmbeddingManager + VectorStoreManager (in-memory)
22
+ * - Keyword fallback retrieval when embeddings are unavailable
23
+ * - Event emission for full pipeline observability
24
+ * - Lifecycle hooks (onClassification, onRetrieval) for consumer integration
25
+ *
26
+ * Embedding pipeline: The `init()` method attempts to initialize an
27
+ * AIModelProviderManager, EmbeddingManager, and VectorStoreManager to enable
28
+ * real vector search. If any step fails (e.g., no API key configured), the
29
+ * router falls back gracefully to {@link KeywordFallback} for all retrieval.
30
+ */
31
+ import type { ClassificationResult, ConversationMessage, QueryResult, QueryRouterConfig, QueryTier, RetrievalResult } from './types.js';
32
+ /**
33
+ * Main orchestrator that wires together the QueryClassifier, QueryDispatcher,
34
+ * and QueryGenerator into a complete classify -> dispatch -> generate pipeline.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const router = new QueryRouter({
39
+ * knowledgeCorpus: ['./docs'],
40
+ * generationModel: 'gpt-4o-mini',
41
+ * generationModelDeep: 'gpt-4o',
42
+ * generationProvider: 'openai',
43
+ * });
44
+ *
45
+ * await router.init();
46
+ * const result = await router.route('How does authentication work?');
47
+ * console.log(result.answer);
48
+ * console.log(result.sources);
49
+ *
50
+ * await router.close();
51
+ * ```
52
+ */
53
+ export declare class QueryRouter {
54
+ /** Resolved configuration with defaults applied. */
55
+ private readonly config;
56
+ /** Loaded corpus chunks from disk. */
57
+ private corpus;
58
+ /** Topic entries extracted from the corpus. */
59
+ private topics;
60
+ /** Keyword-based fallback search engine. */
61
+ private keywordFallback;
62
+ /** Chain-of-thought query classifier. */
63
+ private classifier;
64
+ /** Tier-routing dispatcher. */
65
+ private dispatcher;
66
+ /** LLM answer generator. */
67
+ private generator;
68
+ /** Accumulated lifecycle events for observability. */
69
+ private events;
70
+ /** Whether init() has been called successfully. */
71
+ private initialized;
72
+ /** Embedding manager for generating vector embeddings. Null if not available. */
73
+ private embeddingManager;
74
+ /** Vector store manager for persisting and querying embeddings. Null if not available. */
75
+ private vectorStoreManager;
76
+ /** AI model provider manager used by the embedding manager. Null if not available. */
77
+ private providerManager;
78
+ /** Embedding dimension for the configured model. Zero if embeddings unavailable. */
79
+ private embeddingDimension;
80
+ /**
81
+ * The data source ID used for corpus embeddings in the vector store.
82
+ * Matches the collection name configured during init().
83
+ */
84
+ private readonly corpusDataSourceId;
85
+ /**
86
+ * Creates a new QueryRouter instance.
87
+ *
88
+ * Merges user-supplied configuration over {@link QUERY_ROUTER_DEFAULTS}.
89
+ * The router is NOT ready to use until {@link init} is called.
90
+ *
91
+ * @param config - Partial configuration; `knowledgeCorpus` is required.
92
+ */
93
+ constructor(config: QueryRouterConfig);
94
+ /**
95
+ * Initialise the router: load corpus from disk, extract topics, build
96
+ * keyword fallback index, embed the corpus into a vector store, and
97
+ * instantiate classifier/dispatcher/generator.
98
+ *
99
+ * Must be called before `classify()`, `retrieve()`, or `route()`.
100
+ *
101
+ * The embedding step uses real EmbeddingManager + VectorStoreManager when
102
+ * an LLM provider is available (e.g., OPENAI_API_KEY is set). If embedding
103
+ * initialisation fails for any reason, the router falls back gracefully to
104
+ * KeywordFallback for all retrieval.
105
+ */
106
+ init(): Promise<void>;
107
+ /**
108
+ * Classify a query into a complexity tier without dispatching or generating.
109
+ *
110
+ * Useful when consumers want to inspect the classification before deciding
111
+ * whether to proceed with the full pipeline.
112
+ *
113
+ * @param query - The user's natural-language query.
114
+ * @param conversationHistory - Optional recent conversation messages.
115
+ * @returns The classification result with tier, confidence, and reasoning.
116
+ * @throws If the router has not been initialised via {@link init}.
117
+ */
118
+ classify(query: string, conversationHistory?: ConversationMessage[]): Promise<ClassificationResult>;
119
+ /**
120
+ * Retrieve context at a specific tier, bypassing the classifier.
121
+ *
122
+ * Useful when the caller already knows the appropriate retrieval depth
123
+ * and wants to skip classification overhead.
124
+ *
125
+ * @param query - The user's natural-language query.
126
+ * @param tier - The complexity tier to retrieve at (0-3).
127
+ * @returns The retrieval result with chunks and optional graph/research data.
128
+ * @throws If the router has not been initialised via {@link init}.
129
+ */
130
+ retrieve(query: string, tier: QueryTier): Promise<RetrievalResult>;
131
+ /**
132
+ * Full end-to-end pipeline: classify -> dispatch -> generate.
133
+ *
134
+ * This is the primary method for answering user queries. It:
135
+ * 1. Classifies the query to determine retrieval depth.
136
+ * 2. Dispatches retrieval at the classified tier.
137
+ * 3. Generates a grounded answer from the retrieved context.
138
+ * 4. Emits lifecycle events throughout for observability.
139
+ *
140
+ * @param query - The user's natural-language query.
141
+ * @param conversationHistory - Optional recent conversation messages.
142
+ * @returns The final query result with answer, classification, sources, and timing.
143
+ * @throws If the router has not been initialised via {@link init}.
144
+ */
145
+ route(query: string, conversationHistory?: ConversationMessage[]): Promise<QueryResult>;
146
+ /**
147
+ * Tear down resources and release references.
148
+ *
149
+ * Shuts down embedding and vector store managers if they were initialised,
150
+ * then nulls out all component references. Safe to call multiple times.
151
+ * After close(), the router must be re-initialised via {@link init} before
152
+ * further use.
153
+ */
154
+ close(): Promise<void>;
155
+ /**
156
+ * Load and chunk markdown files from the configured corpus directories.
157
+ *
158
+ * Recursively walks each directory, reads .md and .mdx files, and splits
159
+ * their content by h1-h3 headings. Each heading section becomes a
160
+ * CorpusChunk (capped at {@link MAX_CHUNK_CHARS} characters, minimum
161
+ * {@link MIN_CHUNK_CHARS} to filter out trivially small sections).
162
+ *
163
+ * @param paths - Array of directory paths to scan for markdown files.
164
+ * @returns Array of CorpusChunk objects ready for indexing.
165
+ */
166
+ private loadCorpus;
167
+ /**
168
+ * Recursively walk a directory tree, invoking a callback for each file.
169
+ *
170
+ * @param dir - The directory to walk.
171
+ * @param callback - Function called with the absolute path of each file.
172
+ */
173
+ private walkDir;
174
+ /**
175
+ * Split markdown content into sections by h1-h3 headings.
176
+ *
177
+ * Each section captures the heading text and the content between it and
178
+ * the next heading (or end of file). Content before the first heading is
179
+ * assigned a heading of "(intro)".
180
+ *
181
+ * @param content - The raw markdown file content.
182
+ * @param sourcePath - File path (used for the section's sourcePath field).
183
+ * @returns Array of sections with heading and content fields.
184
+ */
185
+ private splitByHeadings;
186
+ /**
187
+ * Embed all loaded corpus chunks into the vector store using real
188
+ * EmbeddingManager and VectorStoreManager instances.
189
+ *
190
+ * The method dynamically imports the RAG modules to keep them optional —
191
+ * if the imports fail or initialisation fails (e.g., no API key), the error
192
+ * is caught and logged as a warning. The router will continue to function
193
+ * using the KeywordFallback engine for all retrieval.
194
+ *
195
+ * Steps:
196
+ * 1. Dynamic-import AIModelProviderManager, EmbeddingManager, VectorStoreManager
197
+ * 2. Initialise the provider manager with the configured embedding provider
198
+ * 3. Initialise the embedding manager with the configured model
199
+ * 4. Initialise the vector store manager with an in-memory provider
200
+ * 5. Create a collection with the correct dimension
201
+ * 6. Embed all corpus chunks in batches of 50
202
+ * 7. Upsert the resulting VectorDocuments into the vector store
203
+ * 8. Cache embeddings on CorpusChunk.embedding for potential reuse
204
+ */
205
+ private embedCorpus;
206
+ /**
207
+ * Return a known embedding dimension for common models.
208
+ *
209
+ * This avoids an extra API call when the dimension can be statically
210
+ * determined from the model identifier.
211
+ *
212
+ * @param modelId - The embedding model identifier.
213
+ * @returns The known dimension, or 0 if unknown.
214
+ */
215
+ private getKnownDimension;
216
+ /**
217
+ * Vector search callback for the dispatcher.
218
+ *
219
+ * When the EmbeddingManager and VectorStoreManager are available, this method
220
+ * embeds the query, queries the vector store, and maps the results to
221
+ * RetrievedChunk objects. If the RAG modules are not available (e.g., embedding
222
+ * init failed), it falls back to the KeywordFallback engine and emits a
223
+ * retrieve:fallback event.
224
+ *
225
+ * @param query - The user's query string.
226
+ * @param topK - Maximum number of chunks to return.
227
+ * @returns Promise resolving to an array of matched chunks.
228
+ */
229
+ private vectorSearch;
230
+ /**
231
+ * Graph expansion callback for the dispatcher.
232
+ *
233
+ * Placeholder — returns empty array.
234
+ * // Follow-up: wire GraphRAGEngine
235
+ *
236
+ * @param _seeds - Seed chunks to expand from (unused for now).
237
+ * @returns Promise resolving to an empty array.
238
+ */
239
+ private graphExpand;
240
+ /**
241
+ * Reranking callback for the dispatcher.
242
+ *
243
+ * Placeholder — returns the first topN chunks without actual reranking.
244
+ * // Follow-up: wire RerankerService
245
+ *
246
+ * @param _query - The user's query (unused for now).
247
+ * @param chunks - Candidate chunks to rerank.
248
+ * @param topN - Maximum number of chunks to keep.
249
+ * @returns Promise resolving to the first topN chunks.
250
+ */
251
+ private rerank;
252
+ /**
253
+ * Deep research callback for the dispatcher.
254
+ *
255
+ * Placeholder — returns empty synthesis and empty sources.
256
+ * // Follow-up: wire DeepResearchEngine
257
+ *
258
+ * @param _query - The user's query (unused for now).
259
+ * @param _sources - Source identifiers to consult (unused for now).
260
+ * @returns Promise resolving to empty synthesis and sources.
261
+ */
262
+ private deepResearch;
263
+ /**
264
+ * Format available tools for the classifier prompt.
265
+ */
266
+ private formatToolList;
267
+ /**
268
+ * Derive fallback strategy names from classification + retrieval events.
269
+ */
270
+ private collectFallbacks;
271
+ /**
272
+ * Approximate the tiers actually exercised when fallback strategies fired.
273
+ */
274
+ private collectTiersUsed;
275
+ /**
276
+ * Store a lifecycle event and emit a structured console log.
277
+ *
278
+ * Events are accumulated in the `events` array for later inspection
279
+ * and also logged to the console with a `[QueryRouter]` prefix for
280
+ * real-time observability.
281
+ *
282
+ * @param event - The typed lifecycle event to emit.
283
+ */
284
+ private emit;
285
+ /**
286
+ * Assert that the router has been initialised via {@link init}.
287
+ *
288
+ * @throws Error if `init()` has not been called.
289
+ */
290
+ private ensureInitialized;
291
+ }
292
+ //# sourceMappingURL=QueryRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryRouter.d.ts","sourceRoot":"","sources":["../../src/query-router/QueryRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAWH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EAEnB,WAAW,EACX,iBAAiB,EAEjB,SAAS,EACT,eAAe,EAIhB,MAAM,YAAY,CAAC;AAmCpB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAW;IACtB,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IAEnD,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAqB;IAEnC,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAoB;IAElC,4CAA4C;IAC5C,OAAO,CAAC,eAAe,CAAgC;IAEvD,yCAAyC;IACzC,OAAO,CAAC,UAAU,CAAgC;IAElD,+BAA+B;IAC/B,OAAO,CAAC,UAAU,CAAgC;IAElD,4BAA4B;IAC5B,OAAO,CAAC,SAAS,CAA+B;IAEhD,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAA+B;IAE7C,mDAAmD;IACnD,OAAO,CAAC,WAAW,CAAS;IAE5B,iFAAiF;IACjF,OAAO,CAAC,gBAAgB,CAAiC;IAEzD,0FAA0F;IAC1F,OAAO,CAAC,kBAAkB,CAAmC;IAE7D,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAuC;IAE9D,oFAAoF;IACpF,OAAO,CAAC,kBAAkB,CAAK;IAE/B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAE5D;;;;;;;OAOG;gBACS,MAAM,EAAE,iBAAiB;IAarC;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuD3B;;;;;;;;;;OAUG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,GAC1C,OAAO,CAAC,oBAAoB,CAAC;IAkChC;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAKxE;;;;;;;;;;;;;OAaG;IACG,KAAK,CACT,KAAK,EAAE,MAAM,EACb,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,GAC1C,OAAO,CAAC,WAAW,CAAC;IAiFvB;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC5B;;;;;;;;;;OAUG;IACH,OAAO,CAAC,UAAU;IAwClB;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAiBf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,eAAe;IA2CvB;;;;;;;;;;;;;;;;;;OAkBG;YACW,WAAW;IAqKzB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;;;;;;;;;OAYG;YACW,YAAY;IAiE1B;;;;;;;;OAQG;YACW,WAAW;IAKzB;;;;;;;;;;OAUG;YACW,MAAM;IASpB;;;;;;;;;OASG;YACW,YAAY;IAQ1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI;IAQZ;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAO1B"}