@truefoundry/trueforge-core 0.0.0 → 0.1.0-rc.0

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 (557) hide show
  1. package/LICENSE +21 -0
  2. package/dist/agent-session/ITurnResourceResolver.d.ts +69 -0
  3. package/dist/agent-session/ITurnResourceResolver.d.ts.map +1 -0
  4. package/dist/agent-session/ITurnResourceResolver.js +19 -0
  5. package/dist/agent-session/ITurnResourceResolver.js.map +1 -0
  6. package/dist/agent-session/ITurnResourceResolver.mjs +1 -0
  7. package/dist/agent-session/ITurnResourceResolver.mjs.map +1 -0
  8. package/dist/agent-session/SessionHandle.d.ts +81 -0
  9. package/dist/agent-session/SessionHandle.d.ts.map +1 -0
  10. package/dist/agent-session/SessionHandle.js +392 -0
  11. package/dist/agent-session/SessionHandle.js.map +1 -0
  12. package/dist/agent-session/SessionHandle.mjs +371 -0
  13. package/dist/agent-session/SessionHandle.mjs.map +1 -0
  14. package/dist/agent-session/Sessions.d.ts +25 -0
  15. package/dist/agent-session/Sessions.d.ts.map +1 -0
  16. package/dist/agent-session/Sessions.js +71 -0
  17. package/dist/agent-session/Sessions.js.map +1 -0
  18. package/dist/agent-session/Sessions.mjs +46 -0
  19. package/dist/agent-session/Sessions.mjs.map +1 -0
  20. package/dist/agent-session/TurnHandle.d.ts +88 -0
  21. package/dist/agent-session/TurnHandle.d.ts.map +1 -0
  22. package/dist/agent-session/TurnHandle.js +490 -0
  23. package/dist/agent-session/TurnHandle.js.map +1 -0
  24. package/dist/agent-session/TurnHandle.mjs +469 -0
  25. package/dist/agent-session/TurnHandle.mjs.map +1 -0
  26. package/dist/agent-session/TurnResourceResolver.d.ts +154 -0
  27. package/dist/agent-session/TurnResourceResolver.d.ts.map +1 -0
  28. package/dist/agent-session/TurnResourceResolver.js +178 -0
  29. package/dist/agent-session/TurnResourceResolver.js.map +1 -0
  30. package/dist/agent-session/TurnResourceResolver.mjs +153 -0
  31. package/dist/agent-session/TurnResourceResolver.mjs.map +1 -0
  32. package/dist/agent-session/builtinsFromSpec.d.ts +19 -0
  33. package/dist/agent-session/builtinsFromSpec.d.ts.map +1 -0
  34. package/dist/agent-session/builtinsFromSpec.js +73 -0
  35. package/dist/agent-session/builtinsFromSpec.js.map +1 -0
  36. package/dist/agent-session/builtinsFromSpec.mjs +48 -0
  37. package/dist/agent-session/builtinsFromSpec.mjs.map +1 -0
  38. package/dist/agent-session/index.d.ts +29 -0
  39. package/dist/agent-session/index.d.ts.map +1 -0
  40. package/dist/agent-session/index.js +117 -0
  41. package/dist/agent-session/index.js.map +1 -0
  42. package/dist/agent-session/index.mjs +84 -0
  43. package/dist/agent-session/index.mjs.map +1 -0
  44. package/dist/agent-session/models/SessionRecord.d.ts +34 -0
  45. package/dist/agent-session/models/SessionRecord.d.ts.map +1 -0
  46. package/dist/agent-session/models/SessionRecord.js +19 -0
  47. package/dist/agent-session/models/SessionRecord.js.map +1 -0
  48. package/dist/agent-session/models/SessionRecord.mjs +1 -0
  49. package/dist/agent-session/models/SessionRecord.mjs.map +1 -0
  50. package/dist/agent-session/models/TurnRecord.d.ts +37 -0
  51. package/dist/agent-session/models/TurnRecord.d.ts.map +1 -0
  52. package/dist/agent-session/models/TurnRecord.js +31 -0
  53. package/dist/agent-session/models/TurnRecord.js.map +1 -0
  54. package/dist/agent-session/models/TurnRecord.mjs +6 -0
  55. package/dist/agent-session/models/TurnRecord.mjs.map +1 -0
  56. package/dist/agent-session/schemas/agentSpec.d.ts +142 -0
  57. package/dist/agent-session/schemas/agentSpec.d.ts.map +1 -0
  58. package/dist/agent-session/schemas/agentSpec.js +170 -0
  59. package/dist/agent-session/schemas/agentSpec.js.map +1 -0
  60. package/dist/agent-session/schemas/agentSpec.mjs +154 -0
  61. package/dist/agent-session/schemas/agentSpec.mjs.map +1 -0
  62. package/dist/agent-session/schemas/events.d.ts +1037 -0
  63. package/dist/agent-session/schemas/events.d.ts.map +1 -0
  64. package/dist/agent-session/schemas/events.js +80 -0
  65. package/dist/agent-session/schemas/events.js.map +1 -0
  66. package/dist/agent-session/schemas/events.mjs +69 -0
  67. package/dist/agent-session/schemas/events.mjs.map +1 -0
  68. package/dist/agent-session/schemas/pagination.d.ts +9 -0
  69. package/dist/agent-session/schemas/pagination.d.ts.map +1 -0
  70. package/dist/agent-session/schemas/pagination.js +36 -0
  71. package/dist/agent-session/schemas/pagination.js.map +1 -0
  72. package/dist/agent-session/schemas/pagination.mjs +11 -0
  73. package/dist/agent-session/schemas/pagination.mjs.map +1 -0
  74. package/dist/agent-session/schemas/session.d.ts +319 -0
  75. package/dist/agent-session/schemas/session.d.ts.map +1 -0
  76. package/dist/agent-session/schemas/session.js +58 -0
  77. package/dist/agent-session/schemas/session.js.map +1 -0
  78. package/dist/agent-session/schemas/session.mjs +30 -0
  79. package/dist/agent-session/schemas/session.mjs.map +1 -0
  80. package/dist/agent-session/schemas/turn.d.ts +494 -0
  81. package/dist/agent-session/schemas/turn.d.ts.map +1 -0
  82. package/dist/agent-session/schemas/turn.js +131 -0
  83. package/dist/agent-session/schemas/turn.js.map +1 -0
  84. package/dist/agent-session/schemas/turn.mjs +102 -0
  85. package/dist/agent-session/schemas/turn.mjs.map +1 -0
  86. package/dist/agent-session/store/ISessionStore.d.ts +310 -0
  87. package/dist/agent-session/store/ISessionStore.d.ts.map +1 -0
  88. package/dist/agent-session/store/ISessionStore.js +19 -0
  89. package/dist/agent-session/store/ISessionStore.js.map +1 -0
  90. package/dist/agent-session/store/ISessionStore.mjs +1 -0
  91. package/dist/agent-session/store/ISessionStore.mjs.map +1 -0
  92. package/dist/agent-session/store/InMemorySessionStore.d.ts +55 -0
  93. package/dist/agent-session/store/InMemorySessionStore.d.ts.map +1 -0
  94. package/dist/agent-session/store/InMemorySessionStore.js +475 -0
  95. package/dist/agent-session/store/InMemorySessionStore.js.map +1 -0
  96. package/dist/agent-session/store/InMemorySessionStore.mjs +461 -0
  97. package/dist/agent-session/store/InMemorySessionStore.mjs.map +1 -0
  98. package/dist/agent-session/store/OffsetPageToken.d.ts +13 -0
  99. package/dist/agent-session/store/OffsetPageToken.d.ts.map +1 -0
  100. package/dist/agent-session/store/OffsetPageToken.js +60 -0
  101. package/dist/agent-session/store/OffsetPageToken.js.map +1 -0
  102. package/dist/agent-session/store/OffsetPageToken.mjs +32 -0
  103. package/dist/agent-session/store/OffsetPageToken.mjs.map +1 -0
  104. package/dist/agent-session/store/PageToken.d.ts +4 -0
  105. package/dist/agent-session/store/PageToken.d.ts.map +1 -0
  106. package/dist/agent-session/store/PageToken.js +45 -0
  107. package/dist/agent-session/store/PageToken.js.map +1 -0
  108. package/dist/agent-session/store/PageToken.mjs +19 -0
  109. package/dist/agent-session/store/PageToken.mjs.map +1 -0
  110. package/dist/agent-session/store/SessionEventPageToken.d.ts +14 -0
  111. package/dist/agent-session/store/SessionEventPageToken.d.ts.map +1 -0
  112. package/dist/agent-session/store/SessionEventPageToken.js +70 -0
  113. package/dist/agent-session/store/SessionEventPageToken.js.map +1 -0
  114. package/dist/agent-session/store/SessionEventPageToken.mjs +42 -0
  115. package/dist/agent-session/store/SessionEventPageToken.mjs.map +1 -0
  116. package/dist/agent-session/store/SessionListPageToken.d.ts +24 -0
  117. package/dist/agent-session/store/SessionListPageToken.d.ts.map +1 -0
  118. package/dist/agent-session/store/SessionListPageToken.js +66 -0
  119. package/dist/agent-session/store/SessionListPageToken.js.map +1 -0
  120. package/dist/agent-session/store/SessionListPageToken.mjs +38 -0
  121. package/dist/agent-session/store/SessionListPageToken.mjs.map +1 -0
  122. package/dist/agent-session/store/SessionStoreErrors.d.ts +43 -0
  123. package/dist/agent-session/store/SessionStoreErrors.d.ts.map +1 -0
  124. package/dist/agent-session/store/SessionStoreErrors.js +126 -0
  125. package/dist/agent-session/store/SessionStoreErrors.js.map +1 -0
  126. package/dist/agent-session/store/SessionStoreErrors.mjs +92 -0
  127. package/dist/agent-session/store/SessionStoreErrors.mjs.map +1 -0
  128. package/dist/agent-session/store/assertCreateTurnThreadDelta.d.ts +18 -0
  129. package/dist/agent-session/store/assertCreateTurnThreadDelta.d.ts.map +1 -0
  130. package/dist/agent-session/store/assertCreateTurnThreadDelta.js +67 -0
  131. package/dist/agent-session/store/assertCreateTurnThreadDelta.js.map +1 -0
  132. package/dist/agent-session/store/assertCreateTurnThreadDelta.mjs +42 -0
  133. package/dist/agent-session/store/assertCreateTurnThreadDelta.mjs.map +1 -0
  134. package/dist/core/InstructionBuilder.d.ts +71 -0
  135. package/dist/core/InstructionBuilder.d.ts.map +1 -0
  136. package/dist/core/InstructionBuilder.js +95 -0
  137. package/dist/core/InstructionBuilder.js.map +1 -0
  138. package/dist/core/InstructionBuilder.mjs +69 -0
  139. package/dist/core/InstructionBuilder.mjs.map +1 -0
  140. package/dist/core/capabilities/AgentCapability.d.ts +32 -0
  141. package/dist/core/capabilities/AgentCapability.d.ts.map +1 -0
  142. package/dist/core/capabilities/AgentCapability.js +19 -0
  143. package/dist/core/capabilities/AgentCapability.js.map +1 -0
  144. package/dist/core/capabilities/AgentCapability.mjs +1 -0
  145. package/dist/core/capabilities/AgentCapability.mjs.map +1 -0
  146. package/dist/core/capabilities/AgentContextProcessor.d.ts +30 -0
  147. package/dist/core/capabilities/AgentContextProcessor.d.ts.map +1 -0
  148. package/dist/core/capabilities/AgentContextProcessor.js +19 -0
  149. package/dist/core/capabilities/AgentContextProcessor.js.map +1 -0
  150. package/dist/core/capabilities/AgentContextProcessor.mjs +1 -0
  151. package/dist/core/capabilities/AgentContextProcessor.mjs.map +1 -0
  152. package/dist/core/capabilities/ToolResponseProcessor.d.ts +12 -0
  153. package/dist/core/capabilities/ToolResponseProcessor.d.ts.map +1 -0
  154. package/dist/core/capabilities/ToolResponseProcessor.js +19 -0
  155. package/dist/core/capabilities/ToolResponseProcessor.js.map +1 -0
  156. package/dist/core/capabilities/ToolResponseProcessor.mjs +1 -0
  157. package/dist/core/capabilities/ToolResponseProcessor.mjs.map +1 -0
  158. package/dist/core/capabilities/builtins/AskUserQuestion.d.ts +11 -0
  159. package/dist/core/capabilities/builtins/AskUserQuestion.d.ts.map +1 -0
  160. package/dist/core/capabilities/builtins/AskUserQuestion.js +90 -0
  161. package/dist/core/capabilities/builtins/AskUserQuestion.js.map +1 -0
  162. package/dist/core/capabilities/builtins/AskUserQuestion.mjs +64 -0
  163. package/dist/core/capabilities/builtins/AskUserQuestion.mjs.map +1 -0
  164. package/dist/core/capabilities/builtins/ContextCompaction.d.ts +23 -0
  165. package/dist/core/capabilities/builtins/ContextCompaction.d.ts.map +1 -0
  166. package/dist/core/capabilities/builtins/ContextCompaction.js +235 -0
  167. package/dist/core/capabilities/builtins/ContextCompaction.js.map +1 -0
  168. package/dist/core/capabilities/builtins/ContextCompaction.mjs +208 -0
  169. package/dist/core/capabilities/builtins/ContextCompaction.mjs.map +1 -0
  170. package/dist/core/capabilities/builtins/CurrentDateTime.d.ts +17 -0
  171. package/dist/core/capabilities/builtins/CurrentDateTime.d.ts.map +1 -0
  172. package/dist/core/capabilities/builtins/CurrentDateTime.js +75 -0
  173. package/dist/core/capabilities/builtins/CurrentDateTime.js.map +1 -0
  174. package/dist/core/capabilities/builtins/CurrentDateTime.mjs +47 -0
  175. package/dist/core/capabilities/builtins/CurrentDateTime.mjs.map +1 -0
  176. package/dist/core/capabilities/builtins/DynamicSubAgents.d.ts +39 -0
  177. package/dist/core/capabilities/builtins/DynamicSubAgents.d.ts.map +1 -0
  178. package/dist/core/capabilities/builtins/DynamicSubAgents.js +176 -0
  179. package/dist/core/capabilities/builtins/DynamicSubAgents.js.map +1 -0
  180. package/dist/core/capabilities/builtins/DynamicSubAgents.mjs +134 -0
  181. package/dist/core/capabilities/builtins/DynamicSubAgents.mjs.map +1 -0
  182. package/dist/core/capabilities/builtins/LargeToolResponse.d.ts +40 -0
  183. package/dist/core/capabilities/builtins/LargeToolResponse.d.ts.map +1 -0
  184. package/dist/core/capabilities/builtins/LargeToolResponse.js +225 -0
  185. package/dist/core/capabilities/builtins/LargeToolResponse.js.map +1 -0
  186. package/dist/core/capabilities/builtins/LargeToolResponse.mjs +186 -0
  187. package/dist/core/capabilities/builtins/LargeToolResponse.mjs.map +1 -0
  188. package/dist/core/capabilities/builtins/OpenUI.d.ts +31 -0
  189. package/dist/core/capabilities/builtins/OpenUI.d.ts.map +1 -0
  190. package/dist/core/capabilities/builtins/OpenUI.js +376 -0
  191. package/dist/core/capabilities/builtins/OpenUI.js.map +1 -0
  192. package/dist/core/capabilities/builtins/OpenUI.mjs +326 -0
  193. package/dist/core/capabilities/builtins/OpenUI.mjs.map +1 -0
  194. package/dist/core/errors.d.ts +33 -0
  195. package/dist/core/errors.d.ts.map +1 -0
  196. package/dist/core/errors.js +88 -0
  197. package/dist/core/errors.js.map +1 -0
  198. package/dist/core/errors.mjs +57 -0
  199. package/dist/core/errors.mjs.map +1 -0
  200. package/dist/core/events/PassthroughEvents.d.ts +30 -0
  201. package/dist/core/events/PassthroughEvents.d.ts.map +1 -0
  202. package/dist/core/events/PassthroughEvents.js +19 -0
  203. package/dist/core/events/PassthroughEvents.js.map +1 -0
  204. package/dist/core/events/PassthroughEvents.mjs +1 -0
  205. package/dist/core/events/PassthroughEvents.mjs.map +1 -0
  206. package/dist/core/events/schema.d.ts +1103 -0
  207. package/dist/core/events/schema.d.ts.map +1 -0
  208. package/dist/core/events/schema.js +337 -0
  209. package/dist/core/events/schema.js.map +1 -0
  210. package/dist/core/events/schema.mjs +283 -0
  211. package/dist/core/events/schema.mjs.map +1 -0
  212. package/dist/core/index.d.ts +60 -0
  213. package/dist/core/index.d.ts.map +1 -0
  214. package/dist/core/index.js +209 -0
  215. package/dist/core/index.js.map +1 -0
  216. package/dist/core/index.mjs +144 -0
  217. package/dist/core/index.mjs.map +1 -0
  218. package/dist/core/llm/ILLM.d.ts +15 -0
  219. package/dist/core/llm/ILLM.d.ts.map +1 -0
  220. package/dist/core/llm/ILLM.js +19 -0
  221. package/dist/core/llm/ILLM.js.map +1 -0
  222. package/dist/core/llm/ILLM.mjs +1 -0
  223. package/dist/core/llm/ILLM.mjs.map +1 -0
  224. package/dist/core/llm/LLMTypes.d.ts +369 -0
  225. package/dist/core/llm/LLMTypes.d.ts.map +1 -0
  226. package/dist/core/llm/LLMTypes.js +170 -0
  227. package/dist/core/llm/LLMTypes.js.map +1 -0
  228. package/dist/core/llm/LLMTypes.mjs +133 -0
  229. package/dist/core/llm/LLMTypes.mjs.map +1 -0
  230. package/dist/core/llm/VercelAILLM.d.ts +228 -0
  231. package/dist/core/llm/VercelAILLM.d.ts.map +1 -0
  232. package/dist/core/llm/VercelAILLM.js +1042 -0
  233. package/dist/core/llm/VercelAILLM.js.map +1 -0
  234. package/dist/core/llm/VercelAILLM.mjs +999 -0
  235. package/dist/core/llm/VercelAILLM.mjs.map +1 -0
  236. package/dist/core/llm/openaiSchemas.d.ts +190 -0
  237. package/dist/core/llm/openaiSchemas.d.ts.map +1 -0
  238. package/dist/core/llm/openaiSchemas.js +144 -0
  239. package/dist/core/llm/openaiSchemas.js.map +1 -0
  240. package/dist/core/llm/openaiSchemas.mjs +107 -0
  241. package/dist/core/llm/openaiSchemas.mjs.map +1 -0
  242. package/dist/core/llm/responseFormat.d.ts +25 -0
  243. package/dist/core/llm/responseFormat.d.ts.map +1 -0
  244. package/dist/core/llm/responseFormat.js +58 -0
  245. package/dist/core/llm/responseFormat.js.map +1 -0
  246. package/dist/core/llm/responseFormat.mjs +32 -0
  247. package/dist/core/llm/responseFormat.mjs.map +1 -0
  248. package/dist/core/llm/toOpenAIChatMessage.d.ts +11 -0
  249. package/dist/core/llm/toOpenAIChatMessage.d.ts.map +1 -0
  250. package/dist/core/llm/toOpenAIChatMessage.js +95 -0
  251. package/dist/core/llm/toOpenAIChatMessage.js.map +1 -0
  252. package/dist/core/llm/toOpenAIChatMessage.mjs +70 -0
  253. package/dist/core/llm/toOpenAIChatMessage.mjs.map +1 -0
  254. package/dist/core/llm/usage.d.ts +4 -0
  255. package/dist/core/llm/usage.d.ts.map +1 -0
  256. package/dist/core/llm/usage.js +52 -0
  257. package/dist/core/llm/usage.js.map +1 -0
  258. package/dist/core/llm/usage.mjs +26 -0
  259. package/dist/core/llm/usage.mjs.map +1 -0
  260. package/dist/core/mcp/ClientSideTool.d.ts +10 -0
  261. package/dist/core/mcp/ClientSideTool.d.ts.map +1 -0
  262. package/dist/core/mcp/ClientSideTool.js +56 -0
  263. package/dist/core/mcp/ClientSideTool.js.map +1 -0
  264. package/dist/core/mcp/ClientSideTool.mjs +31 -0
  265. package/dist/core/mcp/ClientSideTool.mjs.map +1 -0
  266. package/dist/core/mcp/IMCPServer.d.ts +78 -0
  267. package/dist/core/mcp/IMCPServer.d.ts.map +1 -0
  268. package/dist/core/mcp/IMCPServer.js +63 -0
  269. package/dist/core/mcp/IMCPServer.js.map +1 -0
  270. package/dist/core/mcp/IMCPServer.mjs +33 -0
  271. package/dist/core/mcp/IMCPServer.mjs.map +1 -0
  272. package/dist/core/mcp/LocalToolMCP.d.ts +39 -0
  273. package/dist/core/mcp/LocalToolMCP.d.ts.map +1 -0
  274. package/dist/core/mcp/LocalToolMCP.js +121 -0
  275. package/dist/core/mcp/LocalToolMCP.js.map +1 -0
  276. package/dist/core/mcp/LocalToolMCP.mjs +98 -0
  277. package/dist/core/mcp/LocalToolMCP.mjs.map +1 -0
  278. package/dist/core/mcp/RemoteMCP.d.ts +67 -0
  279. package/dist/core/mcp/RemoteMCP.d.ts.map +1 -0
  280. package/dist/core/mcp/RemoteMCP.js +244 -0
  281. package/dist/core/mcp/RemoteMCP.js.map +1 -0
  282. package/dist/core/mcp/RemoteMCP.mjs +222 -0
  283. package/dist/core/mcp/RemoteMCP.mjs.map +1 -0
  284. package/dist/core/mcp/ToolSelectorPolicy.d.ts +52 -0
  285. package/dist/core/mcp/ToolSelectorPolicy.d.ts.map +1 -0
  286. package/dist/core/mcp/ToolSelectorPolicy.js +108 -0
  287. package/dist/core/mcp/ToolSelectorPolicy.js.map +1 -0
  288. package/dist/core/mcp/ToolSelectorPolicy.mjs +90 -0
  289. package/dist/core/mcp/ToolSelectorPolicy.mjs.map +1 -0
  290. package/dist/core/mcp/ToolSet.d.ts +31 -0
  291. package/dist/core/mcp/ToolSet.d.ts.map +1 -0
  292. package/dist/core/mcp/ToolSet.js +119 -0
  293. package/dist/core/mcp/ToolSet.js.map +1 -0
  294. package/dist/core/mcp/ToolSet.mjs +98 -0
  295. package/dist/core/mcp/ToolSet.mjs.map +1 -0
  296. package/dist/core/mcp/convertMCPServers.d.ts +22 -0
  297. package/dist/core/mcp/convertMCPServers.d.ts.map +1 -0
  298. package/dist/core/mcp/convertMCPServers.js +89 -0
  299. package/dist/core/mcp/convertMCPServers.js.map +1 -0
  300. package/dist/core/mcp/convertMCPServers.mjs +64 -0
  301. package/dist/core/mcp/convertMCPServers.mjs.map +1 -0
  302. package/dist/core/mcp/executeToolCalls.d.ts +31 -0
  303. package/dist/core/mcp/executeToolCalls.d.ts.map +1 -0
  304. package/dist/core/mcp/executeToolCalls.js +168 -0
  305. package/dist/core/mcp/executeToolCalls.js.map +1 -0
  306. package/dist/core/mcp/executeToolCalls.mjs +149 -0
  307. package/dist/core/mcp/executeToolCalls.mjs.map +1 -0
  308. package/dist/core/mcp/pagination.d.ts +11 -0
  309. package/dist/core/mcp/pagination.d.ts.map +1 -0
  310. package/dist/core/mcp/pagination.js +49 -0
  311. package/dist/core/mcp/pagination.js.map +1 -0
  312. package/dist/core/mcp/pagination.mjs +24 -0
  313. package/dist/core/mcp/pagination.mjs.map +1 -0
  314. package/dist/core/mcp/remoteMcpClient.d.ts +36 -0
  315. package/dist/core/mcp/remoteMcpClient.d.ts.map +1 -0
  316. package/dist/core/mcp/remoteMcpClient.js +138 -0
  317. package/dist/core/mcp/remoteMcpClient.js.map +1 -0
  318. package/dist/core/mcp/remoteMcpClient.mjs +112 -0
  319. package/dist/core/mcp/remoteMcpClient.mjs.map +1 -0
  320. package/dist/core/mcp/toolNames.d.ts +6 -0
  321. package/dist/core/mcp/toolNames.d.ts.map +1 -0
  322. package/dist/core/mcp/toolNames.js +59 -0
  323. package/dist/core/mcp/toolNames.js.map +1 -0
  324. package/dist/core/mcp/toolNames.mjs +33 -0
  325. package/dist/core/mcp/toolNames.mjs.map +1 -0
  326. package/dist/core/mcp/toolSelectors.d.ts +28 -0
  327. package/dist/core/mcp/toolSelectors.d.ts.map +1 -0
  328. package/dist/core/mcp/toolSelectors.js +113 -0
  329. package/dist/core/mcp/toolSelectors.js.map +1 -0
  330. package/dist/core/mcp/toolSelectors.mjs +78 -0
  331. package/dist/core/mcp/toolSelectors.mjs.map +1 -0
  332. package/dist/core/runtime/AgentDefinition.d.ts +23 -0
  333. package/dist/core/runtime/AgentDefinition.d.ts.map +1 -0
  334. package/dist/core/runtime/AgentDefinition.js +19 -0
  335. package/dist/core/runtime/AgentDefinition.js.map +1 -0
  336. package/dist/core/runtime/AgentDefinition.mjs +1 -0
  337. package/dist/core/runtime/AgentDefinition.mjs.map +1 -0
  338. package/dist/core/runtime/AgentThread.d.ts +64 -0
  339. package/dist/core/runtime/AgentThread.d.ts.map +1 -0
  340. package/dist/core/runtime/AgentThread.js +1065 -0
  341. package/dist/core/runtime/AgentThread.js.map +1 -0
  342. package/dist/core/runtime/AgentThread.mjs +1062 -0
  343. package/dist/core/runtime/AgentThread.mjs.map +1 -0
  344. package/dist/core/runtime/AgentThread.types.d.ts +123 -0
  345. package/dist/core/runtime/AgentThread.types.d.ts.map +1 -0
  346. package/dist/core/runtime/AgentThread.types.js +46 -0
  347. package/dist/core/runtime/AgentThread.types.js.map +1 -0
  348. package/dist/core/runtime/AgentThread.types.mjs +20 -0
  349. package/dist/core/runtime/AgentThread.types.mjs.map +1 -0
  350. package/dist/core/runtime/AgentThreadOrchestrator.d.ts +35 -0
  351. package/dist/core/runtime/AgentThreadOrchestrator.d.ts.map +1 -0
  352. package/dist/core/runtime/AgentThreadOrchestrator.js +433 -0
  353. package/dist/core/runtime/AgentThreadOrchestrator.js.map +1 -0
  354. package/dist/core/runtime/AgentThreadOrchestrator.mjs +418 -0
  355. package/dist/core/runtime/AgentThreadOrchestrator.mjs.map +1 -0
  356. package/dist/core/runtime/CreateDynamicSubAgentThread.d.ts +11 -0
  357. package/dist/core/runtime/CreateDynamicSubAgentThread.d.ts.map +1 -0
  358. package/dist/core/runtime/CreateDynamicSubAgentThread.js +19 -0
  359. package/dist/core/runtime/CreateDynamicSubAgentThread.js.map +1 -0
  360. package/dist/core/runtime/CreateDynamicSubAgentThread.mjs +1 -0
  361. package/dist/core/runtime/CreateDynamicSubAgentThread.mjs.map +1 -0
  362. package/dist/core/runtime/DeferredTool.d.ts +34 -0
  363. package/dist/core/runtime/DeferredTool.d.ts.map +1 -0
  364. package/dist/core/runtime/DeferredTool.js +321 -0
  365. package/dist/core/runtime/DeferredTool.js.map +1 -0
  366. package/dist/core/runtime/DeferredTool.mjs +287 -0
  367. package/dist/core/runtime/DeferredTool.mjs.map +1 -0
  368. package/dist/core/runtime/OpenToolCallCloser.d.ts +21 -0
  369. package/dist/core/runtime/OpenToolCallCloser.d.ts.map +1 -0
  370. package/dist/core/runtime/OpenToolCallCloser.js +92 -0
  371. package/dist/core/runtime/OpenToolCallCloser.js.map +1 -0
  372. package/dist/core/runtime/OpenToolCallCloser.mjs +66 -0
  373. package/dist/core/runtime/OpenToolCallCloser.mjs.map +1 -0
  374. package/dist/core/runtime/UserInputMessage.d.ts +16 -0
  375. package/dist/core/runtime/UserInputMessage.d.ts.map +1 -0
  376. package/dist/core/runtime/UserInputMessage.js +183 -0
  377. package/dist/core/runtime/UserInputMessage.js.map +1 -0
  378. package/dist/core/runtime/UserInputMessage.mjs +157 -0
  379. package/dist/core/runtime/UserInputMessage.mjs.map +1 -0
  380. package/dist/core/runtime/contextUsage.d.ts +17 -0
  381. package/dist/core/runtime/contextUsage.d.ts.map +1 -0
  382. package/dist/core/runtime/contextUsage.js +56 -0
  383. package/dist/core/runtime/contextUsage.js.map +1 -0
  384. package/dist/core/runtime/contextUsage.mjs +28 -0
  385. package/dist/core/runtime/contextUsage.mjs.map +1 -0
  386. package/dist/core/runtime/contextUtils.d.ts +30 -0
  387. package/dist/core/runtime/contextUtils.d.ts.map +1 -0
  388. package/dist/core/runtime/contextUtils.js +198 -0
  389. package/dist/core/runtime/contextUtils.js.map +1 -0
  390. package/dist/core/runtime/contextUtils.mjs +148 -0
  391. package/dist/core/runtime/contextUtils.mjs.map +1 -0
  392. package/dist/core/runtime/metrics.d.ts +22 -0
  393. package/dist/core/runtime/metrics.d.ts.map +1 -0
  394. package/dist/core/runtime/metrics.js +89 -0
  395. package/dist/core/runtime/metrics.js.map +1 -0
  396. package/dist/core/runtime/metrics.mjs +61 -0
  397. package/dist/core/runtime/metrics.mjs.map +1 -0
  398. package/dist/core/sandbox/Sandbox.d.ts +121 -0
  399. package/dist/core/sandbox/Sandbox.d.ts.map +1 -0
  400. package/dist/core/sandbox/Sandbox.js +572 -0
  401. package/dist/core/sandbox/Sandbox.js.map +1 -0
  402. package/dist/core/sandbox/Sandbox.mjs +536 -0
  403. package/dist/core/sandbox/Sandbox.mjs.map +1 -0
  404. package/dist/core/sandbox/SandboxErrors.d.ts +30 -0
  405. package/dist/core/sandbox/SandboxErrors.d.ts.map +1 -0
  406. package/dist/core/sandbox/SandboxErrors.js +102 -0
  407. package/dist/core/sandbox/SandboxErrors.js.map +1 -0
  408. package/dist/core/sandbox/SandboxErrors.mjs +71 -0
  409. package/dist/core/sandbox/SandboxErrors.mjs.map +1 -0
  410. package/dist/core/sandbox/SandboxNatsBridge.d.ts +33 -0
  411. package/dist/core/sandbox/SandboxNatsBridge.d.ts.map +1 -0
  412. package/dist/core/sandbox/SandboxNatsBridge.js +222 -0
  413. package/dist/core/sandbox/SandboxNatsBridge.js.map +1 -0
  414. package/dist/core/sandbox/SandboxNatsBridge.mjs +201 -0
  415. package/dist/core/sandbox/SandboxNatsBridge.mjs.map +1 -0
  416. package/dist/core/sandbox/constants.d.ts +10 -0
  417. package/dist/core/sandbox/constants.d.ts.map +1 -0
  418. package/dist/core/sandbox/constants.js +37 -0
  419. package/dist/core/sandbox/constants.js.map +1 -0
  420. package/dist/core/sandbox/constants.mjs +10 -0
  421. package/dist/core/sandbox/constants.mjs.map +1 -0
  422. package/dist/core/sandbox/provider/DaytonaProvider.d.ts +80 -0
  423. package/dist/core/sandbox/provider/DaytonaProvider.d.ts.map +1 -0
  424. package/dist/core/sandbox/provider/DaytonaProvider.js +346 -0
  425. package/dist/core/sandbox/provider/DaytonaProvider.js.map +1 -0
  426. package/dist/core/sandbox/provider/DaytonaProvider.mjs +326 -0
  427. package/dist/core/sandbox/provider/DaytonaProvider.mjs.map +1 -0
  428. package/dist/core/sandbox/provider/Provider.d.ts +83 -0
  429. package/dist/core/sandbox/provider/Provider.d.ts.map +1 -0
  430. package/dist/core/sandbox/provider/Provider.js +43 -0
  431. package/dist/core/sandbox/provider/Provider.js.map +1 -0
  432. package/dist/core/sandbox/provider/Provider.mjs +17 -0
  433. package/dist/core/sandbox/provider/Provider.mjs.map +1 -0
  434. package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts +41 -0
  435. package/dist/core/sandbox/provider/TFYSandboxProvider.d.ts.map +1 -0
  436. package/dist/core/sandbox/provider/TFYSandboxProvider.js +180 -0
  437. package/dist/core/sandbox/provider/TFYSandboxProvider.js.map +1 -0
  438. package/dist/core/sandbox/provider/TFYSandboxProvider.mjs +147 -0
  439. package/dist/core/sandbox/provider/TFYSandboxProvider.mjs.map +1 -0
  440. package/dist/core/sandbox/sandboxImage.d.ts +6 -0
  441. package/dist/core/sandbox/sandboxImage.d.ts.map +1 -0
  442. package/dist/core/sandbox/sandboxImage.js +31 -0
  443. package/dist/core/sandbox/sandboxImage.js.map +1 -0
  444. package/dist/core/sandbox/sandboxImage.mjs +6 -0
  445. package/dist/core/sandbox/sandboxImage.mjs.map +1 -0
  446. package/dist/core/sandbox/sandboxScripts.gen.d.ts +5 -0
  447. package/dist/core/sandbox/sandboxScripts.gen.d.ts.map +1 -0
  448. package/dist/core/sandbox/sandboxScripts.gen.js +343 -0
  449. package/dist/core/sandbox/sandboxScripts.gen.js.map +1 -0
  450. package/dist/core/sandbox/sandboxScripts.gen.mjs +318 -0
  451. package/dist/core/sandbox/sandboxScripts.gen.mjs.map +1 -0
  452. package/dist/core/sandbox/skills/ISkillMounter.d.ts +7 -0
  453. package/dist/core/sandbox/skills/ISkillMounter.d.ts.map +1 -0
  454. package/dist/core/sandbox/skills/ISkillMounter.js +19 -0
  455. package/dist/core/sandbox/skills/ISkillMounter.js.map +1 -0
  456. package/dist/core/sandbox/skills/ISkillMounter.mjs +1 -0
  457. package/dist/core/sandbox/skills/ISkillMounter.mjs.map +1 -0
  458. package/dist/core/sandbox/skills/SkillMounter.d.ts +17 -0
  459. package/dist/core/sandbox/skills/SkillMounter.d.ts.map +1 -0
  460. package/dist/core/sandbox/skills/SkillMounter.js +73 -0
  461. package/dist/core/sandbox/skills/SkillMounter.js.map +1 -0
  462. package/dist/core/sandbox/skills/SkillMounter.mjs +48 -0
  463. package/dist/core/sandbox/skills/SkillMounter.mjs.map +1 -0
  464. package/dist/core/sandbox/skills/constants.d.ts +10 -0
  465. package/dist/core/sandbox/skills/constants.d.ts.map +1 -0
  466. package/dist/core/sandbox/skills/constants.js +56 -0
  467. package/dist/core/sandbox/skills/constants.js.map +1 -0
  468. package/dist/core/sandbox/skills/constants.mjs +28 -0
  469. package/dist/core/sandbox/skills/constants.mjs.map +1 -0
  470. package/dist/core/sandbox/skills/index.d.ts +5 -0
  471. package/dist/core/sandbox/skills/index.d.ts.map +1 -0
  472. package/dist/core/sandbox/skills/index.js +40 -0
  473. package/dist/core/sandbox/skills/index.js.map +1 -0
  474. package/dist/core/sandbox/skills/index.mjs +11 -0
  475. package/dist/core/sandbox/skills/index.mjs.map +1 -0
  476. package/dist/core/tracing/AgentTracing.d.ts +38 -0
  477. package/dist/core/tracing/AgentTracing.d.ts.map +1 -0
  478. package/dist/core/tracing/AgentTracing.js +19 -0
  479. package/dist/core/tracing/AgentTracing.js.map +1 -0
  480. package/dist/core/tracing/AgentTracing.mjs +1 -0
  481. package/dist/core/tracing/AgentTracing.mjs.map +1 -0
  482. package/dist/core/tracing/NoopAgentTracing.d.ts +3 -0
  483. package/dist/core/tracing/NoopAgentTracing.d.ts.map +1 -0
  484. package/dist/core/tracing/NoopAgentTracing.js +79 -0
  485. package/dist/core/tracing/NoopAgentTracing.js.map +1 -0
  486. package/dist/core/tracing/NoopAgentTracing.mjs +54 -0
  487. package/dist/core/tracing/NoopAgentTracing.mjs.map +1 -0
  488. package/dist/core/util/abort.d.ts +2 -0
  489. package/dist/core/util/abort.d.ts.map +1 -0
  490. package/dist/core/util/abort.js +38 -0
  491. package/dist/core/util/abort.js.map +1 -0
  492. package/dist/core/util/abort.mjs +13 -0
  493. package/dist/core/util/abort.mjs.map +1 -0
  494. package/dist/core/util/errorLogFields.d.ts +6 -0
  495. package/dist/core/util/errorLogFields.d.ts.map +1 -0
  496. package/dist/core/util/errorLogFields.js +36 -0
  497. package/dist/core/util/errorLogFields.js.map +1 -0
  498. package/dist/core/util/errorLogFields.mjs +11 -0
  499. package/dist/core/util/errorLogFields.mjs.map +1 -0
  500. package/dist/core/util/promiseUtils.d.ts +7 -0
  501. package/dist/core/util/promiseUtils.d.ts.map +1 -0
  502. package/dist/core/util/promiseUtils.js +82 -0
  503. package/dist/core/util/promiseUtils.js.map +1 -0
  504. package/dist/core/util/promiseUtils.mjs +55 -0
  505. package/dist/core/util/promiseUtils.mjs.map +1 -0
  506. package/dist/index.d.ts +7 -0
  507. package/dist/index.d.ts.map +1 -0
  508. package/dist/index.js +44 -0
  509. package/dist/index.js.map +1 -0
  510. package/dist/index.mjs +8 -0
  511. package/dist/index.mjs.map +1 -0
  512. package/dist/package.json +3 -0
  513. package/dist/request-reply/client.d.ts +21 -0
  514. package/dist/request-reply/client.d.ts.map +1 -0
  515. package/dist/request-reply/client.js +92 -0
  516. package/dist/request-reply/client.js.map +1 -0
  517. package/dist/request-reply/client.mjs +67 -0
  518. package/dist/request-reply/client.mjs.map +1 -0
  519. package/dist/request-reply/errors.d.ts +23 -0
  520. package/dist/request-reply/errors.d.ts.map +1 -0
  521. package/dist/request-reply/errors.js +66 -0
  522. package/dist/request-reply/errors.js.map +1 -0
  523. package/dist/request-reply/errors.mjs +39 -0
  524. package/dist/request-reply/errors.mjs.map +1 -0
  525. package/dist/request-reply/executor.d.ts +70 -0
  526. package/dist/request-reply/executor.d.ts.map +1 -0
  527. package/dist/request-reply/executor.js +267 -0
  528. package/dist/request-reply/executor.js.map +1 -0
  529. package/dist/request-reply/executor.mjs +232 -0
  530. package/dist/request-reply/executor.mjs.map +1 -0
  531. package/dist/request-reply/index.d.ts +16 -0
  532. package/dist/request-reply/index.d.ts.map +1 -0
  533. package/dist/request-reply/index.js +47 -0
  534. package/dist/request-reply/index.js.map +1 -0
  535. package/dist/request-reply/index.mjs +16 -0
  536. package/dist/request-reply/index.mjs.map +1 -0
  537. package/dist/request-reply/router.d.ts +20 -0
  538. package/dist/request-reply/router.d.ts.map +1 -0
  539. package/dist/request-reply/router.js +55 -0
  540. package/dist/request-reply/router.js.map +1 -0
  541. package/dist/request-reply/router.mjs +30 -0
  542. package/dist/request-reply/router.mjs.map +1 -0
  543. package/dist/request-reply/types.d.ts +25 -0
  544. package/dist/request-reply/types.d.ts.map +1 -0
  545. package/dist/request-reply/types.js +54 -0
  546. package/dist/request-reply/types.js.map +1 -0
  547. package/dist/request-reply/types.mjs +28 -0
  548. package/dist/request-reply/types.mjs.map +1 -0
  549. package/dist/request-reply/utils.d.ts +9 -0
  550. package/dist/request-reply/utils.d.ts.map +1 -0
  551. package/dist/request-reply/utils.js +51 -0
  552. package/dist/request-reply/utils.js.map +1 -0
  553. package/dist/request-reply/utils.mjs +22 -0
  554. package/dist/request-reply/utils.mjs.map +1 -0
  555. package/package.json +127 -6
  556. package/README.md +0 -4
  557. package/index.js +0 -1
@@ -0,0 +1,433 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/core/runtime/AgentThreadOrchestrator.ts
21
+ var AgentThreadOrchestrator_exports = {};
22
+ __export(AgentThreadOrchestrator_exports, {
23
+ AgentThreadOrchestrator: () => AgentThreadOrchestrator,
24
+ wrapWithSubAgentSpan: () => wrapWithSubAgentSpan
25
+ });
26
+ module.exports = __toCommonJS(AgentThreadOrchestrator_exports);
27
+ var import_errors = require("../errors.js");
28
+ var import_schema = require("../events/schema.js");
29
+ var import_abort = require("../util/abort.js");
30
+ var import_promiseUtils = require("../util/promiseUtils.js");
31
+ var import_AgentThread = require("./AgentThread.js");
32
+ var import_AgentThread2 = require("./AgentThread.types.js");
33
+ var import_contextUtils = require("./contextUtils.js");
34
+ var import_metrics = require("./metrics.js");
35
+ var MAX_PARALLEL_SUB_AGENTS = 5;
36
+ function agentThreadEventToTerminalFields(event) {
37
+ switch (event.type) {
38
+ case import_AgentThread2.InternalEventType.AGENT_DONE: {
39
+ if ("parent" in event && event.parent) return {};
40
+ if (event.status === "error") return {};
41
+ return { output: event.output };
42
+ }
43
+ case import_schema.EventType.TOOL_APPROVAL_REQUIRED:
44
+ case import_schema.EventType.TOOL_RESPONSE_REQUIRED:
45
+ return { requiredAction: event };
46
+ default:
47
+ return {};
48
+ }
49
+ }
50
+ function isUserToolApprovalOrResponseBatch(messages) {
51
+ const first = messages[0];
52
+ return first !== void 0 && ((0, import_contextUtils.isApprovalDecisionMessage)(first) || (0, import_contextUtils.isClientSideToolResponseMessage)(first));
53
+ }
54
+ function getMainThreadId(agentThreads) {
55
+ for (const thread of agentThreads.values()) {
56
+ if (!thread.parent) return thread.threadId;
57
+ }
58
+ throw new Error("Unreachable: no root thread found");
59
+ }
60
+ function getActiveAgentThreads(agentThreads) {
61
+ const nodes = new Set(agentThreads.keys());
62
+ const parentNodes = new Set(
63
+ [...agentThreads.values()].map((a) => a.parent?.thread_id).filter((a) => Boolean(a))
64
+ );
65
+ const leaves = [...nodes].filter((id) => !parentNodes.has(id));
66
+ if (leaves.length === 0) {
67
+ throw new Error("We cannot have zero leave agents");
68
+ }
69
+ return leaves.map((id) => {
70
+ const agentThread = agentThreads.get(id);
71
+ if (!agentThread) throw new Error("unreachable");
72
+ return agentThread;
73
+ });
74
+ }
75
+ function mergeAuthEvents(events) {
76
+ const serverMap = /* @__PURE__ */ new Map();
77
+ for (const event of events) {
78
+ for (const entry of event.mcp_servers) {
79
+ const existing = serverMap.get(entry.id);
80
+ if (existing) {
81
+ existing.thread_ids.push(...entry.thread_ids);
82
+ } else {
83
+ serverMap.set(entry.id, { ...entry, thread_ids: [...entry.thread_ids] });
84
+ }
85
+ }
86
+ }
87
+ return {
88
+ type: import_AgentThread2.InternalEventType.MCP_AUTH_REQUIRED,
89
+ id: (0, import_schema.newEventId)(),
90
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
91
+ thread_id: null,
92
+ mcp_servers: [...serverMap.values()]
93
+ };
94
+ }
95
+ function wrapGeneratorWithTrace(trace, generator) {
96
+ const wrapped = {
97
+ [Symbol.asyncIterator]() {
98
+ return this;
99
+ },
100
+ next(...[value]) {
101
+ return trace.runInContext(() => value === void 0 ? generator.next() : generator.next(value));
102
+ },
103
+ return(value) {
104
+ return trace.runInContext(() => generator.return(value));
105
+ },
106
+ throw(e) {
107
+ return trace.runInContext(() => generator.throw(e));
108
+ },
109
+ [Symbol.asyncDispose]() {
110
+ return generator[Symbol.asyncDispose]();
111
+ }
112
+ };
113
+ return wrapped;
114
+ }
115
+ function createRootAgentSpan(mainThread, tracing) {
116
+ const trace = tracing.startRootSpan(
117
+ JSON.stringify({ instructions: mainThread.definition.instruction, messages: mainThread.definition.messages })
118
+ );
119
+ let rootAgentErrorMessage;
120
+ let rootAgentCompleted = false;
121
+ return {
122
+ trace,
123
+ wrapThreadWithContext(thread, signal) {
124
+ return wrapGeneratorWithTrace(trace, thread.execute({ signal }));
125
+ },
126
+ setOutputFromEvent(chunk) {
127
+ rootAgentCompleted = true;
128
+ if (chunk.type === import_AgentThread2.InternalEventType.AGENT_DONE) {
129
+ if ((0, import_contextUtils.isInternalThreadDoneError)(chunk)) {
130
+ rootAgentErrorMessage = chunk.error;
131
+ trace.setOutput(JSON.stringify({ error: chunk.error }));
132
+ } else {
133
+ const content = (0, import_contextUtils.assistantMessageContentToStringForSubAgent)(chunk.output.content);
134
+ trace.setOutput(JSON.stringify({ result: content }));
135
+ }
136
+ }
137
+ },
138
+ finalize(thread, error) {
139
+ trace.setMetrics(thread.getAgentThreadMetrics());
140
+ if (error) {
141
+ trace.setError(error);
142
+ } else if (rootAgentErrorMessage || !rootAgentCompleted) {
143
+ trace.setError(rootAgentErrorMessage ?? "Agent execution interrupted");
144
+ } else {
145
+ trace.setSuccess();
146
+ }
147
+ },
148
+ end() {
149
+ trace.end();
150
+ }
151
+ };
152
+ }
153
+ async function* wrapWithSubAgentSpan(parentTrace, currentThread, signal) {
154
+ const agentInfo = currentThread.agentInfo;
155
+ if (!agentInfo) {
156
+ throw new Error("Sub-agent thread is missing agentInfo");
157
+ }
158
+ const subTrace = parentTrace.startSubAgent(agentInfo.name, JSON.stringify({ instructions: agentInfo.input }));
159
+ const generator = wrapGeneratorWithTrace(subTrace, currentThread.execute({ signal }));
160
+ try {
161
+ for await (const event of generator) {
162
+ if (event.type === import_AgentThread2.InternalEventType.AGENT_DONE) {
163
+ if ((0, import_contextUtils.isInternalThreadDoneError)(event)) {
164
+ subTrace.setOutput(JSON.stringify({ error: event.error }));
165
+ subTrace.setMetrics(currentThread.getAgentThreadMetrics());
166
+ subTrace.setError(event.error);
167
+ } else {
168
+ const content = (0, import_contextUtils.assistantMessageContentToStringForSubAgent)(event.output.content);
169
+ subTrace.setOutput(JSON.stringify({ result: content }));
170
+ subTrace.setMetrics(currentThread.getAgentThreadMetrics());
171
+ subTrace.setSuccess();
172
+ }
173
+ }
174
+ yield event;
175
+ }
176
+ } catch (error) {
177
+ subTrace.setError(error);
178
+ throw error;
179
+ } finally {
180
+ subTrace.end();
181
+ }
182
+ }
183
+ var AgentThreadOrchestrator = class {
184
+ agentThreads;
185
+ createDynamicSubAgentThread;
186
+ tracing;
187
+ logger;
188
+ // Finished sub-agents removed from `agentThreads`; kept so totals still include them.
189
+ finishedSubAgentMetrics = (0, import_metrics.createEmptyAgentThreadMetrics)();
190
+ constructor(params) {
191
+ this.agentThreads = params.agentThreads;
192
+ this.createDynamicSubAgentThread = params.createDynamicSubAgentThread;
193
+ this.tracing = params.tracing;
194
+ this.logger = params.logger.child({ module: "AgentThreadOrchestrator" });
195
+ }
196
+ /**
197
+ * Turn-wide metrics so far: live threads plus finished sub-agents.
198
+ * Safe mid-flight and after cancel/error (`execute()` may not return).
199
+ * Each thread is counted once — a sub-agent moves from live → finished atomically.
200
+ */
201
+ getMetrics() {
202
+ const total = (0, import_metrics.createEmptyAgentThreadMetrics)();
203
+ (0, import_metrics.addAgentThreadMetrics)(total, this.finishedSubAgentMetrics);
204
+ for (const thread of this.agentThreads.values()) {
205
+ (0, import_metrics.addAgentThreadMetrics)(total, thread.getAgentThreadMetrics());
206
+ }
207
+ return total;
208
+ }
209
+ async *send(messages) {
210
+ const byThread = /* @__PURE__ */ new Map();
211
+ for (const thread of this.agentThreads.values()) {
212
+ byThread.set(thread.threadId, []);
213
+ }
214
+ if (isUserToolApprovalOrResponseBatch(messages)) {
215
+ const grouped = /* @__PURE__ */ new Map();
216
+ for (const msg of messages) {
217
+ const threadId = msg.thread_id;
218
+ if (!byThread.has(threadId)) {
219
+ throw new import_errors.InvalidAgentSendInputError(`unknown thread_id: ${threadId}`);
220
+ }
221
+ const batch = grouped.get(threadId) ?? [];
222
+ batch.push(msg);
223
+ grouped.set(threadId, batch);
224
+ }
225
+ for (const [threadId, batch] of grouped) {
226
+ byThread.set(threadId, batch);
227
+ }
228
+ } else if (messages.length > 0) {
229
+ if (this.agentThreads.size > 1) {
230
+ throw new import_errors.InvalidAgentSendInputError(
231
+ "Cannot process user messages while sub agents are running, please send empty input for previous conversation to complete"
232
+ );
233
+ }
234
+ byThread.set(getMainThreadId(this.agentThreads), messages);
235
+ }
236
+ const validationErrors = [];
237
+ for (const [threadId, batch] of byThread) {
238
+ const thread = this.agentThreads.get(threadId);
239
+ if (!thread) {
240
+ throw new Error(`AgentThreadOrchestrator.send: unknown threadId ${threadId}`);
241
+ }
242
+ try {
243
+ thread.validateSendInput(batch);
244
+ } catch (e) {
245
+ if (e instanceof import_errors.AgentHarnessError && e.code === "invalid_send_input") {
246
+ validationErrors.push(`thread ${threadId}: ${e.message}`);
247
+ } else {
248
+ throw e;
249
+ }
250
+ }
251
+ }
252
+ if (validationErrors.length > 0) {
253
+ throw new import_errors.InvalidAgentSendInputError(validationErrors.join("; "));
254
+ }
255
+ for (const [threadId, batch] of byThread) {
256
+ yield* this.sendToThread(threadId, batch);
257
+ }
258
+ }
259
+ async *sendToThread(threadId, messages) {
260
+ const thread = this.agentThreads.get(threadId);
261
+ if (!thread) {
262
+ throw new Error(`AgentThreadOrchestrator.sendToThread: unknown threadId ${threadId}`);
263
+ }
264
+ yield* thread.send(messages);
265
+ }
266
+ async *processAgentStreamChunk(chunk, signal) {
267
+ if (chunk.type === import_AgentThread2.InternalEventType.PASSTHROUGH) {
268
+ yield chunk.event;
269
+ return { shouldStopExecution: false };
270
+ }
271
+ if (!("thread_id" in chunk) || chunk.thread_id == null) {
272
+ yield chunk;
273
+ return { shouldStopExecution: false };
274
+ }
275
+ const currentThread = this.agentThreads.get(chunk.thread_id);
276
+ if (!currentThread) {
277
+ throw new Error("unreachable");
278
+ }
279
+ switch (chunk.type) {
280
+ case import_schema.EventType.TOOL_APPROVAL_REQUIRED:
281
+ case import_schema.EventType.TOOL_RESPONSE_REQUIRED:
282
+ yield chunk;
283
+ return { shouldStopExecution: true };
284
+ case import_AgentThread2.InternalEventType.AGENT_DONE: {
285
+ if (chunk.parent) {
286
+ if (!chunk.send_to_parent) throw new Error("unreachable");
287
+ const parentThread = this.agentThreads.get(chunk.parent.thread_id);
288
+ if (!parentThread) throw new Error("unreachable: parent thread missing");
289
+ const subAgentToolIsOpen = parentThread.hasOpenToolCallId(chunk.parent.tool_call_id);
290
+ if (subAgentToolIsOpen) {
291
+ const parentToolResponse = {
292
+ type: import_schema.EventType.TOOL_RESPONSE,
293
+ id: (0, import_schema.newEventId)(),
294
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
295
+ thread_id: chunk.parent.thread_id,
296
+ tool_call_id: chunk.send_to_parent.tool_call_id,
297
+ content: ""
298
+ };
299
+ yield parentToolResponse;
300
+ yield* this.sendToThread(chunk.parent.thread_id, [chunk.send_to_parent]);
301
+ }
302
+ yield chunk;
303
+ (0, import_metrics.addAgentThreadMetrics)(this.finishedSubAgentMetrics, currentThread.getAgentThreadMetrics());
304
+ this.agentThreads.delete(chunk.thread_id);
305
+ return { shouldStopExecution: false };
306
+ }
307
+ yield chunk;
308
+ return { shouldStopExecution: true };
309
+ }
310
+ case import_AgentThread2.InternalEventType.AGENT_CREATE_SUBAGENT: {
311
+ const parent = {
312
+ tool_call_id: chunk.tool_call_id,
313
+ thread_id: chunk.thread_id
314
+ };
315
+ const subAgentThreadId = (0, import_contextUtils.getThreadId)();
316
+ const subAgentThread = await this.createDynamicSubAgentThread({
317
+ parentDefinition: currentThread.definition,
318
+ request: chunk.agent_info,
319
+ threadId: subAgentThreadId,
320
+ parent,
321
+ signal
322
+ });
323
+ yield {
324
+ type: import_schema.EventType.THREAD_CREATED,
325
+ id: (0, import_schema.newEventId)(),
326
+ agent_info: {
327
+ type: "dynamic",
328
+ name: chunk.agent_info.name,
329
+ input: chunk.agent_info.input,
330
+ model: chunk.agent_info.model
331
+ },
332
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
333
+ parent,
334
+ title: chunk.agent_info.name,
335
+ thread_id: subAgentThreadId
336
+ };
337
+ this.agentThreads.set(subAgentThreadId, subAgentThread);
338
+ return { shouldStopExecution: false };
339
+ }
340
+ default:
341
+ yield chunk;
342
+ return { shouldStopExecution: false };
343
+ }
344
+ }
345
+ async *execute({
346
+ signal
347
+ }) {
348
+ const { agentThreads } = this;
349
+ let shouldStopExecution = false;
350
+ let caughtError;
351
+ let output = null;
352
+ const requiredActions = [];
353
+ let rootAgentError;
354
+ const pendingAuthEvents = [];
355
+ const mainThread = [...agentThreads.values()].find((e) => !e.parent);
356
+ if (!mainThread) {
357
+ throw new Error("Unreachable: no root thread found");
358
+ }
359
+ const rootSpan = createRootAgentSpan(mainThread, this.tracing);
360
+ (0, import_abort.onSignalAbort)(signal, () => {
361
+ shouldStopExecution = true;
362
+ });
363
+ try {
364
+ while (agentThreads.size > 0) {
365
+ if (shouldStopExecution) break;
366
+ const activeThreads = getActiveAgentThreads(agentThreads);
367
+ for (let i = 0; i < activeThreads.length && !shouldStopExecution; i += MAX_PARALLEL_SUB_AGENTS) {
368
+ const batch = activeThreads.slice(i, i + MAX_PARALLEL_SUB_AGENTS);
369
+ const generators = batch.map((thread) => {
370
+ if (!thread.parent) {
371
+ return rootSpan.wrapThreadWithContext(thread, signal);
372
+ }
373
+ return wrapWithSubAgentSpan(rootSpan.trace, thread, signal);
374
+ });
375
+ for await (const chunk of (0, import_promiseUtils.mergeAsyncGenerators)(generators, this.logger)) {
376
+ if (chunk.type === import_AgentThread2.InternalEventType.MCP_AUTH_REQUIRED) {
377
+ pendingAuthEvents.push(chunk);
378
+ shouldStopExecution = true;
379
+ continue;
380
+ }
381
+ if (chunk.type === import_AgentThread2.InternalEventType.AGENT_DONE && !chunk.parent) {
382
+ rootSpan.setOutputFromEvent(chunk);
383
+ }
384
+ const result = yield* this.processAgentStreamChunk(chunk, signal);
385
+ if (result.shouldStopExecution) {
386
+ shouldStopExecution = true;
387
+ if (!rootAgentError && chunk.type === import_AgentThread2.InternalEventType.AGENT_DONE && (0, import_contextUtils.isInternalThreadDoneError)(chunk) && !chunk.parent) {
388
+ rootAgentError = { error: chunk.error, output: chunk.output };
389
+ }
390
+ if (chunk.type !== import_AgentThread2.InternalEventType.PASSTHROUGH) {
391
+ const { output: outputContribution, requiredAction } = agentThreadEventToTerminalFields(chunk);
392
+ if (outputContribution) output = outputContribution;
393
+ if (requiredAction) requiredActions.push(requiredAction);
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+ } catch (error) {
400
+ caughtError = error;
401
+ throw error;
402
+ } finally {
403
+ rootSpan.finalize(mainThread, caughtError);
404
+ rootSpan.end();
405
+ }
406
+ if (pendingAuthEvents.length > 0) {
407
+ const authEvent = mergeAuthEvents(pendingAuthEvents);
408
+ yield authEvent;
409
+ const authRequiredAction = {
410
+ type: import_schema.EventType.MCP_AUTH_REQUIRED,
411
+ id: authEvent.id,
412
+ created_at: authEvent.created_at,
413
+ thread_id: authEvent.thread_id,
414
+ mcp_servers: authEvent.mcp_servers.map(({ thread_ids, ...s }) => {
415
+ void thread_ids;
416
+ return s;
417
+ })
418
+ };
419
+ requiredActions.push(authRequiredAction);
420
+ }
421
+ return {
422
+ output,
423
+ required_actions: requiredActions,
424
+ root_agent_error: rootAgentError
425
+ };
426
+ }
427
+ };
428
+ // Annotate the CommonJS export names for ESM import in node:
429
+ 0 && (module.exports = {
430
+ AgentThreadOrchestrator,
431
+ wrapWithSubAgentSpan
432
+ });
433
+ //# sourceMappingURL=AgentThreadOrchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/core/runtime/AgentThreadOrchestrator.ts"],"sourcesContent":["import type { Logger } from 'winston';\nimport { AgentHarnessError, InvalidAgentSendInputError } from '../errors';\nimport {\n EventType,\n newEventId,\n type ActionRequiredEvent,\n type ModelMessageEvent,\n type ToolResponseEvent,\n type UserToolApprovalMessage,\n type UserToolResponseMessage,\n} from '../events/schema';\nimport type { AgentExecutionTrace, AgentTracing } from '../tracing/AgentTracing';\nimport { onSignalAbort } from '../util/abort';\nimport { mergeAsyncGenerators } from '../util/promiseUtils';\nimport { AgentThread } from './AgentThread';\nimport type { AgentThreadRuntimeSendBatch } from './AgentThread.types';\nimport {\n InternalEventType,\n type AgentThreadAppendContext,\n type AgentThreadEvent,\n type AgentThreadExecutionEvent,\n type AgentThreadExecutionResult,\n type AgentThreadSendBatch,\n type InternalMCPAuthRequiredEvent,\n type InternalMCPServerAuthInfo,\n} from './AgentThread.types';\nimport {\n assistantMessageContentToStringForSubAgent,\n getThreadId,\n isApprovalDecisionMessage,\n isClientSideToolResponseMessage,\n isInternalThreadDoneError,\n} from './contextUtils';\nimport type { CreateDynamicSubAgentThread } from './CreateDynamicSubAgentThread';\nimport { addAgentThreadMetrics, createEmptyAgentThreadMetrics, type AgentThreadMetrics } from './metrics';\n\nconst MAX_PARALLEL_SUB_AGENTS = 5;\n\nfunction agentThreadEventToTerminalFields(event: AgentThreadExecutionEvent): {\n output?: ModelMessageEvent | undefined;\n requiredAction?: ActionRequiredEvent | undefined;\n} {\n switch (event.type) {\n case InternalEventType.AGENT_DONE: {\n if ('parent' in event && event.parent) return {};\n if (event.status === 'error') return {};\n return { output: event.output };\n }\n case EventType.TOOL_APPROVAL_REQUIRED:\n case EventType.TOOL_RESPONSE_REQUIRED:\n return { requiredAction: event };\n default:\n return {};\n }\n}\n\ntype UserToolApprovalOrResponseBatch = (UserToolApprovalMessage | UserToolResponseMessage)[];\n\nfunction isUserToolApprovalOrResponseBatch(\n messages: AgentThreadSendBatch,\n): messages is UserToolApprovalOrResponseBatch {\n const first = messages[0];\n return first !== undefined && (isApprovalDecisionMessage(first) || isClientSideToolResponseMessage(first));\n}\n\nfunction getMainThreadId(agentThreads: Map<string, AgentThread>): string {\n for (const thread of agentThreads.values()) {\n if (!thread.parent) return thread.threadId;\n }\n throw new Error('Unreachable: no root thread found');\n}\n\nfunction getActiveAgentThreads(agentThreads: Map<string, AgentThread>): AgentThread[] {\n const nodes = new Set(agentThreads.keys());\n const parentNodes = new Set(\n [...agentThreads.values()].map(a => a.parent?.thread_id).filter((a): a is string => Boolean(a)),\n );\n const leaves = [...nodes].filter(id => !parentNodes.has(id));\n if (leaves.length === 0) {\n throw new Error('We cannot have zero leave agents');\n }\n return leaves.map(id => {\n const agentThread = agentThreads.get(id);\n if (!agentThread) throw new Error('unreachable');\n return agentThread;\n });\n}\n\nfunction mergeAuthEvents(events: InternalMCPAuthRequiredEvent[]): InternalMCPAuthRequiredEvent {\n const serverMap = new Map<string, InternalMCPServerAuthInfo>();\n for (const event of events) {\n for (const entry of event.mcp_servers) {\n const existing = serverMap.get(entry.id);\n if (existing) {\n existing.thread_ids.push(...entry.thread_ids);\n } else {\n serverMap.set(entry.id, { ...entry, thread_ids: [...entry.thread_ids] });\n }\n }\n }\n return {\n type: InternalEventType.MCP_AUTH_REQUIRED,\n id: newEventId(),\n created_at: new Date().toISOString(),\n thread_id: null,\n mcp_servers: [...serverMap.values()],\n };\n}\n\nfunction wrapGeneratorWithTrace<T, TReturn = void, TNext = unknown>(\n trace: AgentExecutionTrace,\n generator: AsyncGenerator<T, TReturn, TNext>,\n): AsyncGenerator<T, TReturn, TNext> {\n const wrapped: AsyncGenerator<T, TReturn, TNext> = {\n [Symbol.asyncIterator]() {\n return this;\n },\n next(...[value]: [] | [TNext]) {\n return trace.runInContext(() => (value === undefined ? generator.next() : generator.next(value)));\n },\n return(value: TReturn | PromiseLike<TReturn>) {\n return trace.runInContext(() => generator.return(value));\n },\n throw(e: unknown) {\n return trace.runInContext(() => generator.throw(e));\n },\n [Symbol.asyncDispose]() {\n return generator[Symbol.asyncDispose]();\n },\n };\n return wrapped;\n}\n\ninterface RootAgentSpanHandle {\n trace: AgentExecutionTrace;\n wrapThreadWithContext(thread: AgentThread, signal?: AbortSignal): AsyncGenerator<AgentThreadEvent>;\n setOutputFromEvent(chunk: AgentThreadEvent): void;\n finalize(thread: AgentThread, error?: unknown): void;\n end(): void;\n}\n\nfunction createRootAgentSpan(mainThread: AgentThread, tracing: AgentTracing): RootAgentSpanHandle {\n const trace = tracing.startRootSpan(\n JSON.stringify({ instructions: mainThread.definition.instruction, messages: mainThread.definition.messages }),\n );\n let rootAgentErrorMessage: string | undefined;\n let rootAgentCompleted = false;\n\n return {\n trace,\n wrapThreadWithContext(thread: AgentThread, signal?: AbortSignal) {\n return wrapGeneratorWithTrace(trace, thread.execute({ signal }));\n },\n setOutputFromEvent(chunk: AgentThreadEvent) {\n rootAgentCompleted = true;\n if (chunk.type === InternalEventType.AGENT_DONE) {\n if (isInternalThreadDoneError(chunk)) {\n rootAgentErrorMessage = chunk.error;\n trace.setOutput(JSON.stringify({ error: chunk.error }));\n } else {\n const content = assistantMessageContentToStringForSubAgent(chunk.output.content);\n trace.setOutput(JSON.stringify({ result: content }));\n }\n }\n },\n finalize(thread: AgentThread, error?: unknown) {\n trace.setMetrics(thread.getAgentThreadMetrics());\n if (error) {\n trace.setError(error);\n } else if (rootAgentErrorMessage || !rootAgentCompleted) {\n trace.setError(rootAgentErrorMessage ?? 'Agent execution interrupted');\n } else {\n trace.setSuccess();\n }\n },\n end() {\n trace.end();\n },\n };\n}\n\n/** @internal Exported for sub-agent span finalization tests. */\nexport async function* wrapWithSubAgentSpan(\n parentTrace: AgentExecutionTrace,\n currentThread: AgentThread,\n signal?: AbortSignal,\n): AsyncGenerator<AgentThreadEvent> {\n const agentInfo = currentThread.agentInfo;\n if (!agentInfo) {\n throw new Error('Sub-agent thread is missing agentInfo');\n }\n const subTrace = parentTrace.startSubAgent(agentInfo.name, JSON.stringify({ instructions: agentInfo.input }));\n const generator = wrapGeneratorWithTrace(subTrace, currentThread.execute({ signal }));\n\n try {\n for await (const event of generator) {\n if (event.type === InternalEventType.AGENT_DONE) {\n if (isInternalThreadDoneError(event)) {\n subTrace.setOutput(JSON.stringify({ error: event.error }));\n subTrace.setMetrics(currentThread.getAgentThreadMetrics());\n subTrace.setError(event.error);\n } else {\n const content = assistantMessageContentToStringForSubAgent(event.output.content);\n subTrace.setOutput(JSON.stringify({ result: content }));\n subTrace.setMetrics(currentThread.getAgentThreadMetrics());\n subTrace.setSuccess();\n }\n // end() only in finally so every path finalizes exactly once\n }\n yield event;\n }\n } catch (error) {\n subTrace.setError(error);\n throw error;\n } finally {\n subTrace.end();\n }\n}\n\nexport interface AgentThreadOrchestratorInput {\n agentThreads: Map<string, AgentThread>;\n createDynamicSubAgentThread: CreateDynamicSubAgentThread;\n tracing: AgentTracing;\n logger: Logger;\n}\n\nexport class AgentThreadOrchestrator {\n private readonly agentThreads: Map<string, AgentThread>;\n private readonly createDynamicSubAgentThread: CreateDynamicSubAgentThread;\n private readonly tracing: AgentTracing;\n private readonly logger: Logger;\n // Finished sub-agents removed from `agentThreads`; kept so totals still include them.\n private finishedSubAgentMetrics: AgentThreadMetrics = createEmptyAgentThreadMetrics();\n\n constructor(params: AgentThreadOrchestratorInput) {\n this.agentThreads = params.agentThreads;\n this.createDynamicSubAgentThread = params.createDynamicSubAgentThread;\n this.tracing = params.tracing;\n this.logger = params.logger.child({ module: 'AgentThreadOrchestrator' });\n }\n\n /**\n * Turn-wide metrics so far: live threads plus finished sub-agents.\n * Safe mid-flight and after cancel/error (`execute()` may not return).\n * Each thread is counted once — a sub-agent moves from live → finished atomically.\n */\n public getMetrics(): AgentThreadMetrics {\n const total = createEmptyAgentThreadMetrics();\n addAgentThreadMetrics(total, this.finishedSubAgentMetrics);\n for (const thread of this.agentThreads.values()) {\n addAgentThreadMetrics(total, thread.getAgentThreadMetrics());\n }\n return total;\n }\n\n public async *send(messages: AgentThreadSendBatch): AsyncGenerator<AgentThreadAppendContext, void, unknown> {\n const byThread = new Map<string, AgentThreadRuntimeSendBatch>();\n for (const thread of this.agentThreads.values()) {\n byThread.set(thread.threadId, []);\n }\n\n if (isUserToolApprovalOrResponseBatch(messages)) {\n const grouped = new Map<string, UserToolApprovalOrResponseBatch[number][]>();\n for (const msg of messages) {\n const threadId = msg.thread_id;\n if (!byThread.has(threadId)) {\n throw new InvalidAgentSendInputError(`unknown thread_id: ${threadId}`);\n }\n const batch = grouped.get(threadId) ?? [];\n batch.push(msg);\n grouped.set(threadId, batch);\n }\n for (const [threadId, batch] of grouped) {\n byThread.set(threadId, batch);\n }\n } else if (messages.length > 0) {\n if (this.agentThreads.size > 1) {\n throw new InvalidAgentSendInputError(\n 'Cannot process user messages while sub agents are running, please send empty input for previous conversation to complete',\n );\n }\n byThread.set(getMainThreadId(this.agentThreads), messages);\n }\n\n const validationErrors: string[] = [];\n for (const [threadId, batch] of byThread) {\n const thread = this.agentThreads.get(threadId);\n if (!thread) {\n throw new Error(`AgentThreadOrchestrator.send: unknown threadId ${threadId}`);\n }\n try {\n thread.validateSendInput(batch);\n } catch (e) {\n if (e instanceof AgentHarnessError && e.code === 'invalid_send_input') {\n validationErrors.push(`thread ${threadId}: ${e.message}`);\n } else {\n throw e;\n }\n }\n }\n if (validationErrors.length > 0) {\n throw new InvalidAgentSendInputError(validationErrors.join('; '));\n }\n\n for (const [threadId, batch] of byThread) {\n yield* this.sendToThread(threadId, batch);\n }\n }\n\n private async *sendToThread(\n threadId: string,\n messages: AgentThreadRuntimeSendBatch,\n ): AsyncGenerator<AgentThreadAppendContext, void, unknown> {\n const thread = this.agentThreads.get(threadId);\n if (!thread) {\n throw new Error(`AgentThreadOrchestrator.sendToThread: unknown threadId ${threadId}`);\n }\n yield* thread.send(messages);\n }\n\n private async *processAgentStreamChunk(\n chunk: Exclude<AgentThreadEvent, InternalMCPAuthRequiredEvent>,\n signal: AbortSignal,\n ): AsyncGenerator<AgentThreadExecutionEvent, { shouldStopExecution: boolean }, unknown> {\n if (chunk.type === InternalEventType.PASSTHROUGH) {\n yield chunk.event;\n return { shouldStopExecution: false };\n }\n\n if (!('thread_id' in chunk) || chunk.thread_id == null) {\n yield chunk;\n return { shouldStopExecution: false };\n }\n\n const currentThread = this.agentThreads.get(chunk.thread_id);\n if (!currentThread) {\n throw new Error('unreachable');\n }\n\n switch (chunk.type) {\n case EventType.TOOL_APPROVAL_REQUIRED:\n case EventType.TOOL_RESPONSE_REQUIRED:\n yield chunk;\n return { shouldStopExecution: true };\n case InternalEventType.AGENT_DONE: {\n if (chunk.parent) {\n if (!chunk.send_to_parent) throw new Error('unreachable');\n const parentThread = this.agentThreads.get(chunk.parent.thread_id);\n if (!parentThread) throw new Error('unreachable: parent thread missing');\n const subAgentToolIsOpen = parentThread.hasOpenToolCallId(chunk.parent.tool_call_id);\n if (subAgentToolIsOpen) {\n const parentToolResponse: ToolResponseEvent = {\n type: EventType.TOOL_RESPONSE,\n id: newEventId(),\n created_at: new Date().toISOString(),\n thread_id: chunk.parent.thread_id,\n tool_call_id: chunk.send_to_parent.tool_call_id,\n content: '',\n };\n yield parentToolResponse;\n yield* this.sendToThread(chunk.parent.thread_id, [chunk.send_to_parent]);\n }\n yield chunk;\n // Move metrics to the finished bucket and drop the live entry with no `yield` between,\n // so getMetrics() counts this sub-agent once. After `yield chunk` per durable-state.\n addAgentThreadMetrics(this.finishedSubAgentMetrics, currentThread.getAgentThreadMetrics());\n this.agentThreads.delete(chunk.thread_id);\n return { shouldStopExecution: false };\n }\n yield chunk;\n return { shouldStopExecution: true };\n }\n case InternalEventType.AGENT_CREATE_SUBAGENT: {\n const parent = {\n tool_call_id: chunk.tool_call_id,\n thread_id: chunk.thread_id,\n };\n const subAgentThreadId = getThreadId();\n const subAgentThread = await this.createDynamicSubAgentThread({\n parentDefinition: currentThread.definition,\n request: chunk.agent_info,\n threadId: subAgentThreadId,\n parent,\n signal,\n });\n\n yield {\n type: EventType.THREAD_CREATED,\n id: newEventId(),\n agent_info: {\n type: 'dynamic',\n name: chunk.agent_info.name,\n input: chunk.agent_info.input,\n model: chunk.agent_info.model,\n },\n created_at: new Date().toISOString(),\n parent,\n title: chunk.agent_info.name,\n thread_id: subAgentThreadId,\n };\n this.agentThreads.set(subAgentThreadId, subAgentThread);\n return { shouldStopExecution: false };\n }\n default:\n yield chunk;\n return { shouldStopExecution: false };\n }\n }\n\n public async *execute({\n signal,\n }: {\n signal: AbortSignal;\n }): AsyncGenerator<AgentThreadExecutionEvent, AgentThreadExecutionResult, unknown> {\n const { agentThreads } = this;\n\n let shouldStopExecution = false;\n let caughtError: unknown;\n let output: ModelMessageEvent | null = null;\n const requiredActions: ActionRequiredEvent[] = [];\n let rootAgentError: AgentThreadExecutionResult['root_agent_error'];\n const pendingAuthEvents: InternalMCPAuthRequiredEvent[] = [];\n const mainThread = [...agentThreads.values()].find(e => !e.parent);\n if (!mainThread) {\n throw new Error('Unreachable: no root thread found');\n }\n const rootSpan = createRootAgentSpan(mainThread, this.tracing);\n\n onSignalAbort(signal, () => {\n shouldStopExecution = true;\n });\n\n try {\n while (agentThreads.size > 0) {\n if (shouldStopExecution) break;\n\n const activeThreads = getActiveAgentThreads(agentThreads);\n\n for (let i = 0; i < activeThreads.length && !shouldStopExecution; i += MAX_PARALLEL_SUB_AGENTS) {\n const batch = activeThreads.slice(i, i + MAX_PARALLEL_SUB_AGENTS);\n const generators = batch.map(thread => {\n if (!thread.parent) {\n return rootSpan.wrapThreadWithContext(thread, signal);\n }\n return wrapWithSubAgentSpan(rootSpan.trace, thread, signal);\n });\n\n for await (const chunk of mergeAsyncGenerators(generators, this.logger)) {\n if (chunk.type === InternalEventType.MCP_AUTH_REQUIRED) {\n pendingAuthEvents.push(chunk);\n shouldStopExecution = true;\n continue;\n }\n if (chunk.type === InternalEventType.AGENT_DONE && !chunk.parent) {\n // Root-thread only — sub-agent AGENT_DONE would overwrite root trace output /\n // leave a stale error; sub-agent spans finalize in wrapWithSubAgentSpan.\n rootSpan.setOutputFromEvent(chunk);\n }\n\n const result = yield* this.processAgentStreamChunk(chunk, signal);\n if (result.shouldStopExecution) {\n shouldStopExecution = true;\n if (\n !rootAgentError &&\n chunk.type === InternalEventType.AGENT_DONE &&\n isInternalThreadDoneError(chunk) &&\n !chunk.parent\n ) {\n rootAgentError = { error: chunk.error, output: chunk.output };\n }\n if (chunk.type !== InternalEventType.PASSTHROUGH) {\n const { output: outputContribution, requiredAction } = agentThreadEventToTerminalFields(chunk);\n if (outputContribution) output = outputContribution;\n if (requiredAction) requiredActions.push(requiredAction);\n }\n }\n }\n }\n }\n } catch (error) {\n caughtError = error;\n throw error;\n } finally {\n rootSpan.finalize(mainThread, caughtError);\n rootSpan.end();\n }\n\n if (pendingAuthEvents.length > 0) {\n const authEvent = mergeAuthEvents(pendingAuthEvents);\n yield authEvent;\n const authRequiredAction: ActionRequiredEvent = {\n type: EventType.MCP_AUTH_REQUIRED,\n id: authEvent.id,\n created_at: authEvent.created_at,\n thread_id: authEvent.thread_id,\n mcp_servers: authEvent.mcp_servers.map(({ thread_ids, ...s }) => {\n void thread_ids;\n return s;\n }),\n };\n requiredActions.push(authRequiredAction);\n }\n\n return {\n output,\n required_actions: requiredActions,\n root_agent_error: rootAgentError,\n };\n }\n}\n"],"mappings":"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","names":["import_AgentThread"]}