@framers/agentos 0.1.112 → 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 (552) 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/debate.d.ts +12 -1
  74. package/dist/api/strategies/debate.d.ts.map +1 -1
  75. package/dist/api/strategies/debate.js +41 -5
  76. package/dist/api/strategies/debate.js.map +1 -1
  77. package/dist/api/strategies/graphCompiler.d.ts +84 -0
  78. package/dist/api/strategies/graphCompiler.d.ts.map +1 -0
  79. package/dist/api/strategies/graphCompiler.js +617 -0
  80. package/dist/api/strategies/graphCompiler.js.map +1 -0
  81. package/dist/api/strategies/hierarchical.d.ts +15 -1
  82. package/dist/api/strategies/hierarchical.d.ts.map +1 -1
  83. package/dist/api/strategies/hierarchical.js +53 -8
  84. package/dist/api/strategies/hierarchical.js.map +1 -1
  85. package/dist/api/strategies/index.d.ts +29 -4
  86. package/dist/api/strategies/index.d.ts.map +1 -1
  87. package/dist/api/strategies/index.js +28 -4
  88. package/dist/api/strategies/index.js.map +1 -1
  89. package/dist/api/strategies/parallel.d.ts +15 -4
  90. package/dist/api/strategies/parallel.d.ts.map +1 -1
  91. package/dist/api/strategies/parallel.js +53 -16
  92. package/dist/api/strategies/parallel.js.map +1 -1
  93. package/dist/api/strategies/review-loop.d.ts +15 -1
  94. package/dist/api/strategies/review-loop.d.ts.map +1 -1
  95. package/dist/api/strategies/review-loop.js +36 -10
  96. package/dist/api/strategies/review-loop.js.map +1 -1
  97. package/dist/api/strategies/sequential.d.ts +11 -1
  98. package/dist/api/strategies/sequential.d.ts.map +1 -1
  99. package/dist/api/strategies/sequential.js +39 -8
  100. package/dist/api/strategies/sequential.js.map +1 -1
  101. package/dist/api/strategies/shared.d.ts +72 -8
  102. package/dist/api/strategies/shared.d.ts.map +1 -1
  103. package/dist/api/strategies/shared.js +92 -12
  104. package/dist/api/strategies/shared.js.map +1 -1
  105. package/dist/api/streamObject.d.ts +166 -0
  106. package/dist/api/streamObject.d.ts.map +1 -0
  107. package/dist/api/streamObject.js +268 -0
  108. package/dist/api/streamObject.js.map +1 -0
  109. package/dist/api/streamText.d.ts +1 -1
  110. package/dist/api/streamText.d.ts.map +1 -1
  111. package/dist/api/streamText.js +26 -8
  112. package/dist/api/streamText.js.map +1 -1
  113. package/dist/api/toolAdapter.d.ts +44 -8
  114. package/dist/api/toolAdapter.d.ts.map +1 -1
  115. package/dist/api/toolAdapter.js +224 -45
  116. package/dist/api/toolAdapter.js.map +1 -1
  117. package/dist/api/types/AgentOSExternalToolRequest.d.ts +35 -0
  118. package/dist/api/types/AgentOSExternalToolRequest.d.ts.map +1 -0
  119. package/dist/api/types/AgentOSExternalToolRequest.js +2 -0
  120. package/dist/api/types/AgentOSExternalToolRequest.js.map +1 -0
  121. package/dist/api/types/AgentOSResponse.d.ts +25 -0
  122. package/dist/api/types/AgentOSResponse.d.ts.map +1 -1
  123. package/dist/api/types/AgentOSResponse.js +20 -0
  124. package/dist/api/types/AgentOSResponse.js.map +1 -1
  125. package/dist/api/types/AgentOSToolResult.d.ts +11 -0
  126. package/dist/api/types/AgentOSToolResult.d.ts.map +1 -0
  127. package/dist/api/types/AgentOSToolResult.js +2 -0
  128. package/dist/api/types/AgentOSToolResult.js.map +1 -0
  129. package/dist/api/types.d.ts +81 -4
  130. package/dist/api/types.d.ts.map +1 -1
  131. package/dist/api/types.js.map +1 -1
  132. package/dist/api/upscaleImage.d.ts +92 -0
  133. package/dist/api/upscaleImage.d.ts.map +1 -0
  134. package/dist/api/upscaleImage.js +133 -0
  135. package/dist/api/upscaleImage.js.map +1 -0
  136. package/dist/api/variateImage.d.ts +102 -0
  137. package/dist/api/variateImage.d.ts.map +1 -0
  138. package/dist/api/variateImage.js +154 -0
  139. package/dist/api/variateImage.js.map +1 -0
  140. package/dist/cognitive_substrate/GMI.d.ts +16 -2
  141. package/dist/cognitive_substrate/GMI.d.ts.map +1 -1
  142. package/dist/cognitive_substrate/GMI.js +188 -56
  143. package/dist/cognitive_substrate/GMI.js.map +1 -1
  144. package/dist/cognitive_substrate/IGMI.d.ts +10 -0
  145. package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
  146. package/dist/cognitive_substrate/IGMI.js.map +1 -1
  147. package/dist/config/AgentOSConfig.d.ts +19 -2
  148. package/dist/config/AgentOSConfig.d.ts.map +1 -1
  149. package/dist/config/AgentOSConfig.js +46 -29
  150. package/dist/config/AgentOSConfig.js.map +1 -1
  151. package/dist/core/guardrails/IGuardrailService.d.ts +1 -1
  152. package/dist/core/images/IImageProvider.d.ts +93 -0
  153. package/dist/core/images/IImageProvider.d.ts.map +1 -1
  154. package/dist/core/images/IImageProvider.js.map +1 -1
  155. package/dist/core/images/ImageOperationError.d.ts +52 -0
  156. package/dist/core/images/ImageOperationError.d.ts.map +1 -0
  157. package/dist/core/images/ImageOperationError.js +58 -0
  158. package/dist/core/images/ImageOperationError.js.map +1 -0
  159. package/dist/core/images/imageToBuffer.d.ts +41 -0
  160. package/dist/core/images/imageToBuffer.d.ts.map +1 -0
  161. package/dist/core/images/imageToBuffer.js +95 -0
  162. package/dist/core/images/imageToBuffer.js.map +1 -0
  163. package/dist/core/images/index.d.ts +4 -0
  164. package/dist/core/images/index.d.ts.map +1 -1
  165. package/dist/core/images/index.js +8 -0
  166. package/dist/core/images/index.js.map +1 -1
  167. package/dist/core/images/providers/FalImageProvider.d.ts +208 -0
  168. package/dist/core/images/providers/FalImageProvider.d.ts.map +1 -0
  169. package/dist/core/images/providers/FalImageProvider.js +301 -0
  170. package/dist/core/images/providers/FalImageProvider.js.map +1 -0
  171. package/dist/core/images/providers/FluxImageProvider.d.ts +197 -0
  172. package/dist/core/images/providers/FluxImageProvider.d.ts.map +1 -0
  173. package/dist/core/images/providers/FluxImageProvider.js +271 -0
  174. package/dist/core/images/providers/FluxImageProvider.js.map +1 -0
  175. package/dist/core/images/providers/OpenAIImageProvider.d.ts +33 -1
  176. package/dist/core/images/providers/OpenAIImageProvider.d.ts.map +1 -1
  177. package/dist/core/images/providers/OpenAIImageProvider.js +125 -0
  178. package/dist/core/images/providers/OpenAIImageProvider.js.map +1 -1
  179. package/dist/core/images/providers/ReplicateImageProvider.d.ts +26 -1
  180. package/dist/core/images/providers/ReplicateImageProvider.d.ts.map +1 -1
  181. package/dist/core/images/providers/ReplicateImageProvider.js +118 -0
  182. package/dist/core/images/providers/ReplicateImageProvider.js.map +1 -1
  183. package/dist/core/images/providers/StabilityImageProvider.d.ts +41 -1
  184. package/dist/core/images/providers/StabilityImageProvider.d.ts.map +1 -1
  185. package/dist/core/images/providers/StabilityImageProvider.js +180 -7
  186. package/dist/core/images/providers/StabilityImageProvider.js.map +1 -1
  187. package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts +29 -1
  188. package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts.map +1 -1
  189. package/dist/core/images/providers/StableDiffusionLocalProvider.js +124 -0
  190. package/dist/core/images/providers/StableDiffusionLocalProvider.js.map +1 -1
  191. package/dist/core/llm/IPromptEngine.d.ts +2 -2
  192. package/dist/core/llm/IPromptEngine.d.ts.map +1 -1
  193. package/dist/core/llm/IPromptEngine.js +2 -2
  194. package/dist/core/llm/IPromptEngine.js.map +1 -1
  195. package/dist/core/llm/providers/AIModelProviderManager.d.ts +7 -1
  196. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
  197. package/dist/core/llm/providers/AIModelProviderManager.js +24 -0
  198. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
  199. package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts +42 -0
  200. package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts.map +1 -0
  201. package/dist/core/llm/providers/errors/AnthropicProviderError.js +45 -0
  202. package/dist/core/llm/providers/errors/AnthropicProviderError.js.map +1 -0
  203. package/dist/core/llm/providers/errors/GeminiProviderError.d.ts +45 -0
  204. package/dist/core/llm/providers/errors/GeminiProviderError.d.ts.map +1 -0
  205. package/dist/core/llm/providers/errors/GeminiProviderError.js +46 -0
  206. package/dist/core/llm/providers/errors/GeminiProviderError.js.map +1 -0
  207. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +1 -1
  208. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -1
  209. package/dist/core/llm/providers/errors/OllamaProviderError.js +1 -1
  210. package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -1
  211. package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +1 -1
  212. package/dist/core/llm/providers/errors/OpenAIProviderError.js +1 -1
  213. package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +1 -1
  214. package/dist/core/llm/providers/errors/OpenRouterProviderError.js +1 -1
  215. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts +340 -0
  216. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -0
  217. package/dist/core/llm/providers/implementations/AnthropicProvider.js +959 -0
  218. package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -0
  219. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts +339 -0
  220. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -0
  221. package/dist/core/llm/providers/implementations/GeminiProvider.js +1004 -0
  222. package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -0
  223. package/dist/core/llm/providers/implementations/GroqProvider.d.ts +105 -0
  224. package/dist/core/llm/providers/implementations/GroqProvider.d.ts.map +1 -0
  225. package/dist/core/llm/providers/implementations/GroqProvider.js +134 -0
  226. package/dist/core/llm/providers/implementations/GroqProvider.js.map +1 -0
  227. package/dist/core/llm/providers/implementations/MistralProvider.d.ts +105 -0
  228. package/dist/core/llm/providers/implementations/MistralProvider.d.ts.map +1 -0
  229. package/dist/core/llm/providers/implementations/MistralProvider.js +146 -0
  230. package/dist/core/llm/providers/implementations/MistralProvider.js.map +1 -0
  231. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts +107 -0
  232. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts.map +1 -0
  233. package/dist/core/llm/providers/implementations/TogetherProvider.js +138 -0
  234. package/dist/core/llm/providers/implementations/TogetherProvider.js.map +1 -0
  235. package/dist/core/llm/providers/implementations/XAIProvider.d.ts +102 -0
  236. package/dist/core/llm/providers/implementations/XAIProvider.d.ts.map +1 -0
  237. package/dist/core/llm/providers/implementations/XAIProvider.js +123 -0
  238. package/dist/core/llm/providers/implementations/XAIProvider.js.map +1 -0
  239. package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -1
  240. package/dist/core/orchestration/AgentOrchestrator.js +26 -5
  241. package/dist/core/orchestration/AgentOrchestrator.js.map +1 -1
  242. package/dist/core/tools/IToolOrchestrator.d.ts +2 -2
  243. package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -1
  244. package/dist/core/tools/ToolExecutor.d.ts +3 -0
  245. package/dist/core/tools/ToolExecutor.d.ts.map +1 -1
  246. package/dist/core/tools/ToolExecutor.js +2 -1
  247. package/dist/core/tools/ToolExecutor.js.map +1 -1
  248. package/dist/core/tools/ToolOrchestrator.d.ts +7 -7
  249. package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
  250. package/dist/core/tools/ToolOrchestrator.js +135 -36
  251. package/dist/core/tools/ToolOrchestrator.js.map +1 -1
  252. package/dist/core/tools/permissions/ToolPermissionManager.d.ts +6 -5
  253. package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -1
  254. package/dist/core/tools/permissions/ToolPermissionManager.js +47 -21
  255. package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -1
  256. package/dist/core/vision/VisionPipeline.d.ts +437 -0
  257. package/dist/core/vision/VisionPipeline.d.ts.map +1 -0
  258. package/dist/core/vision/VisionPipeline.js +1113 -0
  259. package/dist/core/vision/VisionPipeline.js.map +1 -0
  260. package/dist/core/vision/index.d.ts +97 -0
  261. package/dist/core/vision/index.d.ts.map +1 -0
  262. package/dist/core/vision/index.js +182 -0
  263. package/dist/core/vision/index.js.map +1 -0
  264. package/dist/core/vision/providers/LLMVisionProvider.d.ts +135 -0
  265. package/dist/core/vision/providers/LLMVisionProvider.d.ts.map +1 -0
  266. package/dist/core/vision/providers/LLMVisionProvider.js +136 -0
  267. package/dist/core/vision/providers/LLMVisionProvider.js.map +1 -0
  268. package/dist/core/vision/providers/PipelineVisionProvider.d.ts +154 -0
  269. package/dist/core/vision/providers/PipelineVisionProvider.d.ts.map +1 -0
  270. package/dist/core/vision/providers/PipelineVisionProvider.js +160 -0
  271. package/dist/core/vision/providers/PipelineVisionProvider.js.map +1 -0
  272. package/dist/core/vision/types.d.ts +286 -0
  273. package/dist/core/vision/types.d.ts.map +1 -0
  274. package/dist/core/vision/types.js +24 -0
  275. package/dist/core/vision/types.js.map +1 -0
  276. package/dist/discovery/CapabilityDiscoveryEngine.d.ts +1 -1
  277. package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
  278. package/dist/discovery/CapabilityDiscoveryEngine.js +1 -1
  279. package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
  280. package/dist/emergent/ComposableToolBuilder.d.ts +15 -4
  281. package/dist/emergent/ComposableToolBuilder.d.ts.map +1 -1
  282. package/dist/emergent/ComposableToolBuilder.js +29 -14
  283. package/dist/emergent/ComposableToolBuilder.js.map +1 -1
  284. package/dist/emergent/EmergentCapabilityEngine.d.ts +3 -3
  285. package/dist/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
  286. package/dist/emergent/EmergentCapabilityEngine.js +15 -12
  287. package/dist/emergent/EmergentCapabilityEngine.js.map +1 -1
  288. package/dist/emergent/EmergentJudge.d.ts +20 -0
  289. package/dist/emergent/EmergentJudge.d.ts.map +1 -1
  290. package/dist/emergent/EmergentJudge.js +121 -26
  291. package/dist/emergent/EmergentJudge.js.map +1 -1
  292. package/dist/emergent/EmergentToolRegistry.d.ts +17 -0
  293. package/dist/emergent/EmergentToolRegistry.d.ts.map +1 -1
  294. package/dist/emergent/EmergentToolRegistry.js +26 -0
  295. package/dist/emergent/EmergentToolRegistry.js.map +1 -1
  296. package/dist/emergent/ForgeToolMetaTool.d.ts +1 -1
  297. package/dist/emergent/ForgeToolMetaTool.d.ts.map +1 -1
  298. package/dist/emergent/ForgeToolMetaTool.js +15 -2
  299. package/dist/emergent/ForgeToolMetaTool.js.map +1 -1
  300. package/dist/emergent/SandboxedToolForge.d.ts +2 -2
  301. package/dist/emergent/SandboxedToolForge.d.ts.map +1 -1
  302. package/dist/emergent/SandboxedToolForge.js +13 -23
  303. package/dist/emergent/SandboxedToolForge.js.map +1 -1
  304. package/dist/emergent/SkillExporter.d.ts +119 -0
  305. package/dist/emergent/SkillExporter.d.ts.map +1 -0
  306. package/dist/emergent/SkillExporter.js +344 -0
  307. package/dist/emergent/SkillExporter.js.map +1 -0
  308. package/dist/emergent/index.d.ts +1 -0
  309. package/dist/emergent/index.d.ts.map +1 -1
  310. package/dist/emergent/index.js +1 -0
  311. package/dist/emergent/index.js.map +1 -1
  312. package/dist/emergent/types.d.ts +4 -4
  313. package/dist/index.d.ts +30 -5
  314. package/dist/index.d.ts.map +1 -1
  315. package/dist/index.js +19 -2
  316. package/dist/index.js.map +1 -1
  317. package/dist/memory/facade/Memory.d.ts.map +1 -1
  318. package/dist/memory/facade/Memory.js +8 -0
  319. package/dist/memory/facade/Memory.js.map +1 -1
  320. package/dist/memory/facade/types.d.ts +10 -0
  321. package/dist/memory/facade/types.d.ts.map +1 -1
  322. package/dist/memory/index.d.ts +15 -7
  323. package/dist/memory/index.d.ts.map +1 -1
  324. package/dist/memory/index.js +7 -0
  325. package/dist/memory/index.js.map +1 -1
  326. package/dist/memory/ingestion/DoclingLoader.d.ts +3 -3
  327. package/dist/memory/ingestion/DoclingLoader.d.ts.map +1 -1
  328. package/dist/memory/ingestion/DoclingLoader.js +12 -8
  329. package/dist/memory/ingestion/DoclingLoader.js.map +1 -1
  330. package/dist/memory/ingestion/FolderScanner.d.ts +7 -7
  331. package/dist/memory/ingestion/FolderScanner.d.ts.map +1 -1
  332. package/dist/memory/ingestion/FolderScanner.js +6 -6
  333. package/dist/memory/ingestion/FolderScanner.js.map +1 -1
  334. package/dist/memory/ingestion/LoaderRegistry.d.ts +8 -8
  335. package/dist/memory/ingestion/LoaderRegistry.d.ts.map +1 -1
  336. package/dist/memory/ingestion/LoaderRegistry.js +9 -11
  337. package/dist/memory/ingestion/LoaderRegistry.js.map +1 -1
  338. package/dist/memory/ingestion/MultimodalAggregator.d.ts +1 -1
  339. package/dist/memory/ingestion/MultimodalAggregator.js +1 -1
  340. package/dist/memory/ingestion/OcrPdfLoader.d.ts +2 -2
  341. package/dist/memory/ingestion/OcrPdfLoader.d.ts.map +1 -1
  342. package/dist/memory/ingestion/OcrPdfLoader.js +12 -8
  343. package/dist/memory/ingestion/OcrPdfLoader.js.map +1 -1
  344. package/dist/memory/ingestion/PdfLoader.d.ts +8 -8
  345. package/dist/memory/ingestion/PdfLoader.d.ts.map +1 -1
  346. package/dist/memory/ingestion/PdfLoader.js +13 -10
  347. package/dist/memory/ingestion/PdfLoader.js.map +1 -1
  348. package/dist/memory/io/MarkdownExporter.d.ts +1 -1
  349. package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
  350. package/dist/memory/io/MarkdownExporter.js +1 -1
  351. package/dist/memory/io/MarkdownExporter.js.map +1 -1
  352. package/dist/memory/observation/MemoryObserver.d.ts +63 -1
  353. package/dist/memory/observation/MemoryObserver.d.ts.map +1 -1
  354. package/dist/memory/observation/MemoryObserver.js +115 -4
  355. package/dist/memory/observation/MemoryObserver.js.map +1 -1
  356. package/dist/memory/observation/ObservationCompressor.d.ts +88 -0
  357. package/dist/memory/observation/ObservationCompressor.d.ts.map +1 -0
  358. package/dist/memory/observation/ObservationCompressor.js +207 -0
  359. package/dist/memory/observation/ObservationCompressor.js.map +1 -0
  360. package/dist/memory/observation/ObservationReflector.d.ts +82 -0
  361. package/dist/memory/observation/ObservationReflector.d.ts.map +1 -0
  362. package/dist/memory/observation/ObservationReflector.js +212 -0
  363. package/dist/memory/observation/ObservationReflector.js.map +1 -0
  364. package/dist/memory/observation/temporal.d.ts +54 -0
  365. package/dist/memory/observation/temporal.d.ts.map +1 -0
  366. package/dist/memory/observation/temporal.js +115 -0
  367. package/dist/memory/observation/temporal.js.map +1 -0
  368. package/dist/memory/tools/MemoryAddTool.d.ts +2 -2
  369. package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
  370. package/dist/memory/tools/MemoryAddTool.js +8 -3
  371. package/dist/memory/tools/MemoryAddTool.js.map +1 -1
  372. package/dist/memory/tools/MemorySearchTool.d.ts +3 -3
  373. package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
  374. package/dist/memory/tools/MemorySearchTool.js +11 -9
  375. package/dist/memory/tools/MemorySearchTool.js.map +1 -1
  376. package/dist/memory/tools/scopeContext.d.ts +11 -0
  377. package/dist/memory/tools/scopeContext.d.ts.map +1 -0
  378. package/dist/memory/tools/scopeContext.js +46 -0
  379. package/dist/memory/tools/scopeContext.js.map +1 -0
  380. package/dist/orchestration/builders/AgentGraph.d.ts +12 -11
  381. package/dist/orchestration/builders/AgentGraph.d.ts.map +1 -1
  382. package/dist/orchestration/builders/AgentGraph.js +12 -11
  383. package/dist/orchestration/builders/AgentGraph.js.map +1 -1
  384. package/dist/orchestration/builders/VoiceNodeBuilder.d.ts +82 -25
  385. package/dist/orchestration/builders/VoiceNodeBuilder.d.ts.map +1 -1
  386. package/dist/orchestration/builders/VoiceNodeBuilder.js +86 -26
  387. package/dist/orchestration/builders/VoiceNodeBuilder.js.map +1 -1
  388. package/dist/orchestration/builders/WorkflowBuilder.d.ts +1 -1
  389. package/dist/orchestration/builders/WorkflowBuilder.d.ts.map +1 -1
  390. package/dist/orchestration/builders/WorkflowBuilder.js +1 -1
  391. package/dist/orchestration/builders/WorkflowBuilder.js.map +1 -1
  392. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts +7 -54
  393. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts.map +1 -1
  394. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js +8 -56
  395. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js.map +1 -1
  396. package/dist/orchestration/events/GraphEvent.d.ts +67 -5
  397. package/dist/orchestration/events/GraphEvent.d.ts.map +1 -1
  398. package/dist/orchestration/events/GraphEvent.js.map +1 -1
  399. package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
  400. package/dist/orchestration/runtime/GraphRuntime.js +151 -1
  401. package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
  402. package/dist/orchestration/runtime/LoopController.d.ts +3 -3
  403. package/dist/orchestration/runtime/LoopController.d.ts.map +1 -1
  404. package/dist/orchestration/runtime/LoopController.js.map +1 -1
  405. package/dist/orchestration/runtime/StateManager.d.ts +3 -3
  406. package/dist/orchestration/runtime/StateManager.js +3 -3
  407. package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts +103 -26
  408. package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts.map +1 -1
  409. package/dist/orchestration/runtime/VoiceNodeExecutor.js +155 -43
  410. package/dist/orchestration/runtime/VoiceNodeExecutor.js.map +1 -1
  411. package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts +95 -33
  412. package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts.map +1 -1
  413. package/dist/orchestration/runtime/VoiceTransportAdapter.js +83 -29
  414. package/dist/orchestration/runtime/VoiceTransportAdapter.js.map +1 -1
  415. package/dist/orchestration/runtime/VoiceTurnCollector.d.ts +73 -20
  416. package/dist/orchestration/runtime/VoiceTurnCollector.d.ts.map +1 -1
  417. package/dist/orchestration/runtime/VoiceTurnCollector.js +84 -23
  418. package/dist/orchestration/runtime/VoiceTurnCollector.js.map +1 -1
  419. package/dist/query-router/KeywordFallback.d.ts +70 -0
  420. package/dist/query-router/KeywordFallback.d.ts.map +1 -0
  421. package/dist/query-router/KeywordFallback.js +132 -0
  422. package/dist/query-router/KeywordFallback.js.map +1 -0
  423. package/dist/query-router/QueryClassifier.d.ts +140 -0
  424. package/dist/query-router/QueryClassifier.d.ts.map +1 -0
  425. package/dist/query-router/QueryClassifier.js +223 -0
  426. package/dist/query-router/QueryClassifier.js.map +1 -0
  427. package/dist/query-router/QueryDispatcher.d.ts +139 -0
  428. package/dist/query-router/QueryDispatcher.d.ts.map +1 -0
  429. package/dist/query-router/QueryDispatcher.js +297 -0
  430. package/dist/query-router/QueryDispatcher.js.map +1 -0
  431. package/dist/query-router/QueryGenerator.d.ts +184 -0
  432. package/dist/query-router/QueryGenerator.d.ts.map +1 -0
  433. package/dist/query-router/QueryGenerator.js +241 -0
  434. package/dist/query-router/QueryGenerator.js.map +1 -0
  435. package/dist/query-router/QueryRouter.d.ts +292 -0
  436. package/dist/query-router/QueryRouter.d.ts.map +1 -0
  437. package/dist/query-router/QueryRouter.js +803 -0
  438. package/dist/query-router/QueryRouter.js.map +1 -0
  439. package/dist/query-router/TopicExtractor.d.ts +73 -0
  440. package/dist/query-router/TopicExtractor.d.ts.map +1 -0
  441. package/dist/query-router/TopicExtractor.js +95 -0
  442. package/dist/query-router/TopicExtractor.js.map +1 -0
  443. package/dist/query-router/index.d.ts +40 -0
  444. package/dist/query-router/index.d.ts.map +1 -0
  445. package/dist/query-router/index.js +46 -0
  446. package/dist/query-router/index.js.map +1 -0
  447. package/dist/query-router/types.d.ts +508 -0
  448. package/dist/query-router/types.d.ts.map +1 -0
  449. package/dist/query-router/types.js +39 -0
  450. package/dist/query-router/types.js.map +1 -0
  451. package/dist/rag/index.d.ts +5 -0
  452. package/dist/rag/index.d.ts.map +1 -1
  453. package/dist/rag/index.js +7 -0
  454. package/dist/rag/index.js.map +1 -1
  455. package/dist/rag/multimodal/LLMVisionAdapter.d.ts +43 -0
  456. package/dist/rag/multimodal/LLMVisionAdapter.d.ts.map +1 -0
  457. package/dist/rag/multimodal/LLMVisionAdapter.js +46 -0
  458. package/dist/rag/multimodal/LLMVisionAdapter.js.map +1 -0
  459. package/dist/rag/multimodal/MultimodalIndexer.d.ts +244 -0
  460. package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -0
  461. package/dist/rag/multimodal/MultimodalIndexer.js +411 -0
  462. package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -0
  463. package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts +448 -0
  464. package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts.map +1 -0
  465. package/dist/rag/multimodal/MultimodalMemoryBridge.js +941 -0
  466. package/dist/rag/multimodal/MultimodalMemoryBridge.js.map +1 -0
  467. package/dist/rag/multimodal/SpeechProviderAdapter.d.ts +139 -0
  468. package/dist/rag/multimodal/SpeechProviderAdapter.d.ts.map +1 -0
  469. package/dist/rag/multimodal/SpeechProviderAdapter.js +143 -0
  470. package/dist/rag/multimodal/SpeechProviderAdapter.js.map +1 -0
  471. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts +172 -0
  472. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts.map +1 -0
  473. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js +152 -0
  474. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js.map +1 -0
  475. package/dist/rag/multimodal/index.d.ts +44 -0
  476. package/dist/rag/multimodal/index.d.ts.map +1 -0
  477. package/dist/rag/multimodal/index.js +42 -0
  478. package/dist/rag/multimodal/index.js.map +1 -0
  479. package/dist/rag/multimodal/types.d.ts +276 -0
  480. package/dist/rag/multimodal/types.d.ts.map +1 -0
  481. package/dist/rag/multimodal/types.js +26 -0
  482. package/dist/rag/multimodal/types.js.map +1 -0
  483. package/dist/social-posting/SocialPostManager.d.ts +3 -3
  484. package/dist/social-posting/SocialPostManager.d.ts.map +1 -1
  485. package/dist/social-posting/SocialPostManager.js +3 -5
  486. package/dist/social-posting/SocialPostManager.js.map +1 -1
  487. package/dist/speech/FallbackProxy.d.ts +6 -6
  488. package/dist/speech/FallbackProxy.d.ts.map +1 -1
  489. package/dist/speech/FallbackProxy.js +3 -3
  490. package/dist/speech/FallbackProxy.js.map +1 -1
  491. package/dist/speech/SpeechProviderResolver.d.ts +8 -8
  492. package/dist/speech/SpeechProviderResolver.d.ts.map +1 -1
  493. package/dist/speech/SpeechProviderResolver.js +22 -11
  494. package/dist/speech/SpeechProviderResolver.js.map +1 -1
  495. package/dist/speech/SpeechRuntime.d.ts +1 -5
  496. package/dist/speech/SpeechRuntime.d.ts.map +1 -1
  497. package/dist/speech/SpeechRuntime.js +17 -9
  498. package/dist/speech/SpeechRuntime.js.map +1 -1
  499. package/dist/speech/providers/AssemblyAISTTProvider.d.ts +4 -4
  500. package/dist/speech/providers/AssemblyAISTTProvider.js +4 -4
  501. package/dist/speech/providers/AzureSpeechTTSProvider.d.ts +3 -3
  502. package/dist/speech/providers/AzureSpeechTTSProvider.js +2 -2
  503. package/dist/speech/providers/AzureSpeechTTSProvider.js.map +1 -1
  504. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +9 -9
  505. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts.map +1 -1
  506. package/dist/speech/providers/BuiltInAdaptiveVadProvider.js +5 -5
  507. package/dist/speech/providers/BuiltInAdaptiveVadProvider.js.map +1 -1
  508. package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts +2 -2
  509. package/dist/speech/providers/DeepgramBatchSTTProvider.js +2 -2
  510. package/dist/speech/providers/OpenAITextToSpeechProvider.d.ts +3 -3
  511. package/dist/speech/providers/OpenAITextToSpeechProvider.js +2 -2
  512. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts +1 -1
  513. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts.map +1 -1
  514. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js +1 -1
  515. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js.map +1 -1
  516. package/dist/voice/TelephonyStreamTransport.d.ts +6 -6
  517. package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -1
  518. package/dist/voice/TelephonyStreamTransport.js +5 -5
  519. package/dist/voice/TelephonyStreamTransport.js.map +1 -1
  520. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +4 -4
  521. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -1
  522. package/dist/voice-pipeline/AcousticEndpointDetector.js +4 -4
  523. package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -1
  524. package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +3 -3
  525. package/dist/voice-pipeline/HardCutBargeinHandler.js +3 -3
  526. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +3 -3
  527. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -1
  528. package/dist/voice-pipeline/HeuristicEndpointDetector.js +3 -3
  529. package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -1
  530. package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +5 -5
  531. package/dist/voice-pipeline/SoftFadeBargeinHandler.js +1 -1
  532. package/dist/voice-pipeline/VoiceInterruptError.d.ts +6 -6
  533. package/dist/voice-pipeline/VoiceInterruptError.d.ts.map +1 -1
  534. package/dist/voice-pipeline/VoiceInterruptError.js +4 -4
  535. package/dist/voice-pipeline/VoiceInterruptError.js.map +1 -1
  536. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +9 -9
  537. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -1
  538. package/dist/voice-pipeline/VoicePipelineOrchestrator.js +8 -8
  539. package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -1
  540. package/dist/voice-pipeline/WebRTCStreamTransport.d.ts +421 -0
  541. package/dist/voice-pipeline/WebRTCStreamTransport.d.ts.map +1 -0
  542. package/dist/voice-pipeline/WebRTCStreamTransport.js +573 -0
  543. package/dist/voice-pipeline/WebRTCStreamTransport.js.map +1 -0
  544. package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +8 -8
  545. package/dist/voice-pipeline/WebSocketStreamTransport.js +5 -5
  546. package/dist/voice-pipeline/index.d.ts +1 -0
  547. package/dist/voice-pipeline/index.d.ts.map +1 -1
  548. package/dist/voice-pipeline/index.js +2 -0
  549. package/dist/voice-pipeline/index.js.map +1 -1
  550. package/dist/voice-pipeline/types.d.ts +43 -43
  551. package/dist/voice-pipeline/types.d.ts.map +1 -1
  552. package/package.json +19 -1
@@ -32,37 +32,40 @@
32
32
  * - Ensuring adherence to TypeScript best practices, including strict type safety,
33
33
  * comprehensive JSDoc documentation, and robust error management.
34
34
  *
35
- * @see {@link ./interfaces/IAgentOS.ts} for the `IAgentOS` interface contract.
36
- * @see {@link ./AgentOSOrchestrator.ts} for the orchestration logic.
37
- * @see {@link ../cognitive_substrate/GMIManager.ts} for GMI lifecycle management.
38
- * @see {@link ../core/streaming/StreamingManager.ts} for real-time data streaming.
39
- * @see {@link @framers/agentos/utils/errors.ts} for custom error definitions.
35
+ * @see {@link IAgentOS} for the public interface contract.
36
+ * @see {@link AgentOSOrchestrator} for the orchestration logic.
37
+ * @see {@link GMIManager} for GMI lifecycle management.
38
+ * See `StreamingManager` for real-time data streaming internals.
39
+ * See `@framers/agentos/utils/errors` for shared error definitions.
40
40
  */
41
- import { AgentOSResponseChunkType } from './types/AgentOSResponse.js';
41
+ import { AGENTOS_PENDING_EXTERNAL_TOOL_REQUEST_METADATA_KEY } from './types/AgentOSExternalToolRequest.js';
42
+ import { AgentOSResponseChunkType, isActionableToolCallRequestChunk, } from './types/AgentOSResponse.js';
42
43
  import { AgentOSOrchestrator, } from './AgentOSOrchestrator.js';
43
44
  import { GMIManager } from '../cognitive_substrate/GMIManager.js';
44
- import { AIModelProviderManager } from '../core/llm/providers/AIModelProviderManager.js';
45
+ import { AIModelProviderManager, } from '../core/llm/providers/AIModelProviderManager.js';
45
46
  import { PromptEngine } from '../core/llm/PromptEngine.js';
46
47
  import { ToolOrchestrator } from '../core/tools/ToolOrchestrator.js';
47
48
  import { ToolExecutor } from '../core/tools/ToolExecutor.js';
48
49
  import { ToolPermissionManager } from '../core/tools/permissions/ToolPermissionManager.js';
49
50
  import { LLMUtilityAI } from '../core/ai_utilities/LLMUtilityAI.js';
50
- import { ConversationManager } from '../core/conversation/ConversationManager.js';
51
- import { StreamingManager } from '../core/streaming/StreamingManager.js';
51
+ import { ConversationManager, } from '../core/conversation/ConversationManager.js';
52
+ import { StreamingManager, } from '../core/streaming/StreamingManager.js';
52
53
  import { GMIError, GMIErrorCode } from '../utils/errors.js';
53
54
  import { uuidv4 } from '../utils/uuid.js';
54
55
  import { createLogger } from '../logging/loggerFactory.js';
55
- import { configureAgentOSObservability } from '../core/observability/otel.js';
56
+ import { configureAgentOSObservability, } from '../core/observability/otel.js';
56
57
  import { GuardrailAction } from '../core/guardrails/IGuardrailService.js';
57
58
  import { evaluateInputGuardrails, createGuardrailBlockedStream, wrapOutputGuardrails, } from '../core/guardrails/guardrailDispatcher.js';
58
59
  import { ExtensionManager, EXTENSION_KIND_GUARDRAIL, EXTENSION_KIND_MESSAGING_CHANNEL, EXTENSION_KIND_PROVENANCE, EXTENSION_KIND_TOOL, EXTENSION_KIND_WORKFLOW, } from '../extensions/index.js';
59
60
  import { createMemoryToolsPack } from '../memory/extension/MemoryToolsExtension.js';
60
61
  import { createStandaloneMemoryLongTermRetriever, createStandaloneMemoryRollingSummarySink, } from '../memory/integration/StandaloneMemoryBridge.js';
62
+ import { listExternalToolDefinitionsForLLM, normalizeExternalToolRegistry, } from './externalToolRegistry.js';
63
+ import { adaptTools, adaptToolsToMap } from './toolAdapter.js';
61
64
  import { createSchemaOnDemandPack } from '../extensions/packs/schema-on-demand-pack.js';
62
65
  import { WorkflowRuntime } from '../core/workflows/runtime/WorkflowRuntime.js';
63
66
  import { AgencyRegistry } from '../core/agency/AgencyRegistry.js';
64
67
  import { AgentOSTurnPlanner, } from '../core/orchestration/TurnPlanner.js';
65
- import { CapabilityDiscoveryEngine, createDiscoverCapabilitiesTool, } from '../discovery/index.js';
68
+ import { CapabilityDiscoveryEngine, createDiscoverCapabilitiesTool } from '../discovery/index.js';
66
69
  import { EmbeddingManager } from '../rag/EmbeddingManager.js';
67
70
  import { InMemoryVectorStore } from '../rag/implementations/vector_stores/InMemoryVectorStore.js';
68
71
  import { WorkflowEngine } from '../core/workflows/WorkflowEngine.js';
@@ -93,7 +96,9 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
93
96
  await hooks.onAfterWrite?.(context, result);
94
97
  }
95
98
  catch (error) {
96
- options?.logger?.error?.('[AgentOS][StorageHooks] onAfterWrite failed', { error: error?.message ?? error });
99
+ options?.logger?.error?.('[AgentOS][StorageHooks] onAfterWrite failed', {
100
+ error: error?.message ?? error,
101
+ });
97
102
  }
98
103
  return result;
99
104
  };
@@ -108,7 +113,10 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
108
113
  run: runWithHooks,
109
114
  transaction: async (fn) => {
110
115
  return adapter.transaction(async (trx) => {
111
- const wrappedTrx = wrapStorageAdapterWithWriteHooks(trx, hooks, { inTransaction: true, logger: options?.logger });
116
+ const wrappedTrx = wrapStorageAdapterWithWriteHooks(trx, hooks, {
117
+ inTransaction: true,
118
+ logger: options?.logger,
119
+ });
112
120
  return fn(wrappedTrx);
113
121
  });
114
122
  },
@@ -128,7 +136,10 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
128
136
  catch (error) {
129
137
  results.push({ changes: 0, lastInsertRowid: null });
130
138
  failed += 1;
131
- errors.push({ index: i, error: error instanceof Error ? error : new Error(String(error)) });
139
+ errors.push({
140
+ index: i,
141
+ error: error instanceof Error ? error : new Error(String(error)),
142
+ });
132
143
  }
133
144
  }
134
145
  return {
@@ -139,7 +150,7 @@ function wrapStorageAdapterWithWriteHooks(adapter, hooks, options) {
139
150
  };
140
151
  }
141
152
  : undefined,
142
- prepare: adapter.prepare ? ((statement) => adapter.prepare(statement)) : undefined,
153
+ prepare: adapter.prepare ? (statement) => adapter.prepare(statement) : undefined,
143
154
  };
144
155
  }
145
156
  // Re-export from extracted module
@@ -191,8 +202,15 @@ export class AgentOS {
191
202
  }
192
203
  this.validateConfiguration(config);
193
204
  const resolvedConfig = this.resolveStandaloneMemoryConfig(config);
205
+ const normalizedConfigTools = adaptToolsToMap(resolvedConfig.tools);
206
+ const normalizedExternalTools = normalizeExternalToolRegistry(resolvedConfig.externalTools);
207
+ const { externalTools: _externalTools, tools: _tools, ...resolvedConfigWithoutNormalizedTools } = resolvedConfig;
194
208
  // Make the configuration immutable after validation to prevent runtime changes.
195
- this.config = Object.freeze({ ...resolvedConfig });
209
+ this.config = Object.freeze({
210
+ ...resolvedConfigWithoutNormalizedTools,
211
+ ...(Object.keys(normalizedConfigTools).length > 0 ? { tools: normalizedConfigTools } : {}),
212
+ ...(normalizedExternalTools ? { externalTools: normalizedExternalTools } : {}),
213
+ });
196
214
  this.configureManagedStandaloneMemory();
197
215
  // Observability is opt-in (config + env). Safe no-op if OTEL is not installed by host.
198
216
  configureAgentOSObservability(this.config.observability);
@@ -251,12 +269,16 @@ export class AgentOS {
251
269
  .getActive('provenance-system');
252
270
  const provenanceHooks = provenanceDescriptor?.payload?.result?.hooks;
253
271
  if (provenanceHooks) {
254
- storageAdapter = wrapStorageAdapterWithWriteHooks(storageAdapter, provenanceHooks, { logger: this.logger });
272
+ storageAdapter = wrapStorageAdapterWithWriteHooks(storageAdapter, provenanceHooks, {
273
+ logger: this.logger,
274
+ });
255
275
  this.logger.info('[AgentOS][Provenance] Storage write hooks enabled');
256
276
  }
257
277
  }
258
278
  catch (error) {
259
- this.logger.warn?.('[AgentOS][Provenance] Failed to apply storage write hooks', { error: error?.message ?? error });
279
+ this.logger.warn?.('[AgentOS][Provenance] Failed to apply storage write hooks', {
280
+ error: error?.message ?? error,
281
+ });
260
282
  }
261
283
  }
262
284
  try {
@@ -297,9 +319,7 @@ export class AgentOS {
297
319
  }
298
320
  const response = await provider.generateCompletion(model, [{ role: 'user', content: prompt }], {});
299
321
  const firstContent = response.choices?.[0]?.message?.content ?? '';
300
- return typeof firstContent === 'string'
301
- ? firstContent
302
- : JSON.stringify(firstContent);
322
+ return typeof firstContent === 'string' ? firstContent : JSON.stringify(firstContent);
303
323
  },
304
324
  storageAdapter: storageAdapter
305
325
  ? {
@@ -311,8 +331,15 @@ export class AgentOS {
311
331
  : undefined,
312
332
  }
313
333
  : undefined;
314
- await this.toolOrchestrator.initialize(this.config.toolOrchestratorConfig, this.toolPermissionManager, this.toolExecutor, undefined, this.config.hitlManager, emergentOptions);
334
+ const initialConfigTools = adaptTools(this.config.tools);
335
+ await this.toolOrchestrator.initialize(this.config.toolOrchestratorConfig, this.toolPermissionManager, this.toolExecutor, initialConfigTools, this.config.hitlManager, emergentOptions);
315
336
  console.log('AgentOS: ToolOrchestrator initialized.');
337
+ if (initialConfigTools.length > 0) {
338
+ this.logger.info('[AgentOS] Config tools registered', {
339
+ toolCount: initialConfigTools.length,
340
+ toolNames: initialConfigTools.map((tool) => tool.name),
341
+ });
342
+ }
316
343
  await this.initializeTurnPlanner();
317
344
  if (this.capabilityDiscoveryEngine && this.toolOrchestrator.setEmergentDiscoveryIndexer) {
318
345
  this.toolOrchestrator.setEmergentDiscoveryIndexer(async (tools) => {
@@ -356,9 +383,13 @@ export class AgentOS {
356
383
  }
357
384
  catch (error) {
358
385
  this.logger.error('AgentOS initialization failed', { error });
359
- const err = error instanceof GMIError ? error : new GMIError(error instanceof Error ? error.message : 'Unknown error during AgentOS initialization', GMIErrorCode.GMI_INITIALIZATION_ERROR, // Corrected error code
360
- error // details
361
- );
386
+ const err = error instanceof GMIError
387
+ ? error
388
+ : new GMIError(error instanceof Error
389
+ ? error.message
390
+ : 'Unknown error during AgentOS initialization', GMIErrorCode.GMI_INITIALIZATION_ERROR, // Corrected error code
391
+ error // details
392
+ );
362
393
  console.error('AgentOS: Critical failure during core component initialization:', err.toJSON());
363
394
  throw AgentOSServiceError.wrap(err, err.code, 'AgentOS initialization failed', 'AgentOS.initialize');
364
395
  }
@@ -384,9 +415,15 @@ export class AgentOS {
384
415
  else {
385
416
  // Check for each required sub-configuration
386
417
  const requiredConfigs = [
387
- 'gmiManagerConfig', 'orchestratorConfig', 'promptEngineConfig',
388
- 'toolOrchestratorConfig', 'toolPermissionManagerConfig', 'conversationManagerConfig',
389
- 'streamingManagerConfig', 'modelProviderManagerConfig', 'defaultPersonaId'
418
+ 'gmiManagerConfig',
419
+ 'orchestratorConfig',
420
+ 'promptEngineConfig',
421
+ 'toolOrchestratorConfig',
422
+ 'toolPermissionManagerConfig',
423
+ 'conversationManagerConfig',
424
+ 'streamingManagerConfig',
425
+ 'modelProviderManagerConfig',
426
+ 'defaultPersonaId',
390
427
  ];
391
428
  for (const key of requiredConfigs) {
392
429
  if (!config[key]) {
@@ -436,7 +473,9 @@ export class AgentOS {
436
473
  if (missingParams.length > 0) {
437
474
  const message = `AgentOS Configuration Error: Missing essential parameters: ${missingParams.join(', ')}.`;
438
475
  console.error(message);
439
- throw new AgentOSServiceError(message, GMIErrorCode.CONFIGURATION_ERROR, { missingParameters: missingParams });
476
+ throw new AgentOSServiceError(message, GMIErrorCode.CONFIGURATION_ERROR, {
477
+ missingParameters: missingParams,
478
+ });
440
479
  }
441
480
  }
442
481
  async registerConfigGuardrailService(context) {
@@ -466,14 +505,10 @@ export class AgentOS {
466
505
  };
467
506
  }
468
507
  if (!resolved.longTermMemoryRetriever && standalone.longTermRetriever) {
469
- resolved.longTermMemoryRetriever = createStandaloneMemoryLongTermRetriever(memory, standalone.longTermRetriever === true
470
- ? undefined
471
- : standalone.longTermRetriever);
508
+ resolved.longTermMemoryRetriever = createStandaloneMemoryLongTermRetriever(memory, standalone.longTermRetriever === true ? undefined : standalone.longTermRetriever);
472
509
  }
473
510
  if (!resolved.rollingSummaryMemorySink && standalone.rollingSummarySink) {
474
- resolved.rollingSummaryMemorySink = createStandaloneMemoryRollingSummarySink(memory, standalone.rollingSummarySink === true
475
- ? undefined
476
- : standalone.rollingSummarySink);
511
+ resolved.rollingSummaryMemorySink = createStandaloneMemoryRollingSummarySink(memory, standalone.rollingSummarySink === true ? undefined : standalone.rollingSummarySink);
477
512
  }
478
513
  return resolved;
479
514
  }
@@ -536,7 +571,8 @@ export class AgentOS {
536
571
  payload: descriptor.payload,
537
572
  });
538
573
  }
539
- else if (event.type === 'descriptor:deactivated' && event.kind === EXTENSION_KIND_WORKFLOW) {
574
+ else if (event.type === 'descriptor:deactivated' &&
575
+ event.kind === EXTENSION_KIND_WORKFLOW) {
540
576
  const descriptor = event.descriptor;
541
577
  await this.handleWorkflowDescriptorDeactivated({
542
578
  id: descriptor.id,
@@ -752,11 +788,17 @@ export class AgentOS {
752
788
  .trim()
753
789
  .replace(/\b\w/g, (c) => c.toUpperCase());
754
790
  const toolRegistry = this.extensionManager.getRegistry(EXTENSION_KIND_TOOL);
755
- const tools = toolRegistry
791
+ const runtimeTools = new Map();
792
+ for (const tool of toolRegistry
756
793
  .listActive()
757
794
  .map((descriptor) => descriptor.payload)
758
- .filter(Boolean)
759
- .map((tool) => ({
795
+ .filter(Boolean)) {
796
+ runtimeTools.set(tool.name, tool);
797
+ }
798
+ for (const tool of adaptTools(this.config.tools)) {
799
+ runtimeTools.set(tool.name, tool);
800
+ }
801
+ const tools = Array.from(runtimeTools.values()).map((tool) => ({
760
802
  id: tool.id || `tool:${tool.name}`,
761
803
  name: tool.name,
762
804
  displayName: tool.displayName || titleCase(tool.name),
@@ -777,13 +819,13 @@ export class AgentOS {
777
819
  available: true,
778
820
  }));
779
821
  const workflowRegistry = this.extensionManager.getRegistry(EXTENSION_KIND_WORKFLOW);
780
- const workflowExtensions = workflowRegistry.listActive().map((descriptor) => ({
822
+ const workflowExtensions = workflowRegistry
823
+ .listActive()
824
+ .map((descriptor) => ({
781
825
  id: `workflow:${descriptor.payload.definition.id}`,
782
826
  name: descriptor.payload.definition.id,
783
- displayName: descriptor.payload.definition.displayName ||
784
- titleCase(descriptor.payload.definition.id),
785
- description: descriptor.payload.definition.description ||
786
- 'Workflow automation capability',
827
+ displayName: descriptor.payload.definition.displayName || titleCase(descriptor.payload.definition.id),
828
+ description: descriptor.payload.definition.description || 'Workflow automation capability',
787
829
  category: 'workflow',
788
830
  requiredSecrets: descriptor.payload.definition.metadata?.requiredSecrets,
789
831
  available: true,
@@ -803,11 +845,7 @@ export class AgentOS {
803
845
  }));
804
846
  return {
805
847
  tools,
806
- extensions: [
807
- ...packExtensions,
808
- ...workflowExtensions,
809
- ...(overrides?.extensions ?? []),
810
- ],
848
+ extensions: [...packExtensions, ...workflowExtensions, ...(overrides?.extensions ?? [])],
811
849
  channels: [...channels, ...(overrides?.channels ?? [])],
812
850
  skills: overrides?.skills,
813
851
  manifests: overrides?.manifests,
@@ -839,8 +877,7 @@ export class AgentOS {
839
877
  const defaultProviderId = this.config.gmiManagerConfig.defaultGMIBaseConfigDefaults?.defaultLlmProviderId ||
840
878
  this.config.modelProviderManagerConfig.providers[0]?.providerId ||
841
879
  'openai';
842
- const defaultModelId = this.config.gmiManagerConfig.defaultGMIBaseConfigDefaults?.defaultLlmModelId ||
843
- 'gpt-4o';
880
+ const defaultModelId = this.config.gmiManagerConfig.defaultGMIBaseConfigDefaults?.defaultLlmModelId || 'gpt-4o';
844
881
  await fallbackUtility.initialize({
845
882
  llmProviderManager: this.modelProviderManager,
846
883
  defaultProviderId,
@@ -960,6 +997,14 @@ export class AgentOS {
960
997
  this.ensureInitialized();
961
998
  return this.toolOrchestrator;
962
999
  }
1000
+ getExternalToolRegistry() {
1001
+ this.ensureInitialized();
1002
+ return this.config.externalTools;
1003
+ }
1004
+ listExternalToolsForLLM() {
1005
+ this.ensureInitialized();
1006
+ return listExternalToolDefinitionsForLLM(this.config.externalTools);
1007
+ }
963
1008
  getModelProviderManager() {
964
1009
  this.ensureInitialized();
965
1010
  return this.modelProviderManager;
@@ -970,12 +1015,12 @@ export class AgentOS {
970
1015
  *
971
1016
  * This method orchestrates:
972
1017
  * 1. Retrieval or creation of a {@link StreamId} via the {@link AgentOSOrchestrator}.
973
- * 2. Registration of a temporary, request-scoped stream client to the {@link StreamingManager}.
1018
+ * 2. Registration of a temporary, request-scoped stream client to the internal streaming manager.
974
1019
  * 3. Yielding of {@link AgentOSResponse} chunks received by this client.
975
1020
  * 4. Ensuring the temporary client is deregistered upon completion or error.
976
1021
  *
977
1022
  * The underlying {@link AgentOSOrchestrator} handles the GMI interaction and pushes
978
- * chunks to the {@link StreamingManager}. This method acts as the bridge to make these
1023
+ * chunks to the internal streaming manager. This method acts as the bridge to make these
979
1024
  * chunks available as an `AsyncGenerator` to the caller (e.g., an API route handler).
980
1025
  *
981
1026
  * @public
@@ -1038,7 +1083,9 @@ export class AgentOS {
1038
1083
  personaDefault: undefined,
1039
1084
  configDefault: this.config.languageConfig.defaultLanguage,
1040
1085
  supported: this.config.languageConfig.supportedLanguages,
1041
- fallbackChain: this.config.languageConfig.fallbackLanguages || [this.config.languageConfig.defaultLanguage],
1086
+ fallbackChain: this.config.languageConfig.fallbackLanguages || [
1087
+ this.config.languageConfig.defaultLanguage,
1088
+ ],
1042
1089
  preferSourceLanguageResponses: this.config.languageConfig.preferSourceLanguageResponses,
1043
1090
  targetLanguage: orchestratorInput.targetLanguage,
1044
1091
  });
@@ -1063,7 +1110,10 @@ export class AgentOS {
1063
1110
  });
1064
1111
  // The orchestrator creates/manages the actual stream and starts pushing chunks to StreamingManager.
1065
1112
  // We get the streamId it uses so our bridge can listen to it.
1066
- streamIdToListen = await this.agentOSOrchestrator.orchestrateTurn({ ...orchestratorInput, languageNegotiation });
1113
+ streamIdToListen = await this.agentOSOrchestrator.orchestrateTurn({
1114
+ ...orchestratorInput,
1115
+ languageNegotiation,
1116
+ });
1067
1117
  await this.streamingManager.registerClient(streamIdToListen, bridge);
1068
1118
  this.logger.debug?.('Bridge registered', { bridgeId: bridge.id, streamId: streamIdToListen });
1069
1119
  const guardrailWrappedStream = wrapOutputGuardrails(guardrailServices, guardrailContext, bridge.consume(), {
@@ -1076,7 +1126,9 @@ export class AgentOS {
1076
1126
  try {
1077
1127
  await this.startWorkflow(wfRequest.definitionId, orchestratorInput, {
1078
1128
  workflowId: wfRequest.workflowId,
1079
- conversationId: wfRequest.conversationId ?? orchestratorInput.conversationId ?? orchestratorInput.sessionId,
1129
+ conversationId: wfRequest.conversationId ??
1130
+ orchestratorInput.conversationId ??
1131
+ orchestratorInput.sessionId,
1080
1132
  createdByUserId: orchestratorInput.userId,
1081
1133
  context: wfRequest.context,
1082
1134
  roleAssignments: wfRequest.roleAssignments,
@@ -1099,6 +1151,9 @@ export class AgentOS {
1099
1151
  chunk.metadata.language = languageNegotiation;
1100
1152
  }
1101
1153
  yield chunk;
1154
+ if (isActionableToolCallRequestChunk(chunk)) {
1155
+ break;
1156
+ }
1102
1157
  if (chunk.isFinal && chunk.type !== AgentOSResponseChunkType.ERROR) {
1103
1158
  // If a non-error chunk is final, the primary interaction part might be done.
1104
1159
  // The stream itself might remain open for a short while for cleanup or late messages.
@@ -1110,7 +1165,10 @@ export class AgentOS {
1110
1165
  catch (error) {
1111
1166
  const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.GMI_PROCESSING_ERROR, // Default code for facade-level processing errors
1112
1167
  `Error during AgentOS.processRequest for user '${orchestratorInput.userId}'`, 'AgentOS.processRequest');
1113
- this.logger.error('processRequest failed', { error: serviceError, streamId: streamIdToListen });
1168
+ this.logger.error('processRequest failed', {
1169
+ error: serviceError,
1170
+ streamId: streamIdToListen,
1171
+ });
1114
1172
  const errorChunk = {
1115
1173
  type: AgentOSResponseChunkType.ERROR,
1116
1174
  streamId: streamIdToListen || baseStreamDebugId, // Use known streamId if available
@@ -1130,7 +1188,9 @@ export class AgentOS {
1130
1188
  .getActiveStreamIds()
1131
1189
  .catch(() => []);
1132
1190
  if (activeStreamIds.includes(streamIdToListen)) {
1133
- await this.streamingManager.deregisterClient(streamIdToListen, bridge.id).catch((deregError) => {
1191
+ await this.streamingManager
1192
+ .deregisterClient(streamIdToListen, bridge.id)
1193
+ .catch((deregError) => {
1134
1194
  this.logger.warn('Failed to deregister bridge client', {
1135
1195
  bridgeId: bridge.id,
1136
1196
  streamId: streamIdToListen,
@@ -1169,20 +1229,37 @@ export class AgentOS {
1169
1229
  * Errors during GMI processing are yielded as `AgentOSErrorChunk`s.
1170
1230
  */
1171
1231
  async *handleToolResult(streamId, toolCallId, toolName, toolOutput, isSuccess, errorMessage) {
1232
+ yield* this.handleToolResults(streamId, [
1233
+ {
1234
+ toolCallId,
1235
+ toolName,
1236
+ toolOutput,
1237
+ isSuccess,
1238
+ errorMessage,
1239
+ },
1240
+ ]);
1241
+ }
1242
+ async *handleToolResults(streamId, toolResults) {
1172
1243
  this.ensureInitialized();
1244
+ if (!Array.isArray(toolResults) || toolResults.length === 0) {
1245
+ throw new AgentOSServiceError('At least one tool result is required to continue the stream.', GMIErrorCode.VALIDATION_ERROR, { streamId }, 'AgentOS.handleToolResults');
1246
+ }
1173
1247
  // Create a new bridge client for this specific tool result handling phase
1174
- const bridge = new AsyncStreamClientBridge(`client-toolRes-${streamId.substring(0, 8)}-${toolCallId.substring(0, 8)}`);
1248
+ const bridge = new AsyncStreamClientBridge(`client-toolRes-${streamId.substring(0, 8)}-${toolResults[0].toolCallId.substring(0, 8)}`);
1175
1249
  try {
1176
- console.log(`AgentOS.handleToolResult: Stream '${streamId}', ToolCall '${toolCallId}'. Orchestrator will push new chunks to this stream.`);
1250
+ console.log(`AgentOS.handleToolResults: Stream '${streamId}', ${toolResults.length} tool result(s). Orchestrator will push new chunks to this stream.`);
1177
1251
  // Register the bridge client to listen for new chunks on the existing stream
1178
1252
  await this.streamingManager.registerClient(streamId, bridge);
1179
- console.log(`AgentOS.handleToolResult: Bridge client ${bridge.id} registered to stream ${streamId}.`);
1180
- // This call is `async Promise<void>`; it triggers the orchestrator to process the tool result
1253
+ console.log(`AgentOS.handleToolResults: Bridge client ${bridge.id} registered to stream ${streamId}.`);
1254
+ // This call is `async Promise<void>`; it triggers the orchestrator to process the tool result(s)
1181
1255
  // and push new chunks to the StreamingManager for the given streamId.
1182
- await this.agentOSOrchestrator.orchestrateToolResult(streamId, toolCallId, toolName, toolOutput, isSuccess, errorMessage);
1256
+ await this.agentOSOrchestrator.orchestrateToolResults(streamId, toolResults);
1183
1257
  // Yield new chunks received by our bridge client on the same stream
1184
1258
  for await (const chunk of bridge.consume()) {
1185
1259
  yield chunk;
1260
+ if (isActionableToolCallRequestChunk(chunk)) {
1261
+ break;
1262
+ }
1186
1263
  if (chunk.isFinal && chunk.type !== AgentOSResponseChunkType.ERROR) {
1187
1264
  break;
1188
1265
  }
@@ -1190,7 +1267,7 @@ export class AgentOS {
1190
1267
  }
1191
1268
  catch (error) {
1192
1269
  const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.TOOL_ERROR, // Default code for facade-level tool result errors
1193
- `Error during AgentOS.handleToolResult for stream '${streamId}', tool '${toolName}'`, 'AgentOS.handleToolResult');
1270
+ `Error during AgentOS.handleToolResults for stream '${streamId}'`, 'AgentOS.handleToolResults');
1194
1271
  console.error(`${serviceError.name}: ${serviceError.message}`, serviceError.toJSON());
1195
1272
  const errorChunk = {
1196
1273
  type: AgentOSResponseChunkType.ERROR,
@@ -1206,14 +1283,13 @@ export class AgentOS {
1206
1283
  yield errorChunk;
1207
1284
  }
1208
1285
  finally {
1209
- console.log(`AgentOS.handleToolResult: Deregistering bridge client ${bridge.id} from stream ${streamId}.`);
1286
+ console.log(`AgentOS.handleToolResults: Deregistering bridge client ${bridge.id} from stream ${streamId}.`);
1210
1287
  const activeStreamIds = await this.streamingManager
1211
1288
  .getActiveStreamIds()
1212
1289
  .catch(() => []);
1213
1290
  if (activeStreamIds.includes(streamId)) {
1214
- await this.streamingManager.deregisterClient(streamId, bridge.id)
1215
- .catch((deregError) => {
1216
- console.error(`AgentOS.handleToolResult: Error deregistering bridge client ${bridge.id}: ${deregError.message}`);
1291
+ await this.streamingManager.deregisterClient(streamId, bridge.id).catch((deregError) => {
1292
+ console.error(`AgentOS.handleToolResults: Error deregistering bridge client ${bridge.id}: ${deregError.message}`);
1217
1293
  });
1218
1294
  }
1219
1295
  bridge.forceClose();
@@ -1276,12 +1352,12 @@ export class AgentOS {
1276
1352
  */
1277
1353
  async listAvailablePersonas(userId) {
1278
1354
  this.ensureInitialized();
1279
- console.log(`AgentOS.listAvailablePersonas: Request for UserID: '${userId || "anonymous/system"}'.`);
1355
+ console.log(`AgentOS.listAvailablePersonas: Request for UserID: '${userId || 'anonymous/system'}'.`);
1280
1356
  try {
1281
1357
  return await this.gmiManager.listAvailablePersonas(userId);
1282
1358
  }
1283
1359
  catch (error) {
1284
- throw AgentOSServiceError.wrap(error, GMIErrorCode.PERSONA_LOAD_ERROR, "Failed to list available personas", "AgentOS.listAvailablePersonas");
1360
+ throw AgentOSServiceError.wrap(error, GMIErrorCode.PERSONA_LOAD_ERROR, 'Failed to list available personas', 'AgentOS.listAvailablePersonas');
1285
1361
  }
1286
1362
  }
1287
1363
  /**
@@ -1324,7 +1400,73 @@ export class AgentOS {
1324
1400
  return null; // Conversation not found
1325
1401
  }
1326
1402
  catch (error) {
1327
- throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_CONTEXT_ERROR, `Failed to retrieve conversation history for ID '${conversationId}'`, "AgentOS.getConversationHistory");
1403
+ throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_CONTEXT_ERROR, `Failed to retrieve conversation history for ID '${conversationId}'`, 'AgentOS.getConversationHistory');
1404
+ }
1405
+ }
1406
+ async getPendingExternalToolRequest(conversationId, userId) {
1407
+ this.ensureInitialized();
1408
+ const context = await this.getConversationHistory(conversationId, userId);
1409
+ if (!context) {
1410
+ return null;
1411
+ }
1412
+ const pendingRequest = context.getMetadata(AGENTOS_PENDING_EXTERNAL_TOOL_REQUEST_METADATA_KEY);
1413
+ return pendingRequest ?? null;
1414
+ }
1415
+ async *resumeExternalToolRequest(pendingRequest, toolResults, options = {}) {
1416
+ this.ensureInitialized();
1417
+ let streamIdToListen;
1418
+ let shouldDeregisterBridge = false;
1419
+ const bridge = new AsyncStreamClientBridge(`client-resumeToolReq-${pendingRequest.conversationId}-${Date.now()}`);
1420
+ try {
1421
+ streamIdToListen = await this.agentOSOrchestrator.orchestrateResumedToolResults(pendingRequest, toolResults, options);
1422
+ await this.streamingManager.registerClient(streamIdToListen, bridge);
1423
+ for await (const chunk of bridge.consume()) {
1424
+ yield chunk;
1425
+ if (isActionableToolCallRequestChunk(chunk)) {
1426
+ shouldDeregisterBridge = true;
1427
+ break;
1428
+ }
1429
+ if (chunk.isFinal && chunk.type !== AgentOSResponseChunkType.ERROR) {
1430
+ break;
1431
+ }
1432
+ }
1433
+ }
1434
+ catch (error) {
1435
+ const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.TOOL_ERROR, `Error during AgentOS.resumeExternalToolRequest for conversation '${pendingRequest.conversationId}'`, 'AgentOS.resumeExternalToolRequest');
1436
+ console.error(`${serviceError.name}: ${serviceError.message}`, serviceError.toJSON());
1437
+ const errorChunk = {
1438
+ type: AgentOSResponseChunkType.ERROR,
1439
+ streamId: streamIdToListen || pendingRequest.streamId,
1440
+ gmiInstanceId: serviceError.details?.gmiInstanceId ||
1441
+ pendingRequest.gmiInstanceId ||
1442
+ 'agentos_facade_resume_error',
1443
+ personaId: serviceError.details?.personaId || pendingRequest.personaId || 'unknown_persona',
1444
+ isFinal: true,
1445
+ timestamp: new Date().toISOString(),
1446
+ code: serviceError.code.toString(),
1447
+ message: serviceError.message,
1448
+ details: serviceError.details || { name: serviceError.name, stack: serviceError.stack },
1449
+ };
1450
+ yield errorChunk;
1451
+ }
1452
+ finally {
1453
+ if (streamIdToListen && shouldDeregisterBridge) {
1454
+ const activeStreamIds = await this.streamingManager
1455
+ .getActiveStreamIds()
1456
+ .catch(() => []);
1457
+ if (activeStreamIds.includes(streamIdToListen)) {
1458
+ await this.streamingManager
1459
+ .deregisterClient(streamIdToListen, bridge.id)
1460
+ .catch((deregError) => {
1461
+ this.logger.warn('Failed to deregister resume bridge client', {
1462
+ bridgeId: bridge.id,
1463
+ streamId: streamIdToListen,
1464
+ error: deregError.message,
1465
+ });
1466
+ });
1467
+ }
1468
+ }
1469
+ bridge.forceClose();
1328
1470
  }
1329
1471
  }
1330
1472
  /**
@@ -1346,14 +1488,14 @@ export class AgentOS {
1346
1488
  this.ensureInitialized();
1347
1489
  // Basic authorization checks for the user can be performed here.
1348
1490
  // E.g., await this.authService.validateUserExists(userId);
1349
- console.log(`AgentOS.receiveFeedback: UserID '${userId}', SessionID '${sessionId}', PersonaID '${personaId}'. Payload:`, JSON.stringify(feedbackPayload).substring(0, 200) + "...");
1491
+ console.log(`AgentOS.receiveFeedback: UserID '${userId}', SessionID '${sessionId}', PersonaID '${personaId}'. Payload:`, JSON.stringify(feedbackPayload).substring(0, 200) + '...');
1350
1492
  try {
1351
1493
  // Delegate feedback processing, typically to GMIManager or directly to the relevant GMI.
1352
1494
  await this.gmiManager.processUserFeedback(userId, sessionId, personaId, feedbackPayload);
1353
1495
  console.info(`AgentOS.receiveFeedback: Feedback processed successfully for UserID '${userId}', PersonaID '${personaId}'.`);
1354
1496
  }
1355
1497
  catch (error) {
1356
- throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_FEEDBACK_ERROR, "Failed to process user feedback", "AgentOS.receiveFeedback");
1498
+ throw AgentOSServiceError.wrap(error, GMIErrorCode.GMI_FEEDBACK_ERROR, 'Failed to process user feedback', 'AgentOS.receiveFeedback');
1357
1499
  }
1358
1500
  }
1359
1501
  /**
@@ -1402,7 +1544,8 @@ export class AgentOS {
1402
1544
  await this.streamingManager.shutdown();
1403
1545
  console.log('AgentOS: StreamingManager shut down.');
1404
1546
  }
1405
- if (this.conversationManager?.shutdown && typeof this.conversationManager.shutdown === 'function') {
1547
+ if (this.conversationManager?.shutdown &&
1548
+ typeof this.conversationManager.shutdown === 'function') {
1406
1549
  await this.conversationManager.shutdown();
1407
1550
  console.log('AgentOS: ConversationManager shut down.');
1408
1551
  }
@@ -1423,7 +1566,8 @@ export class AgentOS {
1423
1566
  await this.retrievalAugmentor.shutdown();
1424
1567
  console.log('AgentOS: RetrievalAugmentor shut down.');
1425
1568
  }
1426
- if (this.manageRetrievalAugmentorLifecycle && this.ragVectorStoreManager?.shutdownAllProviders) {
1569
+ if (this.manageRetrievalAugmentorLifecycle &&
1570
+ this.ragVectorStoreManager?.shutdownAllProviders) {
1427
1571
  await this.ragVectorStoreManager.shutdownAllProviders();
1428
1572
  console.log('AgentOS: VectorStore providers shut down.');
1429
1573
  }
@@ -1451,7 +1595,7 @@ export class AgentOS {
1451
1595
  catch (error) {
1452
1596
  // Even if one component fails to shut down, attempt to log and continue if possible,
1453
1597
  // but report the overall failure.
1454
- const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.GMI_SHUTDOWN_ERROR, "Error during AgentOS service shutdown sequence", "AgentOS.shutdown");
1598
+ const serviceError = AgentOSServiceError.wrap(error, GMIErrorCode.GMI_SHUTDOWN_ERROR, 'Error during AgentOS service shutdown sequence', 'AgentOS.shutdown');
1455
1599
  console.error(`${serviceError.name}: ${serviceError.message}`, serviceError.toJSON());
1456
1600
  throw serviceError; // Re-throw to indicate shutdown was problematic.
1457
1601
  }
@@ -1463,7 +1607,8 @@ export class AgentOS {
1463
1607
  // Prefer caller-provided augmentor instance.
1464
1608
  if (this.config.retrievalAugmentor) {
1465
1609
  this.retrievalAugmentor = this.config.retrievalAugmentor;
1466
- this.manageRetrievalAugmentorLifecycle = this.config.manageRetrievalAugmentorLifecycle === true;
1610
+ this.manageRetrievalAugmentorLifecycle =
1611
+ this.config.manageRetrievalAugmentorLifecycle === true;
1467
1612
  return;
1468
1613
  }
1469
1614
  const ragConfig = this.config.ragConfig;
@@ -1476,7 +1621,9 @@ export class AgentOS {
1476
1621
  const { RetrievalAugmentor } = await import('../rag/RetrievalAugmentor.js');
1477
1622
  const embeddingManager = new EmbeddingManager();
1478
1623
  await embeddingManager.initialize(ragConfig.embeddingManagerConfig, this.modelProviderManager);
1479
- const bindToStorageAdapter = ragConfig.bindToStorageAdapter === undefined ? true : ragConfig.bindToStorageAdapter === true;
1624
+ const bindToStorageAdapter = ragConfig.bindToStorageAdapter === undefined
1625
+ ? true
1626
+ : ragConfig.bindToStorageAdapter === true;
1480
1627
  const patchedVectorStoreConfig = {
1481
1628
  ...ragConfig.vectorStoreManagerConfig,
1482
1629
  providers: ragConfig.vectorStoreManagerConfig.providers.map((provider) => {