@framers/agentos 0.1.113 → 0.1.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/README.md +39 -5
  2. package/dist/api/AgentOS.d.ts +45 -12
  3. package/dist/api/AgentOS.d.ts.map +1 -1
  4. package/dist/api/AgentOS.js +225 -78
  5. package/dist/api/AgentOS.js.map +1 -1
  6. package/dist/api/AgentOSOrchestrator.d.ts +8 -0
  7. package/dist/api/AgentOSOrchestrator.d.ts.map +1 -1
  8. package/dist/api/AgentOSOrchestrator.js +350 -59
  9. package/dist/api/AgentOSOrchestrator.js.map +1 -1
  10. package/dist/api/StreamChunkEmitter.d.ts.map +1 -1
  11. package/dist/api/StreamChunkEmitter.js +2 -0
  12. package/dist/api/StreamChunkEmitter.js.map +1 -1
  13. package/dist/api/agency.d.ts.map +1 -1
  14. package/dist/api/agency.js +47 -1
  15. package/dist/api/agency.js.map +1 -1
  16. package/dist/api/agent.d.ts +18 -5
  17. package/dist/api/agent.d.ts.map +1 -1
  18. package/dist/api/agent.js +48 -9
  19. package/dist/api/agent.js.map +1 -1
  20. package/dist/api/agentExport.d.ts +202 -0
  21. package/dist/api/agentExport.d.ts.map +1 -0
  22. package/dist/api/agentExport.js +323 -0
  23. package/dist/api/agentExport.js.map +1 -0
  24. package/dist/api/editImage.d.ts +119 -0
  25. package/dist/api/editImage.d.ts.map +1 -0
  26. package/dist/api/editImage.js +150 -0
  27. package/dist/api/editImage.js.map +1 -0
  28. package/dist/api/embedText.d.ts +137 -0
  29. package/dist/api/embedText.d.ts.map +1 -0
  30. package/dist/api/embedText.js +229 -0
  31. package/dist/api/embedText.js.map +1 -0
  32. package/dist/api/externalToolRegistry.d.ts +44 -0
  33. package/dist/api/externalToolRegistry.d.ts.map +1 -0
  34. package/dist/api/externalToolRegistry.js +245 -0
  35. package/dist/api/externalToolRegistry.js.map +1 -0
  36. package/dist/api/generateImage.d.ts +1 -1
  37. package/dist/api/generateImage.d.ts.map +1 -1
  38. package/dist/api/generateImage.js +17 -13
  39. package/dist/api/generateImage.js.map +1 -1
  40. package/dist/api/generateObject.d.ts +185 -0
  41. package/dist/api/generateObject.d.ts.map +1 -0
  42. package/dist/api/generateObject.js +249 -0
  43. package/dist/api/generateObject.js.map +1 -0
  44. package/dist/api/generateText.d.ts +13 -3
  45. package/dist/api/generateText.d.ts.map +1 -1
  46. package/dist/api/generateText.js +20 -5
  47. package/dist/api/generateText.js.map +1 -1
  48. package/dist/api/interfaces/IAgentOS.d.ts +29 -1
  49. package/dist/api/interfaces/IAgentOS.d.ts.map +1 -1
  50. package/dist/api/model.d.ts +7 -7
  51. package/dist/api/model.d.ts.map +1 -1
  52. package/dist/api/model.js +22 -16
  53. package/dist/api/model.js.map +1 -1
  54. package/dist/api/processRequestWithExternalTools.d.ts +26 -0
  55. package/dist/api/processRequestWithExternalTools.d.ts.map +1 -0
  56. package/dist/api/processRequestWithExternalTools.js +52 -0
  57. package/dist/api/processRequestWithExternalTools.js.map +1 -0
  58. package/dist/api/processRequestWithRegisteredTools.d.ts +56 -0
  59. package/dist/api/processRequestWithRegisteredTools.d.ts.map +1 -0
  60. package/dist/api/processRequestWithRegisteredTools.js +125 -0
  61. package/dist/api/processRequestWithRegisteredTools.js.map +1 -0
  62. package/dist/api/provider-defaults.d.ts.map +1 -1
  63. package/dist/api/provider-defaults.js +28 -0
  64. package/dist/api/provider-defaults.js.map +1 -1
  65. package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts +71 -0
  66. package/dist/api/resumeExternalToolRequestWithRegisteredTools.d.ts.map +1 -0
  67. package/dist/api/resumeExternalToolRequestWithRegisteredTools.js +159 -0
  68. package/dist/api/resumeExternalToolRequestWithRegisteredTools.js.map +1 -0
  69. package/dist/api/strategies/agentGraphBuilder.d.ts +170 -0
  70. package/dist/api/strategies/agentGraphBuilder.d.ts.map +1 -0
  71. package/dist/api/strategies/agentGraphBuilder.js +299 -0
  72. package/dist/api/strategies/agentGraphBuilder.js.map +1 -0
  73. package/dist/api/strategies/graphCompiler.d.ts +84 -0
  74. package/dist/api/strategies/graphCompiler.d.ts.map +1 -0
  75. package/dist/api/strategies/graphCompiler.js +617 -0
  76. package/dist/api/strategies/graphCompiler.js.map +1 -0
  77. package/dist/api/strategies/hierarchical.d.ts.map +1 -1
  78. package/dist/api/strategies/hierarchical.js +2 -1
  79. package/dist/api/strategies/hierarchical.js.map +1 -1
  80. package/dist/api/strategies/index.d.ts +3 -0
  81. package/dist/api/strategies/index.d.ts.map +1 -1
  82. package/dist/api/strategies/index.js +2 -0
  83. package/dist/api/strategies/index.js.map +1 -1
  84. package/dist/api/strategies/shared.d.ts +1 -1
  85. package/dist/api/strategies/shared.d.ts.map +1 -1
  86. package/dist/api/strategies/shared.js +3 -2
  87. package/dist/api/strategies/shared.js.map +1 -1
  88. package/dist/api/streamObject.d.ts +166 -0
  89. package/dist/api/streamObject.d.ts.map +1 -0
  90. package/dist/api/streamObject.js +268 -0
  91. package/dist/api/streamObject.js.map +1 -0
  92. package/dist/api/streamText.d.ts +1 -1
  93. package/dist/api/streamText.d.ts.map +1 -1
  94. package/dist/api/streamText.js +26 -8
  95. package/dist/api/streamText.js.map +1 -1
  96. package/dist/api/toolAdapter.d.ts +44 -8
  97. package/dist/api/toolAdapter.d.ts.map +1 -1
  98. package/dist/api/toolAdapter.js +224 -45
  99. package/dist/api/toolAdapter.js.map +1 -1
  100. package/dist/api/types/AgentOSExternalToolRequest.d.ts +35 -0
  101. package/dist/api/types/AgentOSExternalToolRequest.d.ts.map +1 -0
  102. package/dist/api/types/AgentOSExternalToolRequest.js +2 -0
  103. package/dist/api/types/AgentOSExternalToolRequest.js.map +1 -0
  104. package/dist/api/types/AgentOSResponse.d.ts +25 -0
  105. package/dist/api/types/AgentOSResponse.d.ts.map +1 -1
  106. package/dist/api/types/AgentOSResponse.js +20 -0
  107. package/dist/api/types/AgentOSResponse.js.map +1 -1
  108. package/dist/api/types/AgentOSToolResult.d.ts +11 -0
  109. package/dist/api/types/AgentOSToolResult.d.ts.map +1 -0
  110. package/dist/api/types/AgentOSToolResult.js +2 -0
  111. package/dist/api/types/AgentOSToolResult.js.map +1 -0
  112. package/dist/api/types.d.ts +28 -4
  113. package/dist/api/types.d.ts.map +1 -1
  114. package/dist/api/types.js.map +1 -1
  115. package/dist/api/upscaleImage.d.ts +92 -0
  116. package/dist/api/upscaleImage.d.ts.map +1 -0
  117. package/dist/api/upscaleImage.js +133 -0
  118. package/dist/api/upscaleImage.js.map +1 -0
  119. package/dist/api/variateImage.d.ts +102 -0
  120. package/dist/api/variateImage.d.ts.map +1 -0
  121. package/dist/api/variateImage.js +154 -0
  122. package/dist/api/variateImage.js.map +1 -0
  123. package/dist/cognitive_substrate/GMI.d.ts +16 -2
  124. package/dist/cognitive_substrate/GMI.d.ts.map +1 -1
  125. package/dist/cognitive_substrate/GMI.js +188 -56
  126. package/dist/cognitive_substrate/GMI.js.map +1 -1
  127. package/dist/cognitive_substrate/IGMI.d.ts +10 -0
  128. package/dist/cognitive_substrate/IGMI.d.ts.map +1 -1
  129. package/dist/cognitive_substrate/IGMI.js.map +1 -1
  130. package/dist/config/AgentOSConfig.d.ts +19 -2
  131. package/dist/config/AgentOSConfig.d.ts.map +1 -1
  132. package/dist/config/AgentOSConfig.js +46 -29
  133. package/dist/config/AgentOSConfig.js.map +1 -1
  134. package/dist/core/guardrails/IGuardrailService.d.ts +1 -1
  135. package/dist/core/images/IImageProvider.d.ts +93 -0
  136. package/dist/core/images/IImageProvider.d.ts.map +1 -1
  137. package/dist/core/images/IImageProvider.js.map +1 -1
  138. package/dist/core/images/ImageOperationError.d.ts +52 -0
  139. package/dist/core/images/ImageOperationError.d.ts.map +1 -0
  140. package/dist/core/images/ImageOperationError.js +58 -0
  141. package/dist/core/images/ImageOperationError.js.map +1 -0
  142. package/dist/core/images/imageToBuffer.d.ts +41 -0
  143. package/dist/core/images/imageToBuffer.d.ts.map +1 -0
  144. package/dist/core/images/imageToBuffer.js +95 -0
  145. package/dist/core/images/imageToBuffer.js.map +1 -0
  146. package/dist/core/images/index.d.ts +4 -0
  147. package/dist/core/images/index.d.ts.map +1 -1
  148. package/dist/core/images/index.js +8 -0
  149. package/dist/core/images/index.js.map +1 -1
  150. package/dist/core/images/providers/FalImageProvider.d.ts +208 -0
  151. package/dist/core/images/providers/FalImageProvider.d.ts.map +1 -0
  152. package/dist/core/images/providers/FalImageProvider.js +301 -0
  153. package/dist/core/images/providers/FalImageProvider.js.map +1 -0
  154. package/dist/core/images/providers/FluxImageProvider.d.ts +197 -0
  155. package/dist/core/images/providers/FluxImageProvider.d.ts.map +1 -0
  156. package/dist/core/images/providers/FluxImageProvider.js +271 -0
  157. package/dist/core/images/providers/FluxImageProvider.js.map +1 -0
  158. package/dist/core/images/providers/OpenAIImageProvider.d.ts +33 -1
  159. package/dist/core/images/providers/OpenAIImageProvider.d.ts.map +1 -1
  160. package/dist/core/images/providers/OpenAIImageProvider.js +125 -0
  161. package/dist/core/images/providers/OpenAIImageProvider.js.map +1 -1
  162. package/dist/core/images/providers/ReplicateImageProvider.d.ts +26 -1
  163. package/dist/core/images/providers/ReplicateImageProvider.d.ts.map +1 -1
  164. package/dist/core/images/providers/ReplicateImageProvider.js +118 -0
  165. package/dist/core/images/providers/ReplicateImageProvider.js.map +1 -1
  166. package/dist/core/images/providers/StabilityImageProvider.d.ts +41 -1
  167. package/dist/core/images/providers/StabilityImageProvider.d.ts.map +1 -1
  168. package/dist/core/images/providers/StabilityImageProvider.js +180 -7
  169. package/dist/core/images/providers/StabilityImageProvider.js.map +1 -1
  170. package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts +29 -1
  171. package/dist/core/images/providers/StableDiffusionLocalProvider.d.ts.map +1 -1
  172. package/dist/core/images/providers/StableDiffusionLocalProvider.js +124 -0
  173. package/dist/core/images/providers/StableDiffusionLocalProvider.js.map +1 -1
  174. package/dist/core/llm/IPromptEngine.d.ts +2 -2
  175. package/dist/core/llm/IPromptEngine.d.ts.map +1 -1
  176. package/dist/core/llm/IPromptEngine.js +2 -2
  177. package/dist/core/llm/IPromptEngine.js.map +1 -1
  178. package/dist/core/llm/providers/AIModelProviderManager.d.ts +7 -1
  179. package/dist/core/llm/providers/AIModelProviderManager.d.ts.map +1 -1
  180. package/dist/core/llm/providers/AIModelProviderManager.js +24 -0
  181. package/dist/core/llm/providers/AIModelProviderManager.js.map +1 -1
  182. package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts +42 -0
  183. package/dist/core/llm/providers/errors/AnthropicProviderError.d.ts.map +1 -0
  184. package/dist/core/llm/providers/errors/AnthropicProviderError.js +45 -0
  185. package/dist/core/llm/providers/errors/AnthropicProviderError.js.map +1 -0
  186. package/dist/core/llm/providers/errors/GeminiProviderError.d.ts +45 -0
  187. package/dist/core/llm/providers/errors/GeminiProviderError.d.ts.map +1 -0
  188. package/dist/core/llm/providers/errors/GeminiProviderError.js +46 -0
  189. package/dist/core/llm/providers/errors/GeminiProviderError.js.map +1 -0
  190. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts +1 -1
  191. package/dist/core/llm/providers/errors/OllamaProviderError.d.ts.map +1 -1
  192. package/dist/core/llm/providers/errors/OllamaProviderError.js +1 -1
  193. package/dist/core/llm/providers/errors/OllamaProviderError.js.map +1 -1
  194. package/dist/core/llm/providers/errors/OpenAIProviderError.d.ts +1 -1
  195. package/dist/core/llm/providers/errors/OpenAIProviderError.js +1 -1
  196. package/dist/core/llm/providers/errors/OpenRouterProviderError.d.ts +1 -1
  197. package/dist/core/llm/providers/errors/OpenRouterProviderError.js +1 -1
  198. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts +340 -0
  199. package/dist/core/llm/providers/implementations/AnthropicProvider.d.ts.map +1 -0
  200. package/dist/core/llm/providers/implementations/AnthropicProvider.js +959 -0
  201. package/dist/core/llm/providers/implementations/AnthropicProvider.js.map +1 -0
  202. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts +339 -0
  203. package/dist/core/llm/providers/implementations/GeminiProvider.d.ts.map +1 -0
  204. package/dist/core/llm/providers/implementations/GeminiProvider.js +1004 -0
  205. package/dist/core/llm/providers/implementations/GeminiProvider.js.map +1 -0
  206. package/dist/core/llm/providers/implementations/GroqProvider.d.ts +105 -0
  207. package/dist/core/llm/providers/implementations/GroqProvider.d.ts.map +1 -0
  208. package/dist/core/llm/providers/implementations/GroqProvider.js +134 -0
  209. package/dist/core/llm/providers/implementations/GroqProvider.js.map +1 -0
  210. package/dist/core/llm/providers/implementations/MistralProvider.d.ts +105 -0
  211. package/dist/core/llm/providers/implementations/MistralProvider.d.ts.map +1 -0
  212. package/dist/core/llm/providers/implementations/MistralProvider.js +146 -0
  213. package/dist/core/llm/providers/implementations/MistralProvider.js.map +1 -0
  214. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts +107 -0
  215. package/dist/core/llm/providers/implementations/TogetherProvider.d.ts.map +1 -0
  216. package/dist/core/llm/providers/implementations/TogetherProvider.js +138 -0
  217. package/dist/core/llm/providers/implementations/TogetherProvider.js.map +1 -0
  218. package/dist/core/llm/providers/implementations/XAIProvider.d.ts +102 -0
  219. package/dist/core/llm/providers/implementations/XAIProvider.d.ts.map +1 -0
  220. package/dist/core/llm/providers/implementations/XAIProvider.js +123 -0
  221. package/dist/core/llm/providers/implementations/XAIProvider.js.map +1 -0
  222. package/dist/core/orchestration/AgentOrchestrator.d.ts.map +1 -1
  223. package/dist/core/orchestration/AgentOrchestrator.js +26 -5
  224. package/dist/core/orchestration/AgentOrchestrator.js.map +1 -1
  225. package/dist/core/tools/IToolOrchestrator.d.ts +2 -2
  226. package/dist/core/tools/IToolOrchestrator.d.ts.map +1 -1
  227. package/dist/core/tools/ToolExecutor.d.ts +3 -0
  228. package/dist/core/tools/ToolExecutor.d.ts.map +1 -1
  229. package/dist/core/tools/ToolExecutor.js +2 -1
  230. package/dist/core/tools/ToolExecutor.js.map +1 -1
  231. package/dist/core/tools/ToolOrchestrator.d.ts +7 -7
  232. package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
  233. package/dist/core/tools/ToolOrchestrator.js +135 -36
  234. package/dist/core/tools/ToolOrchestrator.js.map +1 -1
  235. package/dist/core/tools/permissions/ToolPermissionManager.d.ts +6 -5
  236. package/dist/core/tools/permissions/ToolPermissionManager.d.ts.map +1 -1
  237. package/dist/core/tools/permissions/ToolPermissionManager.js +47 -21
  238. package/dist/core/tools/permissions/ToolPermissionManager.js.map +1 -1
  239. package/dist/core/vision/VisionPipeline.d.ts +437 -0
  240. package/dist/core/vision/VisionPipeline.d.ts.map +1 -0
  241. package/dist/core/vision/VisionPipeline.js +1113 -0
  242. package/dist/core/vision/VisionPipeline.js.map +1 -0
  243. package/dist/core/vision/index.d.ts +97 -0
  244. package/dist/core/vision/index.d.ts.map +1 -0
  245. package/dist/core/vision/index.js +182 -0
  246. package/dist/core/vision/index.js.map +1 -0
  247. package/dist/core/vision/providers/LLMVisionProvider.d.ts +135 -0
  248. package/dist/core/vision/providers/LLMVisionProvider.d.ts.map +1 -0
  249. package/dist/core/vision/providers/LLMVisionProvider.js +136 -0
  250. package/dist/core/vision/providers/LLMVisionProvider.js.map +1 -0
  251. package/dist/core/vision/providers/PipelineVisionProvider.d.ts +154 -0
  252. package/dist/core/vision/providers/PipelineVisionProvider.d.ts.map +1 -0
  253. package/dist/core/vision/providers/PipelineVisionProvider.js +160 -0
  254. package/dist/core/vision/providers/PipelineVisionProvider.js.map +1 -0
  255. package/dist/core/vision/types.d.ts +286 -0
  256. package/dist/core/vision/types.d.ts.map +1 -0
  257. package/dist/core/vision/types.js +24 -0
  258. package/dist/core/vision/types.js.map +1 -0
  259. package/dist/discovery/CapabilityDiscoveryEngine.d.ts +1 -1
  260. package/dist/discovery/CapabilityDiscoveryEngine.d.ts.map +1 -1
  261. package/dist/discovery/CapabilityDiscoveryEngine.js +1 -1
  262. package/dist/discovery/CapabilityDiscoveryEngine.js.map +1 -1
  263. package/dist/emergent/ComposableToolBuilder.d.ts +15 -4
  264. package/dist/emergent/ComposableToolBuilder.d.ts.map +1 -1
  265. package/dist/emergent/ComposableToolBuilder.js +29 -14
  266. package/dist/emergent/ComposableToolBuilder.js.map +1 -1
  267. package/dist/emergent/EmergentCapabilityEngine.d.ts +3 -3
  268. package/dist/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
  269. package/dist/emergent/EmergentCapabilityEngine.js +15 -12
  270. package/dist/emergent/EmergentCapabilityEngine.js.map +1 -1
  271. package/dist/emergent/EmergentJudge.d.ts +20 -0
  272. package/dist/emergent/EmergentJudge.d.ts.map +1 -1
  273. package/dist/emergent/EmergentJudge.js +121 -26
  274. package/dist/emergent/EmergentJudge.js.map +1 -1
  275. package/dist/emergent/EmergentToolRegistry.d.ts +17 -0
  276. package/dist/emergent/EmergentToolRegistry.d.ts.map +1 -1
  277. package/dist/emergent/EmergentToolRegistry.js +26 -0
  278. package/dist/emergent/EmergentToolRegistry.js.map +1 -1
  279. package/dist/emergent/ForgeToolMetaTool.d.ts +1 -1
  280. package/dist/emergent/ForgeToolMetaTool.d.ts.map +1 -1
  281. package/dist/emergent/ForgeToolMetaTool.js +15 -2
  282. package/dist/emergent/ForgeToolMetaTool.js.map +1 -1
  283. package/dist/emergent/SandboxedToolForge.d.ts +2 -2
  284. package/dist/emergent/SandboxedToolForge.d.ts.map +1 -1
  285. package/dist/emergent/SandboxedToolForge.js +13 -23
  286. package/dist/emergent/SandboxedToolForge.js.map +1 -1
  287. package/dist/emergent/SkillExporter.d.ts +119 -0
  288. package/dist/emergent/SkillExporter.d.ts.map +1 -0
  289. package/dist/emergent/SkillExporter.js +344 -0
  290. package/dist/emergent/SkillExporter.js.map +1 -0
  291. package/dist/emergent/index.d.ts +1 -0
  292. package/dist/emergent/index.d.ts.map +1 -1
  293. package/dist/emergent/index.js +1 -0
  294. package/dist/emergent/index.js.map +1 -1
  295. package/dist/emergent/types.d.ts +4 -4
  296. package/dist/index.d.ts +30 -5
  297. package/dist/index.d.ts.map +1 -1
  298. package/dist/index.js +19 -2
  299. package/dist/index.js.map +1 -1
  300. package/dist/memory/index.d.ts +10 -8
  301. package/dist/memory/index.d.ts.map +1 -1
  302. package/dist/memory/index.js +2 -0
  303. package/dist/memory/index.js.map +1 -1
  304. package/dist/memory/ingestion/DoclingLoader.d.ts +3 -3
  305. package/dist/memory/ingestion/DoclingLoader.d.ts.map +1 -1
  306. package/dist/memory/ingestion/DoclingLoader.js +12 -8
  307. package/dist/memory/ingestion/DoclingLoader.js.map +1 -1
  308. package/dist/memory/ingestion/FolderScanner.d.ts +7 -7
  309. package/dist/memory/ingestion/FolderScanner.d.ts.map +1 -1
  310. package/dist/memory/ingestion/FolderScanner.js +6 -6
  311. package/dist/memory/ingestion/FolderScanner.js.map +1 -1
  312. package/dist/memory/ingestion/LoaderRegistry.d.ts +8 -8
  313. package/dist/memory/ingestion/LoaderRegistry.d.ts.map +1 -1
  314. package/dist/memory/ingestion/LoaderRegistry.js +9 -11
  315. package/dist/memory/ingestion/LoaderRegistry.js.map +1 -1
  316. package/dist/memory/ingestion/MultimodalAggregator.d.ts +1 -1
  317. package/dist/memory/ingestion/MultimodalAggregator.js +1 -1
  318. package/dist/memory/ingestion/OcrPdfLoader.d.ts +2 -2
  319. package/dist/memory/ingestion/OcrPdfLoader.d.ts.map +1 -1
  320. package/dist/memory/ingestion/OcrPdfLoader.js +12 -8
  321. package/dist/memory/ingestion/OcrPdfLoader.js.map +1 -1
  322. package/dist/memory/ingestion/PdfLoader.d.ts +8 -8
  323. package/dist/memory/ingestion/PdfLoader.d.ts.map +1 -1
  324. package/dist/memory/ingestion/PdfLoader.js +13 -10
  325. package/dist/memory/ingestion/PdfLoader.js.map +1 -1
  326. package/dist/memory/io/MarkdownExporter.d.ts +1 -1
  327. package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
  328. package/dist/memory/io/MarkdownExporter.js +1 -1
  329. package/dist/memory/io/MarkdownExporter.js.map +1 -1
  330. package/dist/memory/tools/MemoryAddTool.d.ts +2 -2
  331. package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
  332. package/dist/memory/tools/MemoryAddTool.js +8 -3
  333. package/dist/memory/tools/MemoryAddTool.js.map +1 -1
  334. package/dist/memory/tools/MemorySearchTool.d.ts +3 -3
  335. package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
  336. package/dist/memory/tools/MemorySearchTool.js +11 -9
  337. package/dist/memory/tools/MemorySearchTool.js.map +1 -1
  338. package/dist/memory/tools/scopeContext.d.ts +11 -0
  339. package/dist/memory/tools/scopeContext.d.ts.map +1 -0
  340. package/dist/memory/tools/scopeContext.js +46 -0
  341. package/dist/memory/tools/scopeContext.js.map +1 -0
  342. package/dist/orchestration/builders/AgentGraph.d.ts +12 -11
  343. package/dist/orchestration/builders/AgentGraph.d.ts.map +1 -1
  344. package/dist/orchestration/builders/AgentGraph.js +12 -11
  345. package/dist/orchestration/builders/AgentGraph.js.map +1 -1
  346. package/dist/orchestration/builders/VoiceNodeBuilder.d.ts +2 -2
  347. package/dist/orchestration/builders/VoiceNodeBuilder.d.ts.map +1 -1
  348. package/dist/orchestration/builders/VoiceNodeBuilder.js +2 -2
  349. package/dist/orchestration/builders/VoiceNodeBuilder.js.map +1 -1
  350. package/dist/orchestration/builders/WorkflowBuilder.d.ts +1 -1
  351. package/dist/orchestration/builders/WorkflowBuilder.d.ts.map +1 -1
  352. package/dist/orchestration/builders/WorkflowBuilder.js +1 -1
  353. package/dist/orchestration/builders/WorkflowBuilder.js.map +1 -1
  354. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts +7 -54
  355. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.d.ts.map +1 -1
  356. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js +8 -56
  357. package/dist/orchestration/checkpoint/InMemoryCheckpointStore.js.map +1 -1
  358. package/dist/orchestration/events/GraphEvent.d.ts +12 -12
  359. package/dist/orchestration/events/GraphEvent.d.ts.map +1 -1
  360. package/dist/orchestration/events/GraphEvent.js.map +1 -1
  361. package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
  362. package/dist/orchestration/runtime/GraphRuntime.js +151 -1
  363. package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
  364. package/dist/orchestration/runtime/LoopController.d.ts +3 -3
  365. package/dist/orchestration/runtime/LoopController.d.ts.map +1 -1
  366. package/dist/orchestration/runtime/LoopController.js.map +1 -1
  367. package/dist/orchestration/runtime/StateManager.d.ts +3 -3
  368. package/dist/orchestration/runtime/StateManager.js +3 -3
  369. package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts +6 -6
  370. package/dist/orchestration/runtime/VoiceNodeExecutor.d.ts.map +1 -1
  371. package/dist/orchestration/runtime/VoiceNodeExecutor.js +27 -10
  372. package/dist/orchestration/runtime/VoiceNodeExecutor.js.map +1 -1
  373. package/dist/orchestration/runtime/VoiceTransportAdapter.d.ts +5 -5
  374. package/dist/orchestration/runtime/VoiceTransportAdapter.js +5 -5
  375. package/dist/orchestration/runtime/VoiceTurnCollector.d.ts +2 -2
  376. package/dist/orchestration/runtime/VoiceTurnCollector.js +2 -2
  377. package/dist/query-router/KeywordFallback.d.ts +70 -0
  378. package/dist/query-router/KeywordFallback.d.ts.map +1 -0
  379. package/dist/query-router/KeywordFallback.js +132 -0
  380. package/dist/query-router/KeywordFallback.js.map +1 -0
  381. package/dist/query-router/QueryClassifier.d.ts +140 -0
  382. package/dist/query-router/QueryClassifier.d.ts.map +1 -0
  383. package/dist/query-router/QueryClassifier.js +223 -0
  384. package/dist/query-router/QueryClassifier.js.map +1 -0
  385. package/dist/query-router/QueryDispatcher.d.ts +139 -0
  386. package/dist/query-router/QueryDispatcher.d.ts.map +1 -0
  387. package/dist/query-router/QueryDispatcher.js +297 -0
  388. package/dist/query-router/QueryDispatcher.js.map +1 -0
  389. package/dist/query-router/QueryGenerator.d.ts +184 -0
  390. package/dist/query-router/QueryGenerator.d.ts.map +1 -0
  391. package/dist/query-router/QueryGenerator.js +241 -0
  392. package/dist/query-router/QueryGenerator.js.map +1 -0
  393. package/dist/query-router/QueryRouter.d.ts +292 -0
  394. package/dist/query-router/QueryRouter.d.ts.map +1 -0
  395. package/dist/query-router/QueryRouter.js +803 -0
  396. package/dist/query-router/QueryRouter.js.map +1 -0
  397. package/dist/query-router/TopicExtractor.d.ts +73 -0
  398. package/dist/query-router/TopicExtractor.d.ts.map +1 -0
  399. package/dist/query-router/TopicExtractor.js +95 -0
  400. package/dist/query-router/TopicExtractor.js.map +1 -0
  401. package/dist/query-router/index.d.ts +40 -0
  402. package/dist/query-router/index.d.ts.map +1 -0
  403. package/dist/query-router/index.js +46 -0
  404. package/dist/query-router/index.js.map +1 -0
  405. package/dist/query-router/types.d.ts +508 -0
  406. package/dist/query-router/types.d.ts.map +1 -0
  407. package/dist/query-router/types.js +39 -0
  408. package/dist/query-router/types.js.map +1 -0
  409. package/dist/rag/index.d.ts +5 -0
  410. package/dist/rag/index.d.ts.map +1 -1
  411. package/dist/rag/index.js +7 -0
  412. package/dist/rag/index.js.map +1 -1
  413. package/dist/rag/multimodal/LLMVisionAdapter.d.ts +43 -0
  414. package/dist/rag/multimodal/LLMVisionAdapter.d.ts.map +1 -0
  415. package/dist/rag/multimodal/LLMVisionAdapter.js +46 -0
  416. package/dist/rag/multimodal/LLMVisionAdapter.js.map +1 -0
  417. package/dist/rag/multimodal/MultimodalIndexer.d.ts +244 -0
  418. package/dist/rag/multimodal/MultimodalIndexer.d.ts.map +1 -0
  419. package/dist/rag/multimodal/MultimodalIndexer.js +411 -0
  420. package/dist/rag/multimodal/MultimodalIndexer.js.map +1 -0
  421. package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts +448 -0
  422. package/dist/rag/multimodal/MultimodalMemoryBridge.d.ts.map +1 -0
  423. package/dist/rag/multimodal/MultimodalMemoryBridge.js +941 -0
  424. package/dist/rag/multimodal/MultimodalMemoryBridge.js.map +1 -0
  425. package/dist/rag/multimodal/SpeechProviderAdapter.d.ts +139 -0
  426. package/dist/rag/multimodal/SpeechProviderAdapter.d.ts.map +1 -0
  427. package/dist/rag/multimodal/SpeechProviderAdapter.js +143 -0
  428. package/dist/rag/multimodal/SpeechProviderAdapter.js.map +1 -0
  429. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts +172 -0
  430. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.d.ts.map +1 -0
  431. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js +152 -0
  432. package/dist/rag/multimodal/createMultimodalIndexerFromResolver.js.map +1 -0
  433. package/dist/rag/multimodal/index.d.ts +44 -0
  434. package/dist/rag/multimodal/index.d.ts.map +1 -0
  435. package/dist/rag/multimodal/index.js +42 -0
  436. package/dist/rag/multimodal/index.js.map +1 -0
  437. package/dist/rag/multimodal/types.d.ts +276 -0
  438. package/dist/rag/multimodal/types.d.ts.map +1 -0
  439. package/dist/rag/multimodal/types.js +26 -0
  440. package/dist/rag/multimodal/types.js.map +1 -0
  441. package/dist/social-posting/SocialPostManager.d.ts +3 -3
  442. package/dist/social-posting/SocialPostManager.d.ts.map +1 -1
  443. package/dist/social-posting/SocialPostManager.js +3 -5
  444. package/dist/social-posting/SocialPostManager.js.map +1 -1
  445. package/dist/speech/FallbackProxy.d.ts +6 -6
  446. package/dist/speech/FallbackProxy.d.ts.map +1 -1
  447. package/dist/speech/FallbackProxy.js +3 -3
  448. package/dist/speech/FallbackProxy.js.map +1 -1
  449. package/dist/speech/SpeechProviderResolver.d.ts +8 -8
  450. package/dist/speech/SpeechProviderResolver.d.ts.map +1 -1
  451. package/dist/speech/SpeechProviderResolver.js +22 -11
  452. package/dist/speech/SpeechProviderResolver.js.map +1 -1
  453. package/dist/speech/SpeechRuntime.d.ts +1 -5
  454. package/dist/speech/SpeechRuntime.d.ts.map +1 -1
  455. package/dist/speech/SpeechRuntime.js +17 -9
  456. package/dist/speech/SpeechRuntime.js.map +1 -1
  457. package/dist/speech/providers/AssemblyAISTTProvider.d.ts +4 -4
  458. package/dist/speech/providers/AssemblyAISTTProvider.js +4 -4
  459. package/dist/speech/providers/AzureSpeechTTSProvider.d.ts +3 -3
  460. package/dist/speech/providers/AzureSpeechTTSProvider.js +2 -2
  461. package/dist/speech/providers/AzureSpeechTTSProvider.js.map +1 -1
  462. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts +9 -9
  463. package/dist/speech/providers/BuiltInAdaptiveVadProvider.d.ts.map +1 -1
  464. package/dist/speech/providers/BuiltInAdaptiveVadProvider.js +5 -5
  465. package/dist/speech/providers/BuiltInAdaptiveVadProvider.js.map +1 -1
  466. package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts +2 -2
  467. package/dist/speech/providers/DeepgramBatchSTTProvider.js +2 -2
  468. package/dist/speech/providers/OpenAITextToSpeechProvider.d.ts +3 -3
  469. package/dist/speech/providers/OpenAITextToSpeechProvider.js +2 -2
  470. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts +1 -1
  471. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.d.ts.map +1 -1
  472. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js +1 -1
  473. package/dist/speech/providers/OpenAIWhisperSpeechToTextProvider.js.map +1 -1
  474. package/dist/voice/TelephonyStreamTransport.d.ts +6 -6
  475. package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -1
  476. package/dist/voice/TelephonyStreamTransport.js +5 -5
  477. package/dist/voice/TelephonyStreamTransport.js.map +1 -1
  478. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +4 -4
  479. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -1
  480. package/dist/voice-pipeline/AcousticEndpointDetector.js +4 -4
  481. package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -1
  482. package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +3 -3
  483. package/dist/voice-pipeline/HardCutBargeinHandler.js +3 -3
  484. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +3 -3
  485. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -1
  486. package/dist/voice-pipeline/HeuristicEndpointDetector.js +3 -3
  487. package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -1
  488. package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +5 -5
  489. package/dist/voice-pipeline/SoftFadeBargeinHandler.js +1 -1
  490. package/dist/voice-pipeline/VoiceInterruptError.d.ts +6 -6
  491. package/dist/voice-pipeline/VoiceInterruptError.d.ts.map +1 -1
  492. package/dist/voice-pipeline/VoiceInterruptError.js +4 -4
  493. package/dist/voice-pipeline/VoiceInterruptError.js.map +1 -1
  494. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +9 -9
  495. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -1
  496. package/dist/voice-pipeline/VoicePipelineOrchestrator.js +8 -8
  497. package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -1
  498. package/dist/voice-pipeline/WebRTCStreamTransport.d.ts +421 -0
  499. package/dist/voice-pipeline/WebRTCStreamTransport.d.ts.map +1 -0
  500. package/dist/voice-pipeline/WebRTCStreamTransport.js +573 -0
  501. package/dist/voice-pipeline/WebRTCStreamTransport.js.map +1 -0
  502. package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +8 -8
  503. package/dist/voice-pipeline/WebSocketStreamTransport.js +5 -5
  504. package/dist/voice-pipeline/index.d.ts +1 -0
  505. package/dist/voice-pipeline/index.d.ts.map +1 -1
  506. package/dist/voice-pipeline/index.js +2 -0
  507. package/dist/voice-pipeline/index.js.map +1 -1
  508. package/dist/voice-pipeline/types.d.ts +43 -43
  509. package/dist/voice-pipeline/types.d.ts.map +1 -1
  510. package/package.json +19 -1
@@ -0,0 +1,159 @@
1
+ import { AgentOSServiceError } from './errors.js';
2
+ import { GMIErrorCode } from '../utils/errors.js';
3
+ import { executeExternalToolFromRegistry, mergeExternalToolRegistries, registerTemporaryExternalTools, } from './externalToolRegistry.js';
4
+ function normalizeOptionalString(value) {
5
+ if (typeof value !== 'string') {
6
+ return undefined;
7
+ }
8
+ const trimmed = value.trim();
9
+ return trimmed || undefined;
10
+ }
11
+ function buildResumeOptions(options) {
12
+ const resumeOptions = {};
13
+ if (options.userApiKeys) {
14
+ resumeOptions.userApiKeys = options.userApiKeys;
15
+ }
16
+ if (options.preferredModelId) {
17
+ resumeOptions.preferredModelId = options.preferredModelId;
18
+ }
19
+ if (options.preferredProviderId) {
20
+ resumeOptions.preferredProviderId = options.preferredProviderId;
21
+ }
22
+ if (options.organizationId) {
23
+ resumeOptions.organizationId = options.organizationId;
24
+ }
25
+ return resumeOptions;
26
+ }
27
+ function resolveExternalToolsForRuntime(agentos, registry) {
28
+ return mergeExternalToolRegistries(agentos.getExternalToolRegistry?.(), registry);
29
+ }
30
+ /**
31
+ * Builds the `ToolExecutionContext` that a host should use when it wants to
32
+ * execute a persisted external tool pause against AgentOS's registered tool
33
+ * registry after restart.
34
+ */
35
+ export function buildPendingExternalToolExecutionContext(pendingRequest, options = {}) {
36
+ const userContext = {
37
+ ...(options.userContext ?? {}),
38
+ userId: pendingRequest.userId,
39
+ };
40
+ const organizationId = normalizeOptionalString(options.organizationId ?? userContext.organizationId);
41
+ if (organizationId) {
42
+ userContext.organizationId = organizationId;
43
+ }
44
+ const sessionData = {
45
+ sessionId: pendingRequest.sessionId,
46
+ conversationId: pendingRequest.conversationId,
47
+ };
48
+ if (organizationId) {
49
+ sessionData.organizationId = organizationId;
50
+ }
51
+ return {
52
+ gmiId: pendingRequest.gmiInstanceId,
53
+ personaId: pendingRequest.personaId,
54
+ userContext,
55
+ correlationId: normalizeOptionalString(options.correlationId) ?? pendingRequest.streamId,
56
+ sessionData,
57
+ };
58
+ }
59
+ /**
60
+ * Executes one pending external tool call through AgentOS's registered tool
61
+ * registry using the correct resume-time execution context, then optionally
62
+ * falls back to a host-provided external tool registry or dynamic callback.
63
+ */
64
+ export async function executePendingExternalToolCall(agentos, pendingRequest, toolCall, options = {}) {
65
+ const externalTools = resolveExternalToolsForRuntime(agentos, options.externalTools);
66
+ const tool = await agentos.getToolOrchestrator().getTool(toolCall.name);
67
+ if (!tool) {
68
+ const executionContext = buildPendingExternalToolExecutionContext(pendingRequest, {
69
+ ...options,
70
+ correlationId: options.correlationId ?? toolCall.id,
71
+ });
72
+ const registryExecution = await executeExternalToolFromRegistry(externalTools, toolCall.name, toolCall.arguments, executionContext, {
73
+ errorOrigin: 'executePendingExternalToolCall',
74
+ failureMessage: `Failed to execute external tool '${toolCall.name}' from externalTools registry`,
75
+ });
76
+ if (registryExecution) {
77
+ return {
78
+ toolCallId: toolCall.id,
79
+ toolName: toolCall.name,
80
+ toolOutput: registryExecution.toolOutput,
81
+ isSuccess: registryExecution.isSuccess ?? true,
82
+ errorMessage: registryExecution.errorMessage,
83
+ };
84
+ }
85
+ if (options.fallbackExternalToolHandler) {
86
+ try {
87
+ const execution = await options.fallbackExternalToolHandler({
88
+ agentos,
89
+ pendingRequest,
90
+ toolCall,
91
+ });
92
+ return {
93
+ toolCallId: toolCall.id,
94
+ toolName: toolCall.name,
95
+ toolOutput: execution.toolOutput,
96
+ isSuccess: execution.isSuccess ?? true,
97
+ errorMessage: execution.errorMessage,
98
+ };
99
+ }
100
+ catch (error) {
101
+ throw AgentOSServiceError.wrap(error, GMIErrorCode.TOOL_ERROR, `Failed to execute fallback external tool '${toolCall.name}'`, 'executePendingExternalToolCall');
102
+ }
103
+ }
104
+ throw new AgentOSServiceError(`Pending external tool '${toolCall.name}' is not registered.`, GMIErrorCode.RESOURCE_NOT_FOUND, {
105
+ conversationId: pendingRequest.conversationId,
106
+ streamId: pendingRequest.streamId,
107
+ toolCallId: toolCall.id,
108
+ toolName: toolCall.name,
109
+ }, 'executePendingExternalToolCall');
110
+ }
111
+ try {
112
+ const execution = await tool.execute(toolCall.arguments, buildPendingExternalToolExecutionContext(pendingRequest, {
113
+ ...options,
114
+ correlationId: options.correlationId ?? toolCall.id,
115
+ }));
116
+ return {
117
+ toolCallId: toolCall.id,
118
+ toolName: toolCall.name,
119
+ toolOutput: execution.output,
120
+ isSuccess: execution.success,
121
+ errorMessage: execution.error,
122
+ };
123
+ }
124
+ catch (error) {
125
+ throw AgentOSServiceError.wrap(error, GMIErrorCode.TOOL_ERROR, `Failed to execute pending external tool '${toolCall.name}'`, 'executePendingExternalToolCall');
126
+ }
127
+ }
128
+ /**
129
+ * Executes all tool calls from a persisted external-tool pause, in order,
130
+ * through AgentOS's registered tool registry.
131
+ */
132
+ export async function executePendingExternalToolCalls(agentos, pendingRequest, options = {}) {
133
+ const toolResults = [];
134
+ for (const toolCall of pendingRequest.toolCalls) {
135
+ toolResults.push(await executePendingExternalToolCall(agentos, pendingRequest, toolCall, options));
136
+ }
137
+ return toolResults;
138
+ }
139
+ /**
140
+ * Executes all pending registered tool calls from a persisted external-tool
141
+ * pause and immediately resumes the AgentOS stream on the caller's behalf.
142
+ * Missing tool names can optionally fall back to `externalTools` or
143
+ * `fallbackExternalToolHandler`.
144
+ */
145
+ export async function* resumeExternalToolRequestWithRegisteredTools(agentos, pendingRequest, options = {}) {
146
+ const externalTools = resolveExternalToolsForRuntime(agentos, options.externalTools);
147
+ const toolResults = await executePendingExternalToolCalls(agentos, pendingRequest, {
148
+ ...options,
149
+ externalTools,
150
+ });
151
+ const cleanup = await registerTemporaryExternalTools(agentos.getToolOrchestrator(), externalTools);
152
+ try {
153
+ yield* agentos.resumeExternalToolRequest(pendingRequest, toolResults, buildResumeOptions(options));
154
+ }
155
+ finally {
156
+ await cleanup();
157
+ }
158
+ }
159
+ //# sourceMappingURL=resumeExternalToolRequestWithRegisteredTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resumeExternalToolRequestWithRegisteredTools.js","sourceRoot":"","sources":["../../src/api/resumeExternalToolRequestWithRegisteredTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * @file agentGraphBuilder.ts
3
+ * High-level builder for agent-to-agent dependency graphs.
4
+ *
5
+ * Wraps the low-level CompiledExecutionGraph IR with agent-centric syntax,
6
+ * making it easy to declare multi-agent DAGs without manually constructing
7
+ * graph nodes and edges.
8
+ *
9
+ * The builder handles:
10
+ * - Converting agent configs into GMI nodes
11
+ * - Auto-generating START -> root nodes and leaf nodes -> END edges
12
+ * - Resolving `dependsOn` declarations into proper graph edges
13
+ * - Setting up appropriate state reducers for inter-agent data flow
14
+ * - Cycle detection via topological sort validation
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const graph = agentGraph()
19
+ * .agent('researcher', { instructions: 'Find sources', tools: [webSearch] })
20
+ * .agent('writer', { instructions: 'Write article', dependsOn: ['researcher'] })
21
+ * .agent('editor', { instructions: 'Review article', dependsOn: ['writer'] })
22
+ * .compile();
23
+ *
24
+ * const runtime = new GraphRuntime({ checkpointStore, nodeExecutor });
25
+ * const result = await runtime.invoke(graph, { prompt: 'Write about TypeScript' });
26
+ * ```
27
+ *
28
+ * @see {@link agentGraph} -- the entry-point factory function.
29
+ * @see {@link compileAgencyToGraph} -- the strategy-based compiler (an alternative).
30
+ */
31
+ import type { CompiledExecutionGraph } from '../../orchestration/ir/types.js';
32
+ /**
33
+ * Configuration for a single agent node in the graph builder.
34
+ *
35
+ * Extends the minimal set of fields needed to create a GMI node,
36
+ * plus a `dependsOn` array that declares execution dependencies.
37
+ */
38
+ export interface AgentNodeConfig {
39
+ /** System instructions for this agent's GMI node. */
40
+ instructions: string;
41
+ /**
42
+ * Names of agents that must complete before this agent can run.
43
+ * Creates static edges from each dependency to this agent.
44
+ * Agents with no dependencies are "root" nodes connected from START.
45
+ *
46
+ * @example `dependsOn: ['researcher']` -- waits for researcher to finish
47
+ */
48
+ dependsOn?: string[];
49
+ /**
50
+ * Optional tool names available to this agent.
51
+ * Informational -- actual tool wiring happens at the NodeExecutor level.
52
+ */
53
+ tools?: unknown[];
54
+ /**
55
+ * Optional model override for this specific agent.
56
+ * When omitted, the agent uses the graph-wide default.
57
+ */
58
+ model?: string;
59
+ /**
60
+ * Maximum ReAct iterations for this agent's GMI node.
61
+ * Controls how many tool-call rounds the agent can perform.
62
+ * @default 10
63
+ */
64
+ maxIterations?: number;
65
+ /**
66
+ * Sampling temperature forwarded to the LLM provider.
67
+ * Lower values produce more deterministic output.
68
+ */
69
+ temperature?: number;
70
+ }
71
+ /**
72
+ * Fluent builder for constructing agent-to-agent dependency graphs.
73
+ *
74
+ * Usage:
75
+ * 1. Call `.agent(name, config)` for each agent in the graph.
76
+ * 2. Declare dependencies via `config.dependsOn`.
77
+ * 3. Call `.compile()` to produce a `CompiledExecutionGraph`.
78
+ *
79
+ * The builder validates at compile time that:
80
+ * - All `dependsOn` references point to registered agents
81
+ * - The dependency graph contains no cycles
82
+ * - At least one agent is registered
83
+ *
84
+ * @example
85
+ * ```ts
86
+ * const graph = agentGraph()
87
+ * .agent('a', { instructions: 'Do A' })
88
+ * .agent('b', { instructions: 'Do B', dependsOn: ['a'] })
89
+ * .agent('c', { instructions: 'Do C', dependsOn: ['a'] })
90
+ * .agent('d', { instructions: 'Do D', dependsOn: ['b', 'c'] })
91
+ * .compile();
92
+ * ```
93
+ */
94
+ export declare class AgentGraphBuilder {
95
+ /** Map of agent name -> registration record. Preserves insertion order. */
96
+ private readonly agents;
97
+ /** Running counter for deterministic ordering. */
98
+ private orderCounter;
99
+ /**
100
+ * Registers an agent node in the graph.
101
+ *
102
+ * @param name - Unique name for this agent. Must not conflict with
103
+ * START/END sentinels or previously registered names.
104
+ * @param config - Agent configuration including instructions and dependencies.
105
+ * @returns `this` for fluent chaining.
106
+ * @throws {Error} When the name is already registered or conflicts with sentinels.
107
+ *
108
+ * @example
109
+ * ```ts
110
+ * builder.agent('researcher', {
111
+ * instructions: 'Find sources on the given topic.',
112
+ * dependsOn: [],
113
+ * });
114
+ * ```
115
+ */
116
+ agent(name: string, config: AgentNodeConfig): this;
117
+ /**
118
+ * Compiles all registered agents into a `CompiledExecutionGraph`.
119
+ *
120
+ * The compilation process:
121
+ * 1. Validates all `dependsOn` references point to registered agents.
122
+ * 2. Detects cycles via Kahn's topological sort algorithm.
123
+ * 3. Creates a GMI node for each agent.
124
+ * 4. Creates START -> root nodes edges (agents with no dependencies).
125
+ * 5. Creates dependency edges between agents.
126
+ * 6. Creates leaf nodes -> END edges (agents with no dependents).
127
+ * 7. Sets up state reducers for inter-agent data flow.
128
+ *
129
+ * @returns A fully compiled execution graph ready for GraphRuntime.
130
+ * @throws {Error} When no agents are registered.
131
+ * @throws {Error} When a `dependsOn` reference points to an unknown agent.
132
+ * @throws {Error} When the dependency graph contains a cycle.
133
+ *
134
+ * @example
135
+ * ```ts
136
+ * const graph = builder.compile();
137
+ * const runtime = new GraphRuntime({ checkpointStore, nodeExecutor });
138
+ * const result = await runtime.invoke(graph, { prompt: 'Hello' });
139
+ * ```
140
+ */
141
+ compile(): CompiledExecutionGraph;
142
+ }
143
+ /**
144
+ * Creates a new AgentGraphBuilder instance.
145
+ *
146
+ * This is the recommended entry point for building agent dependency graphs.
147
+ * The builder provides a fluent API for declaring agents and their dependencies,
148
+ * then compiles to a CompiledExecutionGraph for execution by GraphRuntime.
149
+ *
150
+ * @returns A fresh AgentGraphBuilder ready for agent registration.
151
+ *
152
+ * @example
153
+ * ```ts
154
+ * import { agentGraph } from './agentGraphBuilder.js';
155
+ *
156
+ * const graph = agentGraph()
157
+ * .agent('researcher', { instructions: 'Find sources', tools: [webSearch] })
158
+ * .agent('writer', { instructions: 'Write article', dependsOn: ['researcher'] })
159
+ * .agent('editor', { instructions: 'Review article', dependsOn: ['writer'] })
160
+ * .compile();
161
+ *
162
+ * const runtime = new GraphRuntime({ checkpointStore, nodeExecutor });
163
+ * const result = await runtime.invoke(graph, { prompt: 'Write about TypeScript' });
164
+ * ```
165
+ *
166
+ * @see {@link AgentGraphBuilder} -- the builder class.
167
+ * @see {@link compileAgencyToGraph} -- the strategy-based compiler for agency() configs.
168
+ */
169
+ export declare function agentGraph(): AgentGraphBuilder;
170
+ //# sourceMappingURL=agentGraphBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentGraphBuilder.d.ts","sourceRoot":"","sources":["../../../src/api/strategies/agentGraphBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,sBAAsB,EAIvB,MAAM,iCAAiC,CAAC;AAOzC;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAmBD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAiB;IAC5B,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAE/D,kDAAkD;IAClD,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAiBlD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,IAAI,sBAAsB;CAsKlC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,UAAU,IAAI,iBAAiB,CAE9C"}
@@ -0,0 +1,299 @@
1
+ /**
2
+ * @file agentGraphBuilder.ts
3
+ * High-level builder for agent-to-agent dependency graphs.
4
+ *
5
+ * Wraps the low-level CompiledExecutionGraph IR with agent-centric syntax,
6
+ * making it easy to declare multi-agent DAGs without manually constructing
7
+ * graph nodes and edges.
8
+ *
9
+ * The builder handles:
10
+ * - Converting agent configs into GMI nodes
11
+ * - Auto-generating START -> root nodes and leaf nodes -> END edges
12
+ * - Resolving `dependsOn` declarations into proper graph edges
13
+ * - Setting up appropriate state reducers for inter-agent data flow
14
+ * - Cycle detection via topological sort validation
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const graph = agentGraph()
19
+ * .agent('researcher', { instructions: 'Find sources', tools: [webSearch] })
20
+ * .agent('writer', { instructions: 'Write article', dependsOn: ['researcher'] })
21
+ * .agent('editor', { instructions: 'Review article', dependsOn: ['writer'] })
22
+ * .compile();
23
+ *
24
+ * const runtime = new GraphRuntime({ checkpointStore, nodeExecutor });
25
+ * const result = await runtime.invoke(graph, { prompt: 'Write about TypeScript' });
26
+ * ```
27
+ *
28
+ * @see {@link agentGraph} -- the entry-point factory function.
29
+ * @see {@link compileAgencyToGraph} -- the strategy-based compiler (an alternative).
30
+ */
31
+ import { START, END } from '../../orchestration/ir/types.js';
32
+ // ---------------------------------------------------------------------------
33
+ // AgentGraphBuilder
34
+ // ---------------------------------------------------------------------------
35
+ /**
36
+ * Fluent builder for constructing agent-to-agent dependency graphs.
37
+ *
38
+ * Usage:
39
+ * 1. Call `.agent(name, config)` for each agent in the graph.
40
+ * 2. Declare dependencies via `config.dependsOn`.
41
+ * 3. Call `.compile()` to produce a `CompiledExecutionGraph`.
42
+ *
43
+ * The builder validates at compile time that:
44
+ * - All `dependsOn` references point to registered agents
45
+ * - The dependency graph contains no cycles
46
+ * - At least one agent is registered
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const graph = agentGraph()
51
+ * .agent('a', { instructions: 'Do A' })
52
+ * .agent('b', { instructions: 'Do B', dependsOn: ['a'] })
53
+ * .agent('c', { instructions: 'Do C', dependsOn: ['a'] })
54
+ * .agent('d', { instructions: 'Do D', dependsOn: ['b', 'c'] })
55
+ * .compile();
56
+ * ```
57
+ */
58
+ export class AgentGraphBuilder {
59
+ constructor() {
60
+ /** Map of agent name -> registration record. Preserves insertion order. */
61
+ this.agents = new Map();
62
+ /** Running counter for deterministic ordering. */
63
+ this.orderCounter = 0;
64
+ }
65
+ /**
66
+ * Registers an agent node in the graph.
67
+ *
68
+ * @param name - Unique name for this agent. Must not conflict with
69
+ * START/END sentinels or previously registered names.
70
+ * @param config - Agent configuration including instructions and dependencies.
71
+ * @returns `this` for fluent chaining.
72
+ * @throws {Error} When the name is already registered or conflicts with sentinels.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * builder.agent('researcher', {
77
+ * instructions: 'Find sources on the given topic.',
78
+ * dependsOn: [],
79
+ * });
80
+ * ```
81
+ */
82
+ agent(name, config) {
83
+ if (this.agents.has(name)) {
84
+ throw new Error(`Agent "${name}" is already registered in the graph builder`);
85
+ }
86
+ if (name === START || name === END) {
87
+ throw new Error(`Agent name cannot be "${name}" -- reserved sentinel`);
88
+ }
89
+ this.agents.set(name, {
90
+ name,
91
+ config,
92
+ order: this.orderCounter++,
93
+ });
94
+ return this;
95
+ }
96
+ /**
97
+ * Compiles all registered agents into a `CompiledExecutionGraph`.
98
+ *
99
+ * The compilation process:
100
+ * 1. Validates all `dependsOn` references point to registered agents.
101
+ * 2. Detects cycles via Kahn's topological sort algorithm.
102
+ * 3. Creates a GMI node for each agent.
103
+ * 4. Creates START -> root nodes edges (agents with no dependencies).
104
+ * 5. Creates dependency edges between agents.
105
+ * 6. Creates leaf nodes -> END edges (agents with no dependents).
106
+ * 7. Sets up state reducers for inter-agent data flow.
107
+ *
108
+ * @returns A fully compiled execution graph ready for GraphRuntime.
109
+ * @throws {Error} When no agents are registered.
110
+ * @throws {Error} When a `dependsOn` reference points to an unknown agent.
111
+ * @throws {Error} When the dependency graph contains a cycle.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * const graph = builder.compile();
116
+ * const runtime = new GraphRuntime({ checkpointStore, nodeExecutor });
117
+ * const result = await runtime.invoke(graph, { prompt: 'Hello' });
118
+ * ```
119
+ */
120
+ compile() {
121
+ if (this.agents.size === 0) {
122
+ throw new Error('Cannot compile an empty agent graph -- register at least one agent');
123
+ }
124
+ // ------------------------------------------------------------------
125
+ // Phase 1: Validate dependency references
126
+ // ------------------------------------------------------------------
127
+ for (const [name, reg] of this.agents) {
128
+ for (const dep of reg.config.dependsOn ?? []) {
129
+ if (!this.agents.has(dep)) {
130
+ throw new Error(`Agent "${name}" depends on "${dep}" which is not registered in the graph`);
131
+ }
132
+ }
133
+ }
134
+ // ------------------------------------------------------------------
135
+ // Phase 2: Cycle detection via Kahn's algorithm
136
+ // ------------------------------------------------------------------
137
+ const inDegree = new Map();
138
+ const adjacency = new Map();
139
+ for (const [name] of this.agents) {
140
+ inDegree.set(name, 0);
141
+ adjacency.set(name, []);
142
+ }
143
+ for (const [name, reg] of this.agents) {
144
+ for (const dep of reg.config.dependsOn ?? []) {
145
+ adjacency.get(dep).push(name);
146
+ inDegree.set(name, (inDegree.get(name) ?? 0) + 1);
147
+ }
148
+ }
149
+ const queue = [];
150
+ for (const [name, degree] of inDegree) {
151
+ if (degree === 0)
152
+ queue.push(name);
153
+ }
154
+ const sorted = [];
155
+ while (queue.length > 0) {
156
+ const current = queue.shift();
157
+ sorted.push(current);
158
+ for (const neighbor of adjacency.get(current) ?? []) {
159
+ const newDegree = (inDegree.get(neighbor) ?? 1) - 1;
160
+ inDegree.set(neighbor, newDegree);
161
+ if (newDegree === 0)
162
+ queue.push(neighbor);
163
+ }
164
+ }
165
+ if (sorted.length < this.agents.size) {
166
+ const stuck = [...this.agents.keys()].filter(n => !sorted.includes(n));
167
+ throw new Error(`Cycle detected in agent graph. Stuck agents: ${stuck.join(', ')}`);
168
+ }
169
+ // ------------------------------------------------------------------
170
+ // Phase 3: Build graph nodes
171
+ // ------------------------------------------------------------------
172
+ const nodes = [];
173
+ const edges = [];
174
+ let edgeId = 0;
175
+ // Track which agents have dependents so we can identify leaf nodes.
176
+ const hasDependents = new Set();
177
+ for (const [, reg] of this.agents) {
178
+ for (const dep of reg.config.dependsOn ?? []) {
179
+ hasDependents.add(dep);
180
+ }
181
+ }
182
+ for (const [name, reg] of this.agents) {
183
+ const config = reg.config;
184
+ const depKeys = (config.dependsOn ?? []).map(d => `output_${d}`);
185
+ // Build context instructions: tell the agent where to find
186
+ // predecessor outputs in the scratch partition.
187
+ const contextInstructions = depKeys.length > 0
188
+ ? `\n\nRead the following scratch keys for context from your dependencies: ${depKeys.join(', ')}.`
189
+ : '\n\nRead scratch.prompt for the initial task.';
190
+ const nodeId = `agent_${name}`;
191
+ nodes.push({
192
+ id: nodeId,
193
+ type: 'gmi',
194
+ executorConfig: {
195
+ type: 'gmi',
196
+ instructions: `You are agent "${name}". ${config.instructions}${contextInstructions}` +
197
+ `\n\nWrite your output to scratch key "output_${name}".`,
198
+ maxInternalIterations: config.maxIterations,
199
+ temperature: config.temperature,
200
+ },
201
+ executionMode: config.maxIterations && config.maxIterations > 1
202
+ ? 'react_bounded'
203
+ : 'single_turn',
204
+ effectClass: 'pure',
205
+ checkpoint: 'after',
206
+ });
207
+ // ------------------------------------------------------------------
208
+ // Phase 4: Wire edges
209
+ // ------------------------------------------------------------------
210
+ const deps = config.dependsOn ?? [];
211
+ if (deps.length === 0) {
212
+ // Root node: connect from START.
213
+ edges.push({
214
+ id: `edge_${edgeId++}`,
215
+ source: START,
216
+ target: nodeId,
217
+ type: 'static',
218
+ });
219
+ }
220
+ else {
221
+ // Connect from each dependency.
222
+ for (const dep of deps) {
223
+ edges.push({
224
+ id: `edge_${edgeId++}`,
225
+ source: `agent_${dep}`,
226
+ target: nodeId,
227
+ type: 'static',
228
+ });
229
+ }
230
+ }
231
+ // Leaf node: connect to END.
232
+ if (!hasDependents.has(name)) {
233
+ edges.push({
234
+ id: `edge_${edgeId++}`,
235
+ source: nodeId,
236
+ target: END,
237
+ type: 'static',
238
+ });
239
+ }
240
+ }
241
+ // ------------------------------------------------------------------
242
+ // Phase 5: State reducers
243
+ // ------------------------------------------------------------------
244
+ const reducers = {};
245
+ for (const [name] of this.agents) {
246
+ // Each agent writes to its own output key.
247
+ reducers[`scratch.output_${name}`] = 'last';
248
+ }
249
+ // Collected outputs for downstream synthesis.
250
+ reducers['scratch.agentOutputs'] = 'concat';
251
+ return {
252
+ id: `agent-graph-${crypto.randomUUID().slice(0, 8)}`,
253
+ name: 'Agent Graph',
254
+ nodes,
255
+ edges,
256
+ stateSchema: {
257
+ input: { type: 'object', properties: { prompt: { type: 'string' } } },
258
+ scratch: { type: 'object' },
259
+ artifacts: { type: 'object' },
260
+ },
261
+ reducers,
262
+ checkpointPolicy: 'explicit',
263
+ memoryConsistency: 'live',
264
+ };
265
+ }
266
+ }
267
+ // ---------------------------------------------------------------------------
268
+ // Factory function
269
+ // ---------------------------------------------------------------------------
270
+ /**
271
+ * Creates a new AgentGraphBuilder instance.
272
+ *
273
+ * This is the recommended entry point for building agent dependency graphs.
274
+ * The builder provides a fluent API for declaring agents and their dependencies,
275
+ * then compiles to a CompiledExecutionGraph for execution by GraphRuntime.
276
+ *
277
+ * @returns A fresh AgentGraphBuilder ready for agent registration.
278
+ *
279
+ * @example
280
+ * ```ts
281
+ * import { agentGraph } from './agentGraphBuilder.js';
282
+ *
283
+ * const graph = agentGraph()
284
+ * .agent('researcher', { instructions: 'Find sources', tools: [webSearch] })
285
+ * .agent('writer', { instructions: 'Write article', dependsOn: ['researcher'] })
286
+ * .agent('editor', { instructions: 'Review article', dependsOn: ['writer'] })
287
+ * .compile();
288
+ *
289
+ * const runtime = new GraphRuntime({ checkpointStore, nodeExecutor });
290
+ * const result = await runtime.invoke(graph, { prompt: 'Write about TypeScript' });
291
+ * ```
292
+ *
293
+ * @see {@link AgentGraphBuilder} -- the builder class.
294
+ * @see {@link compileAgencyToGraph} -- the strategy-based compiler for agency() configs.
295
+ */
296
+ export function agentGraph() {
297
+ return new AgentGraphBuilder();
298
+ }
299
+ //# sourceMappingURL=agentGraphBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentGraphBuilder.js","sourceRoot":"","sources":["../../../src/api/strategies/agentGraphBuilder.ts"],"names":[],"mappings":"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"}