@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
@@ -11,8 +11,9 @@
11
11
  * @see ../core/tools/IToolOrchestrator.ts for tool orchestration.
12
12
  * @see ../core/ai_utilities/IUtilityAI.ts for utility functions.
13
13
  */
14
- import { IGMI, GMIBaseConfig, GMITurnInput, GMIOutputChunk, GMIPrimeState, ReasoningTrace, GMIHealthReport, MemoryLifecycleEvent, LifecycleActionResponse, ToolResultPayload, GMIOutput } from './IGMI';
14
+ import { IGMI, GMIBaseConfig, GMITurnInput, GMIOutputChunk, GMIPrimeState, ReasoningTrace, GMIHealthReport, MemoryLifecycleEvent, LifecycleActionResponse, ToolCallResult, ToolResultPayload, GMIOutput } from './IGMI';
15
15
  import { IPersonaDefinition } from './personas/IPersonaDefinition';
16
+ import { ConversationMessage } from '../core/conversation/ConversationMessage';
16
17
  import type { ICognitiveMemoryManager } from '../memory/CognitiveMemoryManager.js';
17
18
  /**
18
19
  * @class GMI
@@ -92,6 +93,9 @@ export declare class GMI implements IGMI {
92
93
  private assembleCognitiveMemoryContext;
93
94
  private encodeCognitiveMemory;
94
95
  private syncCognitiveMemoryForTurn;
96
+ private getConversationIdForTurn;
97
+ private getOrganizationIdForTurn;
98
+ private buildToolSessionData;
95
99
  /**
96
100
  * Ensures the GMI is initialized and in a READY state.
97
101
  * @private
@@ -119,6 +123,14 @@ export declare class GMI implements IGMI {
119
123
  */
120
124
  private buildConversationHistoryForPrompt;
121
125
  private convertChatMessageToConversationMessage;
126
+ private convertConversationMessageToChatMessage;
127
+ private normalizeConversationMessageContent;
128
+ hydrateConversationHistory(conversationHistory: ConversationMessage[]): void;
129
+ hydrateTurnContext(context: {
130
+ sessionId?: string;
131
+ conversationId?: string;
132
+ organizationId?: string;
133
+ }): void;
122
134
  private mapChatRoleToMessageRole;
123
135
  private normalizeChatMessageContent;
124
136
  private parseToolCallArguments;
@@ -138,7 +150,9 @@ export declare class GMI implements IGMI {
138
150
  /** @inheritdoc */
139
151
  processTurnStream(turnInput: GMITurnInput): AsyncGenerator<GMIOutputChunk, GMIOutput, undefined>;
140
152
  /** @inheritdoc */
141
- handleToolResult(toolCallId: string, toolName: string, resultPayload: ToolResultPayload, _userId: string): Promise<GMIOutput>;
153
+ handleToolResult(toolCallId: string, toolName: string, resultPayload: ToolResultPayload, userId: string): Promise<GMIOutput>;
154
+ /** @inheritdoc */
155
+ handleToolResults(toolResults: ToolCallResult[], _userId: string): Promise<GMIOutput>;
142
156
  /**
143
157
  * Performs post-turn RAG ingestion if configured.
144
158
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../src/cognitive_substrate/GMI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GMI.d.ts","sourceRoot":"","sources":["../../src/cognitive_substrate/GMI.ts"],"names":[],"mappings":"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"}
@@ -308,15 +308,48 @@ export class GMI {
308
308
  });
309
309
  }
310
310
  }
311
+ getConversationIdForTurn(turnInput) {
312
+ const metadataConversationId = typeof turnInput.metadata?.conversationId === 'string'
313
+ ? turnInput.metadata.conversationId.trim()
314
+ : '';
315
+ if (metadataConversationId) {
316
+ return metadataConversationId;
317
+ }
318
+ const sessionId = typeof turnInput.sessionId === 'string' ? turnInput.sessionId.trim() : '';
319
+ return sessionId || undefined;
320
+ }
321
+ getOrganizationIdForTurn(turnInput) {
322
+ const organizationId = typeof turnInput.metadata?.organizationId === 'string'
323
+ ? turnInput.metadata.organizationId.trim()
324
+ : '';
325
+ return organizationId || undefined;
326
+ }
327
+ buildToolSessionData(turnInput) {
328
+ const sessionId = typeof turnInput.sessionId === 'string' ? turnInput.sessionId.trim() : '';
329
+ const conversationId = this.getConversationIdForTurn(turnInput);
330
+ const organizationId = this.getOrganizationIdForTurn(turnInput);
331
+ const sessionData = {};
332
+ if (sessionId) {
333
+ sessionData.sessionId = sessionId;
334
+ }
335
+ if (conversationId) {
336
+ sessionData.conversationId = conversationId;
337
+ }
338
+ if (organizationId) {
339
+ sessionData.organizationId = organizationId;
340
+ }
341
+ return Object.keys(sessionData).length > 0 ? sessionData : undefined;
342
+ }
311
343
  /**
312
344
  * Ensures the GMI is initialized and in a READY state.
313
345
  * @private
314
346
  */
315
- ensureReady() {
347
+ ensureReady(additionallyAllowedStates = []) {
316
348
  if (!this.isInitialized) {
317
349
  throw new GMIError(`GMI (ID: ${this.gmiId}) is not initialized.`, GMIErrorCode.NOT_INITIALIZED);
318
350
  }
319
- if (this.state !== GMIPrimeState.READY) {
351
+ if (this.state !== GMIPrimeState.READY &&
352
+ !additionallyAllowedStates.includes(this.state)) {
320
353
  throw new GMIError(`GMI (ID: ${this.gmiId}) is not in READY state. Current state: ${this.state}.`, GMIErrorCode.INVALID_STATE, { currentGMIState: this.state });
321
354
  }
322
355
  }
@@ -410,6 +443,62 @@ export class GMI {
410
443
  }
411
444
  return conversationMessage;
412
445
  }
446
+ convertConversationMessageToChatMessage(message) {
447
+ if (message.role === MessageRole.ERROR || message.role === MessageRole.THOUGHT) {
448
+ return null;
449
+ }
450
+ const role = message.role === MessageRole.SYSTEM || message.role === MessageRole.SUMMARY
451
+ ? 'system'
452
+ : message.role === MessageRole.ASSISTANT
453
+ ? 'assistant'
454
+ : message.role === MessageRole.TOOL
455
+ ? 'tool'
456
+ : 'user';
457
+ const content = message.role === MessageRole.SUMMARY && typeof message.content === 'string'
458
+ ? `[Conversation Summary]\n${message.content}`
459
+ : this.normalizeConversationMessageContent(message.content);
460
+ return {
461
+ role,
462
+ content,
463
+ name: message.name,
464
+ tool_call_id: message.tool_call_id,
465
+ tool_calls: Array.isArray(message.tool_calls)
466
+ ? message.tool_calls.map((toolCall) => ({
467
+ id: toolCall.id,
468
+ type: 'function',
469
+ function: {
470
+ name: toolCall.name,
471
+ arguments: JSON.stringify(toolCall.arguments ?? {}),
472
+ },
473
+ }))
474
+ : undefined,
475
+ };
476
+ }
477
+ normalizeConversationMessageContent(content) {
478
+ if (content === null || typeof content === 'string') {
479
+ return content;
480
+ }
481
+ if (Array.isArray(content)) {
482
+ return content.map((part) => ({ ...part }));
483
+ }
484
+ return JSON.stringify(content);
485
+ }
486
+ hydrateConversationHistory(conversationHistory) {
487
+ this.conversationHistory = conversationHistory
488
+ .map((message) => this.convertConversationMessageToChatMessage(message))
489
+ .filter((message) => message !== null);
490
+ }
491
+ hydrateTurnContext(context) {
492
+ if (typeof context.sessionId === 'string' && context.sessionId.trim()) {
493
+ this.reasoningTrace.sessionId = context.sessionId.trim();
494
+ }
495
+ if (typeof context.conversationId === 'string' && context.conversationId.trim()) {
496
+ this.reasoningTrace.conversationId = context.conversationId.trim();
497
+ }
498
+ if (typeof context.organizationId === 'string' && context.organizationId.trim()) {
499
+ this.reasoningTrace.organizationId = context.organizationId.trim();
500
+ }
501
+ }
413
502
  mapChatRoleToMessageRole(role) {
414
503
  switch (role) {
415
504
  case 'system':
@@ -493,12 +582,19 @@ export class GMI {
493
582
  }
494
583
  /** @inheritdoc */
495
584
  async *processTurnStream(turnInput) {
496
- this.ensureReady();
585
+ const continuationAllowedStates = turnInput.metadata?.isToolContinuation === true
586
+ ? [GMIPrimeState.PROCESSING, GMIPrimeState.AWAITING_TOOL_RESULT]
587
+ : [];
588
+ this.ensureReady(continuationAllowedStates);
497
589
  this.state = GMIPrimeState.PROCESSING;
498
590
  const turnId = turnInput.interactionId || `turn-${uuidv4()}`;
499
591
  // Store turnId on reasoningTrace for current turn
500
- if (this.reasoningTrace)
592
+ if (this.reasoningTrace) {
501
593
  this.reasoningTrace.turnId = turnId;
594
+ this.reasoningTrace.sessionId = turnInput.sessionId;
595
+ this.reasoningTrace.conversationId = this.getConversationIdForTurn(turnInput);
596
+ this.reasoningTrace.organizationId = this.getOrganizationIdForTurn(turnInput);
597
+ }
502
598
  this.addTraceEntry(ReasoningEntryType.INTERACTION_START, `Processing turn '${turnId}' for user '${turnInput.userId}'`, { inputType: turnInput.type, inputPreview: String(turnInput.content).substring(0, 100) });
503
599
  // Initialize aggregates for the final GMIOutput
504
600
  let aggregatedResponseText = "";
@@ -695,7 +791,12 @@ export class GMI {
695
791
  : tc.function.arguments,
696
792
  }));
697
793
  aggregatedToolCalls.push(...currentIterationToolCallRequests); // Aggregate for final output
698
- yield this.createOutputChunk(turnInput.interactionId, GMIOutputChunkType.TOOL_CALL_REQUEST, [...currentIterationToolCallRequests]);
794
+ yield this.createOutputChunk(turnInput.interactionId, GMIOutputChunkType.TOOL_CALL_REQUEST, [...currentIterationToolCallRequests], {
795
+ metadata: {
796
+ executionMode: 'internal',
797
+ requiresExternalToolResult: false,
798
+ },
799
+ });
699
800
  this.addTraceEntry(ReasoningEntryType.TOOL_CALL_REQUESTED, `LLM requested tool(s).`, { requests: currentIterationToolCallRequests });
700
801
  }
701
802
  if (chunk.isFinal && choice?.finishReason) {
@@ -735,6 +836,7 @@ export class GMI {
735
836
  gmiId: this.gmiId, personaId: this.activePersona.id,
736
837
  personaCapabilities: this.activePersona.allowedCapabilities || [],
737
838
  userContext: this.currentUserContext, correlationId: turnId,
839
+ sessionData: this.buildToolSessionData(turnInput),
738
840
  };
739
841
  this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_START, `Orchestrating tool: ${toolCallReq.name}`, { reqId: toolCallReq.id });
740
842
  const result = await this.toolOrchestrator.processToolCall(requestDetails);
@@ -798,37 +900,68 @@ export class GMI {
798
900
  }
799
901
  }
800
902
  /** @inheritdoc */
801
- async handleToolResult(toolCallId, toolName, resultPayload, _userId) {
903
+ async handleToolResult(toolCallId, toolName, resultPayload, userId) {
904
+ return this.handleToolResults([
905
+ {
906
+ toolCallId,
907
+ toolName,
908
+ output: resultPayload.type === 'success' ? resultPayload.result : resultPayload.error,
909
+ isError: resultPayload.type === 'error',
910
+ errorDetails: resultPayload.type === 'error' ? resultPayload.error : undefined,
911
+ },
912
+ ], userId);
913
+ }
914
+ /** @inheritdoc */
915
+ async handleToolResults(toolResults, _userId) {
802
916
  if (!this.isInitialized) {
803
917
  throw new GMIError("GMI is not initialized. Cannot handle tool result.", GMIErrorCode.NOT_INITIALIZED);
804
918
  }
919
+ if (!Array.isArray(toolResults) || toolResults.length === 0) {
920
+ throw new GMIError('At least one tool result is required to continue the turn.', GMIErrorCode.VALIDATION_ERROR);
921
+ }
805
922
  // Allow handling tool results if processing or specifically awaiting
806
- if (this.state !== GMIPrimeState.AWAITING_TOOL_RESULT && this.state !== GMIPrimeState.PROCESSING) {
807
- this.addTraceEntry(ReasoningEntryType.WARNING, `handleToolResult called when GMI state is ${this.state}. Expected AWAITING_TOOL_RESULT or PROCESSING.`, { toolCallId, toolName });
923
+ if (this.state !== GMIPrimeState.AWAITING_TOOL_RESULT &&
924
+ this.state !== GMIPrimeState.PROCESSING &&
925
+ this.state !== GMIPrimeState.READY) {
926
+ this.addTraceEntry(ReasoningEntryType.WARNING, `handleToolResults called when GMI state is ${this.state}. Expected READY, AWAITING_TOOL_RESULT, or PROCESSING.`, {
927
+ toolCallIds: toolResults.map((toolResult) => toolResult.toolCallId),
928
+ toolNames: toolResults.map((toolResult) => toolResult.toolName),
929
+ });
808
930
  // Depending on desired robustness, could throw an error or try to proceed.
809
931
  }
810
932
  this.state = GMIPrimeState.PROCESSING; // Set state to processing
811
933
  // Use current turnId if available, or generate a new interactionId for this specific handling
812
934
  const interactionId = this.reasoningTrace?.turnId || `tool_handler_turn_${uuidv4()}`;
813
- this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_RESULT, `Received external tool result for '${toolName}' (ID: ${toolCallId}) to be processed.`, { toolCallId, toolName, success: resultPayload.type === 'success', interactionId });
814
- const toolCallResult = {
815
- toolCallId,
816
- toolName,
817
- output: resultPayload.type === 'success' ? resultPayload.result : resultPayload.error,
818
- isError: resultPayload.type === 'error',
819
- errorDetails: resultPayload.type === 'error' ? resultPayload.error : undefined,
820
- };
821
- this.updateConversationHistoryWithToolResult(toolCallResult);
935
+ this.addTraceEntry(ReasoningEntryType.TOOL_EXECUTION_RESULT, toolResults.length === 1
936
+ ? `Received external tool result for '${toolResults[0].toolName}' (ID: ${toolResults[0].toolCallId}) to be processed.`
937
+ : `Received ${toolResults.length} external tool results to be processed together.`, {
938
+ interactionId,
939
+ toolResults: toolResults.map((toolResult) => ({
940
+ toolCallId: toolResult.toolCallId,
941
+ toolName: toolResult.toolName,
942
+ success: !toolResult.isError,
943
+ })),
944
+ });
945
+ toolResults.forEach((toolResult) => this.updateConversationHistoryWithToolResult(toolResult));
822
946
  // Construct a system turn input to represent the continuation after tool result
823
947
  const systemTurnInput = {
824
948
  interactionId,
825
949
  userId: this.currentUserContext.userId, // Use the GMI's current user context
826
950
  sessionId: this.reasoningTrace?.sessionId,
827
951
  type: GMIInteractionType.SYSTEM_MESSAGE, // Or a specific type for internal continuation
828
- content: `Internally processing result for tool '${toolName}'.`, // System message content
952
+ content: toolResults.length === 1
953
+ ? `Internally processing result for tool '${toolResults[0].toolName}'.`
954
+ : `Internally processing ${toolResults.length} external tool results.`,
829
955
  metadata: {
830
956
  isToolContinuation: true,
831
- originalToolCallId: toolCallId,
957
+ originalToolCallId: toolResults.length === 1 ? toolResults[0].toolCallId : undefined,
958
+ originalToolCallIds: toolResults.map((toolResult) => toolResult.toolCallId),
959
+ ...(this.reasoningTrace?.conversationId
960
+ ? { conversationId: this.reasoningTrace.conversationId }
961
+ : {}),
962
+ ...(this.reasoningTrace?.organizationId
963
+ ? { organizationId: this.reasoningTrace.organizationId }
964
+ : {}),
832
965
  }
833
966
  };
834
967
  // Collect all chunks from processTurnStream to form a single GMIOutput
@@ -837,45 +970,44 @@ export class GMI {
837
970
  const aggregatedUsage = { totalTokens: 0, promptTokens: 0, completionTokens: 0, breakdown: [] };
838
971
  let _lastErrorForOutput = undefined;
839
972
  const stream = this.processTurnStream(systemTurnInput); // This now returns GMIOutput
840
- const finalGmiOutputFromStream = await (async () => {
841
- for await (const chunk of stream) {
842
- // Process chunks as they arrive if needed for intermediate steps,
843
- // but the final GMIOutput will be the generator's return value.
844
- // Here, we mainly care about the final returned GMIOutput.
845
- // However, if processTurnStream itself aggregates, this loop might just be to exhaust it.
846
- if (chunk.type === GMIOutputChunkType.TEXT_DELTA && typeof chunk.content === 'string') {
847
- _aggregatedResponseText += chunk.content;
848
- }
849
- if (chunk.type === GMIOutputChunkType.TOOL_CALL_REQUEST && Array.isArray(chunk.content)) {
850
- aggregatedToolCalls.push(...chunk.content);
851
- }
852
- if (chunk.usage) {
853
- aggregatedUsage.promptTokens += chunk.usage.promptTokens || 0;
854
- aggregatedUsage.completionTokens += chunk.usage.completionTokens || 0;
855
- aggregatedUsage.totalTokens = aggregatedUsage.promptTokens + aggregatedUsage.completionTokens;
856
- if (chunk.usage.costUSD)
857
- aggregatedUsage.totalCostUSD = (aggregatedUsage.totalCostUSD || 0) + chunk.usage.costUSD;
858
- }
859
- if (chunk.type === GMIOutputChunkType.ERROR) {
860
- _lastErrorForOutput = chunk.errorDetails || { code: GMIErrorCode.GMI_PROCESSING_ERROR, message: String(chunk.content) };
861
- }
973
+ let finalGmiOutputFromStream;
974
+ while (true) {
975
+ const { value, done } = await stream.next();
976
+ if (done) {
977
+ finalGmiOutputFromStream = value;
978
+ break;
979
+ }
980
+ const chunk = value;
981
+ if (chunk.type === GMIOutputChunkType.TEXT_DELTA && typeof chunk.content === 'string') {
982
+ _aggregatedResponseText += chunk.content;
983
+ }
984
+ if (chunk.type === GMIOutputChunkType.TOOL_CALL_REQUEST && Array.isArray(chunk.content)) {
985
+ aggregatedToolCalls.push(...chunk.content);
986
+ }
987
+ if (chunk.usage) {
988
+ aggregatedUsage.promptTokens += chunk.usage.promptTokens || 0;
989
+ aggregatedUsage.completionTokens += chunk.usage.completionTokens || 0;
990
+ aggregatedUsage.totalTokens = aggregatedUsage.promptTokens + aggregatedUsage.completionTokens;
991
+ if (chunk.usage.costUSD)
992
+ aggregatedUsage.totalCostUSD = (aggregatedUsage.totalCostUSD || 0) + chunk.usage.costUSD;
862
993
  }
863
- // The actual final GMIOutput comes from the generator's return value
864
- // This requires `processTurnStream` to be `async function* (...) : AsyncGenerator<..., GMIOutput, ...>`
865
- // and to have a `return finalOutput;` statement.
866
- // The loop above will collect intermediate chunks, and the 'return' from the generator is the key.
867
- // This structure is a bit complex with nested generators. Let's assume processTurnStream does return a GMIOutput.
868
- // The way AsyncGenerator TReturn works, the last value is 'done: true, value: TReturn'.
869
- // My processTurnStream is modified to return GMIOutput.
870
- let result = await stream.next();
871
- while (!result.done) {
872
- // This loop is mainly to exhaust the stream if previous loop didn't fully.
873
- // The crucial part is what processTurnStream *returns*.
874
- result = await stream.next();
994
+ if (chunk.type === GMIOutputChunkType.ERROR) {
995
+ _lastErrorForOutput =
996
+ chunk.errorDetails || { code: GMIErrorCode.GMI_PROCESSING_ERROR, message: String(chunk.content) };
875
997
  }
876
- return result.value; // This is the GMIOutput
877
- })();
878
- this.addTraceEntry(ReasoningEntryType.INTERACTION_END, `Continuation after tool '${toolName}' (ID: ${toolCallId}) processed.`);
998
+ }
999
+ if (!finalGmiOutputFromStream) {
1000
+ finalGmiOutputFromStream = {
1001
+ isFinal: _lastErrorForOutput ? true : false,
1002
+ responseText: _aggregatedResponseText || null,
1003
+ toolCalls: aggregatedToolCalls.length > 0 ? aggregatedToolCalls : undefined,
1004
+ usage: aggregatedUsage,
1005
+ error: _lastErrorForOutput,
1006
+ };
1007
+ }
1008
+ this.addTraceEntry(ReasoningEntryType.INTERACTION_END, toolResults.length === 1
1009
+ ? `Continuation after tool '${toolResults[0].toolName}' (ID: ${toolResults[0].toolCallId}) processed.`
1010
+ : `Continuation after ${toolResults.length} external tool results processed.`);
879
1011
  return finalGmiOutputFromStream;
880
1012
  }
881
1013
  /**