@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,88 @@
1
+ import type { ModelMessageDeltaEvent } from '../core/events/schema';
2
+ import type { AgentThreadOrchestrator } from '../core/runtime/AgentThreadOrchestrator';
3
+ import type { ITurnResourceResolver } from './ITurnResourceResolver';
4
+ import type { TurnRecord } from './models/TurnRecord';
5
+ import { type PersistedTurnEvent } from './schemas/events';
6
+ import type { TokenPagination } from './schemas/pagination';
7
+ import { type TurnInputItem, type TurnState } from './schemas/turn';
8
+ import type { ISessionStore } from './store/ISessionStore';
9
+ /** Streaming yield union — deltas pass through; never persisted. No sequence_number. */
10
+ export type TurnStreamingEvent = PersistedTurnEvent | ModelMessageDeltaEvent;
11
+ export declare class TurnHandle<TTurnCustom extends object = Record<string, never>> {
12
+ private readonly store;
13
+ private turn;
14
+ private readonly orchestrator;
15
+ private readonly resolver;
16
+ private readonly signal;
17
+ private streamStarted;
18
+ constructor(options: {
19
+ store: ISessionStore<object, TTurnCustom>;
20
+ turn: TurnRecord<TTurnCustom>;
21
+ orchestrator?: AgentThreadOrchestrator | undefined;
22
+ resolver?: ITurnResourceResolver<TTurnCustom> | undefined;
23
+ signal?: AbortSignal | undefined;
24
+ });
25
+ /** Store-only handle (e.g. from {@link SessionHandle.getTurn}) — stream() is not available. */
26
+ static fromRecord<TCustom extends object = Record<string, never>>(options: {
27
+ store: ISessionStore<object, TCustom>;
28
+ turn: TurnRecord<TCustom>;
29
+ }): TurnHandle<TCustom>;
30
+ static get<TCustom extends object = Record<string, never>>(options: {
31
+ store: ISessionStore<object, TCustom>;
32
+ session_id: string;
33
+ turn_id: string;
34
+ }): Promise<TurnHandle<TCustom> | undefined>;
35
+ get id(): string;
36
+ get session_id(): string;
37
+ get previous_turn_id(): string | null;
38
+ get input(): TurnInputItem[];
39
+ get state(): TurnState;
40
+ get created_at(): Date;
41
+ get custom(): TTurnCustom | null;
42
+ get record(): TurnRecord<TTurnCustom>;
43
+ /**
44
+ * Executes the turn. Single consumer, callable ONCE — a second call throws:
45
+ * this generator IS the execution (persist-before-yield). Execute-only: the
46
+ * input was already sent and validated in run(); nothing is sent here.
47
+ * Sole terminal writer — done/cancelled/error is written to the store from
48
+ * inside this generator; honors the AbortSignal passed to run(). On every
49
+ * exit path the resolver is closed best-effort in a finally, after the
50
+ * terminal write.
51
+ *
52
+ * Two consumption patterns (both caller-side; this method is identical for both):
53
+ *
54
+ * // STREAMING — pipe events out as they happen (e.g. SSE):
55
+ * for await (const e of turn.stream()) yield sse(e);
56
+ *
57
+ * // NON-STREAMING — drain in background, respond immediately with the
58
+ * // running turn. The caller owns the active-turn registry, the .catch
59
+ * // (store-write failures reject the drain; agent errors do NOT — they
60
+ * // become terminal 'error' events inside), and graceful shutdown.
61
+ * const drain = (async () => { for await (const _ of turn.stream()); })()
62
+ * .catch(err => logger.error('turn drain failed', err));
63
+ * activeTurns.set(turn.id, { controller, drain });
64
+ * drain.finally(() => activeTurns.delete(turn.id));
65
+ * return turnCreatedResponse(turn);
66
+ *
67
+ * Yields the delta-inclusive streaming union: deltas pass through to the
68
+ * consumer but are NEVER persisted. Events carry no sequence_number; yield
69
+ * order ≡ persist order (single sequential generator), so callers that need
70
+ * numbering (e.g. SSE resume) stamp it at their own transport boundary.
71
+ */
72
+ stream(): AsyncGenerator<TurnStreamingEvent>;
73
+ /** Paginated read of this turn's persisted events. */
74
+ listEvents(input: {
75
+ limit: number;
76
+ page_token?: string | undefined;
77
+ order?: 'asc' | 'desc' | undefined;
78
+ }): Promise<{
79
+ data: PersistedTurnEvent[];
80
+ pagination: TokenPagination;
81
+ }>;
82
+ /**
83
+ * Persist side effects for one execution event; return a streaming yield when
84
+ * the event should be emitted to the consumer (null = side-effect only / skip).
85
+ */
86
+ private persistExecutionEvent;
87
+ }
88
+ //# sourceMappingURL=TurnHandle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TurnHandle.d.ts","sourceRoot":"","sources":["../../src/agent-session/TurnHandle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,490 @@
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/agent-session/TurnHandle.ts
21
+ var TurnHandle_exports = {};
22
+ __export(TurnHandle_exports, {
23
+ TurnHandle: () => TurnHandle
24
+ });
25
+ module.exports = __toCommonJS(TurnHandle_exports);
26
+ var import_errors = require("../core/errors.js");
27
+ var import_schema = require("../core/events/schema.js");
28
+ var import_AgentThread = require("../core/runtime/AgentThread.types.js");
29
+ var import_contextUsage = require("../core/runtime/contextUsage.js");
30
+ var import_events = require("./schemas/events.js");
31
+ var import_turn = require("./schemas/turn.js");
32
+ var import_SessionStoreErrors = require("./store/SessionStoreErrors.js");
33
+ function cancellationReasonFromAbortReason(abortReason) {
34
+ if (abortReason === import_turn.CancellationReason.ServerExecutionTimeout) {
35
+ return import_turn.CancellationReason.ServerExecutionTimeout;
36
+ }
37
+ if (abortReason === import_turn.CancellationReason.CancelledForNextTurn) {
38
+ return import_turn.CancellationReason.CancelledForNextTurn;
39
+ }
40
+ if (abortReason === import_turn.CancellationReason.Abandoned) {
41
+ return import_turn.CancellationReason.Abandoned;
42
+ }
43
+ return import_turn.CancellationReason.ClientCancelled;
44
+ }
45
+ function toThreadDoneEvent(event) {
46
+ const state = event.status === "error" ? { status: "error", error: event.error, ...event.output && { output: event.output } } : { status: "done", output: event.output };
47
+ return {
48
+ type: import_schema.EventType.THREAD_DONE,
49
+ id: (0, import_schema.newEventId)(),
50
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
51
+ parent: event.parent,
52
+ thread_id: event.thread_id,
53
+ title: event.title,
54
+ state
55
+ };
56
+ }
57
+ function toMCPAuthRequiredEvent(event) {
58
+ return {
59
+ type: import_schema.EventType.MCP_AUTH_REQUIRED,
60
+ id: event.id,
61
+ created_at: event.created_at,
62
+ thread_id: event.thread_id,
63
+ mcp_servers: event.mcp_servers.map(({ thread_ids, ...server }) => {
64
+ void thread_ids;
65
+ return server;
66
+ })
67
+ };
68
+ }
69
+ function turnMetricsFromAgentThreadMetrics(metrics) {
70
+ return {
71
+ total_input_tokens: metrics.total_input_tokens,
72
+ total_output_tokens: metrics.total_output_tokens,
73
+ total_tokens: metrics.total_tokens,
74
+ total_cache_read_tokens: metrics.total_cache_read_tokens,
75
+ total_cache_write_tokens: metrics.total_cache_write_tokens,
76
+ total_reasoning_tokens: metrics.total_reasoning_tokens,
77
+ total_cost_in_usd: metrics.total_cost_in_usd
78
+ };
79
+ }
80
+ var TurnHandle = class _TurnHandle {
81
+ store;
82
+ turn;
83
+ orchestrator;
84
+ resolver;
85
+ signal;
86
+ streamStarted = false;
87
+ constructor(options) {
88
+ this.store = options.store;
89
+ this.turn = options.turn;
90
+ this.orchestrator = options.orchestrator;
91
+ this.resolver = options.resolver;
92
+ this.signal = options.signal;
93
+ }
94
+ /** Store-only handle (e.g. from {@link SessionHandle.getTurn}) — stream() is not available. */
95
+ static fromRecord(options) {
96
+ return new _TurnHandle(options);
97
+ }
98
+ static async get(options) {
99
+ const turn = await options.store.getTurn({
100
+ session_id: options.session_id,
101
+ turn_id: options.turn_id
102
+ });
103
+ if (!turn) {
104
+ return void 0;
105
+ }
106
+ return _TurnHandle.fromRecord({
107
+ store: options.store,
108
+ turn
109
+ });
110
+ }
111
+ get id() {
112
+ return this.turn.turn_id;
113
+ }
114
+ get session_id() {
115
+ return this.turn.session_id;
116
+ }
117
+ get previous_turn_id() {
118
+ return this.turn.previous_turn_id;
119
+ }
120
+ get input() {
121
+ return this.turn.input;
122
+ }
123
+ get state() {
124
+ return this.turn.state;
125
+ }
126
+ get created_at() {
127
+ return this.turn.created_at;
128
+ }
129
+ get custom() {
130
+ return this.turn.custom;
131
+ }
132
+ get record() {
133
+ return this.turn;
134
+ }
135
+ /**
136
+ * Executes the turn. Single consumer, callable ONCE — a second call throws:
137
+ * this generator IS the execution (persist-before-yield). Execute-only: the
138
+ * input was already sent and validated in run(); nothing is sent here.
139
+ * Sole terminal writer — done/cancelled/error is written to the store from
140
+ * inside this generator; honors the AbortSignal passed to run(). On every
141
+ * exit path the resolver is closed best-effort in a finally, after the
142
+ * terminal write.
143
+ *
144
+ * Two consumption patterns (both caller-side; this method is identical for both):
145
+ *
146
+ * // STREAMING — pipe events out as they happen (e.g. SSE):
147
+ * for await (const e of turn.stream()) yield sse(e);
148
+ *
149
+ * // NON-STREAMING — drain in background, respond immediately with the
150
+ * // running turn. The caller owns the active-turn registry, the .catch
151
+ * // (store-write failures reject the drain; agent errors do NOT — they
152
+ * // become terminal 'error' events inside), and graceful shutdown.
153
+ * const drain = (async () => { for await (const _ of turn.stream()); })()
154
+ * .catch(err => logger.error('turn drain failed', err));
155
+ * activeTurns.set(turn.id, { controller, drain });
156
+ * drain.finally(() => activeTurns.delete(turn.id));
157
+ * return turnCreatedResponse(turn);
158
+ *
159
+ * Yields the delta-inclusive streaming union: deltas pass through to the
160
+ * consumer but are NEVER persisted. Events carry no sequence_number; yield
161
+ * order ≡ persist order (single sequential generator), so callers that need
162
+ * numbering (e.g. SSE resume) stamp it at their own transport boundary.
163
+ */
164
+ async *stream() {
165
+ if (this.streamStarted) {
166
+ throw new Error("TurnHandle.stream() is single-use and was already called");
167
+ }
168
+ this.streamStarted = true;
169
+ const orchestrator = this.orchestrator;
170
+ const resolver = this.resolver;
171
+ const signal = this.signal;
172
+ if (!orchestrator || !resolver || !signal) {
173
+ throw new Error("TurnHandle.stream() is only available on turns returned from SessionHandle.createTurn()");
174
+ }
175
+ let caughtError;
176
+ let frozenByStore = false;
177
+ let executeResult;
178
+ let generator;
179
+ try {
180
+ const turnCreated = {
181
+ type: import_events.EventType.TURN_CREATED,
182
+ id: (0, import_schema.newEventId)(),
183
+ turn_id: this.turn.turn_id,
184
+ previous_turn_id: this.turn.previous_turn_id,
185
+ ...this.turn.input.length > 0 ? { input: this.turn.input } : {},
186
+ state: { status: "running" },
187
+ created_at: this.turn.created_at.toISOString(),
188
+ thread_id: null
189
+ };
190
+ await this.store.appendToEvents({
191
+ session_id: this.turn.session_id,
192
+ turn_id: this.turn.turn_id,
193
+ events: [turnCreated]
194
+ });
195
+ yield turnCreated;
196
+ generator = orchestrator.execute({ signal });
197
+ let iterResult = await generator.next();
198
+ while (!iterResult.done) {
199
+ const event = iterResult.value;
200
+ try {
201
+ const yielded = await this.persistExecutionEvent(event);
202
+ if (yielded) {
203
+ yield yielded;
204
+ }
205
+ } catch (error) {
206
+ if (error instanceof import_SessionStoreErrors.TurnNotRunningError) {
207
+ frozenByStore = true;
208
+ const emptyResult = {
209
+ output: null,
210
+ required_actions: []
211
+ };
212
+ await generator.return(emptyResult);
213
+ generator = void 0;
214
+ const updatedAt = /* @__PURE__ */ new Date();
215
+ const createdAtIso = updatedAt.toISOString();
216
+ const state = {
217
+ ...error.state,
218
+ metrics: turnMetricsFromAgentThreadMetrics(orchestrator.getMetrics())
219
+ };
220
+ this.turn = { ...this.turn, state, updated_at: updatedAt };
221
+ yield {
222
+ type: import_events.EventType.TURN_DONE,
223
+ id: (0, import_schema.newEventId)(),
224
+ created_at: createdAtIso,
225
+ state,
226
+ thread_id: null
227
+ };
228
+ return;
229
+ }
230
+ throw error;
231
+ }
232
+ iterResult = await generator.next();
233
+ }
234
+ executeResult = iterResult.value;
235
+ } catch (error) {
236
+ caughtError = error instanceof Error ? error : new Error(String(error));
237
+ } finally {
238
+ if (generator) {
239
+ const emptyResult = {
240
+ output: null,
241
+ required_actions: []
242
+ };
243
+ await generator.return(emptyResult);
244
+ }
245
+ const updatedAt = /* @__PURE__ */ new Date();
246
+ const createdAtIso = updatedAt.toISOString();
247
+ const metrics = turnMetricsFromAgentThreadMetrics(orchestrator.getMetrics());
248
+ let terminalState;
249
+ if (signal.aborted) {
250
+ terminalState = {
251
+ status: "cancelled",
252
+ reason: cancellationReasonFromAbortReason(signal.reason),
253
+ completed_at: createdAtIso,
254
+ metrics
255
+ };
256
+ } else if (caughtError) {
257
+ terminalState = {
258
+ status: "error",
259
+ message: caughtError.message,
260
+ completed_at: createdAtIso,
261
+ metrics
262
+ };
263
+ } else if (executeResult?.root_agent_error) {
264
+ terminalState = {
265
+ status: "error",
266
+ message: executeResult.root_agent_error.error,
267
+ completed_at: createdAtIso,
268
+ metrics
269
+ };
270
+ } else if (executeResult === void 0) {
271
+ terminalState = {
272
+ status: "cancelled",
273
+ reason: import_turn.CancellationReason.ClientCancelled,
274
+ completed_at: createdAtIso,
275
+ metrics
276
+ };
277
+ } else {
278
+ terminalState = {
279
+ status: "done",
280
+ output: executeResult.output,
281
+ required_actions: executeResult.required_actions,
282
+ completed_at: createdAtIso,
283
+ metrics
284
+ };
285
+ }
286
+ const turnDone = {
287
+ type: import_events.EventType.TURN_DONE,
288
+ id: (0, import_schema.newEventId)(),
289
+ created_at: createdAtIso,
290
+ state: terminalState,
291
+ thread_id: null
292
+ };
293
+ if (!frozenByStore) {
294
+ try {
295
+ await this.store.updateTurnState({
296
+ session_id: this.turn.session_id,
297
+ turn_id: this.turn.turn_id,
298
+ state: terminalState,
299
+ turn_done_event: turnDone
300
+ });
301
+ this.turn = { ...this.turn, state: terminalState, updated_at: updatedAt };
302
+ } catch (persistError) {
303
+ if (persistError instanceof import_SessionStoreErrors.TurnNotRunningError) {
304
+ const state = { ...persistError.state, metrics };
305
+ this.turn = { ...this.turn, state, updated_at: updatedAt };
306
+ await resolver.close().catch(() => {
307
+ });
308
+ yield {
309
+ type: import_events.EventType.TURN_DONE,
310
+ id: (0, import_schema.newEventId)(),
311
+ created_at: createdAtIso,
312
+ state,
313
+ thread_id: null
314
+ };
315
+ return;
316
+ }
317
+ await resolver.close().catch(() => {
318
+ });
319
+ throw persistError;
320
+ }
321
+ }
322
+ await resolver.close().catch((err) => {
323
+ resolver.logger.warn("TurnResourceResolver.close() failed", { err });
324
+ });
325
+ if (!frozenByStore) {
326
+ yield turnDone;
327
+ }
328
+ }
329
+ }
330
+ /** Paginated read of this turn's persisted events. */
331
+ async listEvents(input) {
332
+ return this.store.listTurnEvents({
333
+ session_id: this.turn.session_id,
334
+ turn_id: this.turn.turn_id,
335
+ limit: input.limit,
336
+ page_token: input.page_token,
337
+ order: input.order
338
+ });
339
+ }
340
+ /**
341
+ * Persist side effects for one execution event; return a streaming yield when
342
+ * the event should be emitted to the consumer (null = side-effect only / skip).
343
+ */
344
+ async persistExecutionEvent(event) {
345
+ const scope = {
346
+ session_id: this.turn.session_id,
347
+ turn_id: this.turn.turn_id
348
+ };
349
+ switch (event.type) {
350
+ case import_schema.EventType.MODEL_MESSAGE:
351
+ case import_schema.EventType.MODEL_MESSAGE_DELTA:
352
+ return event;
353
+ case import_schema.EventType.TOOL_RESPONSE:
354
+ await this.store.appendToEvents({
355
+ ...scope,
356
+ events: [event]
357
+ });
358
+ return event;
359
+ case import_AgentThread.InternalEventType.AGENT_CREATE_SUBAGENT:
360
+ return null;
361
+ case import_AgentThread.InternalEventType.CAPABILITY_STATE: {
362
+ const state = event.state;
363
+ if (state === void 0) {
364
+ throw new import_errors.AgentHarnessError(
365
+ "capability_state_error",
366
+ `CAPABILITY_STATE for key '${event.key}' must not be undefined \u2014 use null to clear durable state`
367
+ );
368
+ }
369
+ await this.store.patchThreadCapabilityState({
370
+ ...scope,
371
+ thread_id: event.thread_id,
372
+ key: event.key,
373
+ state: event.state
374
+ });
375
+ return null;
376
+ }
377
+ case import_schema.EventType.AGENT_CONTEXT_OVERWRITE: {
378
+ await this.store.overwriteThreadContext({ ...scope, event });
379
+ return null;
380
+ }
381
+ case import_AgentThread.InternalEventType.AGENT_CONTEXT_APPEND: {
382
+ await this.store.appendToThreadContext({
383
+ ...scope,
384
+ thread_id: event.thread_id,
385
+ context: event.context,
386
+ current_context_usage: event.current_context_usage ?? null,
387
+ completion: event.completion ?? null
388
+ });
389
+ if (event.output.length > 0) {
390
+ await this.store.appendToEvents({
391
+ ...scope,
392
+ events: event.output
393
+ });
394
+ }
395
+ return null;
396
+ }
397
+ case import_AgentThread.InternalEventType.AGENT_DONE: {
398
+ if (!event.parent) {
399
+ return null;
400
+ }
401
+ const threadDone = toThreadDoneEvent(event);
402
+ await this.store.removeThreads({
403
+ ...scope,
404
+ thread_ids: [event.thread_id]
405
+ });
406
+ await this.store.appendToEvents({
407
+ ...scope,
408
+ events: [threadDone]
409
+ });
410
+ return threadDone;
411
+ }
412
+ case import_schema.EventType.THREAD_CREATED: {
413
+ await this.store.addThreads({
414
+ ...scope,
415
+ threads: [
416
+ {
417
+ thread_id: event.thread_id,
418
+ parent: event.parent,
419
+ agent_info: event.agent_info,
420
+ context: [],
421
+ current_context_usage: (0, import_contextUsage.getEmptyCurrentContextUsage)(),
422
+ completion: null,
423
+ capability_state: null
424
+ }
425
+ ]
426
+ });
427
+ await this.store.appendToEvents({
428
+ ...scope,
429
+ events: [event]
430
+ });
431
+ return event;
432
+ }
433
+ case import_AgentThread.InternalEventType.MCP_AUTH_REQUIRED: {
434
+ const authEvent = toMCPAuthRequiredEvent(event);
435
+ await this.store.appendToEvents({
436
+ ...scope,
437
+ events: [authEvent]
438
+ });
439
+ return authEvent;
440
+ }
441
+ case import_schema.EventType.MCP_INITIALIZE: {
442
+ await this.store.patchMCPServers({
443
+ ...scope,
444
+ mcp_servers: event.mcp_servers.map((initInfo) => ({
445
+ id: initInfo.id,
446
+ name: initInfo.name,
447
+ session_id: initInfo.session_id,
448
+ transport_type: initInfo.transport_type
449
+ }))
450
+ });
451
+ await this.store.appendToEvents({
452
+ ...scope,
453
+ events: [event]
454
+ });
455
+ return event;
456
+ }
457
+ case import_schema.EventType.SANDBOX_CREATED: {
458
+ await this.store.patchSandboxInfo({
459
+ ...scope,
460
+ sandbox_info: { sandbox_id: event.sandbox_id }
461
+ });
462
+ await this.store.appendToEvents({
463
+ ...scope,
464
+ events: [event]
465
+ });
466
+ return event;
467
+ }
468
+ case import_schema.EventType.TOOL_APPROVAL_REQUIRED:
469
+ case import_schema.EventType.TOOL_RESPONSE_REQUIRED: {
470
+ await this.store.appendToEvents({
471
+ ...scope,
472
+ events: [event]
473
+ });
474
+ return event;
475
+ }
476
+ default: {
477
+ await this.store.appendToEvents({
478
+ ...scope,
479
+ events: [event]
480
+ });
481
+ return event;
482
+ }
483
+ }
484
+ }
485
+ };
486
+ // Annotate the CommonJS export names for ESM import in node:
487
+ 0 && (module.exports = {
488
+ TurnHandle
489
+ });
490
+ //# sourceMappingURL=TurnHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/agent-session/TurnHandle.ts"],"sourcesContent":["/**\n * Durable turn handle. {@link TurnHandle.stream} is execute-once (persist-before-yield).\n */\nimport { AgentHarnessError } from '../core/errors';\nimport type { MCPAuthRequiredEvent, ModelMessageDeltaEvent, ThreadDoneEvent } from '../core/events/schema';\nimport { EventType as HarnessEventType, newEventId } from '../core/events/schema';\nimport {\n InternalEventType,\n type AgentThreadExecutionEvent,\n type AgentThreadExecutionResult,\n type InternalMCPAuthRequiredEvent,\n type InternalThreadDoneEvent,\n} from '../core/runtime/AgentThread.types';\nimport type { AgentThreadOrchestrator } from '../core/runtime/AgentThreadOrchestrator';\nimport { getEmptyCurrentContextUsage } from '../core/runtime/contextUsage';\nimport type { AgentThreadMetrics } from '../core/runtime/metrics';\nimport type { ITurnResourceResolver } from './ITurnResourceResolver';\nimport type { TurnRecord } from './models/TurnRecord';\nimport { EventType, type PersistedTurnEvent, type TurnCreatedEvent, type TurnDoneEvent } from './schemas/events';\nimport type { TokenPagination } from './schemas/pagination';\nimport {\n CancellationReason,\n type TerminalTurnState,\n type TurnInputItem,\n type TurnMetrics,\n type TurnState,\n} from './schemas/turn';\nimport type { ISessionStore } from './store/ISessionStore';\nimport { TurnNotRunningError } from './store/SessionStoreErrors';\n\n/** Streaming yield union — deltas pass through; never persisted. No sequence_number. */\nexport type TurnStreamingEvent = PersistedTurnEvent | ModelMessageDeltaEvent;\n\nfunction cancellationReasonFromAbortReason(abortReason: unknown): CancellationReason {\n if (abortReason === CancellationReason.ServerExecutionTimeout) {\n return CancellationReason.ServerExecutionTimeout;\n }\n if (abortReason === CancellationReason.CancelledForNextTurn) {\n return CancellationReason.CancelledForNextTurn;\n }\n if (abortReason === CancellationReason.Abandoned) {\n return CancellationReason.Abandoned;\n }\n return CancellationReason.ClientCancelled;\n}\n\nfunction toThreadDoneEvent(event: InternalThreadDoneEvent): ThreadDoneEvent {\n const state =\n event.status === 'error'\n ? { status: 'error' as const, error: event.error, ...(event.output && { output: event.output }) }\n : { status: 'done' as const, output: event.output };\n return {\n type: HarnessEventType.THREAD_DONE,\n id: newEventId(),\n created_at: new Date().toISOString(),\n parent: event.parent,\n thread_id: event.thread_id,\n title: event.title,\n state,\n };\n}\n\nfunction toMCPAuthRequiredEvent(event: InternalMCPAuthRequiredEvent): MCPAuthRequiredEvent {\n return {\n type: HarnessEventType.MCP_AUTH_REQUIRED,\n id: event.id,\n created_at: event.created_at,\n thread_id: event.thread_id,\n mcp_servers: event.mcp_servers.map(({ thread_ids, ...server }) => {\n void thread_ids;\n return server;\n }),\n };\n}\n\nfunction turnMetricsFromAgentThreadMetrics(metrics: AgentThreadMetrics): TurnMetrics {\n return {\n total_input_tokens: metrics.total_input_tokens,\n total_output_tokens: metrics.total_output_tokens,\n total_tokens: metrics.total_tokens,\n total_cache_read_tokens: metrics.total_cache_read_tokens,\n total_cache_write_tokens: metrics.total_cache_write_tokens,\n total_reasoning_tokens: metrics.total_reasoning_tokens,\n total_cost_in_usd: metrics.total_cost_in_usd,\n };\n}\n\nexport class TurnHandle<TTurnCustom extends object = Record<string, never>> {\n private readonly store: ISessionStore<object, TTurnCustom>;\n private turn: TurnRecord<TTurnCustom>;\n private readonly orchestrator: AgentThreadOrchestrator | undefined;\n private readonly resolver: ITurnResourceResolver<TTurnCustom> | undefined;\n private readonly signal: AbortSignal | undefined;\n private streamStarted = false;\n\n constructor(options: {\n store: ISessionStore<object, TTurnCustom>;\n turn: TurnRecord<TTurnCustom>;\n orchestrator?: AgentThreadOrchestrator | undefined;\n resolver?: ITurnResourceResolver<TTurnCustom> | undefined;\n signal?: AbortSignal | undefined;\n }) {\n this.store = options.store;\n this.turn = options.turn;\n this.orchestrator = options.orchestrator;\n this.resolver = options.resolver;\n this.signal = options.signal;\n }\n\n /** Store-only handle (e.g. from {@link SessionHandle.getTurn}) — stream() is not available. */\n static fromRecord<TCustom extends object = Record<string, never>>(options: {\n store: ISessionStore<object, TCustom>;\n turn: TurnRecord<TCustom>;\n }): TurnHandle<TCustom> {\n return new TurnHandle(options);\n }\n\n static async get<TCustom extends object = Record<string, never>>(options: {\n store: ISessionStore<object, TCustom>;\n session_id: string;\n turn_id: string;\n }): Promise<TurnHandle<TCustom> | undefined> {\n const turn = await options.store.getTurn({\n session_id: options.session_id,\n turn_id: options.turn_id,\n });\n if (!turn) {\n return undefined;\n }\n return TurnHandle.fromRecord({\n store: options.store,\n turn,\n });\n }\n\n get id(): string {\n return this.turn.turn_id;\n }\n\n get session_id(): string {\n return this.turn.session_id;\n }\n\n get previous_turn_id(): string | null {\n return this.turn.previous_turn_id;\n }\n\n get input(): TurnInputItem[] {\n return this.turn.input;\n }\n\n get state(): TurnState {\n return this.turn.state;\n }\n\n get created_at(): Date {\n return this.turn.created_at;\n }\n\n get custom(): TTurnCustom | null {\n return this.turn.custom;\n }\n\n get record(): TurnRecord<TTurnCustom> {\n return this.turn;\n }\n\n /**\n * Executes the turn. Single consumer, callable ONCE — a second call throws:\n * this generator IS the execution (persist-before-yield). Execute-only: the\n * input was already sent and validated in run(); nothing is sent here.\n * Sole terminal writer — done/cancelled/error is written to the store from\n * inside this generator; honors the AbortSignal passed to run(). On every\n * exit path the resolver is closed best-effort in a finally, after the\n * terminal write.\n *\n * Two consumption patterns (both caller-side; this method is identical for both):\n *\n * // STREAMING — pipe events out as they happen (e.g. SSE):\n * for await (const e of turn.stream()) yield sse(e);\n *\n * // NON-STREAMING — drain in background, respond immediately with the\n * // running turn. The caller owns the active-turn registry, the .catch\n * // (store-write failures reject the drain; agent errors do NOT — they\n * // become terminal 'error' events inside), and graceful shutdown.\n * const drain = (async () => { for await (const _ of turn.stream()); })()\n * .catch(err => logger.error('turn drain failed', err));\n * activeTurns.set(turn.id, { controller, drain });\n * drain.finally(() => activeTurns.delete(turn.id));\n * return turnCreatedResponse(turn);\n *\n * Yields the delta-inclusive streaming union: deltas pass through to the\n * consumer but are NEVER persisted. Events carry no sequence_number; yield\n * order ≡ persist order (single sequential generator), so callers that need\n * numbering (e.g. SSE resume) stamp it at their own transport boundary.\n */\n async *stream(): AsyncGenerator<TurnStreamingEvent> {\n if (this.streamStarted) {\n throw new Error('TurnHandle.stream() is single-use and was already called');\n }\n this.streamStarted = true;\n\n const orchestrator = this.orchestrator;\n const resolver = this.resolver;\n const signal = this.signal;\n if (!orchestrator || !resolver || !signal) {\n throw new Error('TurnHandle.stream() is only available on turns returned from SessionHandle.createTurn()');\n }\n\n let caughtError: Error | undefined;\n let frozenByStore = false;\n let executeResult: AgentThreadExecutionResult | undefined;\n let generator: AsyncGenerator<AgentThreadExecutionEvent, AgentThreadExecutionResult, unknown> | undefined;\n\n try {\n const turnCreated: TurnCreatedEvent = {\n type: EventType.TURN_CREATED,\n id: newEventId(),\n turn_id: this.turn.turn_id,\n previous_turn_id: this.turn.previous_turn_id,\n ...(this.turn.input.length > 0 ? { input: this.turn.input } : {}),\n state: { status: 'running' },\n created_at: this.turn.created_at.toISOString(),\n thread_id: null,\n };\n await this.store.appendToEvents({\n session_id: this.turn.session_id,\n turn_id: this.turn.turn_id,\n events: [turnCreated],\n });\n yield turnCreated;\n\n generator = orchestrator.execute({ signal });\n let iterResult = await generator.next();\n while (!iterResult.done) {\n const event = iterResult.value;\n try {\n const yielded = await this.persistExecutionEvent(event);\n if (yielded) {\n yield yielded;\n }\n } catch (error) {\n if (error instanceof TurnNotRunningError) {\n frozenByStore = true;\n const emptyResult: AgentThreadExecutionResult = {\n output: null,\n required_actions: [],\n };\n await generator.return(emptyResult);\n // Cleared so the finally block does not close the generator a second time.\n generator = undefined;\n const updatedAt = new Date();\n const createdAtIso = updatedAt.toISOString();\n const state: TerminalTurnState = {\n ...error.state,\n metrics: turnMetricsFromAgentThreadMetrics(orchestrator.getMetrics()),\n };\n this.turn = { ...this.turn, state, updated_at: updatedAt };\n yield {\n type: EventType.TURN_DONE,\n id: newEventId(),\n created_at: createdAtIso,\n state,\n thread_id: null,\n };\n return;\n }\n throw error;\n }\n iterResult = await generator.next();\n }\n executeResult = iterResult.value;\n } catch (error) {\n caughtError = error instanceof Error ? error : new Error(String(error));\n } finally {\n if (generator) {\n const emptyResult: AgentThreadExecutionResult = {\n output: null,\n required_actions: [],\n };\n await generator.return(emptyResult);\n }\n\n const updatedAt = new Date();\n const createdAtIso = updatedAt.toISOString();\n const metrics = turnMetricsFromAgentThreadMetrics(orchestrator.getMetrics());\n let terminalState: TerminalTurnState;\n if (signal.aborted) {\n terminalState = {\n status: 'cancelled',\n reason: cancellationReasonFromAbortReason(signal.reason),\n completed_at: createdAtIso,\n metrics,\n };\n } else if (caughtError) {\n terminalState = {\n status: 'error',\n message: caughtError.message,\n completed_at: createdAtIso,\n metrics,\n };\n } else if (executeResult?.root_agent_error) {\n terminalState = {\n status: 'error',\n message: executeResult.root_agent_error.error,\n completed_at: createdAtIso,\n metrics,\n };\n } else if (executeResult === undefined) {\n // Consumer abandoned the generator (break/return) without aborting —\n // no executeResult, no error, signal not aborted.\n terminalState = {\n status: 'cancelled',\n reason: CancellationReason.ClientCancelled,\n completed_at: createdAtIso,\n metrics,\n };\n } else {\n terminalState = {\n status: 'done',\n output: executeResult.output,\n required_actions: executeResult.required_actions,\n completed_at: createdAtIso,\n metrics,\n };\n }\n\n const turnDone: TurnDoneEvent = {\n type: EventType.TURN_DONE,\n id: newEventId(),\n created_at: createdAtIso,\n state: terminalState,\n thread_id: null,\n };\n\n if (!frozenByStore) {\n try {\n await this.store.updateTurnState({\n session_id: this.turn.session_id,\n turn_id: this.turn.turn_id,\n state: terminalState,\n turn_done_event: turnDone,\n });\n this.turn = { ...this.turn, state: terminalState, updated_at: updatedAt };\n } catch (persistError) {\n if (persistError instanceof TurnNotRunningError) {\n const state: TerminalTurnState = { ...persistError.state, metrics };\n this.turn = { ...this.turn, state, updated_at: updatedAt };\n await resolver.close().catch(() => {\n /* no-op */\n });\n yield {\n type: EventType.TURN_DONE,\n id: newEventId(),\n created_at: createdAtIso,\n state,\n thread_id: null,\n };\n // eslint-disable-next-line no-unsafe-finally -- deliberate: a concurrent freeze during the terminal write makes the store's state authoritative, so the stream ends here\n return;\n }\n // Store-write failures reject the stream (caller drain .catch).\n await resolver.close().catch(() => {\n /* no-op */\n });\n // eslint-disable-next-line no-unsafe-finally -- deliberate: the terminal-state write runs in finally and its failure must reject the stream\n throw persistError;\n }\n }\n\n await resolver.close().catch((err: unknown) => {\n resolver.logger.warn('TurnResourceResolver.close() failed', { err });\n });\n\n if (!frozenByStore) {\n yield turnDone;\n }\n }\n }\n\n /** Paginated read of this turn's persisted events. */\n async listEvents(input: {\n limit: number;\n page_token?: string | undefined;\n order?: 'asc' | 'desc' | undefined;\n }): Promise<{\n data: PersistedTurnEvent[];\n pagination: TokenPagination;\n }> {\n return this.store.listTurnEvents({\n session_id: this.turn.session_id,\n turn_id: this.turn.turn_id,\n limit: input.limit,\n page_token: input.page_token,\n order: input.order,\n });\n }\n\n /**\n * Persist side effects for one execution event; return a streaming yield when\n * the event should be emitted to the consumer (null = side-effect only / skip).\n */\n private async persistExecutionEvent(event: AgentThreadExecutionEvent): Promise<TurnStreamingEvent | null> {\n const scope = {\n session_id: this.turn.session_id,\n turn_id: this.turn.turn_id,\n };\n\n switch (event.type) {\n case HarnessEventType.MODEL_MESSAGE:\n case HarnessEventType.MODEL_MESSAGE_DELTA:\n // Stream only — durable model content lands via AGENT_CONTEXT_APPEND.output.\n return event;\n\n case HarnessEventType.TOOL_RESPONSE:\n await this.store.appendToEvents({\n ...scope,\n events: [event],\n });\n return event;\n\n case InternalEventType.AGENT_CREATE_SUBAGENT:\n return null;\n\n case InternalEventType.CAPABILITY_STATE: {\n // Persist boundary: types exclude undefined; reject it at runtime so stores never see it.\n const state: unknown = event.state;\n if (state === undefined) {\n throw new AgentHarnessError(\n 'capability_state_error',\n `CAPABILITY_STATE for key '${event.key}' must not be undefined — use null to clear durable state`,\n );\n }\n await this.store.patchThreadCapabilityState({\n ...scope,\n thread_id: event.thread_id,\n key: event.key,\n state: event.state,\n });\n return null;\n }\n\n case HarnessEventType.AGENT_CONTEXT_OVERWRITE: {\n await this.store.overwriteThreadContext({ ...scope, event });\n return null;\n }\n\n case InternalEventType.AGENT_CONTEXT_APPEND: {\n await this.store.appendToThreadContext({\n ...scope,\n thread_id: event.thread_id,\n context: event.context,\n current_context_usage: event.current_context_usage ?? null,\n completion: event.completion ?? null,\n });\n if (event.output.length > 0) {\n await this.store.appendToEvents({\n ...scope,\n events: event.output,\n });\n }\n return null;\n }\n\n case InternalEventType.AGENT_DONE: {\n if (!event.parent) {\n return null;\n }\n const threadDone = toThreadDoneEvent(event);\n await this.store.removeThreads({\n ...scope,\n thread_ids: [event.thread_id],\n });\n await this.store.appendToEvents({\n ...scope,\n events: [threadDone],\n });\n return threadDone;\n }\n\n case HarnessEventType.THREAD_CREATED: {\n await this.store.addThreads({\n ...scope,\n threads: [\n {\n thread_id: event.thread_id,\n parent: event.parent,\n agent_info: event.agent_info,\n context: [],\n current_context_usage: getEmptyCurrentContextUsage(),\n completion: null,\n capability_state: null,\n },\n ],\n });\n await this.store.appendToEvents({\n ...scope,\n events: [event],\n });\n return event;\n }\n\n case InternalEventType.MCP_AUTH_REQUIRED: {\n const authEvent = toMCPAuthRequiredEvent(event);\n await this.store.appendToEvents({\n ...scope,\n events: [authEvent],\n });\n return authEvent;\n }\n\n case HarnessEventType.MCP_INITIALIZE: {\n await this.store.patchMCPServers({\n ...scope,\n mcp_servers: event.mcp_servers.map(initInfo => ({\n id: initInfo.id,\n name: initInfo.name,\n session_id: initInfo.session_id,\n transport_type: initInfo.transport_type,\n })),\n });\n await this.store.appendToEvents({\n ...scope,\n events: [event],\n });\n return event;\n }\n\n case HarnessEventType.SANDBOX_CREATED: {\n await this.store.patchSandboxInfo({\n ...scope,\n sandbox_info: { sandbox_id: event.sandbox_id },\n });\n await this.store.appendToEvents({\n ...scope,\n events: [event],\n });\n return event;\n }\n\n case HarnessEventType.TOOL_APPROVAL_REQUIRED:\n case HarnessEventType.TOOL_RESPONSE_REQUIRED: {\n await this.store.appendToEvents({\n ...scope,\n events: [event],\n });\n return event;\n }\n\n default: {\n // Registered passthrough (orchestrator unwraps PASSTHROUGH before yield).\n await this.store.appendToEvents({\n ...scope,\n events: [event],\n });\n return event;\n }\n }\n }\n}\n"],"mappings":"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","names":["HarnessEventType"]}